<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IP xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance"
    ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../../../../../../doc/V4/Development/Specifications/db/IP_Modes.xsd"
    xmlns="http://mcd.rou.st.com/modules.php?name=mcu"
    DBVersion="V4.0"
    IPType="middleware"
    IpGroup="Middleware"
    Name="LWIP"
    Version="v2.1.2_Cube">
    
    <About>LWIP: LightWeight TCP/IP</About>
    <RefParameter Name="LwIP Version" Comment="LwIP Version (Version of LwIP supported by CubeMX ** CubeMX specific **)" Type="string" Group="LwIP Version" DefaultValue="2.1.2" TabName="General Settings" Mode="Basic" >
        <Description>&lt;font color=&quot;blue&quot;&gt;LwIP version supported by CubeMX is the &lt;b&gt;O&lt;/b&gt;fficial &lt;b&gt;R&lt;/b&gt;elease &lt;b&gt;2.1.2&lt;/b&gt;.&lt;/font&gt;&lt;br&gt;MQTT and HOOK configuration is not supported via CubeMx GUI.&lt;br&gt;LwIP stack has an internal parameter defined in init.h providing its version: LWIP_VERSION.&lt;br&gt;Here, the LwIP Version is just displayed to highlight the LwIP version supported by CubeMX.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: This parameter has been introduced by CubeMX and is not configurable, LWIP_VERSION being already defined in init.h.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP" Comment="LWIP_DHCP (DHCP Module)" Type="list" Group="IPv4 - DHCP Options" DefaultValue="1" TabName="General Settings" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_DHCP requires both LWIP_UDP and LWIP_IPV4 enabled." Expression="LWIP_UDP &amp; LWIP_IPV4"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, DHCP (Dynamic Host Configuration Protocol) module is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP" Comment="LWIP_DHCP (DHCP Module)" Type="list" Group="IPv4 - DHCP Options" DefaultValue="0" TabName="General Settings" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, DHCP (Dynamic Host Configuration Protocol) module is enabled.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_DHCP requires both LWIP_UDP and LWIP_IPV4 enabled.</Description>
    </RefParameter>
    <RefParameter Name="ETH_RX_BUFFER_SIZE" Comment="ETH_RX_BUFFER_SIZE (ETH Rx Buffer Size)" Type="Integer" Group="ETH Options" DefaultValue="=ETH:RxBuffLen" TabName="General Settings" Visible="false">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: STM32H7." Expression="STM32H7"/>
        <Description>Ethernet Rx buffer size</Description>
    </RefParameter>
    <RefParameter Name="ETH_RX_BUFFER_SIZE" Comment="ETH_RX_BUFFER_SIZE (ETH Rx Buffer Size)" Type="Integer" Group="ETH Options" DefaultValue="1524" TabName="General Settings" Visible="false">
        <Description>Ethernet Rx buffer size</Description>
    </RefParameter>
    <RefParameter Name="IP_ADDRESS" Comment="IP_ADDRESS (IP Address)" Type="Array" Separator="." ArrayTypeElement="uint8_t;10" ArraySize="4" Group="IP Address Settings" DefaultValue="000.000.000.000" TabName="General Settings" Mode="Basic" Max="255" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: If DHCP is disabled, the IP address is mandatory." Expression="!LWIP_DHCP"/>
    </RefParameter>
    <RefParameter Name="IP_ADDRESS" Comment="IP_ADDRESS (IP Address)" Type="Array" Separator="." ArrayTypeElement="uint8_t;10" ArraySize="4" Group="IP Address Settings" DefaultValue="0.0.0.0" TabName="General Settings" Mode="Basic" Visible="false"/>
    <RefParameter Name="NETMASK_ADDRESS" Comment="NETMASK_ADDRESS (Netmask Address)" Type="Array" Separator="." ArrayTypeElement="uint8_t;10" ArraySize="4" Group="IP Address Settings" DefaultValue="000.000.000.000" TabName="General Settings" Mode="Basic" Max="255" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: If DHCP is disabled, the Netmask address is mandatory." Expression="!LWIP_DHCP"/>
    </RefParameter>
    <RefParameter Name="NETMASK_ADDRESS" Comment="NETMASK_ADDRESS (Netmask Address)" Type="Array" Separator="." ArrayTypeElement="uint8_t;10" ArraySize="4" Group="IP Address Settings" DefaultValue="0.0.0.0" TabName="General Settings" Mode="Basic" Visible="false"/>
    <RefParameter Name="GATEWAY_ADDRESS" Comment="GATEWAY_ADDRESS (Gateway Address)" Type="Array" Separator="." ArrayTypeElement="uint8_t;10" ArraySize="4" Group="IP Address Settings" DefaultValue="000.000.000.000" TabName="General Settings" Mode="Basic" Max="255" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: If DHCP is disabled, the Gateway address is mandatory." Expression="!LWIP_DHCP"/>
    </RefParameter>
    <RefParameter Name="GATEWAY_ADDRESS" Comment="GATEWAY_ADDRESS (Gateway Address)" Type="Array" Separator="." ArrayTypeElement="uint8_t;10" ArraySize="4" Group="IP Address Settings" DefaultValue="0.0.0.0" TabName="General Settings" Mode="Basic" Visible="false"/>
    <RefParameter Name="WITH_RTOS" Comment="WITH_RTOS (Use FREERTOS ** CubeMX specific **)" Type="uniqueElementList" Group="RTOS Dependency" DefaultValue="0" TabName="General Settings" Mode="Basic" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: WITH_RTOS is enabled means NO_SYS is enabled (set to 0) and FREERTOS is enabled." Expression="!NO_SYS"/>
        <PossibleValue Comment="Enabled" Value="1" Semaphore="S_NO_SYS"/>
        <Description>This parameter is enabled as soon as FREERTOS is enabled in MiddleWares tree.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: This parameter has been introduced by CubeMX.</Description>
    </RefParameter>
    <RefParameter Name="WITH_RTOS" Comment="WITH_RTOS (Use FREERTOS ** CubeMX specific **)" Type="uniqueElementList" Group="RTOS Dependency" DefaultValue="0" TabName="General Settings" Mode="Basic" Visible="true">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter is disabled as soon as FREERTOS is disabled in MiddleWares tree.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: This parameter has been introduced by CubeMX.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: WITH_RTOS is disabled means NO_SYS is disabled (set to 1) and FREERTOS is disabled.</Description>
    </RefParameter>
    <RefParameter Name="WITH_MBEDTLS" Comment="WITH_MBEDTLS (Use MBEDTLS ** CubeMX specific **)" Type="uniqueElementList" Group="MBEDTLS Dependency" DefaultValue="0" TabName="General Settings" Mode="Basic" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: WITH_MBEDTLS is enabled means FREERTOS and MBEDTLS are both enabled, and LWIP_USE_EXTERNAL_MBEDTLS is forced to Enabled in Key Options/PolarSSL Options.&lt;br&gt;&lt;font color=&quot;red&quot;&gt;&lt;b&gt;Limitation&lt;/b&gt;: LwIP with MBEDTLS but without FREERTOS is not yet supported by CubeMX.&lt;/font&gt;" Expression="S_MBEDTLS"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>&lt;b&gt;Warning&lt;/b&gt;: This parameter has been introduced by CubeMX.&lt;br&gt;This parameter is enabled as soon as MBEDTLS and FREERTOS are enabled in MiddleWares tree.&lt;br&gt;Consequently:&lt;font color=&quot;blue&quot;&gt;&lt;br&gt;- MX_LWIP_Init() function is generated within mbedtls_net_init() function in net_cockets.c file&lt;br&gt;- Up to user to call mbedtls_net_init() function in MBEDTLS initialization step&lt;br&gt;- LWIP_DNS value is forced to Enabled&lt;br&gt;- LWIP_UDP value is forced to Enabled&lt;br&gt;- LWIP_USE_EXTERNAL_MBEDTLS value is forced to Enabled&lt;br&gt;- LWIP_INCLUDED_POLARSSL_ARC4 value is forced to Disabled (excluding arc4.c/arc4.h files from lwip stack)&lt;br&gt;- LWIP_INCLUDED_POLARSSL_DES value is forced to Disabled (excluding des.c/des.h files from lwip stack)&lt;br&gt;- LWIP_INCLUDED_POLARSSL_MD4 is forced to Disabled (excluding md4.c/md4.h files from lwip stack)&lt;br&gt;- LWIP_INCLUDED_POLARSSL_MD5 is forced to Disabled (excluding md5.c/md5.h files from lwip stack)&lt;br&gt;- LWIP_INCLUDED_POLARSSL_SHA1 is forced to Disabled (excluding sha1.c/sha1.h files from lwip stack)&lt;br&gt;- ecp.c/ecp.h ppp files are excluded from lwip stack also.&lt;/font&gt;</Description>
    </RefParameter>
    <RefParameter Name="WITH_MBEDTLS" Comment="WITH_MBEDTLS (Use FREERTOS ** CubeMX specific **)" Type="uniqueElementList" Group="MBEDTLS Dependency" DefaultValue="0" TabName="General Settings" Mode="Basic" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter is enabled as soon as MBEDTLS is enabled in MiddleWares tree.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: This parameter has been introduced by CubeMX.</Description>
    </RefParameter>
    <RefParameter Name="CMSIS_VERSION" Comment="CMSIS_VERSION (CMSIS API Version used)" Type="uniqueElementList" Group="RTOS Dependency" DefaultValue="1" TabName="General Settings" Mode="Basic" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: This parameter is linked to FREERTOS API CMSIS version parameter." Expression="!NO_SYS &amp; (FREERTOS$context:FreeRTOS_API = 1)"/>
        <PossibleValue Comment="CMSIS v2" Value="1"/>
        <Description>This parameter has been introduced by CubeMX and gives CMSIS version used.</Description>
    </RefParameter>
    <RefParameter Name="CMSIS_VERSION" Comment="CMSIS_VERSION (CMSIS API Version used)" Type="uniqueElementList" Group="RTOS Dependency" DefaultValue="0" TabName="General Settings" Mode="Basic" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: This parameter is linked to FREERTOS API CMSIS version parameter." Expression="!NO_SYS &amp; (FREERTOS$context:FreeRTOS_API = 0)"/>
        <PossibleValue Comment="CMSIS v1" Value="0"/>
        <Description>This parameter has been introduced by CubeMX and gives CMSIS version used.</Description>
    </RefParameter>
    <RefParameter Name="PHY Driver" Comment="PHY Driver" Type="string" Group="Platform Settings" DefaultValue="Choose/LAN8742" TabName="General Settings" Mode="Basic" Visible="true">
        <Condition Diagnostic="" Expression="STM32H7"/>
        <PossibleValue Comment="Choose/LAN8742" Value="Choose/LAN8742"/>
        <Description>&lt;font color=&quot;red&quot;&gt;Platform Settings &lt;b&gt;PHY Driver&lt;/b&gt; must be configured from the LwIP '&lt;b&gt;Platform Settings&lt;/b&gt;' top right tab.&lt;/font&gt;&lt;br&gt;PHY Driver can be set either to Choose or to LAN8742:&lt;br&gt;- &lt;b&gt;Choose&lt;/b&gt;: BSP PHY Driver components provided by ST are not used and up to user to implement his own driver with same architecture and constraints than LAN8742 ; ST specification will be published soon to explain how user can develop his own BSP driver component.&lt;br&gt;- &lt;b&gt;LAN8742&lt;/b&gt;: LAN8742 BSP PHY Driver component is used and STM32CubeMX copies lan8742.c/.h files from ST Firmware Package to the user's project Drivers/BSP/Components directory.&lt;/ul&gt;&lt;br&gt;&lt;i&gt;Note&lt;/i&gt;: BSP components files cannot be updated or they will be overwritten at each project generation.</Description>
    </RefParameter>
    <RefParameter Name="PHY Driver" Comment="PHY Driver" Type="string" Group="Platform Settings" DefaultValue="Choose/LAN8742" TabName="General Settings" Mode="Basic" Visible="false">
        <Description>&lt;font color=&quot;red&quot;&gt;Platform Settings must be configured from 'Platform Settings' LwIP top right tab.&lt;/font&gt;&lt;br&gt;Choose: BSP PHY Driver components provided by ST are not used.&lt;br&gt;LAN8742: LAN8742 BSP PHY Driver component from ST Firmware Package is used.&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: LAN8742 files are located in project location within Drivers\BSP\Components folder. These BSP components files cannot be updated or they will be overwritten at each project generation.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ICMP" Comment="LWIP_ICMP (ICMP Module Activation)" Type="list" Group="Protocols Options" DefaultValue="1" TabName="General Settings" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This option enables ICMP (Internet Control Message Protocol) module inside the IP stack.Be careful, disable that make your product non-compliant to RFC1122.&lt;br&gt;- "Debug" tab.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more options on ICMP, please check in:&lt;br&gt;- "Key Options" tab within "ICMP/IGMP Options"&lt;br&gt;- "Statistics" tab&lt;br&gt;- "Checksum" tab</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IGMP" Comment="LWIP_IGMP (IGMP Module)" Type="list" Group="Protocols Options" DefaultValue="0" TabName="General Settings" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: When MEMP_MEM_MALLOC is disabled, use LWIP_IGMP requires LWIP_MULTICAST_TX_OPTIONS enabled and also MEMP_NUM_IGMP_GROUP&gt;1." Expression="IF(!MEMP_MEM_MALLOC,LWIP_MULTICAST_TX_OPTIONS &amp; (MEMP_NUM_IGMP_GROUP&gt;1),1)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, it turns on IGMP (Internet Group Management Protocol) module.&lt;br&gt;LWIP_RAND() is in cc.h (in \system\arch).&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more options on IGMP, please check in:&lt;br&gt;- "Key Options" tab within "ICMP/IGMP", "Internal Memory Pool Sizes" and "LOOPIF" Options&lt;br&gt;- "Statistics" tab&lt;br&gt;- "Debug" tab.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IGMP" Comment="LWIP_IGMP (IGMP Module)" Type="list" Group="Protocols Options" DefaultValue="0" TabName="General Settings" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, it turns on IGMP (Internet Group Management Protocol) module.&lt;br&gt;LWIP_RAND() is in cc.h (in \system\arch).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: When MEMP_MEM_MALLOC is disabled, use LWIP_IGMP requires LWIP_MULTICAST_TX_OPTIONS enabled and also MEMP_NUM_IGMP_GROUP&gt;1.&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more options on IGMP, please check in:&lt;br&gt;- "Key Options" tab within "ICMP/IGMP", "Internal Memory Pool Sizes" and "LOOPIF" Options&lt;br&gt;- "Statistics" tab&lt;br&gt;- "Debug" tab.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DNS" Comment="LWIP_DNS (DNS Module)" Type="list" Group="Protocols Options" DefaultValue="0" TabName="General Settings" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_DNS requires LWIP_UDP enabled." Expression="LWIP_UDP &amp; !S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, it turns on DNS (Domain Name Server) module. UDP must be available for DNS transport.&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more options on DNS, please check in:&lt;br&gt;- "Key Options" tab within "DNS" and "Internal Memory Pool Sizes" Options&lt;br&gt;- "Debug" tab.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DNS" Comment="LWIP_DNS (DNS Module)" Type="list" Group="Protocols Options" DefaultValue="0" TabName="General Settings" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_DNS is enabled when MBEDTLS is enabled. Use LWIP_DNS requires LWIP_UDP enabled." Expression="!S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, it turns on DNS (Domain Name Server) module. UDP must be available for DNS transport.&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more options on DNS, please check in:&lt;br&gt;- "Key Options" tab within "DNS" and "Internal Memory Pool Sizes" Options&lt;br&gt;- "Debug" tab.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DNS" Comment="LWIP_DNS (DNS Module)" Type="list" Group="Protocols Options" DefaultValue="1" TabName="General Settings" Mode="Basic" >
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, it turns on DNS (Domain Name Server) module. UDP must be available for DNS transport.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_DNS is enabled when MBEDTLS is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_UDP" Comment="LWIP_UDP (UDP Module)" Type="list" Group="Protocols Options" DefaultValue="1" TabName="General Settings" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_UDP requires MEMP_NUM_UDP_PCB&gt;0 when MEMP_MEM_MALLOC is disabled." Expression="IF(!MEMP_MEM_MALLOC, MEMP_NUM_UDP_PCB &gt; 0, 1) &amp; !S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, it turns on UDP (User Datagram Protocol).&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more options on UDP, please check in:&lt;br&gt;- "Key Options" tab within "UDP", "IP" and "Thread" Options&lt;br&gt;- "Statistics" tab&lt;br&gt;- "Checksum" tab&lt;br&gt;- "Debug" tab.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_UDP" Comment="LWIP_UDP (UDP Module)" Type="list" Group="Protocols Options" DefaultValue="0" TabName="General Settings" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_UDP is enabled when MBEDTLS is enabled. Use LWIP_UDP requires MEMP_NUM_UDP_PCB&gt;0 when MEMP_MEM_MALLOC is disabled." Expression="!S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is disabled, it turns off UDP (User Datagram Protocol).&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more options on UDP, please check in:&lt;br&gt;- "Key Options" tab within "UDP", "IP" and "Thread" Options&lt;br&gt;- "Statistics" tab&lt;br&gt;- "Checksum" tab&lt;br&gt;- "Debug" tab.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_UDP" Comment="LWIP_UDP (UDP Module)" Type="list" Group="Protocols Options" DefaultValue="1" TabName="General Settings" Mode="Basic" >
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter turns on UDP (User Datagram Protocol).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_UDP is enabled when MBEDTLS is enabled.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_UDP_PCB" Comment="MEMP_NUM_UDP_PCB (Number of UDP Connections)" Type="integer" Group="Protocols Options" DefaultValue="4" TabName="General Settings" Mode="Basic" Min="=IF(!MEMP_MEM_MALLOC &amp; LWIP_UDP, 1, 0)" Max="2147483647" >
        <Description>Number of UDP protocol control blocks. One per active UDP connection (requires the LWIP_UDP option enabled).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use MEMP_NUM_UDP_PCB requires MEMP_MEM_MALLOC disabled and LWIP_UDP enabled, it is mandatory to have MEMP_NUM_UDP_PCB&gt;0.&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more memory options, see in "Key Options" tab within "Internal Memory Pool Sizes" Options.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP" Comment="LWIP_TCP (TCP Module)" Type="list" Group="Protocols Options" DefaultValue="1" TabName="General Settings" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: If you want to use TCP:&lt;br&gt;- you have to define MEMP_NUM_TCP_PCB&gt;=1 when MEMP_MEM_MALLOC is disabled&lt;br&gt;- TCP_SND_QUEUELEN must fit in an u16_t and must be greater than 1&lt;br&gt;- If LWIP_WND_SCALE is enabled, TCP_WND and must fit in an u32_t and must be greater than 1&lt;br&gt;- If LWIP_WND_SCALE is disabled, TCP_WND and must fit in an u16_t and must be greater than 1&lt;br&gt;- TCP_MAXRTX and TCP_SYNMAXRTX must be less or equal to 12." Expression="IF(!MEMP_MEM_MALLOC, MEMP_NUM_TCP_PCB &gt; 0, 1) &amp; IF(LWIP_WND_SCALE,TCP_WND &lt;= 4294967295,TCP_WND &lt;= 65535) &amp; (TCP_SND_QUEUELEN &lt;= 65535) &amp; (TCP_SND_QUEUELEN &gt; 1) &amp; (TCP_MAXRTX &lt; 13) &amp; (TCP_SYNMAXRTX &lt; 13)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, it turns on TCP.&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more TCP options, see in:&lt;br&gt;- "Key Options" tab within "TCP", "IP", "Internal Memory Pool Sizes", "Thread" and "Sequential Layer" Options&lt;br&gt;- "Perf/Checks" tab&lt;br&gt;- "Statistics" tab&lt;br&gt;- "Checksum" tab&lt;br&gt;- "Debug" tab.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP" Comment="LWIP_TCP (TCP Module)" Type="list" Group="Protocols Options" DefaultValue="0" TabName="General Settings" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, it turns on TCP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: If you want to use TCP:&lt;br&gt;- you have to define MEMP_NUM_TCP_PCB&gt;=1 when MEMP_MEM_MALLOC is disabled&lt;br&gt;- TCP_SND_QUEUELEN must fit in an u16_t and must be greater than 1&lt;br&gt;- If LWIP_WND_SCALE is enabled, TCP_WND and must fit in an u32_t and must be greater than 1&lt;br&gt;- If LWIP_WND_SCALE is disabled, TCP_WND and must fit in an u16_t and must be greater than 1&lt;br&gt;- TCP_MAXRTX and TCP_SYNMAXRTX must be less or equal to 12.&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more TCP options, see in:&lt;br&gt;- "Key Options" tab within "TCP", "IP", "Internal Memory Pool Sizes", "Thread" and "Sequential Layer" Options&lt;br&gt;- "Perf/Checks" tab&lt;br&gt;- "Statistics" tab&lt;br&gt;- "Checksum" tab&lt;br&gt;- "Debug" tab.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_TCP_PCB" Comment="MEMP_NUM_TCP_PCB (Number of TCP Connections)" Type="integer" Group="Protocols Options" DefaultValue="5" TabName="General Settings" Mode="Basic" Min="=IF(!MEMP_MEM_MALLOC &amp; LWIP_TCP, 1, 0)" Max="2147483647" >
        <Description>Number of simultatenously active TCP connections (requires the LWIP_TCP option enabled).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use MEMP_NUM_TCP_PCB requires MEMP_MEM_MALLOC disabled and LWIP_TCP enabled, it is mandatory to have MEMP_NUM_TCP_PCB&gt;0.&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: For more memory options, see in "Key Options" tab within "Internal Memory Pool Sizes" Options.</Description>
    </RefParameter>
    <RefParameter Name="heth" Comment="heth (Ethernet Handle)" Type="integer" Group="Global" DefaultValue="0" Min="0" Max="1" Visible="false"/>
    <RefParameter Name="gnetif" Comment="gnetif (Network Interface)" Type="integer" Group="Global" DefaultValue="0" Min="0" Max="1" Visible="false"/>
    <RefParameter Name="ipaddr" Comment="ipaddr (IP Address)" Type="integer" Group="Global" DefaultValue="0" Min="0" Max="1" Visible="false"/>
    <RefParameter Name="netmask" Comment="netmask (Netmask IP Address)" Type="integer" Group="Global" DefaultValue="0" Min="0" Max="1" Visible="false"/>
    <RefParameter Name="gw" Comment="gw (Gateway Address)" Type="integer" Group="Global" DefaultValue="0" Min="0" Max="1" Visible="false"/>
    <RefParameter Name="PHY" Comment="PHY (Phy MII)" Type="string" Group="RTOS Settings" DefaultValue="+ETH:PHY_Name_MII" TabName="General Settings" Mode="Basic" Visible="false">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MII." Expression="MII"/>
        <Description>PHY MII parameter.</Description>
    </RefParameter>
    <RefParameter Name="PHY" Comment="PHY (Phy RMII)" Type="string" Group="RTOS Settings" DefaultValue="+ETH:PHY_Name_RMII" TabName="General Settings" Mode="Basic" Visible="false">
        <Description>PHY RMII parameter.</Description>
    </RefParameter>
    <RefParameter Name="TX_DESCRIPTOR_ADDRESS" Comment="TX_DESCRIPTOR_ADDRESS (First Tx Descriptor Address)" Type="string" Group="RTOS Settings" DefaultValue="+ETH:TxDescAddress" TabName="General Settings" Mode="Basic" Visible="false">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: STM32H7." Expression="STM32H7"/>
        <Description>First Tx Descriptor Address.</Description>
    </RefParameter>
    <RefParameter Name="TX_DESCRIPTOR_ADDRESS" Comment="TX_DESCRIPTOR_ADDRESS (First Tx Descriptor Address)" Type="string" Group="RTOS Settings" DefaultValue="null" TabName="General Settings" Mode="Basic" Visible="false">
        <Description>First Tx Descriptor Address.</Description>
    </RefParameter>
    <RefParameter Name="RX_DESCRIPTOR_ADDRESS" Comment="RX_DESCRIPTOR_ADDRESS (First Rx Descriptor Address)" Type="string" Group="RTOS Settings" DefaultValue="+ETH:RxDescAddress" TabName="General Settings" Mode="Basic" Visible="false">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: STM32H7." Expression="STM32H7"/>
        <Description>First Rx Descriptor Address.</Description>
    </RefParameter>
    <RefParameter Name="RX_DESCRIPTOR_ADDRESS" Comment="RX_DESCRIPTOR_ADDRESS (First Rx Descriptor Address)" Type="string" Group="RTOS Settings" DefaultValue="null" TabName="General Settings" Mode="Basic" Visible="false">
        <Description>First Rx Descriptor Address.</Description>
    </RefParameter>
    <RefParameter Name="RX_BUFFER_ADDRESS" Comment="RX_BUFFER_ADDRESS (Rx Buffer Address)" Type="string" Group="RTOS Settings" DefaultValue="+ETH:RxBuffAddress" TabName="General Settings" Mode="Basic" Visible="false">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: STM32H7." Expression="STM32H7"/>
        <Description>Rx Buffer Address.</Description>
    </RefParameter>
    <RefParameter Name="RX_BUFFER_ADDRESS" Comment="RX_BUFFER_ADDRESS (Rx Buffer Address)" Type="string" Group="RTOS Settings" DefaultValue="null" TabName="General Settings" Mode="Basic" Visible="false">
        <Description>Rx Buffer Address.</Description>
    </RefParameter>
    <RefParameter Name="NO_SYS" Comment="NO_SYS (OS Awarness)" Type="list" Group="Infrastructure - OS Awarness Option" DefaultValue="0" TabName="Key Options" Mode="Basic" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Forced to Enabled (set to 0) by activating FREERTOS middleware. To set NO_SYS to 1 (Disabled), unset FREERTOS middleware." Expression="S_NO_SYS &amp; S_FREERTOS$context"/>
        <PossibleValue Comment="OS Used" Value="0"/>
        <Description>When NO_SYS=0, lwIP is used with selected Operating System (FreeRTOS) and its related thread, semaphores, mutexes or mboxes. This means threaded APIs are used (socket, netconn, i.e. everything in the 'api' folder).&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Take care about NO_SYS value: NO_SYS(OS Used)=0.</Description>
    </RefParameter>
    <RefParameter Name="NO_SYS" Comment="NO_SYS (OS Awarness)" Type="list" Group="Infrastructure - OS Awarness Option" DefaultValue="1" TabName="Key Options" Mode="Basic" Visible="true">
        <PossibleValue Comment="OS Not Used" Value="1"/>
        <Description>When NO_SYS=1, lwIP is used without Operating System (no thread, semaphores, mutexes or mboxes). This means threaded APIs cannot be used (socket, netconn, i.e. everything in the 'api' folder), only the callback-style raw API is available (and you have to watch out for yourself that you don't access lwIP functions/structures from more than one context at a time!).&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Take care about NO_SYS value: NO_SYS(OS Not Used)=1.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TIMERS" Comment="LWIP_TIMERS (Use Support For sys_timeout)" Type="list" Group="Infrastructure - Timers Options" DefaultValue="1" TabName="Key Options" Mode="Basic" Visible="true">
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this parameter to use support for sys_timeout and lwip-internal cyclic timers (the array of lwip-internal cyclic timers is still provided, check NO_SYS_NO_TIMERS for compatibility to old versions).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TIMERS_CUSTOM" Comment="LWIP_TIMERS_CUSTOM (Own Timer Implementation)" Type="list" Group="Infrastructure - Timers Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="true">
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this parameter to provide your own timer implementation.&lt;br&gt;Function prototypes in timeouts.h and the array of lwip-internal cyclic timers are still included, but the implementation is not. The following functions will be required: sys_timeouts_init(), sys_timeout(), sys_untimeout(), sys_timeouts_mbox_fetch().</Description>
    </RefParameter>
    <RefParameter Name="MEMCPY(dst,src,len)" Comment="MEMCPY(dst,src,len) (Normal Memory Copy)" Type="StringRW" Group="Infrastructure - Memory Copy Options" DefaultValue="memcpy(dst,src,len)" TabName="Key Options" Mode="Advanced" Visible="true">
        <Description>This parameter allows to replace the default implementation included in C library by a faster user function.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="SMEMCPY(dst,src,len)" Comment="SMEMCPY(dst,src,len) (Small Memory Copy)" Type="StringRW" Group="Infrastructure - Memory Copy Options" DefaultValue="memcpy(dst,src,len)" TabName="Key Options" Mode="Advanced" Visible="true">
        <Description>This parameter allows to replace the default implementation by a user hand made. Some compilers (e.g. gcc) can inline a call to memcpy() if the length is known at compile time and is small.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMMOVE(dst,src,len)" Comment="MEMMOVE(dst,src,len) (Small Memory Move)" Type="StringRW" Group="Infrastructure - Memory Copy Options" DefaultValue="memmove(dst,src,len)" TabName="Key Options" Mode="Advanced" >
        <Description>This parameter allows to replace the default implementation by a user hand made. Override this if you have a faster implementation at hand than the one included in your C library. lwIP currently uses MEMMOVE only when IPv6 fragmentation support is enabled.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_MPU_COMPATIBLE" Comment="LWIP_MPU_COMPATIBLE (Special Memory Management)" Type="list" Group="Infrastructure - Core Locking and MPU Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="true">
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter allows to enable special memory management mechanism which makes lwip able to work on MPU (Memory Protection Unit) system by not passing stack-pointers to other threads&lt;br&gt;(this decreases performance as memory is allocated from pools instead of keeping it on the stack).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCPIP_CORE_LOCKING" Comment="LWIP_TCPIP_CORE_LOCKING (TCPIP Core Locking)" Type="list" Group="Infrastructure - Core Locking and MPU Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this option to create a global mutex that is held during TCPIP thread operations.&lt;br&gt;It can be locked by client code to perform lwIP operations without changing into TCPIP thread using callbacks. See LOCK_TCPIP_CORE() and UNLOCK_TCPIP_CORE().&lt;br&gt;Your system should provide mutexes supporting priority inversion to use this.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: When using LWIP_TCPIP_CORE_LOCKING_INPUT, LWIP_TCPIP_CORE_LOCKING must be enabled, too.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCPIP_CORE_LOCKING_INPUT" Comment="LWIP_TCPIP_CORE_LOCKING_INPUT (TCPIP Core Locking Input)" Type="list" Group="Infrastructure - Core Locking and MPU Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_TCPIP_CORE_LOCKING_INPUT requires LWIP_TCPIP_CORE_LOCKING." Expression="LWIP_TCPIP_CORE_LOCKING"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When LWIP_TCPIP_CORE_LOCKING is enabled, this lets tcpip_input() grab the mutex for input packets as well, instead of allocating a message and passing it to tcpip_thread.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: this does not work when tcpip_input() is called from interrupt context!</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCPIP_CORE_LOCKING_INPUT" Comment="LWIP_TCPIP_CORE_LOCKING_INPUT (TCPIP Core Locking Input)" Type="list" Group="Infrastructure - Core Locking and MPU Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When LWIP_TCPIP_CORE_LOCKING is enabled, this lets tcpip_input() grab the mutex for input packets as well, instead of allocating a message and passing it to tcpip_thread.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: this does not work when tcpip_input() is called from interrupt context!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_TCPIP_CORE_LOCKING_INPUT requires LWIP_TCPIP_CORE_LOCKING.</Description>
    </RefParameter>
    <RefParameter Name="SYS_LIGHTWEIGHT_PROT" Comment="SYS_LIGHTWEIGHT_PROT (Memory Functions Protection)" Type="list" Group="Infrastructure - Core Locking and MPU Options" DefaultValue="1" TabName="Key Options" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SYS_LIGHTWEIGHT_PROT is used for inter task protection which works with an RTOS only when NO_SYS=0." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this option if you want inter-task protection (and task-vs-interrupt protection) for certain critical regions during buffer allocation, deallocation and memory allocation and deallocation.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: This is required when using lwIP from more than one context! If you disable this, you must be sure what you are doing!</Description>
    </RefParameter>
    <RefParameter Name="SYS_LIGHTWEIGHT_PROT" Comment="SYS_LIGHTWEIGHT_PROT (Memory Functions Protection)" Type="list" Group="Infrastructure - Core Locking and MPU Options" DefaultValue="0" TabName="Key Options" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This option can be enabled only when NO_SYS=0, if you want inter-task protection (and task-vs-interrupt protection) for certain critical regions during buffer allocation, deallocation and memory allocation and deallocation.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: This is required when using lwIP from more than one context! If you disable this, you must be sure what you are doing!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This parameter is disable without RTOS (when NO_SYS=1)</Description>
    </RefParameter>
    <RefParameter Name="MEM_LIBC_MALLOC" Comment="MEM_LIBC_MALLOC (User Memory Library)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1" Semaphore="S_MEM_USE_POOLS"/>
        <Description>This option can be set with:&lt;br&gt;- Enable: use malloc/free/realloc provided by your C-library instead of the lwip internal allocator. Can save code size if you already use it.&lt;br&gt;- Disable: use LwIP internal allocator library&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: If MEM_LIBC_MALLOC=1, MEMP_USE_POOLS cannot be enabled. MEM_STATS value setting depends on MEM_LIBC_MALLOC value.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_MEM_MALLOC" Comment="MEMP_MEM_MALLOC (User Memory Pool Functions)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1" Semaphore="S_MEM_USE_POOLS"/>
        <Description>This option is set as followed:&lt;br&gt;- Enabled: Use User C Pool Alloctor Functions i.e mem_malloc/mem_free instead of the lwip pool allocator, especially useful with MEM_LIBC_MALLOC but handle with care regarding execution speed (heap alloc can be much slower than pool alloc) and usage from interrupts (especially if your netif driver allocates PBUF_POOL pbufs for received frames from interrupt!)&lt;br&gt;- Disabled: Use LwIP Internal Pool Allocator Memory Functions.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Currently, this uses the heap for ALL pools (also for private pools, not only for internal pools defined in memp_std.h)!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: There are several other parameters linked to this one:&lt;br&gt;MEMP_NUM_RAW_PCB, MEMP_NUM_UDP_PCB, MEMP_NUM_TCP_PCB, MEMP_NUM_TCP_SEG, MEMP_NUM_REASSDATA, MEMP_NUM_IGMP_GROUP, MEMP_NUM_SYS_TIMEOUT, MEMP_NUM_NETCONN, MEMP_NUM_TCPIP_MSG_API, ARP_QUEUEING, IP_REASS_MAX_PBUFS, LWIP_RAW, LWIP_IGMP, LWIP_UDP, LWIP_TCP, TCP_WND, TCP_SND_QUEUELEN, LWIP_NETCONN, LWIP_SOCKET.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;:MEMP_MEM_MALLOC and MEM_USE_POOLS may not both be simultaneously enabled</Description>
    </RefParameter>
    <RefParameter Name="MEMP_MEM_INIT" Comment="MEMP_MEM_INIT (Memory Pool Memset Initialization)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter should be set to force use of memset to initialize pool memory.&lt;br&gt;Useful if pool are moved in uninitialized section of memory.&lt;br&gt;This will ensure default values in pcbs struct are well initialized in all conditions.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEM_ALIGNMENT" Comment="MEM_ALIGNMENT (Memory Byte Alignment of CPU)" Type="list" Unit="Byte(s)" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="4" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="4" Value="4"/>
        <PossibleValue Comment="2" Value="2"/>
        <Description>This parameter should be set to the alignment of the CPU: 4 byte alignment or 2 byte alignment.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: PBUF_POOL_BUFSIZE must be greater than MEM_ALIGNMENT.</Description>
    </RefParameter>
    <RefParameter Name="MEM_SIZE" Comment="MEM_SIZE (Heap Memory Size)" Type="integer" Unit="Byte(s)" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="1600" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" >
        <Description>Size of the heap memory. If the application will send a lot of data that needs to be copied, this should be set high.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_OVERFLOW_CHECK" Comment="MEMP_OVERFLOW_CHECK (Memory Pool Overflow Protection)" Type="Integer" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>The memp overflow protection parameter reserves a configurable amount of bytes before and after each memp element in every pool and fills it with a prominent default value:&lt;br&gt;- MEMP_OVERFLOW_CHECK=0: no checking&lt;br&gt;- MEMP_OVERFLOW_CHECK=1: checks each element when it is freed&lt;br&gt;- MEMP_OVERFLOW_CHECK&gt;1: checks each element in every pool every time memp_malloc() or memp_free() is called (useful but slow!).</Description>
    </RefParameter>
    <RefParameter Name="MEMP_SANITY_CHECK" Comment="MEMP_SANITY_CHECK (Memory Pool Sanity Check)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>If this option is enabled, sanity check is run after each memp_free() to make sure that there are no cycles in the linked lists.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEM_OVERFLOW_CHECK" Comment="MEM_OVERFLOW_CHECK (Memory Overflow Check)" Type="Integer" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>The mem overflow protection parameter reserves a configurable amount of bytes before and after each heap allocation chunk and fills it with a prominent default value.&lt;br&gt;- MEMP_OVERFLOW_CHECK=0: no checking&lt;br&gt;- MEMP_OVERFLOW_CHECK=1: checks each element when it is freed&lt;br&gt;- MEMP_OVERFLOW_CHECK&gt;1: checks each element in every pool every time.&lt;br&gt;The function mem_malloc() or mem_free() is called (useful but slow!).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEM_SANITY_CHECK" Comment="MEM_SANITY_CHECK (Memory Sanity Check)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>If this option is enabled, sanity check is run after each mem_free() to make sure that the linked list of heap elements is not corrupted.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEM_USE_POOLS" Comment="MEM_USE_POOLS (Use an Alternative to malloc Function)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Warning&lt;/b&gt;: If you enable both MEMP_USE_CUSTOM_POOLS and MEM_USE_POOLS, you must have lwippools.h in your include path somewhere and you must define your pools within lwippools.h.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use MEM_USE_POOLS requires MEM_LIBC_MALLOC and MEMP_MEM_MALLOC disabled and MEMP_USE_CUSTOM_POOLS=1" Expression="!S_MEM_USE_POOLS &amp; MEMP_USE_CUSTOM_POOLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>If this option is enabled, an alternative to malloc() is used by allocating from a set of memory pools of various sizes. When mem_malloc is called, an element of the smallest pool that can provide the length needed is returned. To use this, MEMP_USE_CUSTOM_POOLS also has to be enabled.</Description>
    </RefParameter>
    <RefParameter Name="MEM_USE_POOLS" Comment="MEM_USE_POOLS (Use an Alternative to malloc Function)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This option is disabled when MEMP_USE_CUSTOM_POOLS is disabled, to enable it enable MEMP_USE_CUSTOM_POOLS first.&lt;br&gt;When MEM_USE_POOLS is enabled, an alternative to malloc() is used by allocating from a set of memory pools of various sizes. When mem_malloc is called, an element of the smallest pool that can provide the length needed is returned. To use this, MEMP_USE_CUSTOM_POOLS also has to be enabled.&lt;br&gt;&lt;b&gt;Warning: up to user to take care!&lt;/b&gt;: If you enable both MEMP_USE_CUSTOM_POOLS and MEM_USE_POOLS, you must have lwippools.h in your include path somewhere and you must define your pools within lwippools.h.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use MEM_USE_POOLS requires MEM_LIBC_MALLOC and MEMP_MEM_MALLOC disabled and MEMP_USE_CUSTOM_POOLS=1</Description>
    </RefParameter>
    <RefParameter Name="MEM_USE_POOLS_TRY_BIGGER_POOL" Comment="MEM_USE_POOLS_TRY_BIGGER_POOL (Try Next Bigger Pool if Empty Malloc Pool)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this option is enabled, if one malloc-pool is empty, the next bigger pool is tried.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Enabling this parameter might waste memory but it can make a system more reliable.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_USE_CUSTOM_POOLS" Comment="MEMP_USE_CUSTOM_POOLS (Define Additional Pools)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1" Semaphore="S_MEMP_USE_CUSTOM_POOLS"/>
        <Description>Enable this options to include a user file lwippools.h that defines additional pools beyond the standard ones required by lwIP.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: If you set this to 1, you must have lwippools.h in your include path somewhere and you must define your pools within lwippools.h.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: If MEMP_USE_CUSTOM_POOLS=0, MEM_USE_POOLS will be disabled and if MEMP_USE_CUSTOM_POOLS=1, MEM_USE_POOLS can be enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT" Comment="LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT (Allow Memory Free From Other Context)" Type="list" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this option if you want to free PBUF_RAM pbufs (or call mem_free()) from interrupt context (or another context that doesn't allow waiting for a semaphore).&lt;br&gt;If set to 1, mem_malloc will be protected by a semaphore and SYS_ARCH_PROTECT, while mem_free will only use SYS_ARCH_PROTECT. mem_malloc SYS_ARCH_UNPROTECTs with each loop so that mem_free can run.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: As you can see from the above description, this leads to dis-/ enabling interrupts often, which can be slow! Also, on low memory, mem_malloc can need longer.&lt;br&gt;If you don't want that, at least for NO_SYS=0, you can still use the following functions to enqueue a deallocation call which then runs in the tcpip_thread context:&lt;br&gt;- pbuf_free_callback(p)&lt;br&gt;- mem_free_callback(m);.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_RAM_HEAP_POINTER" Comment="LWIP_RAM_HEAP_POINTER (RAM Heap Pointer)" Type="hex" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0x30044000" TabName="Key Options" Mode="Basic" Min="0x00000000" Max="0xFFFFFFFF" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: STM32H7." Expression="STM32H7"/>
        <Description>If you want to relocate the heap to external memory, simply set a void-pointer to that location and make sure the memory at that location is big enough.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_RAM_HEAP_POINTER" Comment="LWIP_RAM_HEAP_POINTER (RAM Heap Pointer)" Type="hex" Group="Infrastructure - Heap and Memory Pools Options" DefaultValue="0x30044000" TabName="Key Options" Mode="Basic" Min="0x00000000" Max="0xFFFFFFFF" Visible="false">
        <Description>If you want to relocate the heap to external memory, simply set a void-pointer to that location and make sure the memory at that location is big enough.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_PBUF" Comment="MEMP_NUM_PBUF (Number of Memory Pool struct Pbufs)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="16" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" >
        <Description>Number of memp struct pbufs (used for PBUF_ROM and PBUF_REF). If the application sends a lot of data out of ROM (or other static memory), this should be set high.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_RAW_PCB" Comment="MEMP_NUM_RAW_PCB (Number of Raw Protocol Control Blocks)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="4" TabName="Key Options" Mode="Basic" Min="=IF(!MEMP_MEM_MALLOC &amp; LWIP_RAW, 1, 0)" Max="2147483647" >
        <Description>Number of Raw connection PCBs (requires the LWIP_RAW option).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use MEMP_NUM_RAW_PCB requires MEMP_MEM_MALLOC=0 and if LWIP_RAW=1, it is mandatory to have MEMP_NUM_RAW_PCB&gt;0.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_TCP_PCB_LISTEN" Comment="MEMP_NUM_TCP_PCB_LISTEN (Number of Listening TCP Connections)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="8" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" >
        <Description>Number of listening TCP connections (requires the LWIP_TCP option).&lt;br&gt;This corresponds to the maximum number of TCP ports which may be simultaneously listened on.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MEMP_NUM_NETCONN is link to MEMP_NUM_TCP_PCB_LISTEN value.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_TCP_SEG" Comment="MEMP_NUM_TCP_SEG (Number of TCP Segments simultaneously queued)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="16" TabName="Key Options" Mode="Basic" Min="=IF(!LWIP_DISABLE_TCP_SANITY_CHECKS &amp; LWIP_TCP &amp; !MEMP_MEM_MALLOC, TCP_SND_QUEUELEN, 0)" Max="2147483647" >
        <Description>Number of simultaneously queued TCP segments (requires the LWIP_TCP option).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MEMP_NUM_TCP_SEG shuold be at least as big as TCP_SND_QUEUELEN when LWIP_TCP and LWIP_DISABLE_TCP_SANITY_CHECKS are enabled and MEMP_MEM_MALLOC disabled.&lt;br&gt;If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to avoid Min value limitation.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_ALTCP_PCB" Comment="MEMP_NUM_ALTCP_PCB (Number of simultaneously active ALTCP PCBs)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="=MEMP_NUM_TCP_PCB" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MEMP_NUM_ALTCP_PCB requires LWIP_ALTCP." Expression="LWIP_ALTCP"/>
        <Description>Number of simultaneously active altcp layer pcbs (requires the LWIP_ALTCP option).&lt;br&gt;Connections with multiple layers require more than one altcp_pcb (e.g. TLS over TCP requires 2 altcp_pcbs, one for TLS and one for TCP).</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_ALTCP_PCB" Comment="MEMP_NUM_ALTCP_PCB (Number of simultaneously active ALTCP PCBs)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="=MEMP_NUM_TCP_PCB" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>Number of simultaneously active altcp layer pcbs (requires the LWIP_ALTCP option).&lt;br&gt;Connections with multiple layers require more than one altcp_pcb (e.g. TLS over TCP requires 2 altcp_pcbs, one for TLS and one for TCP).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MEMP_NUM_ALTCP_PCB requires LWIP_ALTCP.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_REASSDATA" Comment="MEMP_NUM_REASSDATA (Number of IP packets simultaneously queued for reassembly)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="5" TabName="Key Options" Mode="Advanced" Min="0" Max="=IF(!MEMP_MEM_MALLOC &amp; IP_REASSEMBLY, IP_REASS_MAX_PBUFS, 1000000)" >
        <Description>Number of IP packets simultaneously queued for reassembly (whole packets, not fragments!).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MEMP_NUM_REASSDATA must be less than IP_REASS_MAX_PBUFS when IP_REASSEMBLY is enabled and MEMP_MEM_MALLOC disabled.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_FRAG_PBUF" Comment="MEMP_NUM_FRAG_PBUF (Number of IP Fragments simultaneously sent)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="15" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of IP fragments simultaneously sent (fragments, not whole packets!).&lt;br&gt;This is only used with LWIP_NETIF_TX_SINGLE_PBUF==0 and only has to be &gt; 1 with DMA-enabled MACs where the packet is not yet sent when netif-&gt;output returns.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_ARP_QUEUE" Comment="MEMP_NUM_ARP_QUEUE (Number of simulateously queued Pbufs waiting for an ARP Request)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="30" TabName="Key Options" Mode="Advanced" Min="=IF(!MEMP_MEM_MALLOC &amp; LWIP_ARP &amp; ARP_QUEUEING, 1, 0)" Max="2147483647" >
        <Description>Number of simulateously queued outgoing packets (pbufs) that are waiting for an ARP request (to resolve their destination address) to finish (requires the ARP_QUEUEING option).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MEMP_NUM_ARP_QUEUE must be &gt; 1 to use ARP_QUEUEING when LWIP_ARP is enabled and MEMP_MEM_MALLOC disabled.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_IGMP_GROUP" Comment="MEMP_NUM_IGMP_GROUP (Number of Multicast Groups)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="8" TabName="Key Options" Mode="Advanced" Min="=IF(!MEMP_MEM_MALLOC &amp; LWIP_IGMP,2,0)" Max="2147483647" >
        <Description>Number of multicast groups whose network interfaces can be members at the same time: one per netif (allsystems group) plus one per netif membership. It requires the LWIP_IGMP option enabled.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MEMP_NUM_IGMP_GROUP must be greater than 1 if LWIP_IGMP option is enabled when MEMP_MEM_MALLOC is disabled.&lt;br&gt;&lt;b&gt;Recommendation&lt;/b&gt;: This value must be at least twice the number of active network interfaces active in the configuration.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_SYS_TIMEOUT" Comment="MEMP_NUM_SYS_TIMEOUT (Number of Timeouts simultateously active)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="=LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_NUM_TIMEOUTS + (LWIP_IPV6 * (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD))" TabName="Key Options" Mode="Advanced" Min="=IF(!MEMP_MEM_MALLOC &amp; LWIP_TIMERS, LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_NUM_TIMEOUTS + (LWIP_IPV6 * (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD)), 0)" Max="2147483647" >
        <Description>The number of sys timeouts used by the core stack (not apps).&lt;br&gt;The default number of timeouts is calculated here for all enabled modules.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: If MEMP_MEM_MALLOC and LWIP_TIMERS are enabled, the MEMP_NUM_SYS_TIMEOUT must have as minimum value: LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_NUM_TIMEOUTS + (LWIP_IPV6 * (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD)) (value expected for each parameter is either '0' or '1').</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_NETBUF" Comment="MEMP_NUM_NETBUF (Number of Netbufs Structures)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="2" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of netbuf structures which may be in use simultaneously (only needed if you use the sequential API like LWIP_NETCONN or LWIP_SOCKET).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_NETCONN" Comment="MEMP_NUM_NETCONN (Number of Netconns Structures)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="4" TabName="Key Options" Mode="Advanced" Min="=IF(MEMP_MEM_MALLOC &amp; !LWIP_DISABLE_MEMP_SANITY_CHECKS &amp; LWIP_NETCONN &amp; LWIP_SOCKET, 1, 0)" Max="=IF(MEMP_MEM_MALLOC &amp; !LWIP_DISABLE_MEMP_SANITY_CHECKS &amp; !LWIP_NETCONN &amp; !LWIP_SOCKET, MEMP_NUM_TCP_PCB + MEMP_NUM_TCP_PCB_LISTEN + MEMP_NUM_UDP_PCB + MEMP_NUM_RAW_PCB, 2147483647)" >
        <Description>Number of struct netconns (only needed if you use the sequential API, like like LWIP_NETCONN or LWIP_SOCKET).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: There are 2 dependencies:&lt;br&gt;1) When LWIP_NETCONN is enabled, MEMP_MEM_MALLOC and LWIP_DISABLE_MEMP_SANITY_CHECKS are disabled, MEMP_NUM_NETCONN must not ecceed MEMP_NUM_TCP_PCB + MEMP_NUM_TCP_PCB_LISTEN + MEMP_NUM_UDP_PCB + MEMP_NUM_RAW_PCB&lt;br&gt;2) When LWIP_NETCONN, LWIP_SOCKET and MEMP_MEM_MALLOC are all enabled with LWIP_DISABLE_MEMP_SANITY_CHECKS disabled, MEMP_NUM_NETCONN cannot be 0.&lt;br&gt;If you know what you are doing, define LWIP_DISABLE_MEMP_SANITY_CHECKS to 1.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_TCPIP_MSG_API" Comment="MEMP_NUM_TCPIP_MSG_API (Number of TCPIP Message Structures Used for Callback)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="8" TabName="Key Options" Mode="Advanced" Min="=IF(!MEMP_MEM_MALLOC &amp; (LWIP_NETCONN | LWIP_SOCKET), 1, 0)" Max="2147483647" >
        <Description>Number of struct tcpip_msg, which are used for callback/timeout API communication (only needed if you use tcpip.c).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use MEMP_NUM_TCPIP_MSG_API requires MEMP_MEM_MALLOC disabled and LWIP_NETCONN or LWIP_SOCKET enabled.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_SELECT_CB" Comment="MEMP_NUM_SELECT_CB (Number of lwip_select_cb Structures)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="4" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of struct lwip_select_cb (Only needed if you have LWIP_MPU_COMPATIBLE=1 and use the socket API. In that case, you need one per thread calling lwip_select.).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_TCPIP_MSG_INPKT" Comment="MEMP_NUM_TCPIP_MSG_INPKT (Number of TCPIP Message Structures Used for Incoming Packets)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="8" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of struct tcpip_msg used for incoming packets (only needed if you use tcpip.c).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_NETDB" Comment="MEMP_NUM_NETDB (Number of Concurrent lwip_addrinfo() Calls)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="1" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of concurrently running lwip_addrinfo() calls (before freeing the corresponding memory using lwip_freeaddrinfo()).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Used if LWIP_DNS is enabled.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_LOCALHOSTLIST" Comment="MEMP_NUM_LOCALHOSTLIST (Number of Host Entries in the Local Host List)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="1" TabName="Key Options" Min="0" Max="2147483647" >
        <Description>Number of host entries in the local host list if DNS_LOCAL_HOSTLIST_IS_DYNAMIC=1.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Used if LWIP_DNS is enabled.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_API_MSG" Comment="MEMP_NUM_API_MSG (Number of Concurrent Active API Calls)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="=MEMP_NUM_TCPIP_MSG_API" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of concurrently active calls to various socket, netconn, and tcpip functions.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_DNS_API_MSG" Comment="MEMP_NUM_DNS_API_MSG (Number of Concurrent Active DNS Calls)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="=MEMP_NUM_TCPIP_MSG_API" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of concurrently active calls to netconn_gethostbyname.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA" Comment="MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA (Number of Concurrent Active Socket Calls)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="=MEMP_NUM_TCPIP_MSG_API" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of concurrently active calls to getsockopt/setsockopt.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_NETIFAPI_MSG" Comment="MEMP_NUM_NETIFAPI_MSG (Number of Concurrent Active Netif Calls)" Type="integer" Group="Infrastructure - Internal Memory Pool Sizes" DefaultValue="=MEMP_NUM_TCPIP_MSG_API" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of concurrently active calls to netifapi functions.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SUPPORT_CUSTOM_PBUF" Comment="LWIP_SUPPORT_CUSTOM_PBUF (Custom Pbuf)" Type="list" Group="Pbuf Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: STM32H7." Expression="STM32H7"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Custom Pbuf parameter.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SUPPORT_CUSTOM_PBUF" Comment="LWIP_SUPPORT_CUSTOM_PBUF (Custom Pbuf)" Type="list" Group="Pbuf Options" DefaultValue="null" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Custom Pbuf parameter.</Description>
    </RefParameter>
    <RefParameter Name="PBUF_POOL_SIZE" Comment="PBUF_POOL_SIZE (Number of Buffers in the Pbuf Pool)" Type="integer" Group="Pbuf Options" DefaultValue="16" TabName="Key Options" Mode="Basic" Min="=IP_REASS_MAX_PBUFS+1" Max="2147483647" >
        <Description>Number of buffers in the pbuf pool.</Description>
    </RefParameter>
    <RefParameter Name="PBUF_LINK_HLEN" Comment="PBUF_LINK_HLEN (Number of Bytes for Link Level Header)" Type="Integer" Unit="Byte(s)" Group="Pbuf Options" DefaultValue="=14+ETH_PAD_SIZE" TabName="Key Options" Mode="Advanced" Min="14" Max="=PBUF_POOL_BUFSIZE-PBUF_IP_HLEN-PBUF_TRANSPORT_HLEN-1" >
        <Description>Number of bytes that should be allocated for a link level header. The default is 14, the standard value for Ethernet.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: To handle corner cases, PBUF_LINK_HLEN must be less than PBUF_POOL_BUFSIZE - 40 (IP_HLEN + PBUF_TRANSPORT_HLEN) and greater or equal than 14.</Description>
    </RefParameter>
    <RefParameter Name="PBUF_LINK_ENCAPSULATION_HLEN" Comment="PBUF_LINK_ENCAPSULATION_HLEN (Number of Bytes for Link Encapsulation Level Header)" Type="Integer" Unit="Byte(s)" Group="Pbuf Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>the number of bytes that should be allocated for an additional encapsulation header before ethernet headers (e.g. 802.11).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PBUF_POOL_BUFSIZE" Comment="PBUF_POOL_BUFSIZE (Size of each pbuf in the pbuf pool)" Type="Integer" Unit="Byte(s)" Group="Pbuf Options" DefaultValue="592" TabName="Key Options" Mode="Basic" Min="=MAX(IF(!MEMP_MEM_MALLOC &amp; PBUF_POOL_SIZE &amp; LWIP_TCP &amp; !LWIP_DISABLE_TCP_SANITY_CHECKS, PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN + 1,0),MEM_ALIGNMENT)" Max="2147483647" >
        <Description>Size of each pbuf in the pbuf pool.&lt;br&gt;The default is designed to accommodate single full size TCP frame in one pbuf, including TCP_MSS, IP header, and link header:&lt;br&gt;PBUF_POOL_BUFSIZE default value is LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_ENCAPSULATION_HLEN+PBUF_LINK_HLEN)&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;: LWIP_MEM_ALIGN_SIZE(size) equals to: (size+MEM_ALIGNMENT-1U) &amp; ~(MEM_ALIGNMENT-1U).&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: PBUF_POOL_BUFSIZE should be greater or equal than PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN if MEMP_MEM_MALLOC and LWIP_DISABLE_TCP_SANITY_CHECKS are disabled and if LWIP_TCP and PBUF_POOL_SIZE are enabled, MEM_ALIGNMENT otherwise.&lt;br&gt;If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to keep only limitation on MEM_ALIGNMENT.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_PBUF_REF_T" Comment="LWIP_PBUF_REF_T (Refcount Type in Pbuf)" Type="StringRW" Group="Infrastructure - Memory Copy Options" DefaultValue="u8_t" TabName="Key Options" Mode="Advanced" Visible="true">
        <Description>Refcount type in pbuf. Default width of u8_t can be increased if 255 refs are not enough for you.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PBUF_IP_HLEN" Comment="PBUF_IP_HLEN (PBUF_IP_HLEN)" Type="Integer" Group="Pbuf Options" DefaultValue="20" Min="0" Max="65535" Visible="false"/>
    <RefParameter Name="PBUF_TRANSPORT_HLEN" Comment="PBUF_TRANSPORT_HLEN (PBUF_TRANSPORT_HLEN)" Type="Integer" Group="Pbuf Options" DefaultValue="20" Min="0" Max="65535" Visible="false"/>
    <RefParameter Name="LWIP_ARP" Comment="LWIP_ARP (ARP Functionality)" Type="list" Group="IPv4 - ARP Options" DefaultValue="1" TabName="Key Options" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_ARP requires LWIP_ETHERNET." Expression="LWIP_ETHERNET"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable ARP (Address Resolution Protocol) functionality. When ARP is disabled, either PPP or SLIPIF should be enabled or user protocol interface should be added.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ARP" Comment="LWIP_ARP (ARP Functionality)" Type="list" Group="IPv4 - ARP Options" DefaultValue="0" TabName="Key Options" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Enable ARP (Address Resolution Protocol) functionality. When ARP is disabled, either PPP or SLIPIF should be enabled or user protocol interface should be added.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_ARP requires LWIP_ETHERNET.</Description>
    </RefParameter>
    <RefParameter Name="ARP_TABLE_SIZE" Comment="ARP_TABLE_SIZE (Number of Active MAC-IP Address Pairs Cached)" Type="integer" Group="IPv4 - ARP Options" DefaultValue="10" TabName="Key Options" Mode="Advanced" Min="0" Max="127" >
        <Description>Number of active MAC-IP address pairs cached.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="ARP_MAXAGE" Comment="ARP_MAXAGE (Time for Valid ARP Entry)" Type="integer" Group="IPv4 - ARP Options" DefaultValue="300" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>The time an ARP entry stays valid after its last update, for ARP_TMR_INTERVAL = 1000, this is (60 * 5) seconds = 5 minutes.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="ARP_QUEUEING" Comment="ARP_QUEUEING (Multiple Outgoing Queued Packets)" Type="list" Group="IPv4 - ARP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use ARP_QUEUEING requires MEMP_NUM_ARP_QUEUE&gt;0 when MEMP_MEM_MALLOC=0 and LWIP_ARP is enabled." Expression="IF((!MEMP_MEM_MALLOC &amp; LWIP_ARP), MEMP_NUM_ARP_QUEUE &gt; 0,1)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Multiple outgoing packets are queued during hardware address resolution.&lt;br&gt;By default, only the most recent packet is queued per IP address. This is sufficient for most protocols and mainly reduces TCP connection startup time.&lt;br&gt;Set this to 1 if you know your application sends more than one packet in a row to an IP address that is not in the ARP cache.</Description>
    </RefParameter>
    <RefParameter Name="ARP_QUEUEING" Comment="ARP_QUEUEING (Multiple Outgoing Queued Packets)" Type="list" Group="IPv4 - ARP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Multiple outgoing packets are queued during hardware address resolution.&lt;br&gt;By default, only the most recent packet is queued per IP address. This is sufficient for most protocols and mainly reduces TCP connection startup time.&lt;br&gt;Set this to 1 if you know your application sends more than one packet in a row to an IP address that is not in the ARP cache.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use ARP_QUEUEING requires MEMP_NUM_ARP_QUEUE&gt;0 when MEMP_MEM_MALLOC=0 and LWIP_ARP is enabled.</Description>
    </RefParameter>
    <RefParameter Name="ARP_QUEUE_LEN" Comment="ARP_QUEUE_LEN (Max ARP Queue Length)" Type="integer" Group="IPv4 - ARP Options" DefaultValue="3" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>The maximum number of packets which may be queued for each unresolved address by other network layers. Defaults to 3, 0 means disabled. Old packets are dropped, new packets are queued.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="ETHARP_SUPPORT_VLAN" Comment="ETHARP_SUPPORT_VLAN (Receiving Ethernet Packets with VLAN Header)" Type="list" Group="IPv4 - ARP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, receiving and sending ethernet packets with VLAN header is supported. See the description of LWIP_HOOK_VLAN_CHECK and LWIP_HOOK_VLAN_SET hooks to check/set VLAN headers.&lt;br&gt;Additionally, you can define ETHARP_VLAN_CHECK to an u16_t VLAN ID to check.&lt;br&gt;If ETHARP_VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted.&lt;br&gt;If ETHARP_VLAN_CHECK is not defined, all traffic is accepted.&lt;br&gt;Alternatively, define a function/define ETHARP_VLAN_CHECK_FN(eth_hdr, vlan) that returns 1 to accept a packet or 0 to drop a packet.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ETHERNET" Comment="LWIP_ETHERNET (Ethernet Module)" Type="list" Group="IPv4 - ARP Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, ethernet is supported even though ARP might be disabled.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Ethernet needs to be kept activated to enable LwIP in STM32CubeMX.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_ETHERNET needs to be turned on for LWIP_ARP.</Description>
    </RefParameter>
    <RefParameter Name="ETH_PAD_SIZE" Comment="ETH_PAD_SIZE (Bytes Added before Ethernet Header)" Type="integer" Unit="Byte(s)" Group="IPv4 - ARP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of bytes added before the ethernet header to ensure alignment of payload after that header.&lt;br&gt;Since the header is 14 bytes long, without this padding e.g. addresses in the IP header will not be aligned on a 32-bit boundary, so setting this to 2 can speed up 32-bit-platforms.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: By default PBUF_LINK_HLEN value is set to ETH_PAD_SIZE+14.</Description>
    </RefParameter>
    <RefParameter Name="ETHARP_SUPPORT_STATIC_ENTRIES" Comment="ETHARP_SUPPORT_STATIC_ENTRIES (Support Static ARP Table Entries)" Type="list" Group="IPv4 - ARP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables code to support static ARP table entries (using etharp_add_static_entry/etharp_remove_static_entry).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="ETHARP_TABLE_MATCH_NETIF" Comment="ETHARP_TABLE_MATCH_NETIF (Support Netif for ARP Table)" Type="list" Group="IPv4 - ARP Options" DefaultValue="=!LWIP_SINGLE_NETIF" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Match netif for ARP table entries.&lt;br&gt;If disabled, duplicate IP address on multiple netifs are not supported (but this should only occur for AutoIP).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV4" Comment="LWIP_IPV4 (Enable IPv4)" Type="list" Group="IPv4 Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter Enables IPv4 protocol.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This parameter has dependencies with IP_FORWARD, IP_REASSEMBLY, IP_FRAG, LWIP_DHCP, LWIP_AUTOIP, LWIP_IGMP and LWIP_MULTICAST_TX_OPTIONS.</Description>
    </RefParameter>
    <RefParameter Name="IP_FORWARD" Comment="IP_FORWARD (Forward IP Packets Across Network Interfaces)" Type="list" Group="IPv4 Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: IP_FORWARD must be disabled when LWIP_IPV4 is disabled." Expression="LWIP_IPV4"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables the ability to forward IP packets across network interfaces. If you are going to run lwIP on a device with only one network interface, define this to 0.</Description>
    </RefParameter>
    <RefParameter Name="IP_FORWARD" Comment="IP_FORWARD (Forward IP Packets Across Network Interfaces)" Type="list" Group="IPv4 Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter enables the ability to forward IP packets across network interfaces. If you are going to run lwIP on a device with only one network interface, define this to 0.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: IP_FORWARD is disabled when LWIP_IPV4 is disabled.</Description>
    </RefParameter>
    <RefParameter Name="IP_OPTIONS_ALLOWED" Comment="IP_OPTIONS_ALLOWED (IP Options Allowed)" Type="list" Group="IPv4 Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This option defines the behavior for IP options:&lt;br&gt;- IP_OPTIONS_ALLOWED=0: All packets with IP options are dropped.&lt;br&gt;- IP_OPTIONS_ALLOWED=1: IP options are allowed (but not parsed).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="IP_REASSEMBLY" Comment="IP_REASSEMBLY (Incoming Fragmented IP packets Reassembly)" Type="list" Group="IPv4 Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: IP_REASSEMBLY must be disabled when LWIP_IPV4 is disabled.&lt;br&gt;There are also some dependencies with MEMP_NUM_REASSDATA, IP_REASS_MAX_PBUFS, MEMP_NUM_SYS_TIMEOUT." Expression="LWIP_IPV4"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, incoming fragmented IP packets are reassembled. Note that this option does not affect outgoing packet sizes, which can be controlled via IP_FRAG.</Description>
    </RefParameter>
    <RefParameter Name="IP_REASSEMBLY" Comment="IP_REASSEMBLY (Incoming Fragmented IP packets Reassembly)" Type="list" Group="IPv4 Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, incoming fragmented IP packets are reassembled. Note that this option does not affect outgoing packet sizes, which can be controlled via IP_FRAG.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: IP_REASSEMBLY is disabled when LWIP_IPV4 is disabled.&lt;br&gt;There are also some dependencies with MEMP_NUM_REASSDATA, IP_REASS_MAX_PBUFS, MEMP_NUM_SYS_TIMEOUT.</Description>
    </RefParameter>
    <RefParameter Name="IP_FRAG" Comment="IP_FRAG (IP Packets Fragmentation)" Type="list" Group="IPv4 Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: IP_FRAG must be disabled when LWIP_IPV4 is disabled.&lt;br&gt;There is also some dependencies with LWIP_NETIF_TX_SINGLE_PBUF." Expression="LWIP_IPV4"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, outgoing IP packets are fragmented if their size exceeds MTU. Note that this option does not affect incoming packet sizes, which can be controlled via IP_REASSEMBLY.</Description>
    </RefParameter>
    <RefParameter Name="IP_FRAG" Comment="IP_FRAG (IP Packets Fragmentation)" Type="list" Group="IPv4 Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, outgoing IP packets are fragmented if their size exceeds MTU. Note that this option does not affect incoming packet sizes, which can be controlled via IP_REASSEMBLY.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: IP_FRAG must be disabled when LWIP_IPV4 is disabled.&lt;br&gt;There is also some dependencies with LWIP_NETIF_TX_SINGLE_PBUF.</Description>
    </RefParameter>
    <RefParameter Name="IP_REASS_MAXAGE" Comment="IP_REASS_MAXAGE (IP Packets Fragmentation if Size exceeds MTU)" Type="integer" Unit="Second(s)" Group="IPv4 Options" DefaultValue="15" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived in this time, the whole packet is discarded.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="IP_REASS_MAX_PBUFS" Comment="IP_REASS_MAX_PBUFS (Maximum of Pbufs waiting to Be Reassembled)" Type="integer" Group="IPv4 Options" DefaultValue="10" TabName="Key Options" Mode="Advanced" Min="=IF(MEMP_MEM_MALLOC &amp; IP_REASSEMBLY, MEMP_NUM_REASSDATA, 0)" Max="=PBUF_POOL_SIZE-1" >
        <Description>Total maximum amount of pbufs waiting to be reassembled. Since the received pbufs are enqueued, be sure to configure PBUF_POOL_SIZE &gt; IP_REASS_MAX_PBUFS so that the stack is still able to receive packets even if the maximum amount of fragments is enqueued for reassembly!&lt;br&gt;When IPv4 *and* IPv6 are enabled, this even changes to (PBUF_POOL_SIZE &gt; 2 * IP_REASS_MAX_PBUFS)!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use IP_REASSEMBLY requires IP_REASS_MAX_PBUFS&gt;=MEMP_NUM_REASSDATA when MEMP_MEM_MALLOC is enabled.</Description>
    </RefParameter>
    <RefParameter Name="IP_DEFAULT_TTL" Comment="IP_DEFAULT_TTL (Time-To-Live Used by Transport Layers)" Type="Integer" Unit="Node(s)" Group="IPv4 Options" DefaultValue="255" TabName="Key Options" Mode="Advanced" Min="0" Max="255" >
        <Description>Default value for Time-To-Live used by transport layers.&lt;br&gt;This tells how long the packets may live on the network before they are dropped. Each time the packet passes a router, firewall, computer, i.e a node, the TTL is decremented with one step.&lt;br&gt;Setting the TTL to 255 would be considered rude since this would make a packet live an extremely long time on the internet.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: IP_DEFAULT_TTL is used to set by default: ICMP_TTL, RAW_TTL, UDP_TTL and TCP_TTL.</Description>
    </RefParameter>
    <RefParameter Name="IP_SOF_BROADCAST" Comment="IP_SOF_BROADCAST (Broadcast Filter per Pcb on UDP and Raw Send Operations)" Type="list" Group="IPv4 Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, the SOF_BROADCAST field is used to enable broadcast filter per pcb on udp and raw send operations. To enable broadcast filter on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use IP_SOF_BROADCAST_RECV requires IP_SOF_BROADCAST enabled.</Description>
    </RefParameter>
    <RefParameter Name="IP_SOF_BROADCAST_RECV" Comment="IP_SOF_BROADCAST_RECV (Broadcast Filter on recv Operations)" Type="list" Group="IPv4 Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use IP_SOF_BROADCAST_RECV requires IP_SOF_BROADCAST enabled." Expression="IP_SOF_BROADCAST"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, broadcast filter on recv operations is enabled.</Description>
    </RefParameter>
    <RefParameter Name="IP_SOF_BROADCAST_RECV" Comment="IP_SOF_BROADCAST_RECV (Broadcast Filter on recv Operations)" Type="list" Group="IPv4 Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, broadcast filter on recv operations is enabled.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use IP_SOF_BROADCAST_RECV requires IP_SOF_BROADCAST enabled.</Description>
    </RefParameter>
    <RefParameter Name="IP_FORWARD_ALLOW_TX_ON_RX_NETIF" Comment="IP_FORWARD_ALLOW_TX_ON_RX_NETIF (IP Forward to send Packets back out on the NETIF)" Type="list" Group="IPv4 Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this parameter allows ip_forward() to send packets back out on the netif where it was received. This should only be used for wireless networks.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: When this is 1, make sure your netif driver correctly marks incoming link-layer-broadcast/multicast packets as such using the corresponding pbuf flags!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="ICMP_TTL" Comment="ICMP_TTL (Time-To-Live Used by ICMP Packets)" Type="Integer" Unit="Node(s)" Group="IPv4 - ICMP Options" DefaultValue="=IP_DEFAULT_TTL" TabName="Key Options" Mode="Advanced" Min="0" Max="255" >
        <Description>Default value for Time-To-Live used by ICMP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_BROADCAST_PING" Comment="LWIP_BROADCAST_PING (Respond to Broadcast Pings)" Type="list" Group="IPv4 - ICMP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this parameter allows responding to broadcast pings (default is unicast only).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_MULTICAST_PING" Comment="LWIP_MULTICAST_PING (Respond to Multicast Pings)" Type="list" Group="IPv4 - ICMP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this parameter to allow responding to multicast pings (default is unicast only).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_MULTICAST_TX_OPTIONS" Comment="LWIP_MULTICAST_TX_OPTIONS (Multicast TX Support)" Type="list" Group="Multicast Options" DefaultValue="=(LWIP_IGMP|LWIP_IPV6_MLD) &amp; (LWIP_UDP|LWIP_RAW)" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_MULTICAST_TX_OPTIONS requires LWIP_RAW and/or LWIP_UDP enabled." Expression="LWIP_UDP|LWIP_RAW"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this parameter to allow multicast TX support like the socket options IP_MULTICAST_TTL/IP_MULTICAST_IF/IP_MULTICAST_LOOP, as well as (currently only) core support for the corresponding IPv6 options.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_MULTICAST_TX_OPTIONS" Comment="LWIP_MULTICAST_TX_OPTIONS (Multicast TX Support)" Type="list" Group="Multicast Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Set this parameter to allow multicast TX support like the socket options IP_MULTICAST_TTL/IP_MULTICAST_IF/IP_MULTICAST_LOOP, as well as (currently only) core support for the corresponding IPv6 options.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_MULTICAST_TX_OPTIONS requires LWIP_RAW and/or LWIP_UDP enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_RAW" Comment="LWIP_RAW (Use Raw LwIP API)" Type="list" Group="Callback - Raw Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_RAW requires MEMP_NUM_RAW_PCB&gt;0 when MEMP_MEM_MALLOC is disabled." Expression="IF(!MEMP_MEM_MALLOC, MEMP_NUM_RAW_PCB &gt; 0, 1)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>If this parameter is enabled, the application layer to hook into the IP layer itself is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_RAW" Comment="LWIP_RAW (Use Raw LwIP API)" Type="list" Group="Callback - Raw Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>If this parameter is enabled, the application layer to hook into the IP layer itself is enabled.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_RAW requires MEMP_NUM_RAW_PCB&gt;0 when MEMP_MEM_MALLOC is disabled.</Description>
    </RefParameter>
    <RefParameter Name="RAW_TTL" Comment="RAW_TTL (Time-To-Live Used by Raw Packets)" Type="Integer" Unit="Node(s)" Group="Callback - Raw Options" DefaultValue="=IP_DEFAULT_TTL" TabName="Key Options" Mode="Advanced" Min="0" Max="255" >
        <Description>Default value for Time-To-Live used by Raw packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DHCP_DOES_ARP_CHECK" Comment="DHCP_DOES_ARP_CHECK (DHCP with ARP Check on Offered Address)" Type="list" Group="IPv4 - DHCP Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use DHCP_DOES_ARP_CHECK requires LWIP_DHCP and LWIP_ARP both enabled." Expression="(LWIP_DHCP &amp; LWIP_ARP)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, an ARP check on the offered address is done.</Description>
    </RefParameter>
    <RefParameter Name="DHCP_DOES_ARP_CHECK" Comment="DHCP_DOES_ARP_CHECK (ARP Check on Offered Address)" Type="list" Group="IPv4 - DHCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, an ARP check on the offered address is done.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use DHCP_DOES_ARP_CHECK requires LWIP_DHCP and LWIP_ARP both enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP_BOOTP_FILE" Comment="LWIP_DHCP_BOOTP_FILE (DHCP using Boot File)" Type="list" Group="IPv4 - DHCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_DHCP_BOOTP_FILE cannot be used with IPv6." Expression="!LWIP_IPV6"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, offered_si_addr and boot_file_name are stored.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP_BOOTP_FILE" Comment="LWIP_DHCP_BOOTP_FILE (DHCP using Boot File)" Type="list" Group="IPv4 - DHCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, offered_si_addr and boot_file_name are stored.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_DHCP_BOOTP_FILE cannot be used with IPv6.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP_GET_NTP_SRV" Comment="LWIP_DHCP_GET_NTP_SRV (DHCP with NTP Server Request)" Type="list" Group="IPv4 - DHCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, request NTP servers with discover/select is performed. For each response packet, an callback is called, which has to be provided by the port: void dhcp_set_ntp_servers(u8_t num_ntp_servers, ip_addr_t* ntp_server_addrs).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP_MAX_NTP_SERVERS" Comment="LWIP_DHCP_MAX_NTP_SERVERS (Maximum Number of NTP Servers Requested)" Type="Integer" Group="IPv4 - DHCP Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the maximum of NTP servers requested.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP_MAX_DNS_SERVERS" Comment="LWIP_DHCP_MAX_DNS_SERVERS (Maximum Number of DNS Servers Requested)" Type="Integer" Group="IPv4 - DHCP Options" DefaultValue="=DNS_MAX_SERVERS" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the maximum of DNS servers requested.&lt;br&gt;0: Request DNS servers with discover/select.&lt;br&gt;DNS servers received in the response are passed to DNS via @ref dns_setserver()&lt;br&gt;(up to the maximum limit defined here).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_AUTOIP" Comment="LWIP_AUTOIP (AUTOIP Module)" Type="list" Group="IPv4 - AUTOIP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_AUTOIP requires LWIP_ARP and LWIP_IPV4 enabled." Expression="LWIP_ARP &amp; LWIP_IPV4"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, AUTOIP (AUTOmatic linklocal IP) module is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_AUTOIP" Comment="LWIP_AUTOIP (AUTOIP Module)" Type="list" Group="IPv4 - AUTOIP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, AUTOIP (AUTOmatic linklocal IP) module is enabled.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_AUTOIP requires LWIP_ARP and LWIP_IPV4 enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP_AUTOIP_COOP" Comment="LWIP_DHCP_AUTOIP_COOP (DHCP/AUTOIP Cooperation Mode)" Type="list" Group="IPv4 - AUTOIP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_DHCP_AUTOIP_COOP requires LWIP_AUTOIP and LWIP_DHCP both enabled." Expression="LWIP_AUTOIP &amp; LWIP_DHCP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, it allows DHCP and AUTOIP to be both enabled on the same interface at the same time.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP_AUTOIP_COOP" Comment="LWIP_DHCP_AUTOIP_COOP (DHCP/AUTOIP Cooperation Mode)" Type="list" Group="IPv4 - AUTOIP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, it allows DHCP and AUTOIP to be both enabled on the same interface at the same time.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_DHCP_AUTOIP_COOP requires LWIP_AUTOIP and LWIP_DHCP both enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP_AUTOIP_COOP_TRIES" Comment="LWIP_DHCP_AUTOIP_COOP_TRIES (DHCP AUTOIP Coop Tries)" Type="Integer" Group="IPv4 - AUTOIP Options" DefaultValue="9" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter sets to the number of DHCP DISCOVER probes that should be sent before falling back on AUTOIP (the DHCP client keeps running in this case). This can be set as low as 1 to get an AutoIP address very quickly, but you should be prepared to handle a changing IP address when DHCP overrides AutoIP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_MIB2_CALLBACKS" Comment="LWIP_MIB2_CALLBACKS (MIB2 Callbacks Support)" Type="list" Group="Infrastructure - SNMP MIB2 Callbacks Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, this turn on SNMP MIB2 callbacks.&lt;br&gt;Turn this on to get callbacks needed to implement MIB2.&lt;br&gt;Usually MIB2_STATS should be enabled, too.&lt;br&gt;Please read the snmp_agent.txt before turning on.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DNS_TABLE_SIZE" Comment="DNS_TABLE_SIZE (DNS Maximum Number of Entries)" Type="Integer" Group="Callback - DNS Options" DefaultValue="4" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>DNS maximum number of entries to maintain locally.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DNS_MAX_NAME_LENGTH" Comment="DNS_MAX_NAME_LENGTH (DNS Maximum Host Name Length)" Type="Integer" Unit="Byte(s)" Group="Callback - DNS Options" DefaultValue="256" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>DNS maximum host name length supported in the name table.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DNS_MAX_SERVERS" Comment="DNS_MAX_SERVERS (Maximum Number of DNS Servers)" Type="Integer" Group="Callback - DNS Options" DefaultValue="2" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>The maximum of DNS servers.&lt;br&gt;The first server can be initialized automatically by defining DNS_SERVER_ADDRESS(ipaddr), where ipaddr is an ip_addr_t*.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DNS_MAX_RETRIES" Comment="DNS_MAX_RETRIES (Maximum Number of DNS Retries)" Type="Integer" Group="Callback - DNS Options" DefaultValue="4" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>DNS maximum number of retries when asking for a name, before timeout&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DNS_DOES_NAME_CHECK" Comment="DNS_DOES_NAME_CHECK (DNS Name Checking)" Type="list" Group="Callback - DNS Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>DNS do a name checking between the query and the response.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DNS_SECURE" Comment="LWIP_DNS_SECURE (DNS Security Level Control)" Type="Integer" Group="Callback - DNS Options" DefaultValue="=LWIP_DNS_SECURE_RAND_XID|LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING|LWIP_DNS_SECURE_RAND_SRC_PORT" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter controls the security level of the DNS implementation.&lt;br&gt;All DNS security features are used by default performed thanks to a logical OR: LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT.&lt;br&gt;This is overridable but should only be needed by very small targets or when using against non standard DNS servers.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DNS_SECURE_RAND_XID" Comment="LWIP_DNS_SECURE_RAND_XID (DNS Security Random)" Type="list" Group="Callback - DNS Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter sets the DNS random security level.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING" Comment="LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING (DNS Security without Multiple Outstanding)" Type="list" Group="Callback - DNS Options" DefaultValue="2" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="2"/>
        <Description>This parameter sets the DNS security level without multiple outstanding.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DNS_SECURE_RAND_SRC_PORT" Comment="LWIP_DNS_SECURE_RAND_SRC_PORT (DNS Security Random Source Port)" Type="list" Group="Callback - DNS Options" DefaultValue="4" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="4"/>
        <Description>This parameter sets the DNS security level with random source port.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DNS_LOCAL_HOSTLIST" Comment="DNS_LOCAL_HOSTLIST (DNS Local host-to-address List Implementation)" Type="list" Group="Callback - DNS Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use DNS_LOCAL_HOSTLIST requires DNS_LOCAL_HOSTLIST_INIT or DNS_LOCAL_HOSTLIST_IS_DYNAMIC defined." Expression="DNS_LOCAL_HOSTLIST_INIT|DNS_LOCAL_HOSTLIST_IS_DYNAMIC"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, a local host-to-address list is implemented.&lt;br&gt;If enabled, you have to define an initializer DNS_LOCAL_HOSTLIST_INIT to {DNS_LOCAL_HOSTLIST_ELEM(&quot;host_ip4&quot;, IPADDR4_INIT_BYTES(1,2,3,4)),DNS_LOCAL_HOSTLIST_ELEM(&quot;host_ip6&quot;, IPADDR6_INIT_HOST(123, 234, 345, 456)}. This additional definition can be added inside a user section within lwipopts.h file&lt;br&gt;Instead, you can also use an external function: define DNS_LOOKUP_LOCAL_EXTERN(x) extern err_t my_lookup_function(const char *name, ip_addr_t *addr, u8_t dns_addrtype) that looks up the IP address and returns ERR_OK if found (LWIP_DNS_ADDRTYPE_xxx is passed in dns_addrtype).</Description>
    </RefParameter>
    <RefParameter Name="DNS_LOCAL_HOSTLIST" Comment="DNS_LOCAL_HOSTLIST (DNS Local host-to-address List Implementation)" Type="list" Group="Callback - DNS Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, a local host-to-address list is implemented.&lt;br&gt;If enabled, you have to define an initializer DNS_LOCAL_HOSTLIST_INIT to {DNS_LOCAL_HOSTLIST_ELEM(&quot;host_ip4&quot;, IPADDR4_INIT_BYTES(1,2,3,4)),DNS_LOCAL_HOSTLIST_ELEM(&quot;host_ip6&quot;, IPADDR6_INIT_HOST(123, 234, 345, 456)}&lt;br&gt;Instead, you can also use an external function: define DNS_LOOKUP_LOCAL_EXTERN(x) extern u32_t my_lookup_function(const char *name) that returns the IP address or INADDR_NONE if not found.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use DNS_LOCAL_HOSTLIST requires DNS_LOCAL_HOSTLIST_INIT or DNS_LOCAL_HOSTLIST_IS_DYNAMIC defined.</Description>
    </RefParameter>
    <RefParameter Name="DNS_LOCAL_HOSTLIST_IS_DYNAMIC" Comment="DNS_LOCAL_HOSTLIST_IS_DYNAMIC (Dynamic DNS Local host-to-address List)" Type="list" Group="Callback - DNS Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>If this is turned on, the local host-list can be dynamically changed at runtime.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use DNS_LOCAL_HOSTLIST requires DNS_LOCAL_HOSTLIST_INIT or DNS_LOCAL_HOSTLIST_IS_DYNAMIC defined.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DNS_SUPPORT_MDNS_QUERIES" Comment="LWIP_DNS_SUPPORT_MDNS_QUERIES (Use Multicast DNS Query)" Type="list" Group="Callback - DNS Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to enable querying &quot;.local&quot; names via mDNS using a One-Shot Multicast DNS Query.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_UDPLITE" Comment="LWIP_UDPLITE (UDP-Lite Module)" Type="list" Group="Callback - UDP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_UDPLITE requires LWIP_UDP enabled." Expression="LWIP_UDP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, it turns on UDP-Lite (Requires LWIP_UDP).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_UDPLITE" Comment="LWIP_UDPLITE (UDP-Lite Module)" Type="list" Group="Callback - UDP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, it turns on UDP-Lite (Requires LWIP_UDP).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_UDPLITE requires LWIP_UDP enabled.</Description>
    </RefParameter>
    <RefParameter Name="UDP_TTL" Comment="UDP_TTL (Number of Time-To-Live Used by UDP Packets)" Type="Integer" Unit="Node(s)" Group="Callback - UDP Options" DefaultValue="=IP_DEFAULT_TTL" TabName="Key Options" Mode="Advanced" Min="0" Max="255" >
        <Description>Default UDP Time-To-Live value.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETBUF_RECVINFO" Comment="LWIP_NETBUF_RECVINFO (Append Destination and Port Addresses to every Netbuf)" Type="list" Group="Callback - UDP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Append destination addr and port to every netbuf.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_TTL" Comment="TCP_TTL (Number of Time-To-Live Used by TCP Packets)" Type="Integer" Unit="Node(s)" Group="Callback - TCP Options" DefaultValue="=IP_DEFAULT_TTL" TabName="Key Options" Mode="Basic" Min="0" Max="255" >
        <Description>Default TCP Time-To-Live value.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_WND" Comment="TCP_WND (TCP Receive Window Maximum Size)" Type="Integer" Unit="Byte(s)" Group="Callback - TCP Options" DefaultValue="=4*TCP_MSS" TabName="Key Options" Mode="Basic" Min="=IF(!LWIP_DISABLE_TCP_SANITY_CHECKS &amp; LWIP_TCP, TCP_MSS, 0)" Max="=MIN(MIN(IF(LWIP_WND_SCALE &amp; LWIP_TCP,4294967295,4294967295),IF(LWIP_TCP,65535,4294967295)),MIN(IF(LWIP_WND_SCALE &amp; LWIP_TCP,65535*INTPOW(2,TCP_RCV_SCALE),4294967295),IF(LWIP_TCP &amp; !MEMP_MEM_MALLOC &amp; PBUF_POOL_SIZE &amp; !LWIP_DISABLE_TCP_SANITY_CHECKS,PBUF_POOL_SIZE*(PBUF_POOL_BUFSIZE-(PBUF_LINK_ENCAPSULATION_HLEN+PBUF_LINK_HLEN+PBUF_IP_HLEN+PBUF_TRANSPORT_HLEN)),4294967295)))" >
        <Description>Size of a TCP window.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: when using TCP_RCV_SCALE, TCP_WND is the total size with scaling applied. Maximum window value in the TCP header will be TCP_WND &gt;&gt; TCP_RCV_SCALE.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;:&lt;br&gt;TCP_WND Min and Max values have some dependencies with other parameters (see init.c file for all details):&lt;br&gt;If you use TCP_WND with LWIP_TCP enabled:&lt;br&gt;- The minimum value advised by the stack is 2*TCP_MSS&lt;br&gt;- TCP_WND must fit in an u16_t or you have to enable window scaling&lt;br&gt;If you use TCP_WND with LWIP_TCP and LWIP_WND_SCALE enabled:&lt;br&gt;- TCP_WND must fit in an u32_t&lt;br&gt;- TCP_WND must be lower or equals than (0xFFFFU &lt;&lt; TCP_RCV_SCALE)&lt;br&gt;If you use TCP_WND with LWIP_TCP enabled and MEMP_MEM_MALLOC and LWIP_DISABLE_TCP_SANITY_CHECKS are disabled:- TCP_WND must be lower or equal than PBUF_POOL_SIZE*(PBUF_POOL_BUFSIZE-(PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN))&lt;br&gt;If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1.</Description>
    </RefParameter>
    <RefParameter Name="TCP_MAXRTX" Comment="TCP_MAXRTX (Maximum Number of Retransmissions of Data Segments)" Type="Integer" Group="Callback - TCP Options" DefaultValue="12" TabName="Key Options" Mode="Advanced" Min="0" Max="=IF(!LWIP_TCP, 1000000, 12)" >
        <Description>Maximum number of retransmissions of data segments.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: If LWIP_TCP=1, TCP_MAXRTX must less or equal to 12.</Description>
    </RefParameter>
    <RefParameter Name="TCP_SYNMAXRTX" Comment="TCP_SYNMAXRTX (Maximum Number of Retransmissions of SYN Segments)" Type="Integer" Group="Callback - TCP Options" DefaultValue="6" TabName="Key Options" Mode="Advanced" Min="0" Max="=IF(!LWIP_TCP, 1000000, 12)" >
        <Description>Maximum number of retransmissions of SYN segments.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: If LWIP_TCP=1, TCP_SYNMAXRTX must less or equal to 12.</Description>
    </RefParameter>
    <RefParameter Name="TCP_QUEUE_OOSEQ" Comment="TCP_QUEUE_OOSEQ (Allow Out-Of-Order Incoming Packets)" Type="list" Group="Callback - TCP Options" DefaultValue="=LWIP_TCP" TabName="Key Options" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>If this parameter is enabled, TCP will queue segments that arrive out of order. Define to 0 if your device is low on memory.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP_SACK_OUT" Comment="LWIP_TCP_SACK_OUT (Allow Sending Selective Acknowledgements)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: To use LWIP_TCP_SACK_OUT, LWIP_TCP and TCP_QUEUE_OOSEQ need to be enabled." Expression="TCP_QUEUE_OOSEQ &amp; LWIP_TCP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>If this parameter is enabled, TCP will support sending selective acknowledgements (SACKs).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP_SACK_OUT" Comment="LWIP_TCP_SACK_OUT (Allow Sending Selective Acknowledgements)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>If this parameter is enabled, TCP will support sending selective acknowledgements (SACKs).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: To use LWIP_TCP_SACK_OUT, LWIP_TCP and TCP_QUEUE_OOSEQ need to be enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP_MAX_SACK_NUM" Comment="LWIP_TCP_MAX_SACK_NUM (Maximum Number of Sending Selective Acknowledgements)" Type="Integer" Group="Callback - TCP Options" DefaultValue="4" TabName="Key Options" Mode="Advanced" Min="=IF(LWIP_TCP &amp; LWIP_TCP_SACK_OUT, 1, 0)" Max="1000000" >
        <Description>Maximum number of SACK values to include in TCP segments. Must be at least 1, but is only used if LWIP_TCP_SACK_OUT is enabled.&lt;br&gt;NOTE: Even though we never send more than 3 or 4 SACK ranges in a single segment (depending on other options), setting this option to values greater than 4 is not pointless.&lt;br&gt;This is basically the max number of SACK ranges we want to keep track of. As new data is delivered, some of the SACK ranges may be removed or merged. In that case some of those older SACK ranges may be used again. The amount of memory used to store SACK ranges is LWIP_TCP_MAX_SACK_NUM * 8 bytes for each TCP PCB.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_TCP_MAX_SACK_NUM must be greater than 0.&lt;br&gt;To use LWIP_TCP_MAX_SACK_NUM, LWIP_TCP_SACK_OUT and LWIP_TCP need to be enabled.</Description>
    </RefParameter>
    <RefParameter Name="TCP_MSS" Comment="TCP_MSS (Maximum Segment Size)" Type="Integer" Unit="Byte(s)" Group="Callback - TCP Options" DefaultValue="536" TabName="Key Options" Mode="Basic" Min="1" Max="=IF( (PBUF_POOL_SIZE * 0.5 * (PBUF_POOL_BUFSIZE - (PBUF_LINK_HLEN + 20 + 20)))>1460,1460,(PBUF_POOL_SIZE * 0.5 * (PBUF_POOL_BUFSIZE - (PBUF_LINK_HLEN + 20 + 20))))" >
        <Description>TCP Maximum segment size. Default value is 536, this is a conservative value, you might want to increase this. For the receive side, this MSS is advertised to the remote side when opening a connection. For the transmit size, this MSS sets an upper limit on the MSS advertised by the remote host.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: With Ethernet, the maximum size of a TCP segment allowed is 1460. To handle corner cases, the maximum value is also limited to: PBUF_POOL_SIZE / 2 * (PBUF_POOL_BUFSIZE - (PBUF_LINK_HLEN + PBUF_IP_HLEN + PBUF_TRANSPORT_HLEN)).</Description>
    </RefParameter>
    <RefParameter Name="TCP_CALCULATE_EFF_SEND_MSS" Comment="TCP_CALCULATE_EFF_SEND_MSS (Checks TCP_MSS against NETIF MTU Used)" Type="list" Group="Callback - TCP Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Maximum size of a segment that TCP really sends, the 'effective send MSS,' MUST be the smaller of the send MSS (which reflects the available reassembly buffer size at the remote host) and the largest size permitted by the IP layer (RFC 1122) Setting this to 1 enables code that checks TCP_MSS against the MTU of the netif used for a connection and limits the MSS if it would be too big otherwise.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_SND_BUF" Comment="TCP_SND_BUF (TCP Sender Buffer Space)" Type="Integer" Unit="Byte(s)" Group="Callback - TCP Options" DefaultValue="=2*TCP_MSS" TabName="Key Options" Mode="Basic" Min="=IF(!LWIP_DISABLE_TCP_SANITY_CHECKS &amp; LWIP_TCP, TCP_MSS*2, 0)" Max="2147483647" >
        <Description>TCP sender buffer space (bytes). To achieve good performance.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use TCP_SND_BUF requires TCP enabled. When LWIP_TCP is enabled, TCP_SND_BUF must be at least as much as (2 * TCP_MSS) for things to work smoothly.&lt;br&gt;If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to avoid Min value limitation.&lt;br&gt;TCP_SND_BUF value is also used to set value of TCP_SND_QUEUELEN and TCP_SNDLOWAT.</Description>
    </RefParameter>
    <RefParameter Name="TCP_SND_QUEUELEN" Comment="TCP_SND_QUEUELEN (Number of Packet Buffers Allowed for TCP Sender)" Type="Integer" Unit="Byte(s)" Group="Callback - TCP Options" DefaultValue="=((4*TCP_SND_BUF) + (TCP_MSS - 1))/TCP_MSS" TabName="Key Options" Mode="Basic" Min="=MAX(IF(LWIP_TCP, 2, 0), IF(!LWIP_DISABLE_TCP_SANITY_CHECKS &amp; LWIP_TCP,2*TCP_SND_BUF/TCP_MSS,0))" Max="=IF(LWIP_TCP, 65535, 2147483647)" >
        <Description>TCP sender buffer space (pbufs).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TCP_SND_QUEUELEN must be at least as much as (2*TCP_SND_BUF/TCP_MSS) if LWIP_TCP is enabled and LWIP_DISABLE_TCP_SANITY_CHECKS disabled.&lt;br&gt;TCP_SND_QUEUELEN must be at least 2 for no-copy TCP writes to work, if LWIP_TCP is enabled.&lt;br&gt;TCP_SND_QUEUELEN must fit in an u16_t, if LWIP_TCP is enabled.</Description>
    </RefParameter>
    <RefParameter Name="TCP_SNDLOWAT" Comment="TCP_SNDLOWAT (TCP Writable Space)" Type="Integer" Unit="Byte(s)" Group="Callback - TCP Options" DefaultValue="=MIN(MAX(TCP_SND_BUF/2, (2*TCP_MSS)+1), TCP_SND_BUF-1)" TabName="Key Options" Mode="Advanced" Min="0" Max="=IF(!LWIP_DISABLE_TCP_SANITY_CHECKS &amp; LWIP_TCP, MIN(TCP_SND_BUF-1,65535-(4*TCP_MSS)-1), 2147483647)" >
        <Description>TCP writable space (bytes). This must be less than TCP_SND_BUF. It is the amount of space which must be available in the TCP snd_buf for select to return writable (combined with TCP_SNDQUEUELOWAT).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TCP_SNDLOWAT is forced to be less than TCP_SND_BUF when LWIP_TCP is enabled and LWIP_DISABLE_TCP_SANITY_CHECKS is disabled.&lt;br&gt;If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable the Max value limitation.</Description>
    </RefParameter>
    <RefParameter Name="TCP_SNDQUEUELOWAT" Comment="TCP_SNDQUEUELOWAT (TCP Writable Buffers)" Type="Integer" Unit="Byte(s)" Group="Callback - TCP Options" DefaultValue="=MAX(TCP_SND_QUEUELEN/2, 5)" TabName="Key Options" Mode="Advanced" Min="0" Max="=IF(!LWIP_DISABLE_TCP_SANITY_CHECKS &amp; LWIP_TCP, TCP_SND_QUEUELEN-1, 1000000)" >
        <Description>TCP writable bufs (pbuf count). This must be less than TCP_SND_QUEUELEN. If the number of pbufs queued on a pcb drops below this number, select returns writable (combined with TCP_SNDLOWAT).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TCP_SNDQUEUELOWAT must be less than TCP_SND_QUEUELEN when LWIP_TCP is enabled and LWIP_DISABLE_TCP_SANITY_CHECKS is disabled.&lt;br&gt;If you know what you are doing, define LWIP_DISABLE_TCP_SANITY_CHECKS to 1 to disable the Max value limitation.</Description>
    </RefParameter>
    <RefParameter Name="TCP_OOSEQ_MAX_BYTES" Comment="TCP_OOSEQ_MAX_BYTES (Maximum Number of Bytes Queued on ooseq per Pcb)" Type="Integer" Unit="Byte(s)" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Maximum number of bytes queued on ooseq per pcb if TCP_OOSEQ_BYTES_LIMIT is not defined. Default is 0 (no limit).. Only valid for TCP_QUEUE_OOSEQ=1.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_OOSEQ_BYTES_LIMIT(pcb)" Comment="TCP_OOSEQ_BYTES_LIMIT(pcb) (Maximum Number of Bytes Queued to be queued)" Type="Integer" Group="Callback - TCP Options" DefaultValue="=TCP_OOSEQ_MAX_BYTES" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Maximum number of bytes to be queued on ooseq per pcb, given the pcb. Use this to override TCP_OOSEQ_MAX_BYTES to a dynamic value per pcb.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Only valid for TCP_QUEUE_OOSEQ=1 and TCP_OOSEQ_MAX_BYTES=1.</Description>
    </RefParameter>
    <RefParameter Name="TCP_OOSEQ_MAX_PBUFS" Comment="TCP_OOSEQ_MAX_PBUFS (Maximum Number of Pbufs Queued on ooseq per Pcb)" Type="Integer" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Default maximum number of pbufs queued on ooseq per pcb if TCP_OOSEQ_BYTES_LIMIT is not defined. Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ=1.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_OOSEQ_PBUFS_LIMIT(pcb)" Comment="TCP_OOSEQ_PBUFS_LIMIT(pcb) (Maximum Number of Pbufs Queued to be queued)" Type="Integer" Group="Callback - TCP Options" DefaultValue="=TCP_OOSEQ_MAX_PBUFS" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Maximum number of pbufs to be queued on ooseq per pcb, given the pcb. Use this to override TCP_OOSEQ_MAX_PBUFS to a dynamic value per pcb.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Only valid for TCP_QUEUE_OOSEQ=1 and TCP_OOSEQ_MAX_PBUFS=1.</Description>
    </RefParameter>
    <RefParameter Name="TCP_LISTEN_BACKLOG" Comment="TCP_LISTEN_BACKLOG (Backlog for TCP Listen Pcb)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use TCP_LISTEN_BACKLOG requires LWIP_TCP, and TCP_DEFAULT_LISTEN_BACKLOG must be less than 256 and greater or equal than 0." Expression="IF(LWIP_TCP, (TCP_DEFAULT_LISTEN_BACKLOG &gt;= 0) &amp; (TCP_DEFAULT_LISTEN_BACKLOG &lt;= 255), 1)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, the backlog option for tcp listen pcb is set.</Description>
    </RefParameter>
    <RefParameter Name="TCP_LISTEN_BACKLOG" Comment="TCP_LISTEN_BACKLOG (Backlog for TCP Listen Pcb)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, the backlog option for tcp listen pcb is set.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use TCP_LISTEN_BACKLOG requires LWIP_TCP, and TCP_DEFAULT_LISTEN_BACKLOG must be less than 256 and greater or equal than 0.</Description>
    </RefParameter>
    <RefParameter Name="TCP_DEFAULT_LISTEN_BACKLOG" Comment="TCP_DEFAULT_LISTEN_BACKLOG (Maximum Allowed Backlog for TCP Listen Netconns)" Type="integer" Unit="Byte(s)" Group="Callback - TCP Options" DefaultValue="255" TabName="Key Options" Mode="Advanced" Min="0" Max="=IF(LWIP_TCP &amp; TCP_LISTEN_BACKLOG, 255, 1000000)" >
        <Description>Maximum allowed backlog for TCP listen netconns. This backlog is used unless another is explicitly specified. 0xff is the maximum (u8_t).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Link with LWIP_TCP and TCP_LISTEN_BACKLOG parameters: when LWIP_TCP and TCP_LISTEN_BACKLOG are enabled, TCP_DEFAULT_LISTEN_BACKLOG must less than 256.</Description>
    </RefParameter>
    <RefParameter Name="TCP_OVERSIZE" Comment="TCP_OVERSIZE (Maximum Number of Bytes that tcp_write)" Type="list" Group="Callback - TCP Options" DefaultValue="TCP_MSS" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <PossibleValue Comment="128 Bytes" Value="128"/>
        <PossibleValue Comment="TCP_MSS Bytes" Value="TCP_MSS"/>
        <PossibleValue Comment="(TCP_MSS/4) Bytes" Value="(TCP_MSS/4)"/>
        <Description>Maximum number of bytes that tcp_write may allocate ahead of time in an attempt to create shorter pbuf chains for transmission. The meaningful range is 0 to TCP_MSS.&lt;br&gt;Some suggested values are:&lt;br&gt;- 0: Disable oversized allocation. Each tcp_write() allocates a new pbuf (old behaviour)&lt;br&gt;- 1: Allocate size-aligned pbufs with minimal excess. Use this if your scatter-gather DMA requires aligned fragments&lt;br&gt;- 128: Limit the pbuf/memory overhead to 20%&lt;br&gt;- TCP_MSS: Try to create unfragmented TCP packets&lt;br&gt;- TCP_MSS/4: Try to create 4 fragments or less per TCP packet.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: If TCP_OVERSIZE&gt;0 LWIP_NETIF_TX_SINGLE_PBUF can be used.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP_TIMESTAMPS" Comment="LWIP_TCP_TIMESTAMPS (TCP Iimestamp)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Support the TCP timestamp option.&lt;br&gt;The timestamp option is currently only used to help remote hosts, it is not really used locally. Therefore, it is only enabled when a TS option is received in the initial SYN packet from a remote host.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_WND_UPDATE_THRESHOLD" Comment="TCP_WND_UPDATE_THRESHOLD (TCP Window Update Threshold)" Type="Integer" Unit="Byte(s)" Group="Callback - TCP Options" DefaultValue="=MIN(TCP_WND/4,TCP_MSS*4)" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Difference in window to trigger an explicit window update.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TCP_WND_UPDATE_THRESHOLD is the min between (TCP_WND / 4) and (TCP_MSS * 4).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_EVENT_API" Comment="LWIP_EVENT_API (LwIP Event API)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: One and exactly one of LWIP_EVENT_API and LWIP_CALLBACK_API has to be enabled when LWIP_TCP is enabled." Expression="LWIP_TCP"/>
        <PossibleValue Comment="Disabled" Value="0" Semaphore="S_LWIP_CALLBACK_API_OFF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_EVENT_API=1: The user defines lwip_tcp_event() to receive all events (accept, sent, etc) that happen in the system.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_EVENT_API" Comment="LWIP_EVENT_API (LwIP Event API)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_EVENT_API=1: The user defines lwip_tcp_event() to receive all events (accept, sent, etc) that happen in the system.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: One and exactly one of LWIP_EVENT_API and LWIP_CALLBACK_API has to be enabled when LWIP_TCP is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_CALLBACK_API" Comment="LWIP_CALLBACK_API (LwIP CallBack API)" Type="list" Group="Callback - TCP Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: One and exactly one of LWIP_EVENT_API and LWIP_CALLBACK_API has to be enabled when LWIP_TCP is enabled." Expression="IF(LWIP_TCP, S_LWIP_CALLBACK_API_OFF, 0)"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_CALLBACK_API=1: The PCB callback function is called directly for the event. This is the default.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_CALLBACK_API" Comment="LWIP_CALLBACK_API (LwIP CallBack API)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>LWIP_CALLBACK_API=1: The PCB callback function is called directly for the event. This is the default.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: One and exactly one of LWIP_EVENT_API and LWIP_CALLBACK_API has to be enabled when LWIP_TCP is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_WND_SCALE" Comment="LWIP_WND_SCALE (Window Scaling Support)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set LWIP_WND_SCALE to 1 to enable window scaling.&lt;br&gt;When LWIP_WND_SCALE is enabled but TCP_RCV_SCALE is 0, we can use a large send window while having a small receive window only.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_RCV_SCALE" Comment="TCP_RCV_SCALE (Receive Scaling Factor Support)" Type="Integer" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="=IF(LWIP_TCP,14,2147483647)" >
        <Description>Set TCP_RCV_SCALE to the desired scaling factor, shift count in the range of 0..14.&lt;br&gt;When LWIP_WND_SCALE is enabled but TCP_RCV_SCALE is 0, we can use a large send window while having a small receive window only.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: If LWIP_TCP is enabled, maximum valid window scale value is 14.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP_PCB_NUM_EXT_ARGS" Comment="LWIP_TCP_PCB_NUM_EXT_ARGS (Number of Additional Argument Entries in an array)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this is &gt; 0, every tcp pcb (including listen pcb) includes a number of additional argument entries in an array (see tcp_ext_arg_alloc_id).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ALTCP" Comment="LWIP_ALTCP (Abstraction Layer TCP API (ALTCP))" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: The application layered tcp API does not work with LWIP_EVENT_API." Expression="!LWIP_EVENT_API"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable the altcp API. altcp is an abstraction layer that prevents applications linking against the tcp.h functions but provides the same functionality. It is used to e.g. add SSL/TLS or proxy-connect support to an application written for the tcp callback API without that application knowing the protocol details.&lt;br&gt;With LWIP_ALTCP=0, applications written against the altcp API can still be compiled but are directly linked against the tcp.h callback API and then cannot use layered protocols.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ALTCP_TLS" Comment="LWIP_ALTCP_TLS (TLS support for ALTCP API.)" Type="list" Group="Callback - TCP Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable TLS support for altcp API. This needs a port of the functions in altcp_tls.h to a TLS library. A port to ARM mbedtls is provided with lwIP, see apps/altcp_tls/ directory and LWIP_ALTCP_TLS_MBEDTLS option.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SINGLE_NETIF" Comment="LWIP_SINGLE_NETIF (Single NETIF)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This option uses use a single netif only. This is the common case for small real-life targets. Some code like routing etc. can be left out.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_HOSTNAME" Comment="LWIP_NETIF_HOSTNAME (NETIF Hostname)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This option uses DHCP_OPTION_HOSTNAME with netif's hostname field.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_API" Comment="LWIP_NETIF_API (Network Interfaces API)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_NETIF_API requires NO_SYS=0" Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is set, netif api is supported (in netifapi.c).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_API" Comment="LWIP_NETIF_API (NETIF API)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is not set, netif api is not supported (in netifapi.c).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Since NO_SYS=1, you cannot use NETIF API.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_STATUS_CALLBACK" Comment="LWIP_NETIF_STATUS_CALLBACK (Callback Function on Interface Status Changes)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set parameter allow to support a callback function whenever an interface changes its up/down status (i.e., due to DHCP IP acquisition).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_EXT_STATUS_CALLBACK" Comment="LWIP_NETIF_EXT_STATUS_CALLBACK (Extended Callback Function for several netif)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set parameter allow to support an extended callback function for several netif related event that supports multiple subscribers.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_LINK_CALLBACK" Comment="LWIP_NETIF_LINK_CALLBACK (Callback Function on Interface Link Changes)" Type="list" Group="Network Interfaces Options" DefaultValue="1" TabName="Key Options" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set parameter allow to support a callback function from an interface whenever the link changes (i.e., link down).&lt;br&gt;Since CubeMx 6.0.0 release, It is enabled like in LwIP Cube FW applications.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_REMOVE_CALLBACK" Comment="LWIP_NETIF_REMOVE_CALLBACK (Callback Function on Interface Removal)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set parameter allow to support a callback function that is called when a netif has been removed.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_HWADDRHINT" Comment="LWIP_NETIF_HWADDRHINT (Cache Link-layer-address Hints)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set parameter allow to support cache link-layer-address hints (e.g. table indices) in struct netif. TCP and UDP can make use of this to prevent scanning the ARP table for every sent packet. While this is faster for big ARP tables or many concurrent connections, it might be counterproductive if you have a tiny ARP table or if there never are concurrent connections.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_TX_SINGLE_PBUF" Comment="LWIP_NETIF_TX_SINGLE_PBUF (Put Data into One Single Pbuf)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_NETIF_TX_SINGLE_PBUF requires TCP_OVERSIZE&gt;0." Expression="IF(LWIP_TCP, TCP_OVERSIZE &gt; 0, 1)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, lwIP tries to put all data to be sent into one single pbuf. This is for compatibility with DMA-enabled MACs that do not support scatter-gather. Beware that this might involve CPU-memcpy before transmitting that would not be needed without this flag! Use this only if you need to!&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: a driver should NOT rely on getting single pbufs but check TX pbufs for being in one piece. If not, @ref pbuf_clone can be used to get a single pbuf.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_TX_SINGLE_PBUF" Comment="LWIP_NETIF_TX_SINGLE_PBUF (Put Data into One Single Pbuf)" Type="list" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, lwIP tries to put all data to be sent into one single pbuf. This is for compatibility with DMA-enabled MACs that do not support scatter-gather. Beware that this might involve CPU-memcpy before transmitting that would not be needed without this flag! Use this only if you need to!&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: a driver should NOT rely on getting single pbufs but check TX pbufs for being in one piece. If not, @ref pbuf_clone can be used to get a single pbuf.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_NETIF_TX_SINGLE_PBUF requires TCP_OVERSIZE&gt;0.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NUM_NETIF_CLIENT_DATA" Comment="LWIP_NUM_NETIF_CLIENT_DATA (Cache Link-layer-address Hints)" Type="Integer" Group="Network Interfaces Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of clients that may store data in client_data member array of struct netif (max. 256).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HAVE_LOOPIF" Comment="LWIP_HAVE_LOOPIF (Loop Interface)" Type="list" Group="NETIF - Loopback Interface Options" DefaultValue="=LWIP_NETIF_LOOPBACK &amp; !LWIP_SINGLE_NETIF" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, LwIP supports loop interface (127.0.0.1). This is only needed when no real netifs are available. If at least one other netif is available, loopback traffic uses this netif.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_LOOPIF_MULTICAST" Comment="LWIP_LOOPIF_MULTICAST (Multicast/IGMP on Loop Interface)" Type="list" Group="NETIF - Loopback Interface Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, LwIP supports multicast/IGMP on loop interface (127.0.0.1).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_LOOPBACK" Comment="LWIP_NETIF_LOOPBACK (NETIF Loopback)" Type="list" Group="NETIF - Loopback Interface Options" DefaultValue="0" TabName="Key Options" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Support sending packets with a destination IP address equal to the netif IP address, looping them back up the stack.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_LOOPBACK_MAX_PBUFS" Comment="LWIP_LOOPBACK_MAX_PBUFS (Maximum Number of Pbufs for Loopback Sending)" Type="Integer" Group="NETIF - Loopback Interface Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Maximum number of pbufs on queue for loopback sending for each netif (0 = disabled).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_LOOPBACK_MULTITHREADING" Comment="LWIP_NETIF_LOOPBACK_MULTITHREADING (Multi-threading)" Type="list" Group="NETIF - Loopback Interface Options" DefaultValue="=!NO_SYS" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_NETIF_LOOPBACK_MULTITHREADING is enabled when NO_SYS=0." Expression="!NO_SYS"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This option indicates whether threading is enabled in the system, as netifs must change how they behave depending on this setting for the LWIP_NETIF_LOOPBACK option to work.&lt;br&gt;Setting this is needed to avoid reentering non-reentrant functions like tcp_input().&lt;br&gt;LWIP_NETIF_LOOPBACK_MULTITHREADING=1: Indicates that the user is using a multithreaded environment like tcpip.c. In this case, netif-&gt;input() is called directly.&lt;br&gt;LWIP_NETIF_LOOPBACK_MULTITHREADING=0: Indicates a polling (or NO_SYS=1) setup. The packets are put on a list and netif_poll() must be called in the main application loop.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETIF_LOOPBACK_MULTITHREADING" Comment="LWIP_NETIF_LOOPBACK_MULTITHREADING (Multi-threading)" Type="list" Group="NETIF - Loopback Interface Options" DefaultValue="=!NO_SYS" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This option indicates whether threading is enabled in the system, as netifs must change how they behave depending on this setting for the LWIP_NETIF_LOOPBACK option to work.&lt;br&gt;Setting this is needed to avoid reentering non-reentrant functions like tcp_input().&lt;br&gt;LWIP_NETIF_LOOPBACK_MULTITHREADING=1: Indicates that the user is using a multithreaded environment like tcpip.c. In this case, netif-&gt;input() is called directly.&lt;br&gt;LWIP_NETIF_LOOPBACK_MULTITHREADING=0: Indicates a polling (or NO_SYS=1) setup. The packets are put on a list and netif_poll() must be called in the main application loop.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_NETIF_LOOPBACK_MULTITHREADING is disabled when NO_SYS=1.</Description>
    </RefParameter>
    <RefParameter Name="TCPIP_THREAD_NAME" Comment="TCPIP_THREAD_NAME (TCPIP Thread Name)" Type="StringRW" Group="Infrastructure - Threading Options" DefaultValue="&quot;tcpip_thread&quot;" TabName="Key Options" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TCPIP_THREAD_NAME is used only if NO_SYS=0." Expression="!NO_SYS"/>
        <Description>Name assigned to the main tcpip thread.</Description>
    </RefParameter>
    <RefParameter Name="TCPIP_THREAD_NAME" Comment="TCPIP_THREAD_NAME (TCPIP Thread Name)" Type="StringRW" Group="Infrastructure - Threading Options" DefaultValue="&quot;tcpip_thread&quot;" TabName="Key Options" Mode="Basic" Visible="false">
        <Description>Name assigned to the main tcpip thread.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TCPIP_THREAD_NAME is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="TCPIP_THREAD_STACKSIZE" Comment="TCPIP_THREAD_STACKSIZE (TCPIP Thread Stack Size)" Type="Integer" Unit="Word(s)" Group="Infrastructure - Threading Options" DefaultValue="1024" TabName="Key Options" Mode="Basic" Min="=FREERTOS$context:configMINIMAL_STACK_SIZE" Max="=FREERTOS$context:MAX_SIZE_IN_USE" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TCPIP_THREAD_STACKSIZE is used only if NO_SYS=0.&lt;br&gt;&lt;b&gt;Default Preset:&lt;/b&gt; This parameter has been set with a non zero value to avoid functional issue with FREERTOS.&lt;br&gt;Up to user to fine tune this parameter value considering all dependencies.&lt;br&gt;&lt;b&gt;Min value:&lt;/b&gt; The Min TCPIP Thread Stack Size value is the Min Stack Size of FREERTOS.&lt;br&gt;&lt;b&gt;Max value:&lt;/b&gt; The Max TCPIP Thread Stack Size value is the Total Heap Size of FREERTOS divided by 4." Expression="!NO_SYS"/>
        <Description>Stack size used by the main tcpip thread (Word 32 bits). The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.</Description>
    </RefParameter>
    <RefParameter Name="TCPIP_THREAD_STACKSIZE" Comment="TCPIP_THREAD_STACKSIZE (TCPIP Thread Stack Size)" Type="Integer" Unit="Byte(s)" Group="Infrastructure - Threading Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" Visible="false">
        <Description>Stack size used by the main tcpip thread. The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TCPIP_THREAD_STACKSIZE is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="TCPIP_THREAD_PRIO" Comment="TCPIP_THREAD_PRIO (TCPIP Thread Priority Level)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="=IF(CMSIS_VERSION, 24, 3)" TabName="Key Options" Mode="Basic" Min="0" Max="=FREERTOS$context:configMAX_PRIORITIES-1" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TCPIP_THREAD_PRIO is used only if NO_SYS=0.&lt;br&gt;&lt;b&gt;Default Preset:&lt;/b&gt; The default value is aligned on FreeRTOS default Task Priority.&lt;br&gt;&lt;b&gt;Max value:&lt;/b&gt; The Max of TCPIP Thread Priority strictly less than the current FREERTOS MAX_PRIORITIES parameter." Expression="!NO_SYS"/>
        <Description>Priority assigned to the main tcpip thread. The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.</Description>
    </RefParameter>
    <RefParameter Name="TCPIP_THREAD_PRIO" Comment="TCPIP_THREAD_PRIO (TCPIP Thread Priority Level)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="1" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" Visible="false">
        <Description>Priority assigned to the main tcpip thread. The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TCPIP_THREAD_PRIO is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="TCPIP_MBOX_SIZE" Comment="TCPIP_MBOX_SIZE (TCPIP Mailbox Size)" Type="Integer" Unit="Byte(s)" Group="Infrastructure - Threading Options" DefaultValue="6" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TCPIP_MBOX_SIZE is used only if NO_SYS=0." Expression="!NO_SYS"/>
        <Description>Mailbox size for the tcpip thread messages. The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when tcpip_init is called.&lt;br&gt;To be functional, the default value (0 in opt.h) is defined to 6 like in CubeMX Firmware packages LwIP examples.</Description>
    </RefParameter>
    <RefParameter Name="TCPIP_MBOX_SIZE" Comment="TCPIP_MBOX_SIZE (TCPIP Mailbox Size)" Type="Integer" Unit="Byte(s)" Group="Infrastructure - Threading Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" Visible="false">
        <Description>Mailbox size for the tcpip thread messages. The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when tcpip_init is called.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TCPIP_MBOX_SIZE is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="SLIPIF_THREAD_NAME" Comment="SLIPIF_THREAD_NAME (TCPIP SLIPIF Loop Thread Name)" Type="StringRW" Group="Infrastructure - Threading Options" DefaultValue="&quot;slipif_loop&quot;" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SLIPIF_THREAD_NAME is used only if NO_SYS=0." Expression="!NO_SYS"/>
        <Description>Name assigned to the slipif_loop thread.</Description>
    </RefParameter>
    <RefParameter Name="SLIPIF_THREAD_NAME" Comment="SLIPIF_THREAD_NAME (TCPIP SLIPIF Loop Thread Name)" Type="StringRW" Group="Infrastructure - Threading Options" DefaultValue="&quot;slipif_loop&quot;" TabName="Key Options" Mode="Advanced" Visible="false">
        <Description>Name assigned to the slipif_loop thread.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SLIPIF_THREAD_NAME is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="SLIPIF_THREAD_STACKSIZE" Comment="SLIPIF_THREAD_STACKSIZE (SLIPIF Thread Stack Size)" Type="Integer" Unit="Word(s)" Group="Infrastructure - Threading Options" DefaultValue="1024" TabName="Key Options" Mode="Advanced" Min="=FREERTOS$context:configMINIMAL_STACK_SIZE" Max="=FREERTOS$context:MAX_SIZE_IN_USE" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SLIPIF_THREAD_STACKSIZE is used only if NO_SYS=0.&lt;br&gt;&lt;b&gt;Default Preset:&lt;/b&gt; This parameter has been set with a non zero value to avoid functional issue with FREERTOS.&lt;br&gt;Up to user to fine tune this parameter value considering all dependencies.&lt;br&gt;&lt;b&gt;Min value:&lt;/b&gt;The Min SLIPIF Thread Stack Size value is the Min Stack Size of FREERTOS.&lt;br&gt;&lt;b&gt;Max value:&lt;/b&gt;The Max SLIPIF Thread Stack Size value is the Total Heap Size of FREERTOS divided by 4." Expression="!NO_SYS"/>
        <Description>Stack size used by the slipif_loop thread. The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.</Description>
    </RefParameter>
    <RefParameter Name="SLIPIF_THREAD_STACKSIZE" Comment="SLIPIF_THREAD_STACKSIZE (SLIPIF Thread Stack Size)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>Stack size used by the slipif_loop thread. The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SLIPIF_THREAD_STACKSIZE is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="SLIPIF_THREAD_PRIO" Comment="SLIPIF_THREAD_PRIO (SLIPIF Thread Priority Level)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="3" TabName="Key Options" Mode="Advanced" Min="0" Max="=FREERTOS$context:configMAX_PRIORITIES-1" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SLIPIF_THREAD_PRIO is used only if NO_SYS=0.&lt;br&gt;&lt;b&gt;Default Preset:&lt;/b&gt; The default value is aligned on FreeRTOS default Task Priority.&lt;br&gt;&lt;b&gt;Max value:&lt;/b&gt;The Max of SLIPIF Thread Priority strictly less than the current FREERTOS MAX_PRIORITIES parameter." Expression="!NO_SYS"/>
        <Description>Priority assigned to the slipif_loop thread. The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.</Description>
    </RefParameter>
    <RefParameter Name="SLIPIF_THREAD_PRIO" Comment="SLIPIF_THREAD_PRIO (SLIPIF Thread Priority Level)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>Priority assigned to the slipif_loop thread. The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SLIPIF_THREAD_PRIO is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_THREAD_NAME" Comment="DEFAULT_THREAD_NAME (Default LwIP Thread Name)" Type="StringRW" Group="Infrastructure - Threading Options" DefaultValue="&quot;lwIP&quot;" TabName="Key Options" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_THREAD_NAME is used only if NO_SYS=0." Expression="!NO_SYS"/>
        <Description>Name assigned to any other lwIP thread.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_THREAD_NAME" Comment="DEFAULT_THREAD_NAME (Default LwIP Thread Name)" Type="StringRW" Group="Infrastructure - Threading Options" DefaultValue="&quot;lwIP&quot;" TabName="Key Options" Mode="Basic" Visible="false">
        <Description>Name assigned to any other lwIP thread.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_THREAD_NAME is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_THREAD_STACKSIZE" Comment="DEFAULT_THREAD_STACKSIZE (Default LwIP Thread Stack Size)" Type="Integer" Unit="Word(s)" Group="Infrastructure - Threading Options" DefaultValue="1024" TabName="Key Options" Mode="Basic" Min="=FREERTOS$context:configMINIMAL_STACK_SIZE" Max="=FREERTOS$context:MAX_SIZE_IN_USE" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_THREAD_STACKSIZE is used only if NO_SYS=0.&lt;br&gt;&lt;b&gt;Default Preset:&lt;/b&gt; This parameter has been set with a non zero value to avoid functional issue with FREERTOS.&lt;br&gt;Up to user to fine tune this parameter value considering all dependencies.&lt;br&gt;&lt;b&gt;Min value:&lt;/b&gt; The Min Default Thread Stack Size value is the Min Stack Size of FREERTOS.&lt;br&gt;&lt;b&gt;Max value:&lt;/b&gt; The Max Default Thread Stack Size value is the Total Heap Size of FREERTOS divided by 4." Expression="!NO_SYS"/>
        <Description>Stack size used by any other lwIP thread.&lt;br&gt;The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_THREAD_STACKSIZE" Comment="DEFAULT_THREAD_STACKSIZE (Default LwIP Thread Stack Size)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" Visible="false">
        <Description>Stack size used by any other lwIP thread.&lt;br&gt;The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_THREAD_STACKSIZE is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_THREAD_PRIO" Comment="DEFAULT_THREAD_PRIO (Default LwIP Thread Priority Level)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="3" TabName="Key Options" Mode="Basic" Min="0" Max="=FREERTOS$context:configMAX_PRIORITIES-1" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_THREAD_PRIO is used only if NO_SYS=0.&lt;br&gt;&lt;b&gt;Default Preset:&lt;/b&gt; The default value is aligned on FreeRTOS default Task Priority.&lt;br&gt;&lt;b&gt;Max value:&lt;/b&gt; The Max of Default Thread Priority strictly less than the current FREERTOS MAX_PRIORITIES parameter." Expression="!NO_SYS"/>
        <Description>Priority assigned to any other lwIP thread.&lt;br&gt;The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_THREAD_PRIO" Comment="DEFAULT_THREAD_PRIO (Default LwIP Thread Priority Level)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="1" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" Visible="false">
        <Description>Priority assigned to any other lwIP thread.&lt;br&gt;The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_THREAD_PRIO is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_RAW_RECVMBOX_SIZE" Comment="DEFAULT_RAW_RECVMBOX_SIZE (Default Mailbox Size on a NETCONN Raw)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_RAW_RECVMBOX_SIZE is used only if NO_SYS=0." Expression="!NO_SYS"/>
        <Description>Mailbox size for the incoming packets on a NETCONN_RAW.&lt;br&gt;The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_RAW_RECVMBOX_SIZE" Comment="DEFAULT_RAW_RECVMBOX_SIZE (Default Mailbox Size on a NETCONN Raw)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" Visible="false">
        <Description>Mailbox size for the incoming packets on a NETCONN_RAW.&lt;br&gt;The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_RAW_RECVMBOX_SIZE is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_UDP_RECVMBOX_SIZE" Comment="DEFAULT_UDP_RECVMBOX_SIZE (Default Mailbox Size on a NETCONN UDP)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="=IF(LWIP_UDP, 6, 0)" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_UDP_RECVMBOX_SIZE is used only if NO_SYS=0." Expression="!NO_SYS"/>
        <Description>Mailbox size for the incoming packets on a NETCONN_UDP.&lt;br&gt;The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.&lt;br&gt;To be functional, the default value (0 in opt.h) is defined to 6 like in CubeMX Firmware packages LwIP examples, if LWIP_UDP is enabled.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_UDP_RECVMBOX_SIZE" Comment="DEFAULT_UDP_RECVMBOX_SIZE (Default Mailbox Size on a NETCONN UDP)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>Mailbox size for the incoming packets on a NETCONN_UDP.&lt;br&gt;The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_UDP_RECVMBOX_SIZE is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_TCP_RECVMBOX_SIZE" Comment="DEFAULT_TCP_RECVMBOX_SIZE (Default Mailbox Size on a NETCONN TCP)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="=IF(LWIP_TCP, 6, 0)" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_TCP_RECVMBOX_SIZE is used only if NO_SYS=0." Expression="!NO_SYS"/>
        <Description>Mailbox size for the incoming packets on a NETCONN_TCP.&lt;br&gt;The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.&lt;br&gt;To be functional, the default value (0 in opt.h) is defined to 6 like in CubeMX Firmware packages LwIP examples, if LWIP_TCP is enabled.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_TCP_RECVMBOX_SIZE" Comment="DEFAULT_TCP_RECVMBOX_SIZE (Default Mailbox Size on a NETCONN TCP)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" Visible="false">
        <Description>Mailbox size for the incoming packets on a NETCONN_TCP.&lt;br&gt;The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_TCP_RECVMBOX_SIZE is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_ACCEPTMBOX_SIZE" Comment="DEFAULT_ACCEPTMBOX_SIZE (Default Mailbox Size for Incoming Connections)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="6" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_ACCEPTMBOX_SIZE is used only if NO_SYS=0." Expression="!NO_SYS"/>
        <Description>Mailbox size for the incoming connections.&lt;br&gt;The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the acceptmbox is created.&lt;br&gt;To be functional, the default value (0 in opt.h) is defined to 6 like in CubeMX Firmware packages LwIP examples.</Description>
    </RefParameter>
    <RefParameter Name="DEFAULT_ACCEPTMBOX_SIZE" Comment="DEFAULT_ACCEPTMBOX_SIZE (Default Mailbox Size for Incoming Connections)" Type="Integer" Group="Infrastructure - Threading Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" Visible="false">
        <Description>Mailbox size for the incoming connections.&lt;br&gt;The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the acceptmbox is created.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: DEFAULT_ACCEPTMBOX_SIZE is used only if NO_SYS=0.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETCONN" Comment="LWIP_NETCONN (NETCONN API)" Type="list" Group="Thread Safe APIs - Netconn Options" DefaultValue="1" TabName="Key Options" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use NETCONN API requires NO_SYS=0 and MEMP_NUM_TCPIP_MSG_API&gt;0 if MEMP_MEM_MALLOC is disabled." Expression="!NO_SYS &amp; IF(!MEMP_MEM_MALLOC, MEMP_NUM_TCPIP_MSG_API &gt; 0, 1)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, Netconn API is enabled (require to use api_lib.c).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETCONN" Comment="LWIP_NETCONN (NETCONN API)" Type="list" Group="Thread Safe APIs - Netconn Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, Netconn API is enabled (require to use api_lib.c).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use NETCONN API requires NO_SYS=0 and MEMP_NUM_TCPIP_MSG_API&gt;0 if MEMP_MEM_MALLOC is disabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCPIP_TIMEOUT" Comment="LWIP_TCPIP_TIMEOUT (Use TCPIP Timeout)" Type="list" Group="Thread Safe APIs - Netconn Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_TCPIP_TIMEOUT requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable tcpip_timeout/tcpip_untimeout to create timers running in tcpip_thread from another thread.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCPIP_TIMEOUT" Comment="LWIP_TCPIP_TIMEOUT (Use TCPIP Timeout)" Type="list" Group="Thread Safe APIs - Netconn Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Enable tcpip_timeout/tcpip_untimeout to create timers running in tcpip_thread from another thread.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_TCPIP_TIMEOUT requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETCONN_SEM_PER_THREAD" Comment="LWIP_NETCONN_SEM_PER_THREAD (Netconn uses One Semaphore per Thread)" Type="list" Group="Thread Safe APIs - Netconn Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_NETCONN_SEM_PER_THREAD requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this parameter to use one (thread-local) semaphore per thread calling socket/netconn functions instead of allocating one semaphore per netconn (and per select etc.)&lt;br&gt;ATTENTION: a thread-local semaphore for API calls is needed:&lt;br&gt;- LWIP_NETCONN_THREAD_SEM_GET() returning a sys_sem_t&lt;br&gt;- LWIP_NETCONN_THREAD_SEM_ALLOC() creating the semaphore&lt;br&gt;- LWIP_NETCONN_THREAD_SEM_FREE() freeing the semaphore&lt;br&gt;The latter 2 can be invoked up by calling netconn_thread_init()/netconn_thread_cleanup().&lt;br&gt;Ports may call these for threads created with sys_thread_new().&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETCONN_SEM_PER_THREAD" Comment="LWIP_NETCONN_SEM_PER_THREAD (Netconn uses One Semaphore per Thread)" Type="list" Group="Thread Safe APIs - Netconn Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Enable this parameter to use one (thread-local) semaphore per thread calling socket/netconn functions instead of allocating one semaphore per netconn (and per select etc.)&lt;br&gt;ATTENTION: a thread-local semaphore for API calls is needed:&lt;br&gt;- LWIP_NETCONN_THREAD_SEM_GET() returning a sys_sem_t&lt;br&gt;- LWIP_NETCONN_THREAD_SEM_ALLOC() creating the semaphore&lt;br&gt;- LWIP_NETCONN_THREAD_SEM_FREE() freeing the semaphore&lt;br&gt;The latter 2 can be invoked up by calling netconn_thread_init()/netconn_thread_cleanup().&lt;br&gt;Ports may call these for threads created with sys_thread_new().&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_NETCONN_SEM_PER_THREAD requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETCONN_FULLDUPLEX" Comment="LWIP_NETCONN_FULLDUPLEX (Netconn in Full Duplex)" Type="list" Group="Thread Safe APIs - Netconn Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_NETCONN_FULLDUPLEX requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables code that allows reading from one thread, writing from a 2nd thread and closing from a 3rd thread at the same time.&lt;br&gt;ATTENTION: This is currently really alpha! Some requirements:&lt;br&gt;- LWIP_NETCONN_SEM_PER_THREAD==1 is required to use one socket/netconn from multiple threads at once&lt;br&gt;- sys_mbox_free() has to unblock receive tasks waiting on recvmbox/acceptmbox and prevent a task pending on this during/after deletion.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_NETCONN_FULLDUPLEX" Comment="LWIP_NETCONN_FULLDUPLEX (Netconn in Full Duplex)" Type="list" Group="Thread Safe APIs - Netconn Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter enables code that allows reading from one thread, writing from a 2nd thread and closing from a 3rd thread at the same time.&lt;br&gt;ATTENTION: This is currently really alpha! Some requirements:&lt;br&gt;- LWIP_NETCONN_SEM_PER_THREAD==1 is required to use one socket/netconn from multiple threads at once&lt;br&gt;- sys_mbox_free() has to unblock receive tasks waiting on recvmbox/acceptmbox and prevent a task pending on this during/after deletion.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_NETCONN_FULLDUPLEX requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SOCKET" Comment="LWIP_SOCKET (Socket API)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="1" TabName="Key Options" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use Socket API requires LWIP_NETCONN enabled, NO_SYS=0, MEMP_NUM_NETCONN&gt;0, MEMP_NUM_TCPIP_MSG_API&gt;0 when MEMP_MEM_MALLOC is disabled." Expression="!NO_SYS &amp; LWIP_NETCONN &amp; (MEMP_NUM_NETCONN &gt; 0) &amp; IF(!MEMP_MEM_MALLOC, MEMP_NUM_TCPIP_MSG_API &gt; 0, 1)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1" Semaphore="S_LWIP_SOCKET"/>
        <Description>When this parameter is enabled, Socket API is enabled (require to use sockets.c)</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SOCKET" Comment="LWIP_SOCKET (Socket API)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, Socket API is enabled (require to use sockets.c).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use Socket API requires LWIP_NETCONN enabled, NO_SYS=0, MEMP_NUM_NETCONN&gt;0, MEMP_NUM_TCPIP_MSG_API&gt;0 when MEMP_MEM_MALLOC is disabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_COMPAT_SOCKETS" Comment="LWIP_COMPAT_SOCKETS (BSD-style Socket Functions Names)" Type="Integer" Group="Thread Safe APIs - Socket Options" DefaultValue="1" TabName="Key Options" Mode="Basic" Min="0" Max="2" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_COMPAT_SOCKETS option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <Description>LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names through defines.&lt;br&gt;LWIP_COMPAT_SOCKETS==2: Same as ==1 but correctly named functions are created.&lt;br&gt;While this helps code completion, it might conflict with existing libraries (only used if you use sockets.c).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_COMPAT_SOCKETS" Comment="LWIP_COMPAT_SOCKETS (BSD-style Socket Functions Names)" Type="Integer" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Visible="false">
        <Description>When this parameter is enabled, Socket API is enabled (require to use sockets.c).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_COMPAT_SOCKETS option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_POSIX_SOCKETS_IO_NAMES" Comment="LWIP_POSIX_SOCKETS_IO_NAMES (POSIX-style Sockets Functions Names)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_POSIX_SOCKETS_IO_NAMES option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable POSIX-style sockets functions names. Disable this option if you use a POSIX operating system that uses the same names (read, write and close). (only used if you use sockets.c).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_POSIX_SOCKETS_IO_NAMES" Comment="LWIP_POSIX_SOCKETS_IO_NAMES (POSIX-style Sockets Functions Names)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Enable POSIX-style sockets functions names. Disable thisoption if you use a POSIX operating system that uses the same names (read, write and close). (only used if you use sockets.c).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_POSIX_SOCKETS_IO_NAMES option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SOCKET_OFFSET" Comment="LWIP_SOCKET_OFFSET (Socket Offset Number)" Type="Integer" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_SOCKET_OFFSET requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <Description>LWIP_SOCKET_OFFSET==n: Increases the file descriptor number created by LwIP with n.&lt;br&gt;This can be useful when there are multiple APIs which create file descriptors.&lt;br&gt;When they all start with a different offset and you won't make them overlap you can re implement read/write/close/ioctl/fnctl to send the requested action to the right library (sharing select will need more work though).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SOCKET_OFFSET" Comment="LWIP_SOCKET_OFFSET (Socket Offset Number)" Type="Integer" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Visible="false">
        <Description>LWIP_SOCKET_OFFSET==n: Increases the file descriptor number created by LwIP with n.&lt;br&gt;This can be useful when there are multiple APIs which create file descriptors.&lt;br&gt;When they all start with a different offset and you won't make them overlap you can re implement read/write/close/ioctl/fnctl to send the requested action to the right library (sharing select will need more work though).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_SOCKET_OFFSET requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP_KEEPALIVE" Comment="LWIP_TCP_KEEPALIVE (TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT Options)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_TCP_KEEPALIVE option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds (does not require sockets.c, and will affect tcp.c).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP_KEEPALIVE" Comment="LWIP_TCP_KEEPALIVE (TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT Options)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds (does not require sockets.c, and will affect tcp.c).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_TCP_KEEPALIVE option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_SNDTIMEO" Comment="LWIP_SO_SNDTIMEO (Send Timeout for Socket/Netconns)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_SNDTIMEO option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable send timeout for sockets/netconns and SO_SNDTIMEO processing.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_SNDTIMEO" Comment="LWIP_SO_SNDTIMEO (Send Timeout for Socket/Netconns)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Enable send timeout for sockets/netconns and SO_SNDTIMEO processing.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_SNDTIMEO option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_RCVTIMEO" Comment="LWIP_SO_RCVTIMEO (Receive Timeout for Socket/Netconns)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_RCVTIMEO option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable receive timeout for sockets/netconns and SO_RCVTIMEO processing.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_RCVTIMEO" Comment="LWIP_SO_RCVTIMEO (Receive Timeout for Socket/Netconns)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Enable receive timeout for sockets/netconns and SO_RCVTIMEO processing.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_RCVTIMEO option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_SNDRCVTIMEO_NONSTANDARD" Comment="LWIP_SO_SNDRCVTIMEO_NONSTANDARD (Send/Receive Non Standard Timeout)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_SNDRCVTIMEO_NONSTANDARD option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, SO_RCVTIMEO/SO_SNDTIMEO take an int (milliseconds, much like winsock does) instead of a struct timeval (default).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_SNDRCVTIMEO_NONSTANDARD" Comment="LWIP_SO_SNDRCVTIMEO_NONSTANDARD (Send/Receive Non Standard Timeout)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, SO_RCVTIMEO/SO_SNDTIMEO take an int (milliseconds, much like winsock does) instead of a struct timeval (default).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_SNDRCVTIMEO_NONSTANDARD option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_RCVBUF" Comment="LWIP_SO_RCVBUF (SO_RCVBUF Processing)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_RCVBUF option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable SO_RCVBUF processing.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_RCVBUF" Comment="LWIP_SO_RCVBUF (SO_RCVBUF Processing)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Enable SO_RCVBUF processing.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_RCVBUF option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_LINGER" Comment="LWIP_SO_LINGER (SO_LINGER Processing)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_LINGER option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This paarmeter enables SO_LINGER processing.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SO_LINGER" Comment="LWIP_SO_LINGER (SO_LINGER Processing)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This paarmeter enables SO_LINGER processing.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SO_LINGER option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="RECV_BUFSIZE_DEFAULT" Comment="RECV_BUFSIZE_DEFAULT (SO_RCVBUF Size Value)" Type="Integer" Group="Thread Safe APIs - Socket Options" DefaultValue="2000000000" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable RECV_BUFSIZE_DEFAULT option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <Description>If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.</Description>
    </RefParameter>
    <RefParameter Name="RECV_BUFSIZE_DEFAULT" Comment="RECV_BUFSIZE_DEFAULT (SO_RCVBUF Size Value)" Type="Integer" Group="Thread Safe APIs - Socket Options" DefaultValue="2000000000" TabName="Key Options" Mode="Advanced" Visible="false">
        <Description>If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable RECV_BUFSIZE_DEFAULT option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT" Comment="LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT (SO_LINGER Processing)" Type="Integer" Group="Thread Safe APIs - Socket Options" DefaultValue="20000" TabName="Key Options" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <Description>If set by default, TCP socket/netconn close waits 20 seconds max to send the FIN.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT" Comment="LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT (SO_LINGER Processing)" Type="Integer" Group="Thread Safe APIs - Socket Options" DefaultValue="20000" TabName="Key Options" Mode="Advanced" Visible="false">
        <Description>If set by default, TCP socket/netconn close waits 20 seconds max to send the FIN.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="SO_REUSE" Comment="SO_REUSE (SO_REUSEADDR Option)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable SO_REUSE option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable SO_REUSEADDR option.</Description>
    </RefParameter>
    <RefParameter Name="SO_REUSE" Comment="SO_REUSE (SO_REUSEADDR Option)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable SO_REUSEADDR option.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable SO_REUSE option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="SO_REUSE_RXTOALL" Comment="SO_REUSE_RXTOALL (Pass Copy of Incoming Broadcast/Multicast Packets)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable SO_REUSE_RXTOALL option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Pass a copy of incoming broadcast/multicast packets to all local matches if SO_REUSEADDR is turned on.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Adds a memcpy for every packet if passing to more than one pcb!</Description>
    </RefParameter>
    <RefParameter Name="SO_REUSE_RXTOALL" Comment="SO_REUSE_RXTOALL (Pass Copy of Incoming Broadcast/Multicast Packets)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Pass a copy of incoming broadcast/multicast packets to all local matches if SO_REUSEADDR is turned on.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Adds a memcpy for every packet if passing to more than one pcb!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable SO_REUSE_RXTOALL option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_FIONREAD_LINUXMODE" Comment="LWIP_FIONREAD_LINUXMODE (Window verus Linux Pending Data)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_FIONREAD_LINUXMODE option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>By default, LWIP_FIONREAD_LINUXMODE is disabled: ioctl/FIONREAD returns the amount of pending data in the network buffer. This is the way windows does it. It's the default for lwIP since it is smaller.&lt;br&gt;When LWIP_FIONREAD_LINUXMODE is enabled: ioctl/FIONREAD returns the size of the next pending datagram in bytes. This is the way linux does it. This code is only here for compatibility.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_FIONREAD_LINUXMODE" Comment="LWIP_FIONREAD_LINUXMODE (Window verus Linux Pending Data)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>By default, LWIP_FIONREAD_LINUXMODE is disabled: ioctl/FIONREAD returns the amount of pending data in the network buffer. This is the way windows does it. It's the default for lwIP since it is smaller.&lt;br&gt;When LWIP_FIONREAD_LINUXMODE is enabled: ioctl/FIONREAD returns the size of the next pending datagram in bytes. This is the way linux does it. This code is only here for compatibility.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_FIONREAD_LINUXMODE option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SOCKET_SELECT" Comment="LWIP_SOCKET_SELECT (Select for Socket)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="1" TabName="Key Options" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SOCKET_SELECT option requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1" Semaphore="S_LWIP_SOCKET"/>
        <Description>When this parameter is enabled, select() for sockets uses a netconn callback to keep track of events. This saves RAM (counters per socket) and code (netconn event callback), which should improve performance a bit).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SOCKET_SELECT" Comment="LWIP_SOCKET_SELECT (Select for Socket)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, select() for sockets uses a netconn callback to keep track of events. This saves RAM (counters per socket) and code (netconn event callback), which should improve performance a bit).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SOCKET_SELECT option requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SOCKET_POLL" Comment="LWIP_SOCKET_POLL (Poll for Socket)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="1" TabName="Key Options" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SOCKET_POLL requires RTOS enabled (NO_SYS=0)." Expression="!NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1" Semaphore="S_LWIP_SOCKET"/>
        <Description>When this parameter is enabled, enable poll() for sockets (including struct pollfd, nfds_t, and constants).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SOCKET_POLL" Comment="LWIP_SOCKET_POLL (Poll for Socket)" Type="list" Group="Thread Safe APIs - Socket Options" DefaultValue="0" TabName="Key Options" Mode="Basic" Visible="false">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, enable poll() for sockets (including struct pollfd, nfds_t, and constants).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable LWIP_SOCKET_POLL requires RTOS enabled (NO_SYS=0).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_USE_EXTERNAL_POLARSSL" Comment="LWIP_USE_EXTERNAL_POLARSSL (Use external PolarSSL library)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this option to use external PolarSSL library.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_USE_EXTERNAL_MBEDTLS" Comment="LWIP_USE_EXTERNAL_MBEDTLS (Use external mbed TLS library)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: This parameter is enabled when MBEDTLS is enabled." Expression="!S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this option to use mbed TLS library.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_USE_EXTERNAL_MBEDTLS" Comment="LWIP_USE_EXTERNAL_MBEDTLS (Use external mbed TLS library)" Type="list" Group="PolarSSL Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This option when using MBEDTLS Middleware.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This parameter is enabled asa MBEDTLS is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_MD5" Comment="LWIP_INCLUDED_POLARSSL_MD5 (LwIP internal PolarSSL for MD5)" Type="list" Group="PolarSSL Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: CHAP (CHAP_SUPPORT), EAP (EAP_SUPPORT), L2TP(PPPOL2TP_AUTH_SUPPORT) AUTH and MD5 Random (PPP_MD5_RANDM) require MD5 support (LWIP_INCLUDED_POLARSSL_MD5 enabled)." Expression="!S_MBEDTLS &amp; (CHAP_SUPPORT|EAP_SUPPORT|PPPOL2TP_AUTH_SUPPORT|PPP_MD5_RANDM)"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enabled allows to use lwIP internal PolarSSL for MD5.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_MD5" Comment="LWIP_INCLUDED_POLARSSL_MD5 (LwIP internal PolarSSL for MD5)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: CHAP (CHAP_SUPPORT), EAP (EAP_SUPPORT), L2TP(PPPOL2TP_AUTH_SUPPORT) AUTH and MD5 Random (PPP_MD5_RANDM) require MD5 support (LWIP_INCLUDED_POLARSSL_MD5 enabled)." Expression="!S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this parameter to use lwIP internal PolarSSL for MD5.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: CHAP (CHAP_SUPPORT), EAP (EAP_SUPPORT), L2TP(PPPOL2TP_AUTH_SUPPORT) AUTH and MD5 Random (PPP_MD5_RANDM) require MD5 support (LWIP_INCLUDED_POLARSSL_MD5 enabled).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_MD5" Comment="LWIP_INCLUDED_POLARSSL_MD5 (LwIP internal PolarSSL for MD5)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter allows to use lwIP internal PolarSSL for MD5.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This parameter is disabled when MBEDTLS Middleware is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_MD4" Comment="LWIP_INCLUDED_POLARSSL_MD4 (LwIP internal PolarSSL for MD4)" Type="list" Group="PolarSSL Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires MD4 support (LWIP_INCLUDED_POLARSSL_MD4 enabled)." Expression="!S_MBEDTLS &amp; MSCHAP_SUPPORT"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enabled allows to use lwIP internal PolarSSL for MD4.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_MD4" Comment="LWIP_INCLUDED_POLARSSL_MD4 (LwIP internal PolarSSL for MD4)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires MD4 support (LWIP_INCLUDED_POLARSSL_MD4 enabled)." Expression="!S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this parameter to use lwIP internal PolarSSL for MD4.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires MD4 support (LWIP_INCLUDED_POLARSSL_MD4 enabled).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_MD4" Comment="LWIP_INCLUDED_POLARSSL_MD4 (LwIP internal PolarSSL for MD4)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter allows to use lwIP internal PolarSSL for MD4.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This parameter is disabled when MBEDTLS Middleware is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_SHA1" Comment="LWIP_INCLUDED_POLARSSL_SHA1 (LwIP internal PolarSSL for SHA1)" Type="list" Group="PolarSSL Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires SHA1 support (LWIP_INCLUDED_POLARSSL_SHA1 enabled)." Expression="!S_MBEDTLS &amp; MSCHAP_SUPPORT"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enabled allows to use lwIP internal PolarSSL for SHA1.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_SHA1" Comment="LWIP_INCLUDED_POLARSSL_SHA1 (LwIP internal PolarSSL for SHA1)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires SHA1 support (LWIP_INCLUDED_POLARSSL_SHA1 enabled)." Expression="!S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this parameter to use lwIP internal PolarSSL for SHA1.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires SHA1 support (LWIP_INCLUDED_POLARSSL_SHA1 enabled).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_SHA1" Comment="LWIP_INCLUDED_POLARSSL_SHA1 (LwIP internal PolarSSL for SHA1)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter allows to use lwIP internal PolarSSL for SHA1.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This parameter is disabled when MBEDTLS Middleware is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_DES" Comment="LWIP_INCLUDED_POLARSSL_DES (LwIP internal PolarSSL for DES)" Type="list" Group="PolarSSL Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires DES support (LWIP_INCLUDED_POLARSSL_DES enabled)." Expression="!S_MBEDTLS &amp; MSCHAP_SUPPORT"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enabled allows to use lwIP internal PolarSSL for DES.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_DES" Comment="LWIP_INCLUDED_POLARSSL_DES (LwIP internal PolarSSL for DES)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires SHA1 support (LWIP_INCLUDED_POLARSSL_SHA1 enabled)." Expression="!S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this parameter to use lwIP internal PolarSSL for DES.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires DES support (LWIP_INCLUDED_POLARSSL_DES enabld).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_DES" Comment="LWIP_INCLUDED_POLARSSL_DES (LwIP internal PolarSSL for DES)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter allows to use lwIP internal PolarSSL for DES.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This parameter is disabled when MBEDTLS Middleware is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_ARC4" Comment="LWIP_INCLUDED_POLARSSL_ARC4 (LwIP internal PolarSSL for ARC4)" Type="list" Group="PolarSSL Options" DefaultValue="1" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) and MPPE (MPPE_SUPPORT) require ARC4 support (LWIP_INCLUDED_POLARSSL_ARC4 enabled)." Expression="!S_MBEDTLS &amp; MSCHAP_SUPPORT &amp; MPPE_SUPPORT"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enabled allows to use lwIP internal PolarSSL for ARC4.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_ARC4" Comment="LWIP_INCLUDED_POLARSSL_ARC4 (LwIP internal PolarSSL for ARC4)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) and MPPE (MPPE_SUPPORT) require ARC4 support (LWIP_INCLUDED_POLARSSL_ARC4 enabled)." Expression="!S_MBEDTLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable this parameter to use lwIP internal PolarSSL for ARC4.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MSCHAP (MSCHAP_SUPPORT) requires ARC4 support (LWIP_INCLUDED_POLARSSL_ARC4 enabled).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_INCLUDED_POLARSSL_ARC4" Comment="LWIP_INCLUDED_POLARSSL_ARC4 (LwIP internal PolarSSL for ARC4)" Type="list" Group="PolarSSL Options" DefaultValue="0" TabName="Key Options" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter allows to use lwIP internal PolarSSL for ARC4.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This parameter is disabled when MBEDTLS Middleware is enabled.</Description>
    </RefParameter>
    <RefParameter Name="PPP_SUPPORT" Comment="PPP_SUPPORT (PPP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Warning: up to user to take care!&lt;/b&gt;: Enable PPP requires user specific code not generated by STM32Cube MX. This is reserved for advanced users.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use PPP_SUPPORT requires at least PPPOS_SUPPORT, PPPOE_SUPPORT or PPPOL2TP_SUPPORT turned on.&lt;br&gt;PPP_SUPPORT needs also PPP_IPV4_SUPPORT and/or PPP_IPV6_SUPPORT turned on." Expression="(PPPOS_SUPPORT|PPPOE_SUPPORT|PPPOL2TP_SUPPORT) &amp; (PPP_IPV4_SUPPORT|PPP_IPV6_SUPPORT)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, Point-to-Point Protocol (PPP) is enabled.</Description>
    </RefParameter>
    <RefParameter Name="PPP_SUPPORT" Comment="PPP_SUPPORT (PPP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>When this parameter is enabled, Point-to-Point Protocol (PPP) is enabled.&lt;br&gt;&lt;b&gt;Warning: up to user to take care!&lt;/b&gt;: Enable PPP requires user specific code not generated by STM32Cube MX. This is reserved for advanced users.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use PPP_SUPPORT requires PPPOS_SUPPORT, PPPOE_SUPPORT or PPPOL2TP_SUPPORT turned on.&lt;br&gt;PPP_SUPPORT needs also PPP_IPV4_SUPPORT and/or PPP_IPV6_SUPPORT turned on.</Description>
    </RefParameter>
    <RefParameter Name="PPPOE_SUPPORT" Comment="PPPOE_SUPPORT (PPP Over Ethernet)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use PPPOE_SUPPORT requires LWIP_ETHERNET." Expression="LWIP_ETHERNET"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable PPP Over Ethernet.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Enable PPP requires user specific code not generated by STM32Cube MX. This is reserved for advanced users.</Description>
    </RefParameter>
    <RefParameter Name="PPPOE_SUPPORT" Comment="PPPOE_SUPPORT (PPP Over Ethernet)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Enable PPP Over Ethernet.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use PPPOE_SUPPORT requires LWIP_ETHERNET.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Enable PPP requires user specific code not generated by STM32Cube MX. This is reserved for advanced users.</Description>
    </RefParameter>
    <RefParameter Name="PPPOL2TP_SUPPORT" Comment="PPPOL2TP_SUPPORT (PPP Over L2TP)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP Over L2TP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPPOL2TP_AUTH_SUPPORT" Comment="PPPOL2TP_AUTH_SUPPORT (PPP Over L2TP Auth)" Type="list" Group="PPP Options" DefaultValue="=PPPOL2TP_SUPPORT" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP Over L2TP Auth (enable MD5 support).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPPOS_SUPPORT" Comment="PPPOS_SUPPORT (PPP Over Serial)" Type="list" Group="PPP Options" DefaultValue="=PPP_SUPPORT" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable PPP Over Serial.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: PPP_SUPPORT needs either PPPOS_SUPPORT or PPPOE_SUPPORT turned on.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Enable PPP requires user specific code not generated by STM32Cube MX. This is reserved for advanced users.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_PPP_API" Comment="LWIP_PPP_API (PPP API)" Type="list" Group="PPP Options" DefaultValue="=PPP_SUPPORT &amp; !NO_SYS" TabName="PPP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_PPP_API requires NO_SYS=0 and PPP_SUPPORT enabled." Expression="!NO_SYS &amp; PPP_SUPPORT"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP API (in pppapi.c).&lt;br&gt;It is by default enabled if NO_SYS equals 0 and if PPP_SUPPORT is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_PPP_API" Comment="LWIP_PPP_API (PPP API)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter enables PPP API (in pppapi.c).&lt;br&gt;It is by default enabled if NO_SYS equals 0 and if PPP_SUPPORT is enabled.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Use LWIP_PPP_API requires NO_SYS=0 and PPP_SUPPORT enabled.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_PPP_PCB" Comment="MEMP_NUM_PPP_PCB (Number of Simultaneously Active PPP Connections)" Type="integer" Group="PPP Options" DefaultValue="1" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of simultaneously active PPP connections (requires the PPP_SUPPORT option)</Description>
    </RefParameter>
    <RefParameter Name="PPP_NUM_TIMEOUTS_PER_PCB" Comment="PPP_NUM_TIMEOUTS_PER_PCB (Number of Simultaneously sys_timeouts per PCB)" Type="integer" Group="PPP Options" DefaultValue="=1 + PPP_IPV4_SUPPORT + PPP_IPV6_SUPPORT + CCP_SUPPORT" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of sys_timeouts running in parallel per ppp_pcb.&lt;br&gt;See the detailed explanation at the end of ppp_impl.h about simultaneous timers analysis (requires the PPP_SUPPORT option).</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_PPPOS_INTERFACES" Comment="MEMP_NUM_PPPOS_INTERFACES (Number of Concurrent Active PPPoS Interfaces)" Type="integer" Group="PPP Options" DefaultValue="=MEMP_NUM_PPP_PCB" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of concurrently active PPPoS interfaces (only used with PPPOS_SUPPORT enabled)</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_PPPOE_INTERFACES" Comment="MEMP_NUM_PPPOE_INTERFACES (Number of Concurrent Active PPPoE Interfaces)" Type="integer" Group="PPP Options" DefaultValue="1" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of concurrently active PPPoE interfaces (only used with PPPOE_SUPPORT enabled)</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_PPPOL2TP_INTERFACES" Comment="MEMP_NUM_PPPOL2TP_INTERFACES (Number of Concurrent Active PPPoL2TP Interfaces)" Type="integer" Group="PPP Options" DefaultValue="1" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of concurrently active PPPoL2TP interfaces (only used with PPPOL2TP_SUPPORT enabled)</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_PPP_API_MSG" Comment="MEMP_NUM_PPP_API_MSG (Number of Concurrent PPP API messages)" Type="integer" Group="PPP Options" DefaultValue="5" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of concurrent PPP API messages (in pppapi.c)</Description>
    </RefParameter>
    <RefParameter Name="PPP_INPROC_IRQ_SAFE" Comment="PPP_INPROC_IRQ_SAFE (PPP Input Safe Interrupt)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>When this parameter is enabled, pppos_input() is called using tcpip_callback().&lt;br&gt;Please read the "PPPoS input path" chapter in the PPP documentation about this option.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PRINTPKT_SUPPORT" Comment="PRINTPKT_SUPPORT (PPP Print Packet)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP print packet support.&lt;br&gt;Mandatory for debugging, it displays exchanged packet content in debug trace.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_IPV4_SUPPORT" Comment="PPP_IPV4_SUPPORT (PPP IPv4)" Type="list" Group="PPP Options" DefaultValue="=LWIP_IPV4" TabName="PPP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: PPP_IPV4_SUPPORT needs LWIP_IPV4 turned on." Expression="LWIP_IPV4"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP IPv4 support.&lt;br&gt;By default, this parameter is set with LWIP_IPV4.</Description>
    </RefParameter>
    <RefParameter Name="PPP_IPV4_SUPPORT" Comment="PPP_IPV4_SUPPORT (PPP IPv4)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter enables PPP IPv4 support.&lt;br&gt;By default, this parameter is set with LWIP_IPV4.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: PPP_IPV4_SUPPORT needs LWIP_IPV4 turned on.</Description>
    </RefParameter>
    <RefParameter Name="PPP_IPV6_SUPPORT" Comment="PPP_IPV6_SUPPORT (PPP IPv6)" Type="list" Group="PPP Options" DefaultValue="=LWIP_IPV6" TabName="PPP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: PPP_IPV6_SUPPORT needs LWIP_IPV6 turned on." Expression="LWIP_IPV6"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP IPv6 support.&lt;br&gt;By default, this parameter is set with LWIP_IPV6.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: PPP_IPV6_SUPPORT needs LWIP_IPV6 turned on.</Description>
    </RefParameter>
    <RefParameter Name="PPP_IPV6_SUPPORT" Comment="PPP_IPV6_SUPPORT (PPP IPv6)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter enables PPP IPv6 support.&lt;br&gt;By default, this parameter is set with LWIP_IPV6.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: PPP_IPV6_SUPPORT needs LWIP_IPV6 turned on.</Description>
    </RefParameter>
    <RefParameter Name="PPP_NOTIFY_PHASE" Comment="PPP_NOTIFY_PHASE (PPP Notify Phase)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP notify phase support.&lt;br&gt;PPP notify phase support allows you to set a callback which is called on change of the internal PPP state machine.&lt;br&gt;This can be used for example to set a LED pattern depending on the current phase of the PPP session.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_USE_PBUF_RAM" Comment="PPP_USE_PBUF_RAM (PPP use Memory from Heap)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>pbuf_type PPP is using for LCP, PAP, CHAP, EAP, CCP, IPCP and IP6CP packets.&lt;br&gt;Memory allocated must be single buffered for PPP to works, it requires pbuf that are not going to be chained when allocated. This requires setting PBUF_POOL_BUFSIZE to at least 512 bytes, which is quite huge for small systems.&lt;br&gt;Setting PPP_USE_PBUF_RAM to 1 makes PPP use memory from heap where continuous buffers are required, allowing you to use a smaller PBUF_POOL_BUFSIZE.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_FCS_TABLE" Comment="PPP_FCS_TABLE (PPP FCS Table)" Type="list" Group="PPP Options" DefaultValue="1" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Keep a 256*2 byte table to speed up FCS calculation for PPPoS.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PAP_SUPPORT" Comment="PAP_SUPPORT (PAP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Support Password Authentication Protocol (PAP).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="CHAP_SUPPORT" Comment="CHAP_SUPPORT (CHAP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Support Challenge Handshake Authentication Protocol (CHAP).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MSCHAP_SUPPORT" Comment="MSCHAP_SUPPORT (MSCHAP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Enable MSCHAP_SUPPORT requires CHAP_SUPPORT enabled." Expression="CHAP_SUPPORT"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Support Microsoft version of Challenge Handshake Authentication Protocol (MSCHAP).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set MSCHAP_SUPPORT requires CHAP_SUPPORT enabled.</Description>
    </RefParameter>
    <RefParameter Name="MSCHAP_SUPPORT" Comment="MSCHAP_SUPPORT (MSCHAP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Support Microsoft version of Challenge Handshake Authentication Protocol (MSCHAP).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Enable MSCHAP_SUPPORT requires CHAP_SUPPORT enabled.</Description>
    </RefParameter>
    <RefParameter Name="EAP_SUPPORT" Comment="EAP_SUPPORT (PPP EAP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP EAP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="CCP_SUPPORT" Comment="CCP_SUPPORT (PPP CCP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP CCP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MPPE_SUPPORT" Comment="MPPE_SUPPORT (MPPE)" Type="list" Group="PPP Options" DefaultValue="1" TabName="PPP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set MPPE_SUPPORT requires CCP_SUPPORT, MSCHAP and CHAP_SUPPORT enabled." Expression="CCP_SUPPORT &amp; MSCHAP_SUPPORT &amp; CHAP_SUPPORT"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables MPPE.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MPPE_SUPPORT" Comment="MPPE_SUPPORT (MPPE)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter enables MPPE.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set MPPE_SUPPORT requires CCP_SUPPORT, MSCHAP and CHAP_SUPPORT enabled.</Description>
    </RefParameter>
    <RefParameter Name="CBCP_SUPPORT" Comment="CBCP_SUPPORT (CBCP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Support Callback Control Protocol (CBCP).&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: CURRENTLY NOT SUPPORTED! DO NOT SET!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="ECP_SUPPORT" Comment="ECP_SUPPORT (ECP Module)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Support ECP Control Protocol.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: CURRENTLY NOT SUPPORTED! DO NOT SET!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DEMAND_SUPPORT" Comment="DEMAND_SUPPORT (Dial on Demand)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter enables dial on demand support.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: CURRENTLY NOT SUPPORTED! DO NOT SET!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LQR_SUPPORT" Comment="LQR_SUPPORT (PPP Link Quality Report)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP link quality report. Do nothing except exchanging some LCP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_SERVER" Comment="PPP_SERVER (PPP Server)" Type="list" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables PPP server support (waiting for incoming PPP session).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_OUR_NAME" Comment="PPP_OUR_NAME (PPP Authentication Name)" Type="StringRW" Group="PPP Options" DefaultValue="LwIP" TabName="PPP" Mode="Advanced" Visible="true">
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set PPP_OUR_NAME requires PPP_SERVER enabled." Expression="PPP_SERVER"/>
        <Description>This parameter purpose is to set our name for authentication.</Description>
    </RefParameter>
    <RefParameter Name="PPP_OUR_NAME" Comment="PPP_OUR_NAME (PPP Authentication Name)" Type="StringRW" Group="PPP Options" DefaultValue="LwIP" TabName="PPP" Mode="Advanced" Visible="false">
        <Description>This parameter purpose is to set our name for authentication.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set PPP_OUR_NAME requires PPP_SERVER enabled.</Description>
    </RefParameter>
    <RefParameter Name="VJ_SUPPORT" Comment="VJ_SUPPORT (VJ Header Compression)" Type="list" Group="PPP Options" DefaultValue="1" TabName="PPP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set VJ_SUPPORT requires PPP_IPV4_SUPPORT and PPPOS_SUPPORT enabled." Expression="PPPOS_SUPPORT &amp; PPP_IPV4_SUPPORT"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Support Van Jacobson (VJ) header compression.</Description>
    </RefParameter>
    <RefParameter Name="VJ_SUPPORT" Comment="VJ_SUPPORT (VJ Header Compression)" Type="list" Group="PPP Options" DefaultValue="1" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Support Van Jacobson (VJ) header compression.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set VJ_SUPPORT requires PPP_IPV4_SUPPORT and PPPOS_SUPPORT enabled.</Description>
    </RefParameter>
    <RefParameter Name="PPP_MD5_RANDM" Comment="PPP_MD5_RANDM (PPP MD5 Randomness)" Type="list" Group="PPP Options" DefaultValue="=CHAP_SUPPORT|EAP_SUPPORT|PPPOL2TP_AUTH_SUPPORT" TabName="PPP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Use MD5 for better randomness. Enabled by default if CHAP, EAP, or L2TP AUTH support is enabled.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="FSM_DEFTIMEOUT" Comment="FSM_DEFTIMEOUT (FSM Timeout)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="6" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Timeout time in seconds.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="FSM_DEFMAXTERMREQS" Comment="FSM_DEFMAXTERMREQS (Maximum Number of Terminate-Request Transmissions)" Type="Integer" Group="PPP Options" DefaultValue="2" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Set the maximum Terminate-Request transmissions.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="FSM_DEFMAXCONFREQS" Comment="FSM_DEFMAXCONFREQS (Maximum Number of Configure-Request Transmissions)" Type="Integer" Group="PPP Options" DefaultValue="10" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Set the Maximum Configure-Request transmissions.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="FSM_DEFMAXNAKLOOPS" Comment="FSM_DEFMAXNAKLOOPS (Maximum Number of Nak Loops)" Type="Integer" Group="PPP Options" DefaultValue="5" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Set the Maximum number of nak loops.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="UPAP_DEFTIMEOUT" Comment="UPAP_DEFTIMEOUT (Timeout for Retransmitting Request)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="6" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Set the Timeout (seconds) for retransmitting request with User/Password Authentication Protocol.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="UPAP_DEFTRANSMITS" Comment="UPAP_DEFTRANSMITS (Max Times to Send Challenge)" Type="Integer" Group="PPP Options" DefaultValue="10" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the maximum number of times to send challenge.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="UPAP_DEFREQTIME" Comment="UPAP_DEFREQTIME (Time to wait for Authentification Request from Peer)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="30" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Time to wait for auth-req from peer with User/Password Authentication Protocol.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="CHAP_DEFTIMEOUT" Comment="CHAP_DEFTIMEOUT (CHAP Timeout)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="6" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>CHAP (Challenge Handshake Authentication Protocol) Timeout time in seconds.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="CHAP_DEFTRANSMITS" Comment="CHAP_DEFTRANSMITS (CHAP Maximum Times to send Challenge)" Type="Integer" Group="PPP Options" DefaultValue="10" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Max times to send challenge with Challenge Handshake Authentication Protocol.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="CHAP_DEFRECHALLENGETIME" Comment="CHAP_DEFRECHALLENGETIME (Rechallenge Peer Time)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: CHAP_DEFRECHALLENGETIME requires PPP_SERVER to be enabled." Expression="PPP_SERVER"/>
        <Description>If this option is &gt; 0, rechallenge the peer every n seconds.</Description>
    </RefParameter>
    <RefParameter Name="CHAP_DEFRECHALLENGETIME" Comment="CHAP_DEFRECHALLENGETIME (Rechallenge Peer Time)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>If this option is set to 0, there is no rechallenge.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: CHAP_DEFRECHALLENGETIME requires PPP_SERVER to be enabled.</Description>
    </RefParameter>
    <RefParameter Name="EAP_DEFREQTIME" Comment="EAP_DEFREQTIME (Time to Wait for Peer Request)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="6" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter allows to set the time to wait for peer request.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="EAP_DEFALLOWREQ" Comment="EAP_DEFALLOWREQ (Maximum Times to Accept Requests)" Type="Integer" Group="PPP Options" DefaultValue="10" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter allows to set the times to accept requests.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="EAP_DEFTIMEOUT" Comment="EAP_DEFTIMEOUT (Timeout for Rexmit)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="6" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: EAP_DEFTIMEOUT requires PPP_SERVER to be enabled." Expression="PPP_SERVER"/>
        <Description>This parameter allows to set a timeout (seconds) for rexmit.</Description>
    </RefParameter>
    <RefParameter Name="EAP_DEFTIMEOUT" Comment="EAP_DEFTIMEOUT (Rechallenge Peer Time)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>This parameter allows to set a timeout (seconds) for rexmit.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: EAP_DEFTIMEOUT requires PPP_SERVER to be enabled.</Description>
    </RefParameter>
    <RefParameter Name="EAP_DEFTRANSMITS" Comment="EAP_DEFTRANSMITS (Maximum Times to Transmit)" Type="Integer" Group="PPP Options" DefaultValue="10" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: EAP_DEFTRANSMITS requires PPP_SERVER to be enabled." Expression="PPP_SERVER"/>
        <Description>This parameter allows to set maximum number of times to transmit.</Description>
    </RefParameter>
    <RefParameter Name="EAP_DEFTRANSMITS" Comment="EAP_DEFTRANSMITS (Rechallenge Peer Time)" Type="Integer" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>This parameter allows to set maximum number of times to transmit.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: EAP_DEFTRANSMITS requires PPP_SERVER to be enabled.</Description>
    </RefParameter>
    <RefParameter Name="LCP_DEFLOOPBACKFAIL" Comment="LCP_DEFLOOPBACKFAIL (Loopback Detection Timing)" Type="Integer" Group="PPP Options" DefaultValue="10" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Default number of times we receive our magic number from the peer before deciding the link is looped-back.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LCP_ECHOINTERVAL" Comment="LCP_ECHOINTERVAL (Interval between Keepalive Echo Requests)" Type="Integer" Unit="Second(s)" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Interval in seconds between keepalive echo requests, 0 to disable in Link Control Protocol.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LCP_MAXECHOFAILS" Comment="LCP_MAXECHOFAILS (Number of Unanswered Echo Requests before Failure)" Type="Integer" Group="PPP Options" DefaultValue="3" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Number of unanswered echo requests before failure in Link Control Protocol.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_MAXIDLEFLAG" Comment="PPP_MAXIDLEFLAG (Maximum Xmit Idle Time before Resend Flag Char)" Type="Integer" Unit="Millisecond(ms)" Group="PPP Options" DefaultValue="100" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Max Xmit idle time (in ms) before resend flag char.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_MRU" Comment="PPP_MRU (Maximum Length of MRU Info Field)" Type="Integer" Group="PPP Options" DefaultValue="1500" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Default MRU = max length of info field.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_DEFMRU" Comment="PPP_DEFMRU (Number of Negotiated MRU)" Type="Integer" Group="PPP Options" DefaultValue="1500" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Maximum negotiated Maximum Receive Unit (MRU) mandated by PPP protocol.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: Try for this!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_MAXMRU" Comment="PPP_MAXMRU (Maximum Number of MRU Allowed)" Type="Integer" Group="PPP Options" DefaultValue="1500" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Largest MRU allowed.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_MINMRU" Comment="PPP_MINMRU (Minimum Number of MRU Allowed)" Type="Integer" Group="PPP Options" DefaultValue="128" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Minimum negotiated Maximum Receive Unit (MRU) mandated by PPP protocol.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: No MRUs below this.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_NUM_TIMEOUTS" Comment="PPP_NUM_TIMEOUTS (Number of sys_timeouts for PPP module)" Type="Integer" Group="PPP Options" DefaultValue="=PPP_SUPPORT * PPP_NUM_TIMEOUTS_PER_PCB * MEMP_NUM_PPP_PCB" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>The number of sys_timeouts required for the PPP module.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPPOL2TP_DEFMRU" Comment="PPPOL2TP_DEFMRU (Default MTU and MRU for L2TP)" Type="Integer" Group="PPP Options" DefaultValue="1450" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: PPPOL2TP_SUPPORT requires PPPOL2TP_DEFMRU to be defined." Expression="PPPOL2TP_SUPPORT"/>
        <Description>This parameter sets MTU and MRU for L2TP.&lt;br&gt;The default value (1450) equals: 1500 - PPPoE(6) - PPP Protocol(2) - IPv4 header(20) - UDP Header(8) - L2TP Header(6) - HDLC Header(2) - PPP Protocol(2) - MPPE Header(2) - PPP Protocol(2).</Description>
    </RefParameter>
    <RefParameter Name="PPPOL2TP_DEFMRU" Comment="PPPOL2TP_DEFMRU (Default MTU and MRU for L2TP)" Type="Integer" Group="PPP Options" DefaultValue="0" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>This parameter sets MTU and MRU for L2TP.&lt;br&gt;The default value (1450) equals: 1500 - PPPoE(6) - PPP Protocol(2) - IPv4 header(20) - UDP Header(8) - L2TP Header(6) - HDLC Header(2) - PPP Protocol(2) - MPPE Header(2) - PPP Protocol(2).</Description>
    </RefParameter>
    <RefParameter Name="MAXNAMELEN" Comment="MAXNAMELEN (Maximum Length of Hostname or Name for Authentification)" Type="Integer" Unit="Byte(s)" Group="PPP Options" DefaultValue="256" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Maximum length of hostname or name for auth.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MAXSECRETLEN" Comment="MAXSECRETLEN (Maximum Length of Password)" Type="Integer" Unit="Byte(s)" Group="PPP Options" DefaultValue="256" TabName="PPP" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>Maximum length of password or secret.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6" Comment="LWIP_IPV6 (IPv6 Protocol)" Type="list" Group="IPv6 Options" DefaultValue="0" TabName="IPv6" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables IPv6 protocol.&lt;br&gt;&lt;b&gt;Warnings&lt;/b&gt;:&lt;br&gt;1) When using IPv6 you may encounter some compilation issues in lowpan6_common.c that can be avoided waiting for the fixes:&lt;br&gt;- MDK-ARM: &lt;font color=&quot;red&quot;&gt;error 167&lt;/font&gt; can be avoided by replacing in system\arch\cc.h definition of &quot;PACK_STRUCT_BEGIN __packed&quot; by &quot;PACK_STRUCT_BEGIN&quot;&lt;br&gt;- EWARM: warning Pa039 can be avoided by removing in system\arch\cc.h the definition of &quot;PACK_STRUCT_USE_INCLUDES&quot;&lt;br&gt;2) When using IGMP or IPv6, LWIP_RAND() needs to be defined to a random-function returning an u32_t random value (in arch/cc.h).&lt;br&gt;Therefore, LWIP_RAND() has been added in cc.h (in \system\arch).&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;All other IPv6 options are visible as "Advanced Parameters".&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="IPV6_REASS_MAXAGE" Comment="IPV6_REASS_MAXAGE (Maximum Time in multiples of IP6_REASS_TMR_INTERVAL)" Type="Integer" Group="IPv6 Options" DefaultValue="60" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the number of maximum time (in multiples of IP6_REASS_TMR_INTERVAL - so seconds, normally) a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived in this time, the whole packet is discarded.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_SCOPES" Comment="LWIP_IPV6_SCOPES (IPv6 Address Scopes)" Type="list" Group="IPv6 Options" DefaultValue="=LWIP_IPV6 &amp; !LWIP_SINGLE_NETIF" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enable support for IPv6 address scopes, ensuring that e.g. link-local addresses are really treated as link-local. Disable this setting only for single-interface configurations.&lt;br&gt;All addresses that have a scope according to the default policy (link-local unicast addresses, interface-local and link-local multicast addresses) should now have a zone set on them before being passed to the core API, although lwIP will currently attempt to select a zone on the caller's behalf when necessary. Applications that directly assign IPv6 addresses to interfaces (which is NOT recommended) must now ensure that link-local addresses carry the netif's zone. See the new ip6_zone.h header file for more information and relevant macros. For now it is still possible to turn off scopes support through the new LWIP_IPV6_SCOPES option. When upgrading an implementation that uses the core API directly, it is highly recommended to enable LWIP_IPV6_SCOPES_DEBUG at least for a while, to ensure e.g. proper address initialization.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_SCOPES_DEBUG" Comment="LWIP_IPV6_SCOPES_DEBUG (Check Address Zones)" Type="list" Group="IPv6 Options" DefaultValue="0" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter performs run-time checks to verify that addresses are properly zoned (see ip6_zone.h on what that means) where it matters.&lt;br&gt;Enabling this setting is highly recommended when upgrading from an existing installation that is not yet scope-aware; otherwise it may be too expensive.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_NUM_ADDRESSES" Comment="LWIP_IPV6_NUM_ADDRESSES (IPv6 Addresses per Netif)" Type="Integer" Group="IPv6 Options" DefaultValue="3" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the number of IPv6 addresses per netif.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_FORWARD" Comment="LWIP_IPV6_FORWARD (Forward IPv6 Packets across Netifs)" Type="list" Group="IPv6 Options" DefaultValue="0" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables the forward IPv6 packets across netifs.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_FRAG" Comment="LWIP_IPV6_FRAG (Fragment too Big IPv6 Packets)" Type="list" Group="IPv6 Options" DefaultValue="1" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter allows to fragment outgoing IPv6 packets that are too big.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_REASS" Comment="LWIP_IPV6_REASS (Reassemble Incoming IPv6 Fragmented Packets)" Type="list" Group="IPv6 Options" DefaultValue="=LWIP_IPV6" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter allows to reassemble incoming IPv6 packets that fragmented.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_SEND_ROUTER_SOLICIT" Comment="LWIP_IPV6_SEND_ROUTER_SOLICIT (Send Router Solicitation Messages at Network Startup.)" Type="list" Group="IPv6 Options" DefaultValue="1" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter allows to Send router solicitation messages during network startup.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_AUTOCONFIG" Comment="LWIP_IPV6_AUTOCONFIG (Stateless Address Auto-Configuration)" Type="list" Group="IPv6 Options" DefaultValue="=LWIP_IPV6" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables stateless address autoconfiguration as per RFC 4862.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_ADDRESS_LIFETIMES" Comment="LWIP_IPV6_ADDRESS_LIFETIMES (Valid Lifetimes for IPv6 Adress)" Type="list" Group="IPv6 Options" DefaultValue="=LWIP_IPV6_AUTOCONFIG" TabName="IPv6" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_IPV6_ADDRESS_LIFETIMES requires LWIP_IPV6_AUTOCONFIG." Expression="LWIP_IPV6_AUTOCONFIG"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter keeps valid and preferred lifetimes for each IPv6 address. Required for LWIP_IPV6_AUTOCONFIG. May still be enabled otherwise, in which case the application may assign address lifetimes with the appropriate macros. Addresses with no lifetime are assumed to be static. If this option is disabled, all addresses are assumed to be static.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_ADDRESS_LIFETIMES" Comment="LWIP_IPV6_ADDRESS_LIFETIMES (Stateless Address Auto-Configuration)" Type="list" Group="IPv6 Options" DefaultValue="0" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter keeps valid and preferred lifetimes for each IPv6 address. Required for LWIP_IPV6_AUTOCONFIG. May still be enabled otherwise, in which case the application may assign address lifetimes with the appropriate macros. Addresses with no lifetime are assumed to be static. If this option is disabled, all addresses are assumed to be static.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_IPV6_ADDRESS_LIFETIMES requires LWIP_IPV6_AUTOCONFIG.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_DUP_DETECT_ATTEMPTS" Comment="LWIP_IPV6_DUP_DETECT_ATTEMPTS (Number of Duplicate Address Detection Attempts)" Type="Integer" Group="IPv6 Options" DefaultValue="1" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter sets the number of duplicate address detection attempts.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_DHCP6" Comment="LWIP_IPV6_DHCP6 (DHCPv6 Stateful/Stateless Address Auto-Configuration)" Type="list" Group="IPv6 Options" DefaultValue="0" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables DHCPv6 stateful/stateless address autoconfiguration.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_DHCP6_STATEFUL" Comment="LWIP_IPV6_DHCP6_STATEFUL (DHCPv6 Stateful Address Auto-Configuration)" Type="list" Group="IPv6 Options" DefaultValue="0" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables DHCPv6 stateful address autoconfiguration.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_DHCP6_STATELESS" Comment="LWIP_IPV6_DHCP6_STATELESS (DHCPv6 Stateless Address Auto-Configuration)" Type="list" Group="IPv6 Options" DefaultValue="0" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables DHCPv6 stateless address autoconfiguration.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP6_GET_NTP_SRV" Comment="LWIP_DHCP6_GET_NTP_SRV (DHCPv6 NTP Servers Request)" Type="Integer" Group="IPv6 Options" DefaultValue="0" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>LWIP_DHCP6_GETS_NTP=1: Request NTP servers via DHCPv6. For each response packet, a callback is called, which has to be provided by the port: void dhcp6_set_ntp_servers(u8_t num_ntp_servers, ip_addr_t* ntp_server_addrs)</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP6_MAX_NTP_SERVERS" Comment="LWIP_DHCP6_MAX_NTP_SERVERS (DHCPv6 Maximum NTP Servers Request)" Type="Integer" Group="IPv6 Options" DefaultValue="1" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the maximum of NTP servers requested.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DHCP6_MAX_DNS_SERVERS" Comment="LWIP_DHCP6_MAX_DNS_SERVERS (DHCPv6 Maximum DNS Servers Request)" Type="Integer" Group="IPv6 Options" DefaultValue="=DNS_MAX_SERVERS" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the maximum equest DNS servers via DHCPv6. DNS servers received in the response are passed to DNS via @ref dns_setserver() (up to the maximum limit defined here).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ICMP6" Comment="LWIP_ICMP6 (ICMPv6 Protocol)" Type="list" Group="IPv6 - ICMP6 Options" DefaultValue="=LWIP_IPV6" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables ICMPv6 protocol (mandatory per RFC).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ICMP6_DATASIZE" Comment="LWIP_ICMP6_DATASIZE (Original ICMP Packet Size)" Type="Integer" Unit="Byte(s)" Group="IPv6 - ICMP6 Options" DefaultValue="8" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the number of bytes from original packet to send back in ICMPv6 error messages.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ICMP6_HL" Comment="LWIP_ICMP6_HL (Hop Limit for ICMPv6 Messages)" Type="Integer" Group="IPv6 - ICMP6 Options" DefaultValue="255" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the default hop limit for ICMPv6 messages.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_IPV6_MLD" Comment="LWIP_IPV6_MLD (Multicast Listener Discovery Protocol)" Type="list" Group="IPv6 - Multicast Listener Discovery Options" DefaultValue="=LWIP_IPV6" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables multicast listener discovery protocol. If LWIP_IPV6 is enabled but this setting is disabled, the MAC layer must indiscriminately pass all inbound IPv6 multicast traffic to lwIP.&lt;br&gt;&lt;b&gt;Warning: &lt;/b&gt; Enable LWIP_IPV6 when using LWIP_IPV6_MLD, to avoid having compilation warnings on ip6_addr_ismulticast/ip6_current_dest_addr functions.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_MLD6_GROUP" Comment="MEMP_NUM_MLD6_GROUP (Max Number of Joined IPv6 Multicast)" Type="Integer" Group="IPv6 - Multicast Listener Discovery Options" DefaultValue="4" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the maximum number of IPv6 multicast groups that can be joined.&lt;br&gt;There must be enough groups so that each netif can join the solicited-node multicast group for each of its local addresses, plus one for MDNS if applicable, plus any number of groups to be joined on UDP sockets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_QUEUEING" Comment="LWIP_ND6_QUEUEING (Queue Outgoing IPv6 Packets)" Type="list" Group="IPv6 - Neighboor Discovery Options" DefaultValue="=LWIP_IPV6" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter allows to queue outgoing IPv6 packets while MAC address.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_NUM_ND6_QUEUE" Comment="MEMP_NUM_ND6_QUEUE (Max Number of IPv6 Packets to Queue)" Type="Integer" Group="IPv6 - Neighboor Discovery Options" DefaultValue="20" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the maximum number of IPv6 packets to queue during MAC resolution.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_NUM_NEIGHBORS" Comment="LWIP_ND6_NUM_NEIGHBORS (Number of Entries in IPv6 Neighbor Cache)" Type="Integer" Group="IPv6 - Neighboor Discovery Options" DefaultValue="10" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the number of entries in IPv6 neighbor cache.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_NUM_DESTINATIONS" Comment="LWIP_ND6_NUM_DESTINATIONS (Number of Entries in IPv6 Destination Cache)" Type="Integer" Group="IPv6 - Neighboor Discovery Options" DefaultValue="10" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the number of entries in IPv6 destination cache.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_NUM_PREFIXES" Comment="LWIP_ND6_NUM_PREFIXES (Number of Entries in IPv6 On-Link Prefixes Cache)" Type="Integer" Group="IPv6 - Neighboor Discovery Options" DefaultValue="5" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the number of entries in IPv6 on-link prefixes cache.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_NUM_ROUTERS" Comment="LWIP_ND6_NUM_ROUTERS (Number of Entries in IPv6 Default Router Cache)" Type="Integer" Group="IPv6 - Neighboor Discovery Options" DefaultValue="3" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the number of entries in IPv6 default router cache.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_MAX_MULTICAST_SOLICIT" Comment="LWIP_ND6_MAX_MULTICAST_SOLICIT (Max Number of Multicast Solicit Messages to Send)" Type="Integer" Group="IPv6 - Neighboor Discovery Options" DefaultValue="3" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the max number of multicast solicit messages to send (neighbor solicit and router solicit).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_MAX_UNICAST_SOLICIT" Comment="LWIP_ND6_MAX_UNICAST_SOLICIT (Max Number of Unicast Neighbor Solicitation Messages)" Type="Integer" Group="IPv6 - Neighboor Discovery Options" DefaultValue="3" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter set the max number of unicast neighbor solicitation messages to send during neighbor reachability detection.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_MAX_ANYCAST_DELAY_TIME" Comment="LWIP_ND6_MAX_ANYCAST_DELAY_TIME (Max Delay Time for Anycast Messages)" Type="Integer" Unit="Millisecond(ms)" Group="IPv6 - Neighboor Discovery Options" DefaultValue="1000" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter is unused: See ND RFC (time in milliseconds).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT" Comment="LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT (Max Number of Neighbor Advertisements)" Type="Integer" Group="IPv6 - Neighboor Discovery Options" DefaultValue="3" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter is unused: See ND RFC.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_REACHABLE_TIME" Comment="LWIP_ND6_REACHABLE_TIME (Neigbor Reachable Time)" Type="Integer" Unit="Millisecond(ms)" Group="IPv6 - Neighboor Discovery Options" DefaultValue="30000" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter sets the default neighbor reachable time (in milliseconds). May be updated by Router Advertisement message.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_RETRANS_TIMER" Comment="LWIP_ND6_RETRANS_TIMER (Retransmission Timer for Solicitation Messages)" Type="Integer" Unit="Millisecond(ms)" Group="IPv6 - Neighboor Discovery Options" DefaultValue="1000" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter sets the default retransmission timer for solicitation messages.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_DELAY_FIRST_PROBE_TIME" Comment="LWIP_ND6_DELAY_FIRST_PROBE_TIME (Delay Before First Unicast Neighbor Solicitation)" Type="Integer" Unit="Millisecond(ms)" Group="IPv6 - Neighboor Discovery Options" DefaultValue="5000" TabName="IPv6" Mode="Advanced" Min="0" Max="2147483647" >
        <Description>This parameter sets the Delay before first unicast neighbor solicitation message is sent, during neighbor reachability detection.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_ALLOW_RA_UPDATES" Comment="LWIP_ND6_ALLOW_RA_UPDATES (Router Advertisement Messages Update)" Type="list" Group="IPv6 - Neighboor Discovery Options" DefaultValue="1" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter allows to allow Router Advertisement messages to update reachable time and retransmission timers, and netif MTU.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_TCP_REACHABILITY_HINTS" Comment="LWIP_ND6_TCP_REACHABILITY_HINTS (TCP Neighbor Discovery with Reachability Hints)" Type="list" Group="IPv6 - Neighboor Discovery Options" DefaultValue="1" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter allows TCP to provide Neighbor Discovery with reachability hints for connected destinations.&lt;br&gt;This helps avoid sending unicast neighbor solicitation messages.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_ND6_RDNSS_MAX_DNS_SERVERS" Comment="LWIP_ND6_RDNSS_MAX_DNS_SERVERS (Use IPv6 Router Advertisement Recursive DNS Server)" Type="list" Group="IPv6 - Neighboor Discovery Options" DefaultValue="0" TabName="IPv6" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_ND6_RDNSS_MAX_DNS_SERVERS &gt; 0: Use IPv6 Router Advertisement Recursive&lt;br&gt;DNS Server Option (as per RFC 6106) to copy a defined maximum number of DNS&lt;br&gt;servers to the DNS module.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD" Comment="LWIP_HTTPD (LwIP HTTPD Support ** CubeMX specific **)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable HTTPD requires user specific code not yet generated by STM32CubeMX. This is reserved for advanced users.&lt;br&gt;&lt;b&gt;Warnings&lt;/b&gt;:&lt;br&gt;&lt;font color=&quot;red&quot;&gt;Since HTTPD is only partially supported, some manual actions are required from user: one of user mandatory action is to create the "fsdata_custom.c" file (see HTTPD_USE_CUSTOM_FSDATA advanced parameter description).&lt;/font&gt;&lt;br&gt;&lt;b&gt;Note&lt;/b&gt;:&lt;br&gt;- This parameter introduced by CubeMX is not part of LwIP stack.&lt;br&gt; - All other HTTPD options are visible as "Advanced Parameters" and only when LWIP_HTTPD is enabled.&lt;br&gt;&lt;br&gt;This httpd supports for a rudimentary server-side-include facility which will replace tags of the form &lt;!--#tag--&gt; in any file whose extension is .shtml, .shtm or .ssi with strings provided by an include handler whose pointer is provided to the module via function http_set_ssi_handler().&lt;br&gt;Additionally, a simple common gateway interface (CGI) handling mechanism has been added to allow clients to hook functions to particular request URIs.&lt;br&gt;&lt;br&gt;To enable SSI support, define label LWIP_HTTPD_SSI in lwipopts.h.&lt;br&gt;To enable CGI support, define label LWIP_HTTPD_CGI in lwipopts.h.&lt;br&gt;&lt;br&gt;By default, the server assumes that HTTP headers are already present in each file stored in the file system. By defining LWIP_HTTPD_DYNAMIC_HEADERS in lwipopts.h, this behavior can be changed such that the server inserts the headers automatically based on the extension of the file being served. If this mode is used, be careful to ensure that the file system image used does not already contain the header information.&lt;br&gt;&lt;br&gt;File system images without headers can be created using the makefsfile tool with the -h command line option.&lt;br&gt;&lt;br&gt;Notes about valid SSI tags:&lt;br&gt;The following assumptions are made about tags used in SSI markers:&lt;br&gt;1. No tag may contain '-' or whitespace characters within the tag name.&lt;br&gt;2. Whitespace is allowed between the tag leadin and the start of the tag name and between the tag name and the leadout string.&lt;br&gt;3. The maximum tag name length is LWIP_HTTPD_MAX_TAG_NAME_LEN, currently 8 characters.&lt;br&gt;&lt;br&gt;Notes on CGI usage:&lt;br&gt;The simple CGI support offered here works with GET method requests only and can handle up to 16 parameters encoded into the URI. The handler function may not write directly to the HTTP output but must return a filename that the HTTP server will send to the browser as a response to the incoming CGI request.&lt;br&gt;&lt;br&gt;The list of supported file types is quite short, so if makefsdata complains about an unknown extension, make sure to add it (and its doctype) to the 'g_psHTTPHeaders' list.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_CGI" Comment="LWIP_HTTPD_CGI (HTTP CGI Old Style)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_CGI requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to support CGI (old style).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_CGI" Comment="LWIP_HTTPD_CGI (HTTP CGI Old Style)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to support CGI (old style).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_CGI requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_CGI_SSI" Comment="LWIP_HTTPD_CGI_SSI (HTTP CGI New Style)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_CGI_SSI requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to support CGI (new style).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_CGI_SSI" Comment="LWIP_HTTPD_CGI_SSI (HTTP CGI New Style)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to support CGI (new style).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_CGI_SSI requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI" Comment="LWIP_HTTPD_SSI (HTTP Server Side Includes)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to support SSI (Server-Side-Includes).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI" Comment="LWIP_HTTPD_SSI (HTTP Server Side Includes)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to support SSI (Server-Side-Includes).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI_RAW" Comment="LWIP_HTTPD_SSI_RAW (HTTP SSI Tag Handler Callback)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI_RAW requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to implement an SSI tag handler callback that gets a const char* to the tag (instead of an index into a pre-registered array of known tags).&lt;br&gt;If this is 0, the SSI handler callback function is only called pre-registered tags.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI_RAW" Comment="LWIP_HTTPD_SSI_RAW (HTTP SSI Tag Handler Callback)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to implement an SSI tag handler callback that gets a const char* to the tag (instead of an index into a pre-registered array of known tags).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI_RAW requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI_BY_FILE_EXTENSION" Comment="LWIP_HTTPD_SSI_BY_FILE_EXTENSION (HTTP SSI By File Extension)" Type="list" Group="HTTPD Options" DefaultValue="1" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI_BY_FILE_EXTENSION requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 0 to prevent parsing the file extension at runtime to decide if a file should be scanned for SSI tags or not.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI_BY_FILE_EXTENSION" Comment="LWIP_HTTPD_SSI_BY_FILE_EXTENSION (HTTP SSI By File Extension)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 0 to prevent parsing the file extension at runtime to decide if a file should be scanned for SSI tags or not.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI_BY_FILE_EXTENSION requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_POST" Comment="LWIP_HTTPD_SUPPORT_POST (HTTP POST)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_POST requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to support HTTP POST.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_POST" Comment="LWIP_HTTPD_SUPPORT_POST (HTTP POST)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to support HTTP POST.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_POST requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_CGI_PARAMETERS" Comment="LWIP_HTTPD_MAX_CGI_PARAMETERS (Max Sent Parameters Number for CGI)" Type="Integer" Group="HTTPD Options" DefaultValue="16" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_MAX_CGI_PARAMETERS requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>The maximum number of parameters that the CGI handler can be sent.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_CGI_PARAMETERS" Comment="LWIP_HTTPD_MAX_CGI_PARAMETERS (Max Sent Parameters Number for CGI)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>The maximum number of parameters that the CGI handler can be sent.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_MAX_CGI_PARAMETERS requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI_MULTIPART" Comment="LWIP_HTTPD_SSI_MULTIPART (Server-Side-Includes Multipart)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI_MULTIPART requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_HTTPD_SSI_MULTIPART==1: SSI handler function is called with 2 more arguments indicating a counter for insert string that are too long to be inserted at once: the SSI handler function must then set 'next_tag_part' which will be passed back to it in the next call.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI_MULTIPART" Comment="LWIP_HTTPD_SSI_MULTIPART (Server-Side-Includes Multipart)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>LWIP_HTTPD_SSI_MULTIPART==1: SSI handler function is called with 2 more arguments indicating a counter for insert string that are too long to be inserted at once: the SSI handler function must then set 'next_tag_part' which will be passed back to it in the next call.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI_MULTIPART requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_TAG_NAME_LEN" Comment="LWIP_HTTPD_MAX_TAG_NAME_LEN (Max Tag Name String Length)" Type="Integer" Group="HTTPD Options" DefaultValue="8" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_MAX_TAG_NAME_LEN requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>The maximum length of the string comprising the tag name.&lt;br&gt;ATTENTION: tags longer than this are ignored, not truncated!</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_TAG_NAME_LEN" Comment="LWIP_HTTPD_MAX_TAG_NAME_LEN (Max Tag Name String Length)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>The maximum length of the string comprising the tag name.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_MAX_TAG_NAME_LEN requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_TAG_INSERT_LEN" Comment="LWIP_HTTPD_MAX_TAG_INSERT_LEN (Max Tag Inserted String Length)" Type="Integer" Group="HTTPD Options" DefaultValue="192" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_MAX_TAG_INSERT_LEN requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>The maximum length of string that can be returned to replace any given tag.&lt;br&gt;If this buffer is not long enough, use LWIP_HTTPD_SSI_MULTIPART.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_TAG_INSERT_LEN" Comment="LWIP_HTTPD_MAX_TAG_INSERT_LEN (Max Tag Inserted String Length)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>The maximum length of string that can be returned to replace any given tag.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_MAX_TAG_INSERT_LEN requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_POST_MANUAL_WND" Comment="LWIP_HTTPD_POST_MANUAL_WND (HTTP POST Manual WND)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_POST_MANUAL_WND requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>HTTP POST Manual WND.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_POST_MANUAL_WND" Comment="LWIP_HTTPD_POST_MANUAL_WND (HTTP POST Manual WND)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>HTTP POST Manual WND.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_POST_MANUAL_WND requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_SERVER_AGENT" Comment="HTTPD_SERVER_AGENT (HTTP Server)" Type="StringRW" Group="HTTPD Options" DefaultValue="&quot;lwIP/2.0.0 (http://savannah.nongnu.org/projects/lwip)&quot;" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_SERVER_AGENT requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>This string is passed in the HTTP header as Server (Example for LwIP 2.0.0).</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_SERVER_AGENT" Comment="HTTPD_SERVER_AGENT (HTTP Server)" Type="StringRW" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>This string is passed in the HTTP header as Server (Example for LwIP 2.0.0).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_SERVER_AGENT requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_DYNAMIC_HEADERS" Comment="LWIP_HTTPD_DYNAMIC_HEADERS (HTTP Dynamic Headers Creation)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_DYNAMIC_HEADERS requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 if you want to include code that creates HTTP headers at runtime. Default is off: HTTP headers are then created statically by the makefsdata tool. Static headers mean smaller code size, but the (readonly) fsdata will grow a bit as every file includes the HTTP header.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_DYNAMIC_HEADERS" Comment="LWIP_HTTPD_DYNAMIC_HEADERS (HTTP Dynamic Headers Creation)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 if you want to include code that creates HTTP headers at runtime. Default is off: HTTP headers are then created statically by the makefsdata tool. Static headers mean smaller code size, but the (readonly) fsdata will grow a bit as every file includes the HTTP header.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_DYNAMIC_HEADERS requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_USE_MEM_POOL" Comment="HTTPD_USE_MEM_POOL (HTTP Use Memory Pool)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_USE_MEM_POOL requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to use a memp pool for allocating struct http_state instead of the heap.&lt;br&gt;If enabled, you'll need to define MEMP_NUM_PARALLEL_HTTPD_CONNS (and MEMP_NUM_PARALLEL_HTTPD_SSI_CONNS for SSI) to set the size of the pool(s).</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_USE_MEM_POOL" Comment="HTTPD_USE_MEM_POOL (HTTP Use Memory Pool)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to use a memp pool for allocating struct http_state instead of the heap.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_USE_MEM_POOL requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_SERVER_PORT" Comment="HTTPD_SERVER_PORT (HTTP Server Port)" Type="Integer" Group="HTTPD Options" DefaultValue="80" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_SERVER_PORT requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>The server port for HTTPD to use. Default value is LWIP_IANA_PORT_HTTP set to 80 in iana.h file.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_SERVER_PORT" Comment="HTTPD_SERVER_PORT (HTTP Server Port)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>The server port for HTTPD to use.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_SERVER_PORT requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_SERVER_PORT_HTTPS" Comment="HTTPD_SERVER_PORT_HTTPS (HTTPS Server Port)" Type="Integer" Group="HTTPD Options" DefaultValue="443" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_SERVER_PORT_HTTPS requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>The HTTPS server port for HTTPD to use. Default value is LWIP_IANA_PORT_HTTPS set to 80 in iana.h file.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_SERVER_PORT_HTTPS" Comment="HTTPD_SERVER_PORT_HTTPS (HTTP Server Port)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>The HTTPS server port for HTTPD to use.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_SERVER_PORT_HTTPS requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_ENABLE_HTTPS" Comment="HTTPD_ENABLE_HTTPS (HTTPS Support)" Type="Integer" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_ENABLE_HTTPS requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>Enable HTTPS support.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_ENABLE_HTTPS" Comment="HTTPD_ENABLE_HTTPS (HTTP Server Port)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Enable HTTPS support.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_ENABLE_HTTPS requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_MAX_RETRIES" Comment="HTTPD_MAX_RETRIES (HTTP Max Retries)" Type="Integer" Group="HTTPD Options" DefaultValue="4" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_MAX_RETRIES requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>Maximum retries before the connection is aborted/closed.&lt;br&gt;- number of times pcb-&gt;poll is called -&gt; default is 4*500ms = 2s;&lt;br&gt;- reset when pcb-&gt;sent is called.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_MAX_RETRIES" Comment="HTTPD_MAX_RETRIES (HTTP Max Retries)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Maximum retries before the connection is aborted/closed.&lt;br&gt;- number of times pcb-&gt;poll is called -&gt; default is 4*500ms = 2s;&lt;br&gt;- reset when pcb-&gt;sent is called.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_MAX_RETRIES requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_POLL_INTERVAL" Comment="HTTPD_POLL_INTERVAL (HTTP Pool delay)" Type="Integer" Group="HTTPD Options" DefaultValue="4" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_POLL_INTERVAL requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>The poll delay is X*500ms.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_POLL_INTERVAL" Comment="HTTPD_POLL_INTERVAL (HTTP Pool delay)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>The poll delay is X*500ms.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_POLL_INTERVAL requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_TCP_PRIO" Comment="HTTPD_TCP_PRIO (HTTP TCP Priority)" Type="Integer" Group="HTTPD Options" DefaultValue="1" TabName="HTTPD" Mode="Advanced" Min="1" Max="255" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_TCP_PRIO requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>Priority for tcp pcbs created by HTTPD (very low by default). Minimum value is 1 (TCP_PRIO_MIN). Lower priorities get killed first when running out of memory.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_TCP_PRIO" Comment="HTTPD_TCP_PRIO (HTTP TCP Priority)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Priority for tcp pcbs created by HTTPD (very low by default). Lower priorities get killed first when running out of memory.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_TCP_PRIO requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_TIMING" Comment="LWIP_HTTPD_TIMING (HTTP Timing)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_TIMING requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to enable timing each file sent.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_TIMING" Comment="LWIP_HTTPD_TIMING (HTTP Timing)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to enable timing each file sent.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_TIMING requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_EXTSTATUS" Comment="LWIP_HTTPD_SUPPORT_EXTSTATUS (Error Pages Display)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_EXTSTATUS requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to one to show error pages when parsing a request fails instead of simply closing the connection.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_EXTSTATUS" Comment="LWIP_HTTPD_SUPPORT_EXTSTATUS (Error Pages Display)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to one to show error pages when parsing a request fails instead of simply closing the connection.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_EXTSTATUS requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_V09" Comment="LWIP_HTTPD_SUPPORT_V09 (Drop HTTP 0.9 Support)" Type="list" Group="HTTPD Options" DefaultValue="1" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_V09 requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 0 to drop support for HTTP/0.9 clients (to save some bytes).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_V09" Comment="LWIP_HTTPD_SUPPORT_V09 (Drop HTTP 0.9 Support)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 0 to drop support for HTTP/0.9 clients (to save some bytes).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_V09 requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_11_KEEPALIVE" Comment="LWIP_HTTPD_SUPPORT_11_KEEPALIVE (HTTP 1.1 Persistent Connections)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_11_KEEPALIVE requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to enable HTTP/1.1 persistent connections.&lt;br&gt;ATTENTION: If the generated file system includes HTTP headers, these must include the "Connection: keep-alive" header (pass argument "-11" to makefsdata).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_11_KEEPALIVE" Comment="LWIP_HTTPD_SUPPORT_11_KEEPALIVE (HTTP 1.1 Persistent Connections)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to enable HTTP/1.1 persistent connections.&lt;br&gt;ATTENTION: If the generated file system includes HTTP headers, these must include the "Connection: keep-alive" header (pass argument "-11" to makefsdata).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_11_KEEPALIVE requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_REQUESTLIST" Comment="LWIP_HTTPD_SUPPORT_REQUESTLIST (HTTP Request from Multiple Packets)" Type="list" Group="HTTPD Options" DefaultValue="1" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_REQUESTLIST requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to support HTTP request coming in in multiple packets/pbufs.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SUPPORT_REQUESTLIST" Comment="LWIP_HTTPD_SUPPORT_REQUESTLIST (HTTP Request from Multiple Packets)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to support HTTP request coming in in multiple packets/pbufs.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SUPPORT_REQUESTLIST requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_REQ_QUEUELEN" Comment="LWIP_HTTPD_REQ_QUEUELEN (Number of Incoming Rx Pbufs)" Type="Integer" Group="HTTPD Options" DefaultValue="5" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_REQ_QUEUELEN requires LWIP_HTTPD and LWIP_HTTPD_SUPPORT_REQUESTLIST enabled." Expression="LWIP_HTTPD &amp; LWIP_HTTPD_SUPPORT_REQUESTLIST"/>
        <Description>Number of rx pbufs to enqueue to parse an incoming request (up to the first newline).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_REQ_QUEUELEN" Comment="LWIP_HTTPD_REQ_QUEUELEN (Number of Incoming Rx Pbufs)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Number of rx pbufs to enqueue to parse an incoming request (up to the first newline).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_REQ_QUEUELEN requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_REQ_BUFSIZE" Comment="LWIP_HTTPD_REQ_BUFSIZE (Number of TCP Payload in Pbufs)" Type="Integer" Group="HTTPD Options" DefaultValue="1023" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_REQ_BUFSIZE requires LWIP_HTTPD and LWIP_HTTPD_SUPPORT_REQUESTLIST enabled." Expression="LWIP_HTTPD &amp; LWIP_HTTPD_SUPPORT_REQUESTLIST"/>
        <Description>Number of (TCP payload-) bytes (in pbufs) to enqueue to parse and incoming request (up to the first double-newline).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_REQ_BUFSIZE" Comment="LWIP_HTTPD_REQ_BUFSIZE (Number of TCP Payload in Pbufs)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Number of (TCP payload-) bytes (in pbufs) to enqueue to parse and incoming request (up to the first double-newline).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_REQ_BUFSIZE requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_REQ_LENGTH" Comment="LWIP_HTTPD_MAX_REQ_LENGTH (Max Number of HTTP Request)" Type="Integer" Group="HTTPD Options" DefaultValue="=MIN(1023, LWIP_HTTPD_REQ_QUEUELEN * PBUF_POOL_BUFSIZE)" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_MAX_REQ_LENGTH requires LWIP_HTTPD and LWIP_HTTPD_SUPPORT_REQUESTLIST enabled." Expression="LWIP_HTTPD &amp; LWIP_HTTPD_SUPPORT_REQUESTLIST"/>
        <Description>Defines the maximum length of a HTTP request line (up to the first CRLF, copied from pbuf into this a global buffer when pbuf- or packet-queues are received - otherwise the input pbuf is used directly).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_REQ_LENGTH" Comment="LWIP_HTTPD_MAX_REQ_LENGTH (Max Number of HTTP Request)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Defines the maximum length of a HTTP request line (up to the first CRLF, copied from pbuf into this a global buffer when pbuf- or packet-queues are received - otherwise the input pbuf is used directly).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_MAX_REQ_LENGTH requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_REQUEST_URI_LEN" Comment="LWIP_HTTPD_MAX_REQUEST_URI_LEN (Max Size Of Static Buffer)" Type="Integer" Group="HTTPD Options" DefaultValue="63" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_MAX_REQUEST_URI_LEN requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>This is the size of a static buffer used when URIs end with '/'.&lt;br&gt;In this buffer, the directory requested is concatenated with all the configured default file names.&lt;br&gt;Set to 0 to disable checking default filenames on non-root directories.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_MAX_REQUEST_URI_LEN" Comment="LWIP_HTTPD_MAX_REQUEST_URI_LEN (Max Size Of Static Buffer)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>This is the size of a static buffer used when URIs end with '/'.&lt;br&gt;In this buffer, the directory requested is concatenated with all the configured default file names.&lt;br&gt;Set to 0 to disable checking default filenames on non-root directories.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN" Comment="LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN (Max Filename Length in POST Request Response)" Type="Integer" Group="HTTPD Options" DefaultValue="63" TabName="HTTPD" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <Description>Maximum length of the filename to send as response to a POST request, filled in by the application when a POST is finished.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN" Comment="LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN (Max Filename Length in POST Request Response)" Type="Integer" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Maximum length of the filename to send as response to a POST request, filled in by the application when a POST is finished.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI_INCLUDE_TAG" Comment="LWIP_HTTPD_SSI_INCLUDE_TAG (Include SSI Tag in HTML Page)" Type="list" Group="HTTPD Options" DefaultValue="1" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI_INCLUDE_TAG requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 0 to not send the SSI tag (default is on, so the tag will be sent in the HTML page.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_SSI_INCLUDE_TAG" Comment="LWIP_HTTPD_SSI_INCLUDE_TAG" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 0 to not send the SSI tag (default is on, so the tag will be sent in the HTML page.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_SSI_INCLUDE_TAG requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR" Comment="LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR (Call TCP Abort on TCP Close with Memory Error)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to call tcp_abort when tcp_close fails with memory error.&lt;br&gt;This can be used to prevent consuming all memory in situations where the HTTP server has low priority compared to other communication.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR" Comment="LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to call tcp_abort when tcp_close fails with memory error.&lt;br&gt;This can be used to prevent consuming all memory in situations where the HTTP server has low priority compared to other communication.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED" Comment="LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED (Kill Old Connections)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to kill the oldest connection when running out of memory for 'struct http_state' or 'struct http_ssi_state'.&lt;br&gt;ATTENTION: This puts all connections on a linked list, so may be kind of slow.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED" Comment="LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED (Kill Old Connections)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to kill the oldest connection when running out of memory for 'struct http_state' or 'struct http_ssi_state'.&lt;br&gt;ATTENTION: This puts all connections on a linked list, so may be kind of slow.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_OMIT_HEADER_FOR_EXTENSIONLESS_URI" Comment="LWIP_HTTPD_OMIT_HEADER_FOR_EXTENSIONLESS_URI (Send URIs Without Extension and Headers)" Type="list" Group="HTTPD Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_OMIT_HEADER_FOR_EXTENSIONLESS_URI requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to send URIs without extension without headers.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_OMIT_HEADER_FOR_EXTENSIONLESS_URI" Comment="LWIP_HTTPD_OMIT_HEADER_FOR_EXTENSIONLESS_URI (Send URIs Without Extension and Headers)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to send URIs without extension without headers.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_LIMIT_SENDING_TO_2MSS" Comment="HTTPD_LIMIT_SENDING_TO_2MSS (Limit to Send 2* Pcb->MSS)" Type="list" Group="HTTPD Options" DefaultValue="1" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_LIMIT_SENDING_TO_2MSS requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>By default, the httpd is limited to send 2*pcb-&gt;mss to keep resource usage low when http is not an important protocol in the device.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_LIMIT_SENDING_TO_2MSS" Comment="HTTPD_LIMIT_SENDING_TO_2MSS (Limit to Send 2* Pcb->MSS)" Type="list" Group="HTTPD Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>By default, the httpd is limited to send 2*pcb-&gt;mss to keep resource usage low when http is not an important protocol in the device.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_LIMIT_SENDING_TO_2MSS requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_CUSTOM_FILES" Comment="LWIP_HTTPD_CUSTOM_FILES (HTTP Custom Files)" Type="list" Group="HTTPD - File System Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_CUSTOM_FILES requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 and provide the functions:&lt;br&gt;- "int fs_open_custom(struct fs_file *file, const char *name)" Called first for every opened file to allow opening files that are not included in fsdata(_custom).c&lt;br&gt;- "void fs_close_custom(struct fs_file *file)" Called to free resources allocated by fs_open_custom().</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_CUSTOM_FILES" Comment="LWIP_HTTPD_CUSTOM_FILES (HTTP Custom Files)" Type="list" Group="HTTPD - File System Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 and provide the functions:&lt;br&gt;- "int fs_open_custom(struct fs_file *file, const char *name)" Called first for every opened file to allow opening files that are not included in fsdata(_custom).c&lt;br&gt;- "void fs_close_custom(struct fs_file *file)" Called to free resources allocated by fs_open_custom().&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_CUSTOM_FILES requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_DYNAMIC_FILE_READ" Comment="LWIP_HTTPD_DYNAMIC_FILE_READ (Dynamic File Read)" Type="list" Group="HTTPD - File System Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_DYNAMIC_FILE_READ requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to support fs_read() to dynamically read file data. Without this (default=off), only one-block files are supported, and the contents must be ready after fs_open().</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_DYNAMIC_FILE_READ" Comment="LWIP_HTTPD_DYNAMIC_FILE_READ (Dynamic File Read)" Type="list" Group="HTTPD - File System Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to support fs_read() to dynamically read file data. Without this (default=off), only one-block files are supported, and the contents must be ready after fs_open().&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_DYNAMIC_FILE_READ requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_FILE_STATE" Comment="LWIP_HTTPD_FILE_STATE (File State Argument)" Type="list" Group="HTTPD - File System Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_FILE_STATE requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to include an application state argument per file that is opened. This allows to keep a state per connection/file.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_FILE_STATE" Comment="LWIP_HTTPD_FILE_STATE (File State Argument)" Type="list" Group="HTTPD - File System Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to include an application state argument per file that is opened. This allows to keep a state per connection/file.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_FILE_STATE requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_PRECALCULATED_CHECKSUM" Comment="HTTPD_PRECALCULATED_CHECKSUM (Precompiled Checksum)" Type="list" Group="HTTPD - File System Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_PRECALCULATED_CHECKSUM requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>HTTPD_PRECALCULATED_CHECKSUM==1: include precompiled checksums for predefined (MSS-sized) chunks of the files to prevent having to calculate the checksums at runtime.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_PRECALCULATED_CHECKSUM" Comment="HTTPD_PRECALCULATED_CHECKSUM (Precompiled Checksum)" Type="list" Group="HTTPD - File System Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>HTTPD_PRECALCULATED_CHECKSUM==1: include precompiled checksums for predefined (MSS-sized) chunks of the files to prevent having to calculate the checksums at runtime.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_PRECALCULATED_CHECKSUM requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_FS_ASYNC_READ" Comment="LWIP_HTTPD_FS_ASYNC_READ (Asynchronous Read Operation)" Type="list" Group="HTTPD - File System Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_FS_ASYNC_READ requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_HTTPD_FS_ASYNC_READ==1: support asynchronous read operations(fs_read_async returns FS_READ_DELAYED and calls a callback when finished).</Description>
    </RefParameter>
    <RefParameter Name="LWIP_HTTPD_FS_ASYNC_READ" Comment="LWIP_HTTPD_FS_ASYNC_READ (Asynchronous Read Operation)" Type="list" Group="HTTPD - File System Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>LWIP_HTTPD_FS_ASYNC_READ==1: support asynchronous read operations(fs_read_async returns FS_READ_DELAYED and calls a callback when finished).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_HTTPD_FS_ASYNC_READ requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_USE_CUSTOM_FSDATA" Comment="HTTPD_USE_CUSTOM_FSDATA (Custom FS Data)" Type="list" Group="HTTPD - File System Options" DefaultValue="0" TabName="HTTPD" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_USE_CUSTOM_FSDATA requires LWIP_HTTPD enabled." Expression="LWIP_HTTPD"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>&lt;b&gt;Warnings:&lt;/b&gt;&lt;br&gt;- HTTPD_USE_CUSTOM_FSDATA enabled requires once code has been generated to have in your project folder within Middlewares\Third_Party\LwIP\src\apps\http folder "fsdata_custom.c" instead of "fsdata.c".&lt;br&gt;- Adding "fsdata_custom.c" can be done by renaming existing "fsdata.c" file in "fsdata_custom.c".&lt;br&gt;- If "fsdata.c" has not been copied in your project, it can be taken from the Firmware Repository (Menu Help &gt; Updater Settings...) Software Package folder within Middlewares\Third_Party\LwIP\src\apps\http folder.&lt;br&gt;- Depending on project settings and IDE used, "fsdata_custom.c" or "fsdata.c" can be removed after each code generation. Please take care of this!&lt;br&gt;&lt;b&gt;Limitations&lt;/b&gt;:&lt;br&gt; It is not supported by STM32CubeMX to disable HTTPD_USE_CUSTOM_FSDATA.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_USE_CUSTOM_FSDATA" Comment="HTTPD_USE_CUSTOM_FSDATA (Custom FS Data)" Type="list" Group="HTTPD - File System Options" DefaultValue="null" TabName="HTTPD" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to include "fsdata_custom.c" instead of "fsdata.c" for the file system (to prevent changing the file included in CVS).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: HTTPD_USE_CUSTOM_FSDATA requires LWIP_HTTPD enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP" Comment="LWIP_SNMP (LwIP SNMP Agent)" Type="list" Group="SNMP Options" DefaultValue="0" TabName="SNMP" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP stack needs a receive API {raw, netconn} and UDP.&lt;br&gt;" Expression="LWIP_UDP &amp; (SNMP_USE_NETCONN | SNMP_USE_RAW)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>&lt;b&gt;Warning: up to user to take care!&lt;/b&gt;: Enable SNMP requires user specific code not yet generated by STM32Cube MX. This is reserved for advanced users.&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;All Most SNMP options are visible as "Advanced Parameters" and only when LWIP_SNMP is enabled.&lt;br&gt;This parameter enables the lwIP SNMP agent. UDP must be available for SNMP transport.&lt;br&gt;If you want to use your own SNMP agent, leave this disabled.&lt;br&gt;To integrate MIB2 of an external agent, you need to enable LWIP_MIB2_CALLBACKS and MIB2_STATS. This will give you the callbacks and statistics counters you need to get MIB2 working.&lt;br&gt;&lt;br&gt;Features:&lt;br&gt;- SNMPv2c support.&lt;br&gt;- Low RAM usage - no memory pools, stack only.&lt;br&gt;- MIB2 implementation is separated from SNMP stack.&lt;br&gt;- Support for multiple MIBs (snmp_set_mibs() call) - e.g. for private MIB.&lt;br&gt;- Simple and generic API for MIB implementation.&lt;br&gt;- Comfortable node types and helper functions for scalar arrays and tables.&lt;br&gt;- Counter64, bit and truthvalue datatype support.&lt;br&gt;- Callbacks for SNMP writes e.g. to implement persistency.&lt;br&gt;- Runs on two APIs: RAW and netconn.&lt;br&gt;- Async API is gone - the stack now supports netconn API instead, so blocking operations can be done in MIB calls. SNMP runs in a worker thread when netconn API is used.&lt;br&gt;- Simplified thread sync support for MIBs - useful when MIBs need to access variables shared with other threads where no locking is possible. Used in MIB2 to access lwIP stats from lwIP thread.&lt;br&gt;&lt;br&gt;MIB compiler (code generator):&lt;br&gt;- Written in C#. MIB viewer used Windows Forms.&lt;br&gt;- Developed on Windows with Visual Studio 2010.&lt;br&gt;- Can be compiled and used under Linux with http://www.monodevelop.com/.&lt;br&gt;- Based on a heavily modified version of of SharpSnmpLib (a4bd05c6afb4) (https://sharpsnmplib.codeplex.com/SourceControl/network/forks/Nemo157/MIBParserUpdate).&lt;br&gt;- MIB parser, C file generation framework and LWIP code generation are cleanly separated, which means the code may be useful as a base for code generation of other SNMP agents.&lt;br&gt;&lt;br&gt;Notes:&lt;br&gt;- Stack and MIB compiler were used to implement a Profinet device. Compiled/implemented MIBs: LLDP-MIB, LLDP-EXT-DOT3-MIB, LLDP-EXT-PNO-MIB.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP" Comment="LWIP_SNMP (LwIP SNMP Agent)" Type="list" Group="SNMP Options" DefaultValue="0" TabName="SNMP" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>&lt;b&gt;Dependency&lt;/b&gt;: SNMP stack needs a receive API and UDP {raw, netconn}.&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;Most other SNMP options are visible as "Advanced Parameters" and only when LWIP_SNMP is enabled.&lt;br&gt;&lt;br&gt;This parameter enables the lwIP SNMP agent. UDP must be available for SNMP transport.&lt;br&gt;If you want to use your own SNMP agent, leave this disabled.&lt;br&gt;To integrate MIB2 of an external agent, you need to enable LWIP_MIB2_CALLBACKS and MIB2_STATS. This will give you the callbacks and statistics counters you need to get MIB2 working.&lt;br&gt;&lt;br&gt;Features:&lt;br&gt;- SNMPv2c support.&lt;br&gt;- Low RAM usage - no memory pools, stack only.&lt;br&gt;- MIB2 implementation is separated from SNMP stack.&lt;br&gt;- Support for multiple MIBs (snmp_set_mibs() call) - e.g. for private MIB.&lt;br&gt;- Simple and generic API for MIB implementation.&lt;br&gt;- Comfortable node types and helper functions for scalar arrays and tables.&lt;br&gt;- Counter64, bit and truthvalue datatype support.&lt;br&gt;- Callbacks for SNMP writes e.g. to implement persistency.&lt;br&gt;- Runs on two APIs: RAW and netconn.&lt;br&gt;- Async API is gone - the stack now supports netconn API instead, so blocking operations can be done in MIB calls. SNMP runs in a worker thread when netconn API is used.&lt;br&gt;- Simplified thread sync support for MIBs - useful when MIBs need to access variables shared with other threads where no locking is possible. Used in MIB2 to access lwIP stats from lwIP thread.&lt;br&gt;&lt;br&gt;MIB compiler (code generator):&lt;br&gt;- Written in C#. MIB viewer used Windows Forms.&lt;br&gt;- Developed on Windows with Visual Studio 2010.&lt;br&gt;- Can be compiled and used under Linux with http://www.monodevelop.com/.&lt;br&gt;- Based on a heavily modified version of of SharpSnmpLib (a4bd05c6afb4) (https://sharpsnmplib.codeplex.com/SourceControl/network/forks/Nemo157/MIBParserUpdate).&lt;br&gt;- MIB parser, C file generation framework and LWIP code generation are cleanly separated, which means the code may be useful as a base for code generation of other SNMP agents.&lt;br&gt;&lt;br&gt;Notes:&lt;br&gt;- Stack and MIB compiler were used to implement a Profinet device. Compiled/implemented MIBs: LLDP-MIB, LLDP-EXT-DOT3-MIB, LLDP-EXT-PNO-MIB.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_USE_NETCONN" Comment="SNMP_USE_NETCONN (Use Netconn API)" Type="list" Group="SNMP Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP stack can use only one of the APIs {raw, netconn}. SNMP_USE_NETCONN requires LWIP_SNMP enabled." Expression="!S_SNMP_USE_NETCONN"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Use netconn API instead of raw API.&lt;br&gt;Makes SNMP agent run in a worker thread, so blocking operations can be done in MIB calls.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_USE_NETCONN" Comment="SNMP_USE_NETCONN (Use Netconn API)" Type="list" Group="SNMP Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Use netconn API instead of raw API.&lt;br&gt;Makes SNMP agent run in a worker thread, so blocking operations can be done in MIB calls.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP stack can use only one of the APIs {raw, netconn}.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_USE_RAW" Comment="SNMP_USE_RAW (Use Raw API)" Type="list" Group="SNMP Options" DefaultValue="1" TabName="SNMP" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1" Semaphore="S_SNMP_USE_NETCONN"/>
        <Description>Use raw API.&lt;br&gt;SNMP agent does not run in a worker thread, so blocking operations should not be done in MIB calls.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_STACK_SIZE" Comment="SNMP_STACK_SIZE (Stack Size of SNMP Worker Thread)" Type="Integer" Unit="Word(s)" Group="SNMP Options" DefaultValue="=DEFAULT_THREAD_STACKSIZE" TabName="SNMP" Mode="Advanced" Min="=FREERTOS$context:configMINIMAL_STACK_SIZE" Max="=FREERTOS$context:MAX_SIZE_IN_USE" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_STACK_SIZE requires LWIP_SNMP and SNMP_USE_NETCONN enabled." Expression="LWIP_SNMP &amp; SNMP_USE_NETCONN"/>
        <Description>Stack size of SNMP netconn worker thread.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_STACK_SIZE" Comment="SNMP_STACK_SIZE (Stack Size of SNMP Worker Thread)" Type="Integer" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>Stack size of SNMP netconn worker thread.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_STACK_SIZE requires LWIP_SNMP and SNMP_USE_NETCONN enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_THREAD_PRIO" Comment="SNMP_THREAD_PRIO (SNMP Worker Thread Priority)" Type="Integer" Group="SNMP Options" DefaultValue="=DEFAULT_THREAD_PRIO" TabName="SNMP" Mode="Advanced" Min="0" Max="=FREERTOS$context:configMAX_PRIORITIES-1" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_THREAD_PRIO requires LWIP_SNMP and SNMP_USE_NETCONN enabled." Expression="LWIP_SNMP &amp; SNMP_USE_NETCONN"/>
        <Description>SNMP netconn worker thread priority.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_THREAD_PRIO" Comment="SNMP_THREAD_PRIO (SNMP Worker Thread Priority)" Type="Integer" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>SNMP netconn worker thread priority.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_THREAD_PRIO requires LWIP_SNMP and SNMP_USE_NETCONN enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_TRAP_DESTINATIONS" Comment="SNMP_TRAP_DESTINATIONS (Number of Trap Destinations)" Type="Integer" Group="SNMP Options" DefaultValue="1" TabName="SNMP" Mode="Advanced" Min="1" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_TRAP_DESTINATIONS requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>Number of trap destinations. At least one trap destination is required.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_TRAP_DESTINATIONS" Comment="SNMP_TRAP_DESTINATIONS (Number of Trap Destinations)" Type="Integer" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>Number of trap destinations. At least one trap destination is required.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_TRAP_DESTINATIONS requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_SAFE_REQUESTS" Comment="SNMP_SAFE_REQUESTS (Allow Safe Write Actions)" Type="list" Group="SNMP Options" DefaultValue="1" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_SAFE_REQUESTS requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Only allow SNMP write actions that are 'safe' (e.g. disabling netifs is not a safe action and disabled when SNMP_SAFE_REQUESTS = 1). Unsafe requests are disabled by default!.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_SAFE_REQUESTS" Comment="SNMP_SAFE_REQUESTS (Allow Safe Write Actions)" Type="list" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>Only allow SNMP write actions that are 'safe' (e.g. disabling netifs is not a safe action and disabled when SNMP_SAFE_REQUESTS = 1). Unsafe requests are disabled by default!.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_SAFE_REQUESTS requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MAX_OCTET_STRING_LEN" Comment="SNMP_MAX_OCTET_STRING_LEN (Maximum Length of Strings Used)" Type="Integer" Group="SNMP Options" DefaultValue="127" TabName="SNMP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_MAX_OCTET_STRING_LEN requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>The maximum length of strings used.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MAX_OCTET_STRING_LEN" Comment="SNMP_MAX_OCTET_STRING_LEN (Maximum Length of Strings Used)" Type="Integer" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>The maximum length of strings used.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_MAX_OCTET_STRING_LEN requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MAX_OBJ_ID_LEN" Comment="SNMP_MAX_OBJ_ID_LEN (Maximum Number of Object Identifier Sub IDs)" Type="Integer" Group="SNMP Options" DefaultValue="50" TabName="SNMP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_MAX_OBJ_ID_LEN requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>The maximum number of Sub ID's inside an object identifier. Indirectly this also limits the maximum depth of SNMP tree.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MAX_OBJ_ID_LEN" Comment="SNMP_MAX_OBJ_ID_LEN (Maximum Number of Object Identifier Sub IDs)" Type="Integer" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>The maximum number of Sub ID's inside an object identifier. Indirectly this also limits the maximum depth of SNMP tree.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_MAX_OBJ_ID_LEN requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MIN_VALUE_SIZE" Comment="SNMP_MIN_VALUE_SIZE (Min Value Size for Basic Types)" Type="Integer" Group="SNMP Options" DefaultValue="8" TabName="SNMP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_MIN_VALUE_SIZE requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>Size required to store the basic types (8 bytes for counter64).&lt;br&gt;Default value is: 2 * sizeof(u32_t*).</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MIN_VALUE_SIZE" Comment="SNMP_MIN_VALUE_SIZE (Min Value Size for Basic Types)" Type="Integer" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>Size required to store the basic types (8 bytes for counter64).&lt;br&gt;Default value is: 2 * sizeof(u32_t*).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_MIN_VALUE_SIZE requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MAX_VALUE_SIZE" Comment="SNMP_MAX_VALUE_SIZE (Max Value Size)" Type="Integer" Group="SNMP Options" DefaultValue="200" TabName="SNMP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_MAX_VALUE_SIZE requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>The default value for SNMP_MAX_VALUE_SIZE is: LWIP_MAX(LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN), sizeof(u32_t)*(SNMP_MAX_OBJ_ID_LEN)), SNMP_MIN_VALUE_SIZE).</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MAX_VALUE_SIZE" Comment="SNMP_MAX_VALUE_SIZE (Max Value Size)" Type="Integer" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>The default value for SNMP_MAX_VALUE_SIZE is: LWIP_MAX(LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN), sizeof(u32_t)*(SNMP_MAX_OBJ_ID_LEN)), SNMP_MIN_VALUE_SIZE).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_MAX_VALUE_SIZE requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_COMMUNITY" Comment="SNMP_COMMUNITY (SNMP Read-Access Community)" Type="StringRW" Group="SNMP Options" DefaultValue="&quot;public&quot;" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_COMMUNITY requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>The snmp read-access community. Used for write-access and traps, too unless SNMP_COMMUNITY_WRITE or SNMP_COMMUNITY_TRAP are enabled, respectively.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_COMMUNITY" Comment="SNMP_COMMUNITY (SNMP Read-Access Community)" Type="StringRW" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>The snmp read-access community. Used for write-access and traps, too unless SNMP_COMMUNITY_WRITE or SNMP_COMMUNITY_TRAP are enabled, respectively.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_COMMUNITY requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_COMMUNITY_WRITE" Comment="SNMP_COMMUNITY_WRITE (SNMP Write-Access Community)" Type="StringRW" Group="SNMP Options" DefaultValue="&quot;private&quot;" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_COMMUNITY_WRITE requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>The snmp write-access community. Set this community to "" in order to disallow any write access.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_COMMUNITY_WRITE" Comment="SNMP_COMMUNITY_WRITE (SNMP Write-Access Community)" Type="StringRW" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>The snmp write-access community. Set this community to "" in order to disallow any write access.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_COMMUNITY_WRITE requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_COMMUNITY_TRAP" Comment="SNMP_COMMUNITY_TRAP (SNMP Community Sending Traps)" Type="StringRW" Group="SNMP Options" DefaultValue="&quot;public&quot;" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_COMMUNITY_TRAP requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>The snmp community used for sending traps.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_COMMUNITY_TRAP" Comment="SNMP_COMMUNITY_TRAP (SNMP Community Sending Traps)" Type="StringRW" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>The snmp community used for sending traps.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_COMMUNITY_TRAP requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MAX_COMMUNITY_STR_LEN" Comment="SNMP_MAX_COMMUNITY_STR_LEN (Maximum Community String Length)" Type="Integer" Group="SNMP Options" DefaultValue="7" TabName="SNMP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_MAX_COMMUNITY_STR_LEN requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>The maximum length of community string.&lt;br&gt;If community names shall be adjusted at runtime via snmp_set_community() calls, enter here the possible maximum length (+1 for terminating null character).Default value of SNMP_MAX_COMMUNITY_STR_LEN is: LWIP_MAX(LWIP_MAX(sizeof(SNMP_COMMUNITY), sizeof(SNMP_COMMUNITY_WRITE)), sizeof(SNMP_COMMUNITY_TRAP)).</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MAX_COMMUNITY_STR_LEN" Comment="SNMP_MAX_COMMUNITY_STR_LEN (Maximum Community String Length)" Type="Integer" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>The maximum length of community string.&lt;br&gt;If community names shall be adjusted at runtime via snmp_set_community() calls, enter here the possible maximum length (+1 for terminating null character).Default value of SNMP_MAX_COMMUNITY_STR_LEN is: LWIP_MAX(LWIP_MAX(sizeof(SNMP_COMMUNITY), sizeof(SNMP_COMMUNITY_WRITE)), sizeof(SNMP_COMMUNITY_TRAP)).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_STACK_SIZE requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2" Comment="SNMP_LWIP_MIB2 (MIB2 Implementation of LWIP SNMP)" Type="list" Group="SNMP Options" DefaultValue="=LWIP_SNMP" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2 requires LWIP_SNMP, LWIP_STATS and MIB2_STATS enabled." Expression="LWIP_SNMP &amp; LWIP_STATS &amp; MIB2_STATS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Indicates if the MIB2 implementation of LWIP SNMP stack is used.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2" Comment="SNMP_LWIP_MIB2 (MIB2 Implementation of LWIP SNMP)" Type="list" Group="SNMP Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" Visible="true">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable MIB2 implementation of LWIP SNMP stack.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2 requires LWIP_SNMP, LWIP_STATS and MIB2_STATS enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2_SYSDESC" Comment="SNMP_LWIP_MIB2_SYSDESC (MIB2 SysDesc Value)" Type="StringRW" Group="SNMP Options" DefaultValue="&quot;lwIP&quot;" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2_SYSDESC requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>Value return for sysDesc field of MIB2.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2_SYSDESC" Comment="SNMP_LWIP_MIB2_SYSDESC (MIB2 SysDesc Value)" Type="StringRW" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>Value return for sysDesc field of MIB2.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2_SYSDESC requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2_SYSNAME" Comment="SNMP_LWIP_MIB2_SYSNAME (MIB2 SysName Value)" Type="StringRW" Group="SNMP Options" DefaultValue="&quot;FQDN-unk&quot;" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2_SYSNAME requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>Value return for sysName field of MIB2.&lt;br&gt;To make sysName field settable, call snmp_mib2_set_sysname() to provide the necessary buffers.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2_SYSNAME" Comment="SNMP_LWIP_MIB2_SYSNAME (MIB2 SysName Value)" Type="StringRW" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>Value return for sysName field of MIB2.&lt;br&gt;To make sysName field settable, call snmp_mib2_set_sysname() to provide the necessary buffers.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2_SYSNAME requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2_SYSCONTACT" Comment="SNMP_LWIP_MIB2_SYSCONTACT (MIB2 SysContact Field Value)" Type="StringRW" Group="SNMP Options" DefaultValue="&quot;&quot;" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2_SYSCONTACT requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>Value return for sysContact field of MIB2.&lt;br&gt;To make sysContact field settable, call snmp_mib2_set_syscontact() to provide the necessary buffers.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2_SYSCONTACT" Comment="SNMP_LWIP_MIB2_SYSCONTACT (MIB2 SysContact Field Value)" Type="StringRW" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>Value return for sysContact field of MIB2.&lt;br&gt;To make sysContact field settable, call snmp_mib2_set_syscontact() to provide the necessary buffers.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2_SYSCONTACT requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2_SYSLOCATION" Comment="SNMP_LWIP_MIB2_SYSLOCATION (MIB2 SysLocation Field Value)" Type="StringRW" Group="SNMP Options" DefaultValue="&quot;&quot;" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2_SYSLOCATION requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>Value return for sysLocation field of MIB2.&lt;br&gt;To make sysLocation field settable, call snmp_mib2_set_syslocation() to provide the necessary buffers.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_MIB2_SYSLOCATION" Comment="SNMP_LWIP_MIB2_SYSLOCATION (MIB2 SysLocation Field Value)" Type="StringRW" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>Value return for sysLocation field of MIB2.&lt;br&gt;To make sysLocation field settable, call snmp_mib2_set_syslocation() to provide the necessary buffers.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_MIB2_SYSLOCATION requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_GETBULK_MAX_REPETITIONS" Comment="SNMP_LWIP_GETBULK_MAX_REPETITIONS (Max Repetitions in GetBulk Requests)" Type="Integer" Group="SNMP Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_GETBULK_MAX_REPETITIONS requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <Description>This value is used to limit the repetitions processed in GetBulk requests (value == 0 means no limitation).&lt;br&gt;This may be useful to limit the load for a single request.&lt;br&gt;According to SNMP RFC 1905 it is allowed to not return all requested variables from a GetBulk request if system load would be too high. so the effect is that the client will do more requests to gather all data.&lt;br&gt;For the stack this could be useful in case that SNMP processing is done in TCP/IP thread. In this situation a request with many repetitions could block the thread for a longer time. Setting limit here will keep the stack more responsive.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_LWIP_GETBULK_MAX_REPETITIONS" Comment="SNMP_LWIP_GETBULK_MAX_REPETITIONS (Max Repetitions in GetBulk Requests)" Type="Integer" Group="SNMP Options" DefaultValue="null" TabName="SNMP" Mode="Advanced" Visible="false">
        <Description>This value is used to limit the repetitions processed in GetBulk requests (value == 0 means no limitation).&lt;br&gt;This may be useful to limit the load for a single request.&lt;br&gt;According to SNMP RFC 1905 it is allowed to not return all requested variables from a GetBulk request if system load would be too high. so the effect is that the client will do more requests to gather all data.&lt;br&gt;For the stack this could be useful in case that SNMP processing is done in TCP/IP thread. In this situation a request with many repetitions could block the thread for a longer time. Setting limit here will keep the stack more responsive.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNMP_LWIP_GETBULK_MAX_REPETITIONS requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP_V3" Comment="LWIP_SNMP_V3 (SNMP Version 3)" Type="list" Group="SNMP - Version3 Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_SNMP_V3 requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_SNMP_V3 enables EXPERIMENTAL SNMPv3 support.&lt;br&gt;THIS IS UNDER DEVELOPMENT AND SHOULD NOT BE ENABLED IN PRODUCTS.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP_V3" Comment="LWIP_SNMP_V3 (SNMP Version 3)" Type="list" Group="SNMP - Version3 Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" Visible="true">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>LWIP_SNMP_V3 enables EXPERIMENTAL SNMPv3 support.&lt;br&gt;THIS IS UNDER DEVELOPMENT AND SHOULD NOT BE ENABLED IN PRODUCTS.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_SNMP_V3 requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP_V3_MBEDTLS" Comment="LWIP_SNMP_V3_MBEDTLS (SNMP Version 3 Mbedtls)" Type="list" Group="SNMP - Version3 Options" DefaultValue="=LWIP_SNMP_V3" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_SNMP_V3_CRYPTO requires LWIP_SNMP and LWIP_SNMP_V3 enabled." Expression="LWIP_SNMP &amp; LWIP_SNMP_V3"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_SNMP_V3_MBEDTLS enables EXPERIMENTAL SNMPv3 mbedtls support.&lt;br&gt;THIS IS UNDER DEVELOPMENT AND SHOULD NOT BE ENABLED IN PRODUCTS.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP_V3_MBEDTLS" Comment="LWIP_SNMP_V3_MBEDTLS (SNMP Version 3 Mbedtls)" Type="list" Group="SNMP - Version3 Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" Visible="true">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>LWIP_SNMP_V3_MBEDTLS enables EXPERIMENTAL SNMPv3 mbedtls support.&lt;br&gt;THIS IS UNDER DEVELOPMENT AND SHOULD NOT BE ENABLED IN PRODUCTS.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_SNMP_V3_MBEDTLS requires LWIP_SNMP and LWIP_SNMP_V3 enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP_V3_CRYPTO" Comment="LWIP_SNMP_V3_CRYPTO (SNMP Version 3 Crypto)" Type="list" Group="SNMP - Version3 Options" DefaultValue="=LWIP_SNMP_V3_MBEDTLS" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_SNMP_V3_CRYPTO requires LWIP_SNMP and LWIP_SNMP_V3 enabled." Expression="LWIP_SNMP &amp; LWIP_SNMP_V3"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_SNMP_V3_CRYPTO enables EXPERIMENTAL SNMPv3 crypto support.&lt;br&gt;THIS IS UNDER DEVELOPMENT AND SHOULD NOT BE ENABLED IN PRODUCTS.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP_V3_CRYPTO" Comment="LWIP_SNMP_V3_CRYPTO (SNMP Version 3 Crypto)" Type="list" Group="SNMP - Version3 Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" Visible="true">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>LWIP_SNMP_V3 enables EXPERIMENTAL SNMPv3 crypto support.&lt;br&gt;THIS IS UNDER DEVELOPMENT AND SHOULD NOT BE ENABLED IN PRODUCTS.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_SNMP_V3_CRYPTO requires LWIP_SNMP and LWIP_SNMP_V3 enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP_CONFIGURE_VERSIONS" Comment="LWIP_SNMP_CONFIGURE_VERSIONS (SNMP Configure Version)" Type="list" Group="SNMP - Version3 Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_SNMP_CONFIGURE_VERSIONS requires LWIP_SNMP enabled." Expression="LWIP_SNMP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>LWIP_SNMP_CONFIGURE_VERSIONS support.&lt;br&gt;THIS IS UNDER DEVELOPMENT AND SHOULD NOT BE ENABLED IN PRODUCTS.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNMP_CONFIGURE_VERSIONS" Comment="LWIP_SNMP_CONFIGURE_VERSIONS (SNMP Configure Version)" Type="list" Group="SNMP - Version3 Options" DefaultValue="0" TabName="SNMP" Mode="Advanced" Visible="true">
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>LWIP_SNMP_CONFIGURE_VERSIONS support.&lt;br&gt;THIS IS UNDER DEVELOPMENT AND SHOULD NOT BE ENABLED IN PRODUCTS.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_SNMP_CONFIGURE_VERSIONS requires LWIP_SNMP enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SNTP" Comment="LWIP_SNTP (LWIP SNTP Support ** CubeMX specific **)" Type="list" Group="SNTP Options" DefaultValue="0" TabName="SNTP/SMTP" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter provide access to an implementation of a simple "SNTP" client for the lwIP raw API.&lt;br&gt;It is a minimal implementation of SNTPv4 as specified in RFC 4330.&lt;br&gt;For a list of some public NTP servers, see this link : http://support.ntp.org/bin/view/Servers/NTPPoolServers&lt;br&gt;&lt;b&gt;Warnings (up to user to take care!)&lt;/b&gt;:&lt;br&gt;- Enable SNTP requires user specific code not yet generated by STM32Cube MX. This is reserved for advanced users&lt;br&gt;- This parameter introduced by CubeMX is not part of LwIP stack&lt;br&gt;- Enable LWIP_TIMERS when using SNTP, to avoid having compilation warnings on sys_timeout/sys_untimeout functions.&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;All other SNTP options are visible as "Advanced Parameters" and only when LWIP_SNTP is enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_MAX_SERVERS" Comment="SNTP_MAX_SERVERS (Maximum Number of SNTP Servers)" Type="Integer" Group="SNTP Options" DefaultValue="=LWIP_DHCP_MAX_NTP_SERVERS" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_MAX_SERVERS requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <Description>The maximum number of SNTP servers that can be set.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_MAX_SERVERS" Comment="SNTP_MAX_SERVERS (Maximum Number of SNTP Servers)" Type="Integer" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>The maximum number of SNTP servers that can be set.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_MAX_SERVERS requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_GET_SERVERS_FROM_DHCP" Comment="SNTP_GET_SERVERS_FROM_DHCP (Callback Function on DHCP Servers)" Type="Integer" Group="SNTP Options" DefaultValue="=LWIP_DHCP_GET_NTP_SRV" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_GET_SERVERS_FROM_DHCP requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <Description>Set this to 1 to implement the callback function called by dhcp when NTP servers are received.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_GET_SERVERS_FROM_DHCP" Comment="SNTP_GET_SERVERS_FROM_DHCP (Callback Function on DHCP Servers)" Type="Integer" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to implement the callback function called by dhcp when NTP servers are received.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_GET_SERVERS_FROM_DHCP requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_PORT" Comment="SNTP_PORT (SNTP Server Port)" Type="Integer" Group="SNTP Options" DefaultValue="123" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_PORT requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <Description>SNTP server port. The default value is LWIP_IANA_PORT_SNTP set to 123 in iana.h file.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_PORT" Comment="SNTP_PORT (SNTP Server Port)" Type="Integer" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>SNTP server port.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_PORT requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_CHECK_RESPONSE" Comment="SNTP_CHECK_RESPONSE (Sanity Check)" Type="Integer" Group="SNTP Options" DefaultValue="0" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_CHECK_RESPONSE requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <Description>Sanity check:&lt;br&gt;Define this to&lt;br&gt;- 0 to turn off sanity checks (default; smaller code) - &gt;= 1 to check address and port of the response packet to ensure the response comes from the server we sent the request to. - &gt;= 2 to check returned Originate Timestamp against Transmit Timestamp sent to the server (to ensure response to older request). - &gt;= 3 @todo: discard reply if any of the VN, Stratum, or Transmit Timestamp fields is 0 or the Mode field is not 4 (unicast) or 5 (broadcast). - &gt;= 4 @todo: to check that the Root Delay and Root Dispersion fields are each greater than or equal to 0 and less than infinity, where infinity is currently a cozy number like one second. This check avoids using a server whose synchronization source has expired for a very long time.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_CHECK_RESPONSE" Comment="SNTP_CHECK_RESPONSE (Sanity Check)" Type="Integer" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Sanity check:&lt;br&gt;Define this to&lt;br&gt;- 0 to turn off sanity checks (default; smaller code) - &gt;= 1 to check address and port of the response packet to ensure the response comes from the server we sent the request to. - &gt;= 2 to check returned Originate Timestamp against Transmit Timestamp sent to the server (to ensure response to older request). - &gt;= 3 @todo: discard reply if any of the LI, Stratum, or Transmit Timestamp fields is 0 or the Mode field is not 4 (unicast) or 5 (broadcast). - &gt;= 4 @todo: to check that the Root Delay and Root Dispersion fields are each greater than or equal to 0 and less than infinity, where infinity is currently a cozy number like one second. This check avoids using a server whose synchronization source has expired for a very long time.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_CHECK_RESPONSE requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_COMP_ROUNDTRIP" Comment="SNTP_COMP_ROUNDTRIP (Round-trip Delay Compensation)" Type="list" Group="SNTP Options" DefaultValue="0" TabName="SNTP/SMTP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_COMP_ROUNDTRIP requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable round-trip delay compensation.&lt;br&gt;Compensate for the round-trip delay by calculating the clock offset from the originate, receive, transmit and destination timestamps, as per RFC.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_COMP_ROUNDTRIP" Comment="SNTP_COMP_ROUNDTRIP (Sanity Check)" Type="list" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Enable round-trip delay compensation.&lt;br&gt;Compensate for the round-trip delay by calculating the clock offset from the originate, receive, transmit and destination timestamps, as per RFC.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_COMP_ROUNDTRIP requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_RECV_TIMEOUT" Comment="SNTP_RECV_TIMEOUT (SNTP Receive Timeout)" Type="Integer" Unit="Millisecond(ms)" Group="SNTP Options" DefaultValue="15000" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_RECV_TIMEOUT requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <Description>SNTP receive timeout - in milliseconds&lt;br&gt;Also used as retry timeout - this shouldn't be too low.&lt;br&gt;Default is 15 seconds. Must not be beolw 15 seconds by specification (i.e. 15000).</Description>
    </RefParameter>
    <RefParameter Name="SNTP_RECV_TIMEOUT" Comment="SNTP_RECV_TIMEOUT (SNTP Receive Timeout)" Type="Integer" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>SNTP receive timeout - in milliseconds&lt;br&gt;Also used as retry timeout - this shouldn't be too low.&lt;br&gt;Default is 15 seconds. Must not be beolw 15 seconds by specification (i.e. 15000).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_RECV_TIMEOUT requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_UPDATE_DELAY" Comment="SNTP_UPDATE_DELAY (SNTP Update Delay)" Type="Integer" Unit="Millisecond(ms)" Group="SNTP Options" DefaultValue="3600000" TabName="SNTP/SMTP" Mode="Advanced" Min="=15*1000" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_UPDATE_DELAY requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <Description>SNTP update delay - in milliseconds&lt;br&gt;Default is 1 hour. Must not be beolw 60 seconds by specification (i.e. 15000).</Description>
    </RefParameter>
    <RefParameter Name="SNTP_UPDATE_DELAY" Comment="SNTP_UPDATE_DELAY (SNTP Update Delay)" Type="Integer" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>SNTP update delay - in milliseconds&lt;br&gt;Default is 1 hour. Must not be beolw 60 seconds by specification (i.e. 15000).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_UPDATE_DELAY requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_RETRY_TIMEOUT" Comment="SNTP_RETRY_TIMEOUT (SNTP Default Retry Timeout)" Type="Integer" Unit="Millisecond(ms)" Group="SNTP Options" DefaultValue="=SNTP_RECV_TIMEOUT" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_RETRY_TIMEOUT requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <Description>Default retry timeout (in milliseconds) if the response received is invalid.&lt;br&gt;This is doubled with each retry until SNTP_RETRY_TIMEOUT_MAX is reached.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_RETRY_TIMEOUT" Comment="SNTP_RETRY_TIMEOUT (SNTP Default Retry Timeout)" Type="Integer" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Default retry timeout (in milliseconds) if the response received is invalid.&lt;br&gt;This is doubled with each retry until SNTP_RETRY_TIMEOUT_MAX is reached.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_RETRY_TIMEOUT requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_RETRY_TIMEOUT_MAX" Comment="SNTP_RETRY_TIMEOUT_MAX (Maximum SNTP Retry Timeout)" Type="Integer" Unit="Millisecond(ms)" Group="SNTP Options" DefaultValue="=SNTP_RETRY_TIMEOUT*10" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_RETRY_TIMEOUT_MAX requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <Description>Maximum retry timeout (in milliseconds).</Description>
    </RefParameter>
    <RefParameter Name="SNTP_RETRY_TIMEOUT_MAX" Comment="SNTP_RETRY_TIMEOUT_MAX (Maximum SNTP Retry Timeout)" Type="Integer" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Maximum retry timeout (in milliseconds).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_RETRY_TIMEOUT_MAX requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_RETRY_TIMEOUT_EXP" Comment="SNTP_RETRY_TIMEOUT_EXP (Retry Timeout Increase)" Type="list" Group="SNTP Options" DefaultValue="1" TabName="SNTP/SMTP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_RETRY_TIMEOUT_EXP requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Increase retry timeout with every retry sent&lt;br&gt;Default is on to conform to RFC.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_RETRY_TIMEOUT_EXP" Comment="SNTP_RETRY_TIMEOUT_EXP (Retry Timeout Increase)" Type="list" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Increase retry timeout with every retry sent&lt;br&gt;Default is on to conform to RFC.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_RETRY_TIMEOUT_EXP requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_MONITOR_SERVER_REACHABILITY" Comment="SNTP_MONITOR_SERVER_REACHABILITY (Reachability Shift Register per Server)" Type="list" Group="SNTP Options" DefaultValue="1" TabName="SNTP/SMTP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SNTP_MONITOR_SERVER_REACHABILITY requires LWIP_SNTP enabled." Expression="LWIP_SNTP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Keep a reachability shift register per server.&lt;br&gt;Default is on to conform to RFC.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_MONITOR_SERVER_REACHABILITY" Comment="SNTP_MONITOR_SERVER_REACHABILITY (Reachability Shift Register per Server)" Type="list" Group="SNTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Keep a reachability shift register per server.&lt;br&gt;Default is on to conform to RFC.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SNTP_MONITOR_SERVER_REACHABILITY requires LWIP_SNTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_SMTP" Comment="LWIP_SMTP (LWIP SMTP Support ** CubeMX specific **)" Type="list" Group="SMTP Options" DefaultValue="0" TabName="SNTP/SMTP" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter provide access to an implementation of a simple "SMTP" client.&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;All other SMTP options are visible as "Advanced Parameters" and only when LWIP_SMTP is enabled.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_BODYDH" Comment="SMTP_BODYDH (Data Handler Callback on BODY)" Type="list" Group="SMTP Options" DefaultValue="0" TabName="SNTP/SMTP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SMTP_BODYDH requires LWIP_SMTP enabled." Expression="LWIP_SMTP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to enable data handler callback on BODY.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_BODYDH" Comment="SMTP_BODYDH (Retry Timeout Increase)" Type="list" Group="SMTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to enable data handler callback on BODY.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SMTP_BODYDH requires LWIP_SMTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_MAX_SERVERNAME_LEN" Comment="SMTP_MAX_SERVERNAME_LEN (Maximum Length for Server Name)" Type="Integer" Unit="Bytes" Group="SMTP Options" DefaultValue="256" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SMTP_MAX_SERVERNAME_LEN requires LWIP_SMTP enabled." Expression="LWIP_SMTP"/>
        <Description>Maximum length reserved for server name including terminating 0 byte.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_MAX_SERVERNAME_LEN" Comment="SMTP_MAX_SERVERNAME_LEN (Maximum Length for Server Name)" Type="Integer" Group="SMTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Maximum length reserved for server name including terminating 0 byte.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SMTP_MAX_SERVERNAME_LEN requires LWIP_SMTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_MAX_USERNAME_LEN" Comment="SMTP_MAX_USERNAME_LEN (Maximum Length for Username)" Type="Integer" Unit="Bytes" Group="SMTP Options" DefaultValue="32" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SMTP_MAX_USERNAME_LEN requires LWIP_SMTP enabled." Expression="LWIP_SMTP"/>
        <Description>Maximum length reserved for username.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_MAX_USERNAME_LEN" Comment="SMTP_MAX_USERNAME_LEN (Maximum Length for Username)" Type="Integer" Group="SMTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Maximum length reserved for username.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SMTP_MAX_USERNAME_LEN requires LWIP_SMTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_MAX_PASS_LEN" Comment="SMTP_MAX_PASS_LEN (Maximum Length for Password)" Type="Integer" Unit="Bytes" Group="SMTP Options" DefaultValue="32" TabName="SNTP/SMTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SMTP_MAX_PASS_LEN requires LWIP_SMTP enabled." Expression="LWIP_SMTP"/>
        <Description>Maximum length reserved for password.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_MAX_PASS_LEN" Comment="SMTP_MAX_PASS_LEN (Maximum Length for Password)" Type="Integer" Group="SMTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Maximum length reserved for password.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SMTP_MAX_PASS_LEN requires LWIP_SMTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_COPY_AUTHDATA" Comment="SMTP_COPY_AUTHDATA (Authentication Data Copy)" Type="list" Group="SMTP Options" DefaultValue="1" TabName="SNTP/SMTP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SMTP_COPY_AUTHDATA requires LWIP_SMTP enabled." Expression="LWIP_SMTP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 0 if you know the authentication data will not change during the smtp session, which saves some heap space.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_COPY_AUTHDATA" Comment="SMTP_COPY_AUTHDATA (Authentication Data Copy)" Type="list" Group="SMTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Set this to 0 if you know the authentication data will not change during the smtp session, which saves some heap space.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SMTP_COPY_AUTHDATA requires LWIP_SMTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_CHECK_DATA" Comment="SMTP_CHECK_DATA (Data Check)" Type="list" Group="SMTP Options" DefaultValue="1" TabName="SNTP/SMTP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SMTP_CHECK_DATA requires LWIP_SMTP enabled." Expression="LWIP_SMTP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 0 to save some code space if you know for sure that all data passed to this module conforms to the requirements in the SMTP RFC.&lt;br&gt;WARNING: use this with care!</Description>
    </RefParameter>
    <RefParameter Name="SMTP_CHECK_DATA" Comment="SMTP_CHECK_DATA (Data Check)" Type="list" Group="SMTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Set this to 0 to save some code space if you know for sure that all data passed to this module conforms to the requirements in the SMTP RFC.&lt;br&gt;WARNING: use this with care!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SMTP_CHECK_DATA requires LWIP_SMTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_SUPPORT_AUTH_PLAIN" Comment="SMTP_SUPPORT_AUTH_PLAIN (AUTH PLAIN Support)" Type="list" Group="SMTP Options" DefaultValue="1" TabName="SNTP/SMTP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SMTP_SUPPORT_AUTH_PLAIN requires LWIP_SMTP enabled." Expression="LWIP_SMTP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to enable AUTH PLAIN support.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_SUPPORT_AUTH_PLAIN" Comment="SMTP_SUPPORT_AUTH_PLAIN (AUTH PLAIN Support)" Type="list" Group="SMTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to enable AUTH PLAIN support.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SMTP_SUPPORT_AUTH_PLAIN requires LWIP_SMTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_SUPPORT_AUTH_LOGIN" Comment="SMTP_SUPPORT_AUTH_LOGIN (AUTH LOGIN Support)" Type="list" Group="SMTP Options" DefaultValue="1" TabName="SNTP/SMTP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SMTP_SUPPORT_AUTH_LOGIN requires LWIP_SMTP enabled." Expression="LWIP_SMTP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to enable AUTH LOGIN support.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_SUPPORT_AUTH_LOGIN" Comment="SMTP_SUPPORT_AUTH_LOGIN (AUTH LOGIN Support)" Type="list" Group="SMTP Options" DefaultValue="null" TabName="SNTP/SMTP" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to enable AUTH LOGIN support.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SMTP_SUPPORT_AUTH_LOGIN requires LWIP_SMTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_MDNS" Comment="LWIP_MDNS (Multicast DNS Support ** CubeMX specific **)" Type="list" Group="MDNS Options" DefaultValue="0" TabName="MDNS/TFTP" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_MDNS requires LWIP_UDP, LWIP_IPV4 and LWIP_IGMP enabled." Expression="LWIP_UDP &amp; LWIP_IPV4 &amp; LWIP_IGMP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter provides access to an implementation of a MDNS responder.&lt;br&gt;The following RFC have been followed:&lt;br&gt;- RFC 6762 (Multicast DNS)&lt;br&gt;- RFC 6763 (DNS-Based Service Discovery).&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;All Other MDNS options are visible as "Advanced Parameters" and only when LWIP_MDNS is enabled.&lt;br&gt;&lt;b&gt;Warnings&lt;/b&gt;:&lt;br&gt;- This parameter introduced by CubeMX is not part of LwIP stack&lt;br&gt;- Enable MDNS requires user specific code not yet generated by STM32Cube MX, this is reserved for advanced users.&lt;br&gt;Things left to implement:&lt;br&gt;- Probing/conflict resolution&lt;br&gt;- Sending goodbye messages (zero ttl) - shutdown, DHCP lease about to expire, DHCP turned off...&lt;br&gt;- Checking that source address of unicast requests are on the same network&lt;br&gt;- Limiting multicast responses to 1 per second per resource record&lt;br&gt;- Fragmenting replies if required&lt;br&gt;- Subscribe to netif address/link change events and act on them (currently needs to be done manually)&lt;br&gt;- Handling multi-packet known answers&lt;br&gt;- Individual known answer detection for all local IPv6 addresses&lt;br&gt;- Dynamic size of outgoing packet&lt;br&gt;</Description>
    </RefParameter>
    <RefParameter Name="LWIP_MDNS" Comment="LWIP_MDNS (Multicast DNS Support ** CubeMX specific **)" Type="list" Group="MDNS Options" DefaultValue="0" TabName="MDNS/TFTP" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>This parameter provides access to an implementation of a MDNS responder.&lt;br&gt;The following RFC have been followed:&lt;br&gt;- RFC 6762 (Multicast DNS)&lt;br&gt;- RFC 6763 (DNS-Based Service Discovery).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_MDNS requires LWIP_UDP, LWIP_IPV4 and LWIP_IGMP enabled.&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;All Other MDNS options are visible as "Advanced Parameters" and only when LWIP_MDNS is enabled.&lt;br&gt;&lt;b&gt;Warnings&lt;/b&gt;:&lt;br&gt;- This parameter introduced by CubeMX is not part of LwIP stack&lt;br&gt;- Enable MDNS requires user specific code not yet generated by STM32Cube MX, this is reserved for advanced users.&lt;br&gt;Things left to implement:&lt;br&gt;- Probing/conflict resolution&lt;br&gt;- Sending goodbye messages (zero ttl) - shutdown, DHCP lease about to expire, DHCP turned off...&lt;br&gt;- Checking that source address of unicast requests are on the same network&lt;br&gt;- Limiting multicast responses to 1 per second per resource record&lt;br&gt;- Fragmenting replies if required&lt;br&gt;- Subscribe to netif address/link change events and act on them (currently needs to be done manually)&lt;br&gt;- Handling multi-packet known answers&lt;br&gt;- Individual known answer detection for all local IPv6 addresses&lt;br&gt;- Dynamic size of outgoing packet&lt;br&gt;</Description>
    </RefParameter>
    <RefParameter Name="LWIP_MDNS_RESPONDER" Comment="LWIP_MDNS_RESPONDER (Multicast DNS Responder)" Type="list" Group="MDNS Options" DefaultValue="0" TabName="MDNS/TFTP" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_MDNS_RESPONDER requires LWIP_MDNS enabled." Expression="LWIP_MDNS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Set this to 1 to turn on multicast DNS module. UDP must be available for MDNS transport. IGMP is needed for IPv4 multicast.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_MDNS_RESPONDER" Comment="LWIP_MDNS_RESPONDER (Multicast DNS Responder)" Type="list" Group="MDNS Options" DefaultValue="null" TabName="MDNS/TFTP" Mode="Advanced" Visible="false">
        <Description>Set this to 1 to turn on multicast DNS module. UDP must be available for MDNS transport. IGMP is needed for IPv4 multicast.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_MDNS_RESPONDER requires LWIP_MDNS enabled.</Description>
    </RefParameter>
    <RefParameter Name="MDNS_MAX_SERVICES" Comment="MDNS_MAX_SERVICES (Maximum Number of Netif Services)" Type="Integer" Group="MDNS Options" DefaultValue="0" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MDNS_MAX_SERVICES requires LWIP_MDNS enabled." Expression="LWIP_MDNS"/>
        <Description>Use this parameter to set the maximum number of services per netif.</Description>
    </RefParameter>
    <RefParameter Name="MDNS_MAX_SERVICES" Comment="MDNS_MAX_SERVICES (Maximum Number of Netif Services)" Type="Integer" Group="MDNS Options" DefaultValue="null" TabName="MDNS/TFTP" Mode="Advanced" Visible="false">
        <Description>Use this parameter to set the maximum number of services per netif..&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MDNS_MAX_SERVICES requires LWIP_MDNS enabled.</Description>
    </RefParameter>
    <RefParameter Name="MDNS_RESP_USENETIF_EXTCALLBACK" Comment="MDNS_RESP_USENETIF_EXTCALLBACK (Register ext_callback on Netif)" Type="Integer" Group="MDNS Options" DefaultValue="=LWIP_NETIF_EXT_STATUS_CALLBACK" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MDNS_RESP_USENETIF_EXTCALLBACK requires LWIP_MDNS enabled." Expression="LWIP_MDNS"/>
        <Description>register an ext_callback on the netif to automatically restart probing/announcing on status or address change.</Description>
    </RefParameter>
    <RefParameter Name="MDNS_RESP_USENETIF_EXTCALLBACK" Comment="MDNS_RESP_USENETIF_EXTCALLBACK (Maximum Number of Netif Services)" Type="Integer" Group="MDNS Options" DefaultValue="null" TabName="MDNS/TFTP" Mode="Advanced" Visible="false">
        <Description>register an ext_callback on the netif to automatically restart probing/announcing on status or address change.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MDNS_RESP_USENETIF_EXTCALLBACK requires LWIP_MDNS enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TFTP" Comment="LWIP_TFTP (TFTP Support ** CubeMX specific **)" Type="list" Group="TFTP Options" DefaultValue="0" TabName="MDNS/TFTP" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter provide access to an implementation of a simple TFTP server for the lwIP raw API.&lt;br&gt;&lt;b&gt;Warnings&lt;/b&gt;:&lt;br&gt;- This parameter introduced by CubeMX is not part of LwIP stack.&lt;br&gt;- Enable TFTP requires user specific code not yet generated by STM32Cube MX. This is reserved for advanced users.&lt;br&gt;- Enable LWIP_TIMERS when using TFTP, to avoid having compilation warnings on sys_timeout/sys_untimeout functions.&lt;b&gt;Note: &lt;/b&gt;All Other TFTP options are visible as "Advanced Parameters" and only when LWIP_TFTP is enabled.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_PORT" Comment="TFTP_PORT (TFTP Server Port)" Type="Integer" Group="TFTP Options" DefaultValue="69" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TFTP_PORT requires LWIP_TFTP enabled." Expression="LWIP_TFTP"/>
        <Description>This option set the server port number. The default value is LWIP_IANA_PORT_TFTP set to 69 in iana.h file.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_PORT" Comment="TFTP_PORT (TFTP Server Port)" Type="Integer" Group="TFTP Options" DefaultValue="null" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>This option set the server port number.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TFTP_PORT requires LWIP_TFTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_TIMEOUT_MSECS" Comment="TFTP_TIMEOUT_MSECS (TFTP Timeout)" Type="Integer" Unit="Millisecond(ms)" Group="TFTP Options" DefaultValue="10000" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TFTP_TIMEOUT_MSECS requires LWIP_TFTP enabled." Expression="LWIP_TFTP"/>
        <Description>This option set TFTP timeout.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_TIMEOUT_MSECS" Comment="TFTP_TIMEOUT_MSECS (TFTP Timeout)" Type="Integer" Group="TFTP Options" DefaultValue="null" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>This option set TFTP timeout.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TFTP_TIMEOUT_MSECS requires LWIP_TFTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_MAX_RETRIES" Comment="TFTP_MAX_RETRIES (TFTP Maximum Retries Number)" Type="Integer" Group="TFTP Options" DefaultValue="5" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TFTP_MAX_RETRIES requires LWIP_TFTP enabled." Expression="LWIP_TFTP"/>
        <Description>This option set the maximum number of retries when a file is read from server.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_MAX_RETRIES" Comment="TFTP_MAX_RETRIES (TFTP Maximum Retries Number)" Type="Integer" Group="TFTP Options" DefaultValue="null" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>This option set the maximum number of retries when a file is read from server.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TFTP_MAX_RETRIES requires LWIP_TFTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_TIMER_MSECS" Comment="TFTP_TIMER_MSECS (TFTP Timer Cyclic Interval)" Type="Integer" Group="TFTP Options" DefaultValue="=TFTP_TIMEOUT_MSECS/10" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TFTP_TIMER_MSECS requires LWIP_TFTP enabled." Expression="LWIP_TFTP"/>
        <Description>This option set the timer cyclic interval.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_TIMER_MSECS" Comment="TFTP_TIMER_MSECS (TFTP Timer Cyclic Interval)" Type="Integer" Group="TFTP Options" DefaultValue="null" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>This option set the timer cyclic interval.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TFTP_TIMER_MSECS requires LWIP_TFTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_MAX_FILENAME_LEN" Comment="TFTP_MAX_FILENAME_LEN (TFTP Filename Maximum Length)" Type="Integer" Group="TFTP Options" DefaultValue="20" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TFTP_MAX_FILENAME_LEN requires LWIP_TFTP enabled." Expression="LWIP_TFTP"/>
        <Description>This option set the maximum length of TFTP filename.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_MAX_FILENAME_LEN" Comment="TFTP_MAX_FILENAME_LEN (TFTP Filename Maximum Length)" Type="Integer" Group="TFTP Options" DefaultValue="null" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>This option set the maximum length of TFTP filename.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TFTP_MAX_FILENAME_LEN requires LWIP_TFTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_MAX_MODE_LEN" Comment="TFTP_MAX_MODE_LEN (TFTP Mode Maximum Length)" Type="Integer" Group="TFTP Options" DefaultValue="7" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TFTP_MAX_MODE_LEN requires LWIP_TFTP enabled." Expression="LWIP_TFTP"/>
        <Description>This option set the maximum length of TFTP mode.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_MAX_MODE_LEN" Comment="TFTP_MAX_MODE_LEN (TFTP Mode Maximum Length)" Type="Integer" Group="TFTP Options" DefaultValue="null" TabName="MDNS/TFTP" Mode="Advanced" Min="0" Max="2147483647" Visible="false">
        <Description>This option set the maximum length of TFTP mode.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TFTP_MAX_MODE_LEN requires LWIP_TFTP enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DISABLE_TCP_SANITY_CHECKS" Comment="LWIP_DISABLE_TCP_SANITY_CHECKS (TCP Sanity Checks)" Type="list" Group="Sanity Checks" DefaultValue="0" TabName="Perf/Checks" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Activate some checks on TCP parameters.&lt;br&gt;&lt;b&gt;TCP Checks&lt;/b&gt;: If LWIP_DISABLE_TCP_SANITY_CHECKS is disabled (=0), check is performed on MEMP_NUM_TCP_SEG, TCP_SND_BUF, TCP_SND_QUEUELEN, TCP_SNDLOWAT, TCP_SNDQUEUELOWAT, PBUF_POOL_BUFSIZE and TCP_WND parameters.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DISABLE_MEMP_SANITY_CHECKS" Comment="LWIP_DISABLE_MEMP_SANITY_CHECKS (MEMP Sanity Checks)" Type="list" Group="Sanity Checks" DefaultValue="0" TabName="Perf/Checks" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Activate some checks on MEMP_NUM_NETCONN parameter.&lt;br&gt;&lt;b&gt;MEMP Checks&lt;/b&gt;: If LWIP_DISABLE_MEMP_SANITY_CHECKS is disabled (=0), check is performed on MEMP_NUM_NETCONN.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_PERF" Comment="LWIP_PERF (Performace Testing for LwIP)" Type="list" Group="Performance Options" DefaultValue="0" TabName="Perf/Checks" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>This parameter enables performance testing for lwIP (if enabled, arch/perf.h is included).&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_STATS" Comment="LWIP_STATS (Statictics Collection)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: This global option is linked to all other Statistics options. LWIP_STATS must be enabled if SNMP_LWIP_MIB2 is enabled." Expression="IF(!LWIP_SNMP,1,IF(!SNMP_LWIP_MIB2,1,0))"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable statistics collection in lwip_stats.&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;All other statistics options are visible as "Advanced Parameters".&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This global option is linked to all other Statistics options. LWIP_STATS must be enabled if SNMP_LWIP_MIB2 is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_STATS" Comment="LWIP_STATS (Statictics Collection)" Type="list" Group="Debug - Statistics Options" DefaultValue="1" TabName="Statistics" Mode="Basic" >
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable statistics collection in lwip_stats.&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;All other statistics options are visible as "Advanced Parameters".&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: This global option is linked to all other Statistics options. LWIP_STATS must be enabled if SNMP_LWIP_MIB2 is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_STATS_DISPLAY" Comment="LWIP_STATS_DISPLAY (Compile in Statictics Ouput Functions)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LWIP_STATS_DISPLAY requires LWIP_STATS enabled." Expression="LWIP_STATS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Compile in the statistics output functions.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_STATS_DISPLAY" Comment="LWIP_STATS_DISPLAY (Compile in Statictics Ouput Functions)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Compilation in the statistics output functions disabled.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LWIP_STATS_DISPLAY requires LWIP_STATS enabled.</Description>
    </RefParameter>
    <RefParameter Name="LINK_STATS" Comment="LINK_STATS (Link Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="1" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: LINK_STATS requires LWIP_STATS enabled." Expression="LWIP_STATS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable link stats.</Description>
    </RefParameter>
    <RefParameter Name="LINK_STATS" Comment="LINK_STATS (Link Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable link stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: LINK_STATS requires LWIP_STATS enabled.</Description>
    </RefParameter>
    <RefParameter Name="ETHARP_STATS" Comment="ETHARP_STATS (Ethernet ARP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_ARP" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: ETHARP_STATS requires LWIP_STATS enabled and is set by default with LWIP_ARP." Expression="LWIP_STATS &amp; LWIP_ARP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable etharp stats.</Description>
    </RefParameter>
    <RefParameter Name="ETHARP_STATS" Comment="ETHARP_STATS (Ethernet ARP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable etharp stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: ETHARP_STATS requires LWIP_STATS enabled and is set by default with LWIP_ARP.</Description>
    </RefParameter>
    <RefParameter Name="IP_STATS" Comment="IP_STATS (IP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="1" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: IP_STATS requires LWIP_STATS enaabled." Expression="LWIP_STATS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable IP stats.</Description>
    </RefParameter>
    <RefParameter Name="IP_STATS" Comment="IP_STATS (IP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable IP stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: IP_STATS requires LWIP_STATS enabled.</Description>
    </RefParameter>
    <RefParameter Name="IPFRAG_STATS" Comment="IPFRAG_STATS (IP Fragmentation Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=IP_REASSEMBLY|IP_FRAG" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: IPFRAG_STATS requires LWIP_STATS enabled and is set by default with (IP_REASSEMBLY || IP_FRAG)." Expression="LWIP_STATS &amp; (IP_REASSEMBLY|IP_FRAG)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable IP fragmentation stats. Default is on if using either fragmentation or reassembly.</Description>
    </RefParameter>
    <RefParameter Name="IPFRAG_STATS" Comment="IPFRAG_STATS (IP Fragmentation Statistic)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable IP fragmentation stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: IPFRAG_STATS requires LWIP_STATS enabled and is set by default with (IP_REASSEMBLY || IP_FRAG).</Description>
    </RefParameter>
    <RefParameter Name="ICMP_STATS" Comment="ICMP_STATS (ICMP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_ICMP" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: ICMP_STATS requires LWIP_STATS and is set by default with LWIP_ICMP." Expression="LWIP_STATS &amp; LWIP_ICMP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable ICMP stats.</Description>
    </RefParameter>
    <RefParameter Name="ICMP_STATS" Comment="ICMP_STATS (ICMP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable ICMP stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: ICMP_STATS requires LWIP_STATS and is set by default with LWIP_ICMP.</Description>
    </RefParameter>
    <RefParameter Name="IGMP_STATS" Comment="IGMP_STATS (IGMP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_IGMP" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: IGMP_STATS requires LWIP_STATS enabled and is set by default with LWIP_IGMP." Expression="LWIP_STATS &amp; LWIP_IGMP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable IGMP stats.</Description>
    </RefParameter>
    <RefParameter Name="IGMP_STATS" Comment="IGMP_STATS (IGMP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable IGMP stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: IGMP_STATS requires LWIP_STATS enabled and is set by default with LWIP_IGMP.</Description>
    </RefParameter>
    <RefParameter Name="UDP_STATS" Comment="UDP_STATS (UDP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_UDP" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: UDP_STATS requires LWIP_STATS enabled and is set by default with LWIP_UDP." Expression="LWIP_STATS &amp; LWIP_UDP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable UDP stats.</Description>
    </RefParameter>
    <RefParameter Name="UDP_STATS" Comment="UDP_STATS (UDP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable UDP stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: UDP_STATS requires LWIP_STATS enabled and is set by default with LWIP_UDP.</Description>
    </RefParameter>
    <RefParameter Name="TCP_STATS" Comment="TCP_STATS (TCP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_TCP" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: TCP_STATS requires LWIP_STATS enabled and is set by default with LWIP_TCP." Expression="LWIP_STATS &amp; LWIP_TCP"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable TCP stats. Default is on if TCP enabled, otherwise off.</Description>
    </RefParameter>
    <RefParameter Name="TCP_STATS" Comment="TCP_STATS (TCP Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable TCP stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: TCP_STATS requires LWIP_STATS enabled and is set by default with LWIP_TCP.</Description>
    </RefParameter>
    <RefParameter Name="MEM_STATS" Comment="MEM_STATS (Memory Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=!MEM_LIBC_MALLOC &amp; !MEM_USE_POOLS" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MEM_STATS requires LWIP_STATS enabled and is set by default with (!MEM_LIBC_MALLOC &amp; !MEM_USE_POOLS)." Expression="LWIP_STATS &amp; !MEM_LIBC_MALLOC &amp; !MEM_USE_POOLS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable mem.c stats.</Description>
    </RefParameter>
    <RefParameter Name="MEM_STATS" Comment="MEM_STATS (Memory Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable Memory stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MEM_STATS requires LWIP_STATS enabled and is set by default with (!MEM_LIBC_MALLOC &amp; !MEM_USE_POOLS).</Description>
    </RefParameter>
    <RefParameter Name="MEMP_STATS" Comment="MEMP_STATS (Memory Pool Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=!MEMP_MEM_MALLOC" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MEMP_STATS requires LWIP_STATS enabled and is set by default with !MEMP_MEM_MALLOC." Expression="LWIP_STATS &amp; !MEMP_MEM_MALLOC"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable memp.c pool stats.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_STATS" Comment="MEMP_STATS (Memory Pool Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable Memory Pool stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MEMP_STATS requires LWIP_STATS enabled and is set by default with !MEMP_MEM_MALLOC.</Description>
    </RefParameter>
    <RefParameter Name="SYS_STATS" Comment="SYS_STATS (System Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=!NO_SYS" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: SYS_STATS requires LWIP_STATS enabled and is set by default with !NO_SYS." Expression="LWIP_STATS &amp; !NO_SYS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable system stats (sem and mbox counts, etc).</Description>
    </RefParameter>
    <RefParameter Name="SYS_STATS" Comment="SYS_STATS (System Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable System stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: SYS_STATS requires LWIP_STATS enabled and is set by default with !NO_SYS.</Description>
    </RefParameter>
    <RefParameter Name="IP6_STATS" Comment="IP6_STATS (IPv6 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_IPV6" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: IP6_STATS requires LWIP_STATS enabled and is set by default with LWIP_IPV6." Expression="LWIP_STATS &amp; LWIP_IPV6"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable IPv6 stats.</Description>
    </RefParameter>
    <RefParameter Name="IP6_STATS" Comment="IP6_STATS (IPv6 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable IPv6 stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: IP6_STATS requires LWIP_STATS enabled and is set by default with LWIP_IPV6.</Description>
    </RefParameter>
    <RefParameter Name="ICMP6_STATS" Comment="ICMP6_STATS (ICMP for IPv6 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_IPV6 &amp; LWIP_ICMP6" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: ICMP6_STATS requires LWIP_STATS enabled and is set by default with (LWIP_IPV6 &amp; LWIP_ICMP6)." Expression="LWIP_STATS &amp; LWIP_IPV6 &amp; LWIP_ICMP6"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable ICMP for IPv6 stats.</Description>
    </RefParameter>
    <RefParameter Name="ICMP6_STATS" Comment="ICMP6_STATS (ICMP for IPv6 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable ICMP for IPv6 stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: ICMP6_STATS requires LWIP_STATS enabled and is set by default with (LWIP_IPV6 &amp; LWIP_ICMP6).</Description>
    </RefParameter>
    <RefParameter Name="IP6_FRAG_STATS" Comment="IP6_FRAG_STATS (IPv6 Fragmentation Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_IPV6 &amp; (LWIP_IPV6_FRAG|LWIP_IPV6_REASS)" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: IP6_FRAG_STATS requires LWIP_STATS enabled and is set by default with (LWIP_IPV6_FRAG || LWIP_IPV6_REASS)." Expression="LWIP_STATS &amp; LWIP_IPV6 &amp; (LWIP_IPV6_FRAG|LWIP_IPV6_REASS)"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable IPv6 fragmentation stats.</Description>
    </RefParameter>
    <RefParameter Name="IP6_FRAG_STATS" Comment="IP6_FRAG_STATS (IPv6 Fragmentation Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable IPv6 fragmentation stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: IP6_FRAG_STATS requires LWIP_STATS enabled and is set by default with (LWIP_IPV6_FRAG || LWIP_IPV6_REASS).</Description>
    </RefParameter>
    <RefParameter Name="MLD6_STATS" Comment="MLD6_STATS (MLD for IPv6 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_IPV6 &amp; LWIP_IPV6_MLD" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MLD6_STATS requires LWIP_STATS enabled and is set by default with (LWIP_IPV6 &amp; LWIP_IPV6_MLD)." Expression="LWIP_STATS &amp; LWIP_IPV6 &amp; LWIP_IPV6_MLD"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable MLD for IPv6 stats.</Description>
    </RefParameter>
    <RefParameter Name="MLD6_STATS" Comment="MLD6_STATS (MLD for IPv6 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable MLD for IPv6 stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MLD6_STATS requires LWIP_STATS enabled and is set by default with (LWIP_IPV6 &amp; LWIP_IPV6_MLD).</Description>
    </RefParameter>
    <RefParameter Name="ND6_STATS" Comment="ND6_STATS (Neighbor Discovery for IPv6 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=LWIP_IPV6" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: ND6_STATS requires LWIP_STATS enabled and is set by default with LWIP_IPV6." Expression="LWIP_STATS &amp; LWIP_IPV6"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable Neighbor discovery for IPv6 stats.</Description>
    </RefParameter>
    <RefParameter Name="ND6_STATS" Comment="ND6_STATS (Neighbor Discovery for IPv6 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable Neighbor discovery for IPv6 stats.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: ND6_STATS requires LWIP_STATS enabled and is set by default with LWIP_IPV6.</Description>
    </RefParameter>
    <RefParameter Name="MIB2_STATS" Comment="MIB2_STATS (SNMP MIB2 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="=SNMP_LWIP_MIB2" TabName="Statistics" Mode="Advanced" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: MIB2_STATS requires LWIP_STATS enabled. MIB2_STATS is set by default with SNMP_LWIP_MIB2." Expression="LWIP_STATS"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enable or Disable SNMP MIB2 statistics.</Description>
    </RefParameter>
    <RefParameter Name="MIB2_STATS" Comment="MIB2_STATS (SNMP MIB2 Statistics)" Type="list" Group="Debug - Statistics Options" DefaultValue="0" TabName="Statistics" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Disable SNMP MIB2 statistics.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: MIB2_STATS requires LWIP_STATS enabled, otherwise MIB2_STATS is disabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_BY_HARDWARE" Comment="CHECKSUM_BY_HARDWARE (Hardware Checksum ** CubeMX specific **)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Enabling Hardware Checksum will disable software checksum parameters and&lt;br&gt;allow to compute and verify the IP, UDP, TCP and ICMP checksums by Hardware.&lt;br&gt;Since CubeMx 6.0.0 release, It is enabled like in LwIP Cube FW applications.&lt;br&gt;&lt;b&gt;Warning&lt;/b&gt;: This parameter introduced by CubeMX is not part of LwIP stack.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_CHECKSUM_CTRL_PER_NETIF" Comment="LWIP_CHECKSUM_CTRL_PER_NETIF (Generate/Check Checksum per Netif)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="0" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set LWIP_CHECKSUM_CTRL_PER_NETIF requires CHECKSUM_BY_HARDWARE disabled." Expression="!CHECKSUM_BY_HARDWARE"/>
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Checksum generation/check can be enabled/disabled per netif.&lt;br&gt;ATTENTION: if enabled, the CHECKSUM_GEN_* and CHECKSUM_CHECK_* defines must be enabled!</Description>
    </RefParameter>
    <RefParameter Name="LWIP_CHECKSUM_CTRL_PER_NETIF" Comment="LWIP_CHECKSUM_CTRL_PER_NETIF (Generate/Check Checksum per Netif)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="0" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <Description>Checksum generation/check can be enabled/disabled per netif.&lt;br&gt;ATTENTION: if enabled, the CHECKSUM_GEN_* and CHECKSUM_CHECK_* defines must be enabled!&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set LWIP_CHECKSUM_CTRL_PER_NETIF requires CHECKSUM_BY_HARDWARE disabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_IP" Comment="CHECKSUM_GEN_IP (Generate Software Checksum for Outgoing IP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_IP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_IP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing IP packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_IP" Comment="CHECKSUM_GEN_IP (Generate Software Checksum for Outgoing IP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing IP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_IP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_IP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_UDP" Comment="CHECKSUM_GEN_UDP (Generate Software Checksum for Outgoing UDP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_UDP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_UDP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing UDP packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_UDP" Comment="CHECKSUM_GEN_UDP (Generate Software Checksum for Outgoing UDP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing UDP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_UDP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_UDP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_TCP" Comment="CHECKSUM_GEN_TCP (Generate Software Checksum for Outgoing TCP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_TCP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_TCP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing TCP packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_TCP" Comment="CHECKSUM_GEN_TCP (Generate Software Checksum for Outgoing TCP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing TCP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_TCP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_TCP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_ICMP" Comment="CHECKSUM_GEN_ICMP (Generate Software Checksum for Outgoing ICMP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_ICMP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_ICMP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing ICMP packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_ICMP" Comment="CHECKSUM_GEN_ICMP (Generate Software Checksum for Outgoing ICMP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(STM32H7 &amp; CHECKSUM_BY_HARDWARE,1,IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0)))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing ICMP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_ICMP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_ICMP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_ICMP6" Comment="CHECKSUM_GEN_ICMP6 (Generate Software Checksum for Outgoing ICMP6 Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_ICMP6 requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_ICMP6 is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing ICMP6 packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_GEN_ICMP6" Comment="CHECKSUM_GEN_ICMP6 (Generate Software Checksum for Outgoing ICMP6 Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Generate checksums in software for outgoing ICMP6 packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_GEN_ICMP6 requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_GEN_ICMP6 is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_IP" Comment="CHECKSUM_CHECK_IP (Generate Software Checksum for Incoming IP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_IP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_IP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming IP packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_IP" Comment="CHECKSUM_CHECK_IP (Generate Software Checksum for Incoming IP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming IP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_IP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_IP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_UDP" Comment="CHECKSUM_CHECK_UDP (Generate Software Checksum for Incoming UDP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_UDP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_UDP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming UDP packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_UDP" Comment="CHECKSUM_CHECK_UDP (Generate Software Checksum for Incoming UDP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming UDP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_UDP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_UDP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_TCP" Comment="CHECKSUM_CHECK_TCP (Generate Software Checksum for Incoming TCP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_TCP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_TCP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming TCP packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_TCP" Comment="CHECKSUM_CHECK_TCP (Generate Software Checksum for Incoming TCP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming TCP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_TCP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_TCP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_ICMP" Comment="CHECKSUM_CHECK_ICMP (Generate Software Checksum for Incoming ICMP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_ICMP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_ICMP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming ICMP packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_ICMP" Comment="CHECKSUM_CHECK_ICMP (Generate Software Checksum for Incoming ICMP Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(STM32H7 &amp; CHECKSUM_BY_HARDWARE,1,IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0)))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming ICMP packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_ICMP requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_ICMP is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_ICMP6" Comment="CHECKSUM_CHECK_ICMP6 (Generate Software Checksum for Incoming ICMP6 Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="1" TabName="Checksum" Mode="Basic" >
        <Condition Diagnostic="&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_ICMP6 requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_ICMP6 is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled." Expression="!CHECKSUM_BY_HARDWARE &amp; LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming ICMP6 packets.</Description>
    </RefParameter>
    <RefParameter Name="CHECKSUM_CHECK_ICMP6" Comment="CHECKSUM_CHECK_ICMP6 (Generate Software Checksum for Incoming ICMP6 Packets)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="=IF(CHECKSUM_BY_HARDWARE,0,IF(LWIP_CHECKSUM_CTRL_PER_NETIF,1,0))" TabName="Checksum" Mode="Basic" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Check checksums in software for Incoming ICMP6 packets.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: Set CHECKSUM_CHECK_ICMP6 requires CHECKSUM_BY_HARDWARE disabled. CHECKSUM_CHECK_ICMP6 is enabled if LWIP_CHECKSUM_CTRL_PER_NETIF is enabled.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_CHECKSUM_ON_COPY" Comment="LWIP_CHECKSUM_ON_COPY (Calculate Checksum on Copy to Pbufs)" Type="list" Group="Infrastructure - Checksum Options" DefaultValue="0" TabName="Checksum" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Calculate checksum when copying data from application buffers to pbufs.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DBG_ON" Comment="LWIP_DBG_ON (Enable Debug Message)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="0x80U" TabName="Debug" Mode="Advanced" Visible="false">
        <PossibleValue Comment="On" Value="0x80U"/>
    </RefParameter>
    <RefParameter Name="LWIP_DBG_OFF" Comment="LWIP_DBG_OFF (Disable Debug Message)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="0x00U" TabName="Debug" Mode="Advanced" Visible="false">
        <PossibleValue Comment="On" Value="0x00U"/>
    </RefParameter>
    <RefParameter Name="LWIP_DBG_MIN_LEVEL" Comment="LWIP_DBG_MIN_LEVEL (Minimum Level)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_LEVEL_ALL" TabName="Debug" Mode="Basic" >
        <PossibleValue Comment="All" Value="LWIP_DBG_LEVEL_ALL"/>
        <PossibleValue Comment="Warning" Value="LWIP_DBG_LEVEL_WARNING"/>
        <PossibleValue Comment="Serious" Value="LWIP_DBG_LEVEL_SERIOUS"/>
        <PossibleValue Comment="Severe" Value="LWIP_DBG_LEVEL_SEVERE"/>
        <PossibleValue Comment="Mask" Value="LWIP_DBG_MASK_LEVEL"/>
        <Description>Lower two bits indicate debug level:&lt;br&gt;- 0: all&lt;br&gt;- 1: warning&lt;br&gt;- 2: serious&lt;br&gt;- 3: severe&lt;br&gt;- 4: Mask.&lt;br&gt;&lt;b&gt;Note: &lt;/b&gt;All other debugging options are visible as "Advanced Parameters".&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_DBG_TYPES_ON" Comment="LWIP_DBG_TYPES_ON (Only certain Debug Message Types)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_ON" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Mask that can be used to globally enable/disable debug messages of certain types.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="ETHARP_DEBUG" Comment="ETHARP_DEBUG (Debug in Ethernet ARP)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in etharp.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="NETIF_DEBUG" Comment="NETIF_DEBUG (Debug in NETIF)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in netif.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PBUF_DEBUG" Comment="PBUF_DEBUG (Debug in Pbuf)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in pbuf.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="API_LIB_DEBUG" Comment="API_LIB_DEBUG (Debug in API Library)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in api_lib.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="API_MSG_DEBUG" Comment="API_MSG_DEBUG (Debug in API Message)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in api_msg.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="SOCKETS_DEBUG" Comment="SOCKETS_DEBUG (Debug in Sockets)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in sockets.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="ICMP_DEBUG" Comment="ICMP_DEBUG (Debug in ICMP)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in icmp.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="IGMP_DEBUG" Comment="IGMP_DEBUG (Debug in IGMP)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in igmp.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="INET_DEBUG" Comment="INET_DEBUG (Debug in INET)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in inet.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="IP_DEBUG" Comment="IP_DEBUG (Debug in IP)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for IP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="IP_REASS_DEBUG" Comment="IP_REASS_DEBUG (Debug in IP Reassembly)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in ip_frag.c for both frag and reass.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="RAW_DEBUG" Comment="RAW_DEBUG (Debug in RAW API)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in raw.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEM_DEBUG" Comment="MEM_DEBUG (Debug in Memory)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in mem.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MEMP_DEBUG" Comment="MEMP_DEBUG (Debug in Memory Pool)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in memp.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="SYS_DEBUG" Comment="SYS_DEBUG (Debug in System)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in sys.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TIMERS_DEBUG" Comment="TIMERS_DEBUG (Debug in Timers)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in timers.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_DEBUG" Comment="TCP_DEBUG (Debug in TCP)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for TCP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_INPUT_DEBUG" Comment="TCP_INPUT_DEBUG (Debug in TCP Incoming)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in tcp_in.c for incoming debug.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_FR_DEBUG" Comment="TCP_FR_DEBUG (Debug in TCP Incoming for Fast Retransmit)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in tcp_in.c for fast retransmit.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_RTO_DEBUG" Comment="TCP_RTO_DEBUG (Debug in TCP for Retransmit)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in TCP for retransmit.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_CWND_DEBUG" Comment="TCP_CWND_DEBUG (Debug in TCP Congestion Window)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for TCP congestion window.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_WND_DEBUG" Comment="TCP_WND_DEBUG (Debug in TCP for Window Updating)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in tcp_in.c for window updating.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_OUTPUT_DEBUG" Comment="TCP_OUTPUT_DEBUG (Debug in TCP Output Functions)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in tcp_out.c output functions.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_RST_DEBUG" Comment="TCP_RST_DEBUG (Debug in TCP with RST Message)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for TCP with the RST message.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCP_QLEN_DEBUG" Comment="TCP_QLEN_DEBUG (Debug in TCP Queue Lengths)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for TCP queue lengths.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="UDP_DEBUG" Comment="UDP_DEBUG (Debug in UDP)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in UDP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TCPIP_DEBUG" Comment="TCPIP_DEBUG (Debug in TCPIP)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in tcpip.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="SLIP_DEBUG" Comment="SLIP_DEBUG (Debug in SLIPIF)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in slipif.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DHCP_DEBUG" Comment="DHCP_DEBUG (Debug in DHCP)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in dhcp.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="AUTOIP_DEBUG" Comment="AUTOIP_DEBUG (Debug in AUTOIP)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in autoip.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DNS_DEBUG" Comment="DNS_DEBUG (Debug for DNS)" Type="list" Group="LwIP Main Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for DNS.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="PPP_DEBUG" Comment="PPP_DEBUG (Debug in PPP)" Type="list" Group="LwIP - PPP Debugging Option" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for PPP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="IP6_DEBUG" Comment="IP6_DEBUG (Debug for IPv6)" Type="list" Group="LwIP - IPv6 Debugging Option" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for SNMP IPv6.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="DHCP6_DEBUG" Comment="DHCP6_DEBUG (Debug in DHCP6)" Type="list" Group="LwIP - IPv6 Debugging Option" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging in dhcp6.c.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_DEBUG" Comment="HTTPD_DEBUG (HTTP Debug)" Type="list" Group="LwIP - HTTPD Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Set this to 1 if you want to activate HTTP debug.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="HTTPD_DEBUG_TIMING" Comment="HTTPD_DEBUG_TIMING (HTTP Debug Timing)" Type="list" Group="LwIP - HTTPD Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Set this to 1 if you want to activate HTTP debug timing.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_DEBUG" Comment="SNMP_DEBUG (SNMP Debug)" Type="list" Group="LwIP - SNMP Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for SNMP messages.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="SNMP_MIB_DEBUG" Comment="SNMP_MIB_DEBUG (SNMP Debug for MIBs)" Type="list" Group="LwIP - SNMP Debugging Options" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for SNMP MIBs.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="SNTP_DEBUG" Comment="SNTP_DEBUG (SNTP Debug)" Type="list" Group="LwIP - SNTP Debugging Option" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for SNTP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="SMTP_DEBUG" Comment="SMTP_DEBUG (SMTP Debug)" Type="list" Group="LwIP - SMTP Debugging Option" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for SMTP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="MDNS_DEBUG" Comment="MDNS_DEBUG (Debug for MDNS)" Type="list" Group="LwIP - MDNS Debugging Option" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for MDNS.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="TFTP_DEBUG" Comment="TFTP_DEBUG (Debug for TFTP)" Type="list" Group="LwIP - TFTP Debugging Option" DefaultValue="LWIP_DBG_OFF" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="LWIP_DBG_OFF"/>
        <PossibleValue Comment="Enabled" Value="LWIP_DBG_ON"/>
        <Description>Enable debugging for TFTP.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>
    <RefParameter Name="LWIP_PROVIDE_ERRNO" Comment="LWIP_PROVIDE_ERRNO (Handle LwIP Errors Numbers)" Type="list" Group="Not Visible Options" DefaultValue="1" TabName="Debug" Mode="Advanced" Visible="false">
        <Description>Enable LwIP errors numbers handling</Description>
    </RefParameter>
    <RefParameter Name="LWIP_TESTMODE" Comment="LWIP_TESTMODE (Unit Test Mode)" Type="list" Group="LwIP - IPv6 Debugging Option" DefaultValue="0" TabName="Debug" Mode="Advanced" >
        <PossibleValue Comment="Disabled" Value="0"/>
        <PossibleValue Comment="Enabled" Value="1"/>
        <Description>Changes to make unit test possible.&lt;br&gt;&lt;b&gt;Dependency&lt;/b&gt;: None.</Description>
    </RefParameter>

    <RefMode Name="Enabled">
        <ConfigForMode>LWIP_Init</ConfigForMode>
        <Parameter Name="LwIP Version"/>
        <Parameter Name="LWIP_DHCP"/>
        <Parameter Name="ETH_RX_BUFFER_SIZE"/>
        <Parameter Name="IP_ADDRESS"/>
        <Parameter Name="NETMASK_ADDRESS"/>
        <Parameter Name="GATEWAY_ADDRESS"/>
        <Parameter Name="WITH_RTOS"/>
        <Parameter Name="WITH_MBEDTLS"/>
        <Parameter Name="CMSIS_VERSION"/>
        <Parameter Name="PHY Driver"/>
        <Parameter Name="LWIP_ICMP"/>
        <Parameter Name="LWIP_IGMP"/>
        <Parameter Name="LWIP_DNS"/>
        <Parameter Name="LWIP_UDP"/>
        <Parameter Name="MEMP_NUM_UDP_PCB"/>
        <Parameter Name="LWIP_TCP"/>
        <Parameter Name="MEMP_NUM_TCP_PCB"/>
        <Parameter Name="heth"/>
        <Parameter Name="gnetif"/>
        <Parameter Name="ipaddr"/>
        <Parameter Name="netmask"/>
        <Parameter Name="gw"/>
        <Parameter Name="PHY"/>
        <Parameter Name="TX_DESCRIPTOR_ADDRESS"/>
        <Parameter Name="RX_DESCRIPTOR_ADDRESS"/>
        <Parameter Name="RX_BUFFER_ADDRESS"/>
        <Parameter Name="NO_SYS"/>
        <Parameter Name="LWIP_TIMERS"/>
        <Parameter Name="LWIP_TIMERS_CUSTOM"/>
        <Parameter Name="MEMCPY(dst,src,len)"/>
        <Parameter Name="SMEMCPY(dst,src,len)"/>
        <Parameter Name="MEMMOVE(dst,src,len)"/>
        <Parameter Name="LWIP_MPU_COMPATIBLE"/>
        <Parameter Name="LWIP_TCPIP_CORE_LOCKING"/>
        <Parameter Name="LWIP_TCPIP_CORE_LOCKING_INPUT"/>
        <Parameter Name="SYS_LIGHTWEIGHT_PROT"/>
        <Parameter Name="MEM_LIBC_MALLOC"/>
        <Parameter Name="MEMP_MEM_MALLOC"/>
        <Parameter Name="MEMP_MEM_INIT"/>
        <Parameter Name="MEM_ALIGNMENT"/>
        <Parameter Name="MEM_SIZE"/>
        <Parameter Name="MEMP_OVERFLOW_CHECK"/>
        <Parameter Name="MEMP_SANITY_CHECK"/>
        <Parameter Name="MEM_OVERFLOW_CHECK"/>
        <Parameter Name="MEM_SANITY_CHECK"/>
        <Parameter Name="MEM_USE_POOLS"/>
        <Parameter Name="MEM_USE_POOLS_TRY_BIGGER_POOL"/>
        <Parameter Name="MEMP_USE_CUSTOM_POOLS"/>
        <Parameter Name="LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT"/>
        <Parameter Name="LWIP_RAM_HEAP_POINTER"/>
        <Parameter Name="MEMP_NUM_PBUF"/>
        <Parameter Name="MEMP_NUM_RAW_PCB"/>
        <Parameter Name="MEMP_NUM_TCP_PCB_LISTEN"/>
        <Parameter Name="MEMP_NUM_TCP_SEG"/>
        <Parameter Name="MEMP_NUM_ALTCP_PCB"/>
        <Parameter Name="MEMP_NUM_REASSDATA"/>
        <Parameter Name="MEMP_NUM_FRAG_PBUF"/>
        <Parameter Name="MEMP_NUM_ARP_QUEUE"/>
        <Parameter Name="MEMP_NUM_IGMP_GROUP"/>
        <Parameter Name="MEMP_NUM_SYS_TIMEOUT"/>
        <Parameter Name="MEMP_NUM_NETBUF"/>
        <Parameter Name="MEMP_NUM_NETCONN"/>
        <Parameter Name="MEMP_NUM_TCPIP_MSG_API"/>
        <Parameter Name="MEMP_NUM_SELECT_CB"/>
        <Parameter Name="MEMP_NUM_TCPIP_MSG_INPKT"/>
        <Parameter Name="MEMP_NUM_NETDB"/>
        <Parameter Name="MEMP_NUM_LOCALHOSTLIST"/>
        <Parameter Name="MEMP_NUM_API_MSG"/>
        <Parameter Name="MEMP_NUM_DNS_API_MSG"/>
        <Parameter Name="MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA"/>
        <Parameter Name="MEMP_NUM_NETIFAPI_MSG"/>
        <Parameter Name="LWIP_SUPPORT_CUSTOM_PBUF"/>
        <Parameter Name="PBUF_POOL_SIZE"/>
        <Parameter Name="PBUF_LINK_HLEN"/>
        <Parameter Name="PBUF_LINK_ENCAPSULATION_HLEN"/>
        <Parameter Name="PBUF_POOL_BUFSIZE"/>
        <Parameter Name="LWIP_PBUF_REF_T"/>
        <Parameter Name="PBUF_IP_HLEN"/>
        <Parameter Name="PBUF_TRANSPORT_HLEN"/>
        <Parameter Name="LWIP_ARP"/>
        <Parameter Name="ARP_TABLE_SIZE"/>
        <Parameter Name="ARP_MAXAGE"/>
        <Parameter Name="ARP_QUEUEING"/>
        <Parameter Name="ARP_QUEUE_LEN"/>
        <Parameter Name="ETHARP_SUPPORT_VLAN"/>
        <Parameter Name="LWIP_ETHERNET"/>
        <Parameter Name="ETH_PAD_SIZE"/>
        <Parameter Name="ETHARP_SUPPORT_STATIC_ENTRIES"/>
        <Parameter Name="ETHARP_TABLE_MATCH_NETIF"/>
        <Parameter Name="LWIP_IPV4"/>
        <Parameter Name="IP_FORWARD"/>
        <Parameter Name="IP_OPTIONS_ALLOWED"/>
        <Parameter Name="IP_REASSEMBLY"/>
        <Parameter Name="IP_FRAG"/>
        <Parameter Name="IP_REASS_MAXAGE"/>
        <Parameter Name="IP_REASS_MAX_PBUFS"/>
        <Parameter Name="IP_DEFAULT_TTL"/>
        <Parameter Name="IP_SOF_BROADCAST"/>
        <Parameter Name="IP_SOF_BROADCAST_RECV"/>
        <Parameter Name="IP_FORWARD_ALLOW_TX_ON_RX_NETIF"/>
        <Parameter Name="ICMP_TTL"/>
        <Parameter Name="LWIP_BROADCAST_PING"/>
        <Parameter Name="LWIP_MULTICAST_PING"/>
        <Parameter Name="LWIP_MULTICAST_TX_OPTIONS"/>
        <Parameter Name="LWIP_RAW"/>
        <Parameter Name="RAW_TTL"/>
        <Parameter Name="DHCP_DOES_ARP_CHECK"/>
        <Parameter Name="LWIP_DHCP_BOOTP_FILE"/>
        <Parameter Name="LWIP_DHCP_GET_NTP_SRV"/>
        <Parameter Name="LWIP_DHCP_MAX_NTP_SERVERS"/>
        <Parameter Name="LWIP_DHCP_MAX_DNS_SERVERS"/>
        <Parameter Name="LWIP_AUTOIP"/>
        <Parameter Name="LWIP_DHCP_AUTOIP_COOP"/>
        <Parameter Name="LWIP_DHCP_AUTOIP_COOP_TRIES"/>
        <Parameter Name="LWIP_MIB2_CALLBACKS"/>
        <Parameter Name="DNS_TABLE_SIZE"/>
        <Parameter Name="DNS_MAX_NAME_LENGTH"/>
        <Parameter Name="DNS_MAX_SERVERS"/>
        <Parameter Name="DNS_MAX_RETRIES"/>
        <Parameter Name="DNS_DOES_NAME_CHECK"/>
        <Parameter Name="LWIP_DNS_SECURE"/>
        <Parameter Name="LWIP_DNS_SECURE_RAND_XID"/>
        <Parameter Name="LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING"/>
        <Parameter Name="LWIP_DNS_SECURE_RAND_SRC_PORT"/>
        <Parameter Name="DNS_LOCAL_HOSTLIST"/>
        <Parameter Name="DNS_LOCAL_HOSTLIST_IS_DYNAMIC"/>
        <Parameter Name="LWIP_DNS_SUPPORT_MDNS_QUERIES"/>
        <Parameter Name="LWIP_UDPLITE"/>
        <Parameter Name="UDP_TTL"/>
        <Parameter Name="LWIP_NETBUF_RECVINFO"/>
        <Parameter Name="TCP_TTL"/>
        <Parameter Name="TCP_WND"/>
        <Parameter Name="TCP_MAXRTX"/>
        <Parameter Name="TCP_SYNMAXRTX"/>
        <Parameter Name="TCP_QUEUE_OOSEQ"/>
        <Parameter Name="LWIP_TCP_SACK_OUT"/>
        <Parameter Name="LWIP_TCP_MAX_SACK_NUM"/>
        <Parameter Name="TCP_MSS"/>
        <Parameter Name="TCP_CALCULATE_EFF_SEND_MSS"/>
        <Parameter Name="TCP_SND_BUF"/>
        <Parameter Name="TCP_SND_QUEUELEN"/>
        <Parameter Name="TCP_SNDLOWAT"/>
        <Parameter Name="TCP_SNDQUEUELOWAT"/>
        <Parameter Name="TCP_OOSEQ_MAX_BYTES"/>
        <Parameter Name="TCP_OOSEQ_BYTES_LIMIT(pcb)"/>
        <Parameter Name="TCP_OOSEQ_MAX_PBUFS"/>
        <Parameter Name="TCP_OOSEQ_PBUFS_LIMIT(pcb)"/>
        <Parameter Name="TCP_LISTEN_BACKLOG"/>
        <Parameter Name="TCP_DEFAULT_LISTEN_BACKLOG"/>
        <Parameter Name="TCP_OVERSIZE"/>
        <Parameter Name="LWIP_TCP_TIMESTAMPS"/>
        <Parameter Name="TCP_WND_UPDATE_THRESHOLD"/>
        <Parameter Name="LWIP_EVENT_API"/>
        <Parameter Name="LWIP_CALLBACK_API"/>
        <Parameter Name="LWIP_WND_SCALE"/>
        <Parameter Name="TCP_RCV_SCALE"/>
        <Parameter Name="LWIP_TCP_PCB_NUM_EXT_ARGS"/>
        <Parameter Name="LWIP_ALTCP"/>
        <Parameter Name="LWIP_ALTCP_TLS"/>
        <Parameter Name="LWIP_SINGLE_NETIF"/>
        <Parameter Name="LWIP_NETIF_HOSTNAME"/>
        <Parameter Name="LWIP_NETIF_API"/>
        <Parameter Name="LWIP_NETIF_STATUS_CALLBACK"/>
        <Parameter Name="LWIP_NETIF_EXT_STATUS_CALLBACK"/>
        <Parameter Name="LWIP_NETIF_LINK_CALLBACK"/>
        <Parameter Name="LWIP_NETIF_REMOVE_CALLBACK"/>
        <Parameter Name="LWIP_NETIF_HWADDRHINT"/>
        <Parameter Name="LWIP_NETIF_TX_SINGLE_PBUF"/>
        <Parameter Name="LWIP_NUM_NETIF_CLIENT_DATA"/>
        <Parameter Name="LWIP_HAVE_LOOPIF"/>
        <Parameter Name="LWIP_LOOPIF_MULTICAST"/>
        <Parameter Name="LWIP_NETIF_LOOPBACK"/>
        <Parameter Name="LWIP_LOOPBACK_MAX_PBUFS"/>
        <Parameter Name="LWIP_NETIF_LOOPBACK_MULTITHREADING"/>
        <Parameter Name="TCPIP_THREAD_NAME"/>
        <Parameter Name="TCPIP_THREAD_STACKSIZE"/>
        <Parameter Name="TCPIP_THREAD_PRIO"/>
        <Parameter Name="TCPIP_MBOX_SIZE"/>
        <Parameter Name="SLIPIF_THREAD_NAME"/>
        <Parameter Name="SLIPIF_THREAD_STACKSIZE"/>
        <Parameter Name="SLIPIF_THREAD_PRIO"/>
        <Parameter Name="DEFAULT_THREAD_NAME"/>
        <Parameter Name="DEFAULT_THREAD_STACKSIZE"/>
        <Parameter Name="DEFAULT_THREAD_PRIO"/>
        <Parameter Name="DEFAULT_RAW_RECVMBOX_SIZE"/>
        <Parameter Name="DEFAULT_UDP_RECVMBOX_SIZE"/>
        <Parameter Name="DEFAULT_TCP_RECVMBOX_SIZE"/>
        <Parameter Name="DEFAULT_ACCEPTMBOX_SIZE"/>
        <Parameter Name="LWIP_NETCONN"/>
        <Parameter Name="LWIP_TCPIP_TIMEOUT"/>
        <Parameter Name="LWIP_NETCONN_SEM_PER_THREAD"/>
        <Parameter Name="LWIP_NETCONN_FULLDUPLEX"/>
        <Parameter Name="LWIP_SOCKET"/>
        <Parameter Name="LWIP_COMPAT_SOCKETS"/>
        <Parameter Name="LWIP_POSIX_SOCKETS_IO_NAMES"/>
        <Parameter Name="LWIP_SOCKET_OFFSET"/>
        <Parameter Name="LWIP_TCP_KEEPALIVE"/>
        <Parameter Name="LWIP_SO_SNDTIMEO"/>
        <Parameter Name="LWIP_SO_RCVTIMEO"/>
        <Parameter Name="LWIP_SO_SNDRCVTIMEO_NONSTANDARD"/>
        <Parameter Name="LWIP_SO_RCVBUF"/>
        <Parameter Name="LWIP_SO_LINGER"/>
        <Parameter Name="RECV_BUFSIZE_DEFAULT"/>
        <Parameter Name="LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT"/>
        <Parameter Name="SO_REUSE"/>
        <Parameter Name="SO_REUSE_RXTOALL"/>
        <Parameter Name="LWIP_FIONREAD_LINUXMODE"/>
        <Parameter Name="LWIP_SOCKET_SELECT"/>
        <Parameter Name="LWIP_SOCKET_POLL"/>
        <Parameter Name="LWIP_USE_EXTERNAL_POLARSSL"/>
        <Parameter Name="LWIP_USE_EXTERNAL_MBEDTLS"/>
        <Parameter Name="LWIP_INCLUDED_POLARSSL_MD5"/>
        <Parameter Name="LWIP_INCLUDED_POLARSSL_MD4"/>
        <Parameter Name="LWIP_INCLUDED_POLARSSL_SHA1"/>
        <Parameter Name="LWIP_INCLUDED_POLARSSL_DES"/>
        <Parameter Name="LWIP_INCLUDED_POLARSSL_ARC4"/>
        <Parameter Name="PPP_SUPPORT"/>
        <Parameter Name="PPPOE_SUPPORT"/>
        <Parameter Name="PPPOL2TP_SUPPORT"/>
        <Parameter Name="PPPOL2TP_AUTH_SUPPORT"/>
        <Parameter Name="PPPOS_SUPPORT"/>
        <Parameter Name="LWIP_PPP_API"/>
        <Parameter Name="MEMP_NUM_PPP_PCB"/>
        <Parameter Name="PPP_NUM_TIMEOUTS_PER_PCB"/>
        <Parameter Name="MEMP_NUM_PPPOS_INTERFACES"/>
        <Parameter Name="MEMP_NUM_PPPOE_INTERFACES"/>
        <Parameter Name="MEMP_NUM_PPPOL2TP_INTERFACES"/>
        <Parameter Name="MEMP_NUM_PPP_API_MSG"/>
        <Parameter Name="PPP_INPROC_IRQ_SAFE"/>
        <Parameter Name="PRINTPKT_SUPPORT"/>
        <Parameter Name="PPP_IPV4_SUPPORT"/>
        <Parameter Name="PPP_IPV6_SUPPORT"/>
        <Parameter Name="PPP_NOTIFY_PHASE"/>
        <Parameter Name="PPP_USE_PBUF_RAM"/>
        <Parameter Name="PPP_FCS_TABLE"/>
        <Parameter Name="PAP_SUPPORT"/>
        <Parameter Name="CHAP_SUPPORT"/>
        <Parameter Name="MSCHAP_SUPPORT"/>
        <Parameter Name="EAP_SUPPORT"/>
        <Parameter Name="CCP_SUPPORT"/>
        <Parameter Name="MPPE_SUPPORT"/>
        <Parameter Name="CBCP_SUPPORT"/>
        <Parameter Name="ECP_SUPPORT"/>
        <Parameter Name="DEMAND_SUPPORT"/>
        <Parameter Name="LQR_SUPPORT"/>
        <Parameter Name="PPP_SERVER"/>
        <Parameter Name="PPP_OUR_NAME"/>
        <Parameter Name="VJ_SUPPORT"/>
        <Parameter Name="PPP_MD5_RANDM"/>
        <Parameter Name="FSM_DEFTIMEOUT"/>
        <Parameter Name="FSM_DEFMAXTERMREQS"/>
        <Parameter Name="FSM_DEFMAXCONFREQS"/>
        <Parameter Name="FSM_DEFMAXNAKLOOPS"/>
        <Parameter Name="UPAP_DEFTIMEOUT"/>
        <Parameter Name="UPAP_DEFTRANSMITS"/>
        <Parameter Name="UPAP_DEFREQTIME"/>
        <Parameter Name="CHAP_DEFTIMEOUT"/>
        <Parameter Name="CHAP_DEFTRANSMITS"/>
        <Parameter Name="CHAP_DEFRECHALLENGETIME"/>
        <Parameter Name="EAP_DEFREQTIME"/>
        <Parameter Name="EAP_DEFALLOWREQ"/>
        <Parameter Name="EAP_DEFTIMEOUT"/>
        <Parameter Name="EAP_DEFTRANSMITS"/>
        <Parameter Name="LCP_DEFLOOPBACKFAIL"/>
        <Parameter Name="LCP_ECHOINTERVAL"/>
        <Parameter Name="LCP_MAXECHOFAILS"/>
        <Parameter Name="PPP_MAXIDLEFLAG"/>
        <Parameter Name="PPP_MRU"/>
        <Parameter Name="PPP_DEFMRU"/>
        <Parameter Name="PPP_MAXMRU"/>
        <Parameter Name="PPP_MINMRU"/>
        <Parameter Name="PPP_NUM_TIMEOUTS"/>
        <Parameter Name="PPPOL2TP_DEFMRU"/>
        <Parameter Name="MAXNAMELEN"/>
        <Parameter Name="MAXSECRETLEN"/>
        <Parameter Name="LWIP_IPV6"/>
        <Parameter Name="IPV6_REASS_MAXAGE"/>
        <Parameter Name="LWIP_IPV6_SCOPES"/>
        <Parameter Name="LWIP_IPV6_SCOPES_DEBUG"/>
        <Parameter Name="LWIP_IPV6_NUM_ADDRESSES"/>
        <Parameter Name="LWIP_IPV6_FORWARD"/>
        <Parameter Name="LWIP_IPV6_FRAG"/>
        <Parameter Name="LWIP_IPV6_REASS"/>
        <Parameter Name="LWIP_IPV6_SEND_ROUTER_SOLICIT"/>
        <Parameter Name="LWIP_IPV6_AUTOCONFIG"/>
        <Parameter Name="LWIP_IPV6_ADDRESS_LIFETIMES"/>
        <Parameter Name="LWIP_IPV6_DUP_DETECT_ATTEMPTS"/>
        <Parameter Name="LWIP_IPV6_DHCP6"/>
        <Parameter Name="LWIP_IPV6_DHCP6_STATEFUL"/>
        <Parameter Name="LWIP_IPV6_DHCP6_STATELESS"/>
        <Parameter Name="LWIP_DHCP6_GET_NTP_SRV"/>
        <Parameter Name="LWIP_DHCP6_MAX_NTP_SERVERS"/>
        <Parameter Name="LWIP_DHCP6_MAX_DNS_SERVERS"/>
        <Parameter Name="LWIP_ICMP6"/>
        <Parameter Name="LWIP_ICMP6_DATASIZE"/>
        <Parameter Name="LWIP_ICMP6_HL"/>
        <Parameter Name="LWIP_IPV6_MLD"/>
        <Parameter Name="MEMP_NUM_MLD6_GROUP"/>
        <Parameter Name="LWIP_ND6_QUEUEING"/>
        <Parameter Name="MEMP_NUM_ND6_QUEUE"/>
        <Parameter Name="LWIP_ND6_NUM_NEIGHBORS"/>
        <Parameter Name="LWIP_ND6_NUM_DESTINATIONS"/>
        <Parameter Name="LWIP_ND6_NUM_PREFIXES"/>
        <Parameter Name="LWIP_ND6_NUM_ROUTERS"/>
        <Parameter Name="LWIP_ND6_MAX_MULTICAST_SOLICIT"/>
        <Parameter Name="LWIP_ND6_MAX_UNICAST_SOLICIT"/>
        <Parameter Name="LWIP_ND6_MAX_ANYCAST_DELAY_TIME"/>
        <Parameter Name="LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT"/>
        <Parameter Name="LWIP_ND6_REACHABLE_TIME"/>
        <Parameter Name="LWIP_ND6_RETRANS_TIMER"/>
        <Parameter Name="LWIP_ND6_DELAY_FIRST_PROBE_TIME"/>
        <Parameter Name="LWIP_ND6_ALLOW_RA_UPDATES"/>
        <Parameter Name="LWIP_ND6_TCP_REACHABILITY_HINTS"/>
        <Parameter Name="LWIP_ND6_RDNSS_MAX_DNS_SERVERS"/>
        <Parameter Name="LWIP_HTTPD"/>
        <Parameter Name="LWIP_HTTPD_CGI"/>
        <Parameter Name="LWIP_HTTPD_CGI_SSI"/>
        <Parameter Name="LWIP_HTTPD_SSI"/>
        <Parameter Name="LWIP_HTTPD_SSI_RAW"/>
        <Parameter Name="LWIP_HTTPD_SSI_BY_FILE_EXTENSION"/>
        <Parameter Name="LWIP_HTTPD_SUPPORT_POST"/>
        <Parameter Name="LWIP_HTTPD_MAX_CGI_PARAMETERS"/>
        <Parameter Name="LWIP_HTTPD_SSI_MULTIPART"/>
        <Parameter Name="LWIP_HTTPD_MAX_TAG_NAME_LEN"/>
        <Parameter Name="LWIP_HTTPD_MAX_TAG_INSERT_LEN"/>
        <Parameter Name="LWIP_HTTPD_POST_MANUAL_WND"/>
        <Parameter Name="HTTPD_SERVER_AGENT"/>
        <Parameter Name="LWIP_HTTPD_DYNAMIC_HEADERS"/>
        <Parameter Name="HTTPD_USE_MEM_POOL"/>
        <Parameter Name="HTTPD_SERVER_PORT"/>
        <Parameter Name="HTTPD_SERVER_PORT_HTTPS"/>
        <Parameter Name="HTTPD_ENABLE_HTTPS"/>
        <Parameter Name="HTTPD_MAX_RETRIES"/>
        <Parameter Name="HTTPD_POLL_INTERVAL"/>
        <Parameter Name="HTTPD_TCP_PRIO"/>
        <Parameter Name="LWIP_HTTPD_TIMING"/>
        <Parameter Name="LWIP_HTTPD_SUPPORT_EXTSTATUS"/>
        <Parameter Name="LWIP_HTTPD_SUPPORT_V09"/>
        <Parameter Name="LWIP_HTTPD_SUPPORT_11_KEEPALIVE"/>
        <Parameter Name="LWIP_HTTPD_SUPPORT_REQUESTLIST"/>
        <Parameter Name="LWIP_HTTPD_REQ_QUEUELEN"/>
        <Parameter Name="LWIP_HTTPD_REQ_BUFSIZE"/>
        <Parameter Name="LWIP_HTTPD_MAX_REQ_LENGTH"/>
        <Parameter Name="LWIP_HTTPD_MAX_REQUEST_URI_LEN"/>
        <Parameter Name="LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN"/>
        <Parameter Name="LWIP_HTTPD_SSI_INCLUDE_TAG"/>
        <Parameter Name="LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR"/>
        <Parameter Name="LWIP_HTTPD_KILL_OLD_ON_CONNECTIONS_EXCEEDED"/>
        <Parameter Name="LWIP_HTTPD_OMIT_HEADER_FOR_EXTENSIONLESS_URI"/>
        <Parameter Name="HTTPD_LIMIT_SENDING_TO_2MSS"/>
        <Parameter Name="LWIP_HTTPD_CUSTOM_FILES"/>
        <Parameter Name="LWIP_HTTPD_DYNAMIC_FILE_READ"/>
        <Parameter Name="LWIP_HTTPD_FILE_STATE"/>
        <Parameter Name="HTTPD_PRECALCULATED_CHECKSUM"/>
        <Parameter Name="LWIP_HTTPD_FS_ASYNC_READ"/>
        <Parameter Name="HTTPD_USE_CUSTOM_FSDATA"/>
        <Parameter Name="LWIP_SNMP"/>
        <Parameter Name="SNMP_USE_NETCONN"/>
        <Parameter Name="SNMP_USE_RAW"/>
        <Parameter Name="SNMP_STACK_SIZE"/>
        <Parameter Name="SNMP_THREAD_PRIO"/>
        <Parameter Name="SNMP_TRAP_DESTINATIONS"/>
        <Parameter Name="SNMP_SAFE_REQUESTS"/>
        <Parameter Name="SNMP_MAX_OCTET_STRING_LEN"/>
        <Parameter Name="SNMP_MAX_OBJ_ID_LEN"/>
        <Parameter Name="SNMP_MIN_VALUE_SIZE"/>
        <Parameter Name="SNMP_MAX_VALUE_SIZE"/>
        <Parameter Name="SNMP_COMMUNITY"/>
        <Parameter Name="SNMP_COMMUNITY_WRITE"/>
        <Parameter Name="SNMP_COMMUNITY_TRAP"/>
        <Parameter Name="SNMP_MAX_COMMUNITY_STR_LEN"/>
        <Parameter Name="SNMP_LWIP_MIB2"/>
        <Parameter Name="SNMP_LWIP_MIB2_SYSDESC"/>
        <Parameter Name="SNMP_LWIP_MIB2_SYSNAME"/>
        <Parameter Name="SNMP_LWIP_MIB2_SYSCONTACT"/>
        <Parameter Name="SNMP_LWIP_MIB2_SYSLOCATION"/>
        <Parameter Name="SNMP_LWIP_GETBULK_MAX_REPETITIONS"/>
        <Parameter Name="LWIP_SNMP_V3"/>
        <Parameter Name="LWIP_SNMP_V3_MBEDTLS"/>
        <Parameter Name="LWIP_SNMP_V3_CRYPTO"/>
        <Parameter Name="LWIP_SNMP_CONFIGURE_VERSIONS"/>
        <Parameter Name="LWIP_SNTP"/>
        <Parameter Name="SNTP_MAX_SERVERS"/>
        <Parameter Name="SNTP_GET_SERVERS_FROM_DHCP"/>
        <Parameter Name="SNTP_PORT"/>
        <Parameter Name="SNTP_CHECK_RESPONSE"/>
        <Parameter Name="SNTP_COMP_ROUNDTRIP"/>
        <Parameter Name="SNTP_RECV_TIMEOUT"/>
        <Parameter Name="SNTP_UPDATE_DELAY"/>
        <Parameter Name="SNTP_RETRY_TIMEOUT"/>
        <Parameter Name="SNTP_RETRY_TIMEOUT_MAX"/>
        <Parameter Name="SNTP_RETRY_TIMEOUT_EXP"/>
        <Parameter Name="SNTP_MONITOR_SERVER_REACHABILITY"/>
        <Parameter Name="LWIP_SMTP"/>
        <Parameter Name="SMTP_BODYDH"/>
        <Parameter Name="SMTP_MAX_SERVERNAME_LEN"/>
        <Parameter Name="SMTP_MAX_USERNAME_LEN"/>
        <Parameter Name="SMTP_MAX_PASS_LEN"/>
        <Parameter Name="SMTP_COPY_AUTHDATA"/>
        <Parameter Name="SMTP_CHECK_DATA"/>
        <Parameter Name="SMTP_SUPPORT_AUTH_PLAIN"/>
        <Parameter Name="SMTP_SUPPORT_AUTH_LOGIN"/>
        <Parameter Name="LWIP_MDNS"/>
        <Parameter Name="LWIP_MDNS_RESPONDER"/>
        <Parameter Name="MDNS_MAX_SERVICES"/>
        <Parameter Name="MDNS_RESP_USENETIF_EXTCALLBACK"/>
        <Parameter Name="LWIP_TFTP"/>
        <Parameter Name="TFTP_PORT"/>
        <Parameter Name="TFTP_TIMEOUT_MSECS"/>
        <Parameter Name="TFTP_MAX_RETRIES"/>
        <Parameter Name="TFTP_TIMER_MSECS"/>
        <Parameter Name="TFTP_MAX_FILENAME_LEN"/>
        <Parameter Name="TFTP_MAX_MODE_LEN"/>
        <Parameter Name="LWIP_DISABLE_TCP_SANITY_CHECKS"/>
        <Parameter Name="LWIP_DISABLE_MEMP_SANITY_CHECKS"/>
        <Parameter Name="LWIP_PERF"/>
        <Parameter Name="LWIP_STATS"/>
        <Parameter Name="LWIP_STATS_DISPLAY"/>
        <Parameter Name="LINK_STATS"/>
        <Parameter Name="ETHARP_STATS"/>
        <Parameter Name="IP_STATS"/>
        <Parameter Name="IPFRAG_STATS"/>
        <Parameter Name="ICMP_STATS"/>
        <Parameter Name="IGMP_STATS"/>
        <Parameter Name="UDP_STATS"/>
        <Parameter Name="TCP_STATS"/>
        <Parameter Name="MEM_STATS"/>
        <Parameter Name="MEMP_STATS"/>
        <Parameter Name="SYS_STATS"/>
        <Parameter Name="IP6_STATS"/>
        <Parameter Name="ICMP6_STATS"/>
        <Parameter Name="IP6_FRAG_STATS"/>
        <Parameter Name="MLD6_STATS"/>
        <Parameter Name="ND6_STATS"/>
        <Parameter Name="MIB2_STATS"/>
        <Parameter Name="CHECKSUM_BY_HARDWARE"/>
        <Parameter Name="LWIP_CHECKSUM_CTRL_PER_NETIF"/>
        <Parameter Name="CHECKSUM_GEN_IP"/>
        <Parameter Name="CHECKSUM_GEN_UDP"/>
        <Parameter Name="CHECKSUM_GEN_TCP"/>
        <Parameter Name="CHECKSUM_GEN_ICMP"/>
        <Parameter Name="CHECKSUM_GEN_ICMP6"/>
        <Parameter Name="CHECKSUM_CHECK_IP"/>
        <Parameter Name="CHECKSUM_CHECK_UDP"/>
        <Parameter Name="CHECKSUM_CHECK_TCP"/>
        <Parameter Name="CHECKSUM_CHECK_ICMP"/>
        <Parameter Name="CHECKSUM_CHECK_ICMP6"/>
        <Parameter Name="LWIP_CHECKSUM_ON_COPY"/>
        <Parameter Name="LWIP_DBG_ON"/>
        <Parameter Name="LWIP_DBG_OFF"/>
        <Parameter Name="LWIP_DBG_MIN_LEVEL"/>
        <Parameter Name="LWIP_DBG_TYPES_ON"/>
        <Parameter Name="ETHARP_DEBUG"/>
        <Parameter Name="NETIF_DEBUG"/>
        <Parameter Name="PBUF_DEBUG"/>
        <Parameter Name="API_LIB_DEBUG"/>
        <Parameter Name="API_MSG_DEBUG"/>
        <Parameter Name="SOCKETS_DEBUG"/>
        <Parameter Name="ICMP_DEBUG"/>
        <Parameter Name="IGMP_DEBUG"/>
        <Parameter Name="INET_DEBUG"/>
        <Parameter Name="IP_DEBUG"/>
        <Parameter Name="IP_REASS_DEBUG"/>
        <Parameter Name="RAW_DEBUG"/>
        <Parameter Name="MEM_DEBUG"/>
        <Parameter Name="MEMP_DEBUG"/>
        <Parameter Name="SYS_DEBUG"/>
        <Parameter Name="TIMERS_DEBUG"/>
        <Parameter Name="TCP_DEBUG"/>
        <Parameter Name="TCP_INPUT_DEBUG"/>
        <Parameter Name="TCP_FR_DEBUG"/>
        <Parameter Name="TCP_RTO_DEBUG"/>
        <Parameter Name="TCP_CWND_DEBUG"/>
        <Parameter Name="TCP_WND_DEBUG"/>
        <Parameter Name="TCP_OUTPUT_DEBUG"/>
        <Parameter Name="TCP_RST_DEBUG"/>
        <Parameter Name="TCP_QLEN_DEBUG"/>
        <Parameter Name="UDP_DEBUG"/>
        <Parameter Name="TCPIP_DEBUG"/>
        <Parameter Name="SLIP_DEBUG"/>
        <Parameter Name="DHCP_DEBUG"/>
        <Parameter Name="AUTOIP_DEBUG"/>
        <Parameter Name="DNS_DEBUG"/>
        <Parameter Name="PPP_DEBUG"/>
        <Parameter Name="IP6_DEBUG"/>
        <Parameter Name="DHCP6_DEBUG"/>
        <Parameter Name="HTTPD_DEBUG"/>
        <Parameter Name="HTTPD_DEBUG_TIMING"/>
        <Parameter Name="SNMP_DEBUG"/>
        <Parameter Name="SNMP_MIB_DEBUG"/>
        <Parameter Name="SNTP_DEBUG"/>
        <Parameter Name="SMTP_DEBUG"/>
        <Parameter Name="MDNS_DEBUG"/>
        <Parameter Name="TFTP_DEBUG"/>
        <Parameter Name="LWIP_PROVIDE_ERRNO"/>
        <Parameter Name="LWIP_TESTMODE"/>
        <BspDependency Name="Driver_PHY" Comment="&lt;html&gt;PHY Driver can be set either to Choose or to LAN8742:&lt;br&gt;&lt;b&gt;Choose&lt;/b&gt;:&lt;br&gt;- BSP PHY Driver components provided by ST are not used and up to user to implement&lt;br&gt; his own driver with same architecture and constraints than LAN8742&lt;br&gt; - ST specification will be published soon to explain how user can develop his own&lt;br&gt; BSP driver component.&lt;br&gt;&lt;b&gt;LAN8742&lt;/b&gt;:&lt;br&gt;- LAN8742 BSP PHY Driver component is used and STM32CubeMX copies lan8742.c/.h files&lt;br&gt; from ST Firmware Package to the user's project Drivers/BSP/Components directory.&lt;/ul&gt;&lt;br&gt;&lt;i&gt;Note&lt;/i&gt;: BSP files cannot be updated or they will be overwritten at each project generation.&lt;/html&gt;" BspIpName="" BspModeName="" Api="BSP_COMPONENT_DRIVER" Component="LAN8742"/>
    </RefMode>
    <ModeLogicOperator Name="OR">
        <Mode Name="Enabled" RemoveCondition="STM32H7">
            <ModeLogicOperator Name="XOR">
                <Mode Name="Enabled">
                    <SignalLogicalOp Name="AND">
                        <Signal IOMode="" Name="VS_Enabled"/>
                    </SignalLogicalOp>
                    <Semaphore>S_LWIP</Semaphore>
                </Mode>
            </ModeLogicOperator>
            <Condition Expression="IF(MW_ETH_MW, IF(!S_MBEDTLS | (S_MBEDTLS &amp; S_FREERTOS),1,0),0)" Diagnostic="Active only if: ETH IP configured / FREERTOS is enabled when MBEDTLS is enabled."/>
        </Mode>
        <Mode Name="Enabled" RemoveCondition="!(STM32H7 &amp; (STM32H745_755|STM32H747_757))">
            <ModeLogicOperator Name="XOR">
                <Mode Name="Enabled">
                    <SignalLogicalOp Name="AND">
                        <Signal IOMode="" Name="VS_Enabled"/>
                    </SignalLogicalOp>
                    <Semaphore>S_LWIP</Semaphore>
                </Mode>
            </ModeLogicOperator>
            <Condition Expression="(IF(MW_ETH_MW &amp; ((S_M7_DCACHE_ENABLED &amp; $IpInstance_Cortex_M7) | $IpInstance_Cortex_M4), IF(!S_MBEDTLS | (S_MBEDTLS &amp; S_FREERTOS$context),1,0),0)) &amp; (!S_AzureRTOS$context)" Diagnostic="Active only if: ETH IP configured / FREERTOS is enabled when MBEDTLS is enabled.&lt;br&gt;&lt;font color=&quot;red&quot;&gt;For STM32H7 using Cortex M7, CORTEX_M7 CPU DCache parameter must be Enabled (Configuration tab) to allow LwIP activation."/>
        </Mode>
        <Mode Name="Enabled" RemoveCondition="!(STM32H7 &amp; !(STM32H745_755|STM32H747_757))">
            <ModeLogicOperator Name="XOR">
                <Mode Name="Enabled">
                    <SignalLogicalOp Name="AND">
                        <Signal IOMode="" Name="VS_Enabled"/>
                    </SignalLogicalOp>
                    <Semaphore>S_LWIP</Semaphore>
                </Mode>
            </ModeLogicOperator>
            <Condition Expression="(IF(MW_ETH_MW &amp; S_M7_DCACHE_ENABLED, IF(!S_MBEDTLS | (S_MBEDTLS &amp; S_FREERTOS$context),1,0),0)) &amp; (!S_AzureRTOS$context)" Diagnostic="Active only if: ETH IP configured / FREERTOS is enabled when MBEDTLS is enabled.&lt;br&gt;&lt;font color=&quot;red&quot;&gt;For STM32H7, CORTEX_M7 CPU DCache parameter must be Enabled (Configuration tab) to allow LwIP activation."/>
        </Mode>
    </ModeLogicOperator>
<RefSignal Name="VS_Enabled" Virtual="true"/>
</IP>