[PATCH rtems-lwip 1/2] rtemslwip: Use common lwipopts for all BSPs
Chris Johns
chrisj at rtems.org
Wed Mar 29 21:24:16 UTC 2023
This looks good. Thanks for cleaning this up.
Chris
On 30/3/2023 7:51 am, Kinsey Moore wrote:
> This reworks all BSPs to use a shared lwipopts.h that includes
> lwipbspopts.h for per-BSP configuration instead of having lwIP
> configuration scattered everywhere for individual BSPs. This also
> consolidates the shared portions of ZynqMP BSP-specific configuration
> and Xilinx-specific configuration into shared files for reuse.
> ---
> defs/bsps/arm/tms570_base.json | 1 +
> rtemslwip/beaglebone/lwipbspopts.h | 1 +
> rtemslwip/beaglebone/lwipopts.h | 276 -----------------------
> rtemslwip/include/legacy_lwipopts.h | 53 +++++
> rtemslwip/include/lwipopts.h | 281 ++++++++++++++++++++++++
> rtemslwip/tms570/lwipbspopts.h | 1 +
> rtemslwip/xilinx/xlwipopts.h | 35 +++
> rtemslwip/zynqmp/common_lwipopts.h | 3 +
> rtemslwip/zynqmp/lwipopts.h | 128 -----------
> rtemslwip/zynqmp_cfc400x/lwipbspopts.h | 2 +-
> rtemslwip/zynqmp_hardware/lwipbspopts.h | 2 +-
> rtemslwip/zynqmp_qemu/lwipbspopts.h | 2 +-
> uLan/ports/os/lwipopts.h | 272 -----------------------
> 13 files changed, 378 insertions(+), 679 deletions(-)
> create mode 100644 rtemslwip/beaglebone/lwipbspopts.h
> delete mode 100644 rtemslwip/beaglebone/lwipopts.h
> create mode 100644 rtemslwip/include/legacy_lwipopts.h
> create mode 100644 rtemslwip/include/lwipopts.h
> create mode 100644 rtemslwip/tms570/lwipbspopts.h
> create mode 100644 rtemslwip/xilinx/xlwipopts.h
> create mode 100644 rtemslwip/zynqmp/common_lwipopts.h
> delete mode 100644 rtemslwip/zynqmp/lwipopts.h
> delete mode 100644 uLan/ports/os/lwipopts.h
>
> diff --git a/defs/bsps/arm/tms570_base.json b/defs/bsps/arm/tms570_base.json
> index a1d1e24..e618d5c 100644
> --- a/defs/bsps/arm/tms570_base.json
> +++ b/defs/bsps/arm/tms570_base.json
> @@ -2,6 +2,7 @@
> "header-paths-to-import": [
> "uLan/ports/driver/tms570_emac",
> "uLan/ports/os",
> + "rtemslwip/tms570",
> "cpsw/src/include"
> ],
> "source-files-to-import": [
> diff --git a/rtemslwip/beaglebone/lwipbspopts.h b/rtemslwip/beaglebone/lwipbspopts.h
> new file mode 100644
> index 0000000..85b08af
> --- /dev/null
> +++ b/rtemslwip/beaglebone/lwipbspopts.h
> @@ -0,0 +1 @@
> +#include <legacy_lwipopts.h>
> diff --git a/rtemslwip/beaglebone/lwipopts.h b/rtemslwip/beaglebone/lwipopts.h
> deleted file mode 100644
> index 888fae4..0000000
> --- a/rtemslwip/beaglebone/lwipopts.h
> +++ /dev/null
> @@ -1,276 +0,0 @@
> -#if 0
> -/*
> - * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without modification,
> - * are permitted provided that the following conditions are met:
> - *
> - * 1. Redistributions of source code must retain the above copyright notice,
> - * this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright notice,
> - * this list of conditions and the following disclaimer in the documentation
> - * and/or other materials provided with the distribution.
> - * 3. The name of the author may not be used to endorse or promote products
> - * derived from this software without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
> - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
> - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
> - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
> - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
> - * OF SUCH DAMAGE.
> - *
> - * This file is part of the lwIP TCP/IP stack.
> - *
> - * Author: Simon Goldschmidt
> - *
> - */
> -#ifndef LWIP_HDR_LWIPOPTS_H__
> -#define LWIP_HDR_LWIPOPTS_H__
> -
> -/* Prevent having to link sys_arch.c (we don't test the API layers in unit tests) */
> -#define NO_SYS 0
> -#define LWIP_NETCONN 1
> -#define LWIP_SOCKET 1
> -#define LWIP_DNS 1
> -
> -#define LWIP_IPV6 1
> -#define LWIP_IPV4 1
> -
> -#define LWIP_ETHERNET 1
> -#define LWIP_NETIF_API 1
> -#define LWIP_AUTOIP 1
> -/* Enable DHCP to test it, disable UDP checksum to easier inject packets */
> -#define LWIP_DHCP 1
> -#define LWIP_TIMEVAL_PRIVATE 0
> -#define LWIP_POSIX_SOCKETS_IO_NAMES 1
> -//#define LWIP_COMPAT_SOCKETS 2
> -#ifndef FIONREAD
> -#define FIONREAD 1
> -#endif
> -#ifndef FIONBIO
> -#define FIONBIO 1
> -#endif
> -#define THREAD_STACK_SIZE 4096
> -
> -#define LWIP_TIMERS 1
> -/* Minimal changes to opt.h required for tcp unit tests: */
> -
> -#define MEM_SIZE 16000
> -#define TCP_SND_QUEUELEN 40
> -#define MEMP_NUM_TCP_SEG TCP_SND_QUEUELEN
> -#define TCP_SND_BUF (12 * TCP_MSS)
> -#define TCP_WND (10 * TCP_MSS)
> -#define LWIP_WND_SCALE 1
> -#define TCP_RCV_SCALE 0
> -#define PBUF_POOL_SIZE 400 // pbuf tests need ~200KByte
> -
> -/* Minimal changes to opt.h required for etharp unit tests: */
> -#define ETHARP_SUPPORT_STATIC_ENTRIES 1
> -
> -#endif /* LWIP_HDR_LWIPOPTS_H__ */
> -
> -#endif /* 0 */
> -
> -/**
> - * \file lwipopts.h - Configuration options for lwIP
> - *
> - * Copyright (c) 2010 Texas Instruments Incorporated
> - */
> -/*
> - * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without modification,
> - * are permitted provided that the following conditions are met:
> - *
> - * 1. Redistributions of source code must retain the above copyright notice,
> - * this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright notice,
> - * this list of conditions and the following disclaimer in the documentation
> - * and/or other materials provided with the distribution.
> - * 3. The name of the author may not be used to endorse or promote products
> - * derived from this software without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
> - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
> - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
> - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
> - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
> - * OF SUCH DAMAGE.
> - *
> - * This file is part of the lwIP TCP/IP stack.
> - *
> - * Author: Adam Dunkels <adam at sics.se>
> - *
> - */
> -
> -#ifndef __LWIPOPTS_H__
> -#define __LWIPOPTS_H__
> -
> -/*****************************************************************************
> -** CONFIGURATIONS
> -*****************************************************************************/
> -
> -/*
> -** The macro CPSW_DUAL_MAC_MODE shall be defined for using CPSW ports in
> -** Dual MAC mode.
> -*/
> -#define CPSW_DUAL_MAC_MODE
> -
> -/*
> -** The below macro should be defined for using lwIP with cache. For cache
> -** enabling, pbuf pool shall be cache line aligned. This is done by using
> -** separate pool for each memory. The alignment of pbuf pool to cache line
> -** size is done in /ports/cpsw/include/arch/cc.h.
> -*/
> -/*#define LWIP_CACHE_ENABLED*/
> -
> -#define SOC_CACHELINE_SIZE_BYTES 64 /* Number of bytes in
> - a cache line */
> -/*
> -** The timeout for DHCP completion. lwIP library will wait for DHCP
> -** completion for (LWIP_DHCP_TIMEOUT / 100) seconds.
> -*/
> -#define LWIP_DHCP_TIMEOUT 1000
> -
> -/*
> -** The number of times DHCP is attempted. Each time, the library will wait
> -** for (LWIP_DHCP_TIMEOUT / 100) seconds for DHCP completion.
> -*/
> -#define NUM_DHCP_TRIES 5
> -
> -#define LWIP_ETHERNET 1
> -#define LWIP_ARP 1
> -#define LWIP_DNS 1
> -
> -/*****************************************************************************
> -** lwIP SPECIFIC DEFINITIONS - To be used by lwIP stack
> -*****************************************************************************/
> -#define HOST_TMR_INTERVAL 0
> -#define DYNAMIC_HTTP_HEADERS
> -
> -/*****************************************************************************
> -** Platform specific locking
> -*****************************************************************************/
> -#define SYS_LIGHTWEIGHT_PROT 1
> -#define NO_SYS 0
> -#define NO_SYS_NO_TIMERS 0
> -
> -/*****************************************************************************
> -** Memory Options
> -*****************************************************************************/
> -#define MEM_ALIGNMENT 4
> -#define MEM_SIZE (1024 * 1024) /* 4K */
> -
> -#define MEMP_NUM_PBUF 96
> -#define MEMP_NUM_TCP_PCB 32
> -#define MEMP_NUM_TCP_SEG 32
> -#define PBUF_POOL_SIZE 512
> -#define MEMP_MEM_MALLOC 1
> -#define MEMP_MEM_INIT 1
> -#define MEMP_OVERFLOW_CHECK 0
> -
> -#ifdef LWIP_CACHE_ENABLED
> -#define MEMP_SEPARATE_POOLS 1 /* We want the pbuf
> - pool cache line
> - aligned*/
> -#endif
> -
> -//#define MEMP_NUM_SYS_TIMEOUT (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_SUPPORT)
> -
> -/*****************************************************************************
> -** IP Options
> -*****************************************************************************/
> -#define IP_REASSEMBLY 0
> -#define IP_FRAG 0
> -#define LWIP_IPV4 1
> -#define LWIP_IPV6 1
> -
> -/*****************************************************************************
> -** DHCP Options
> -*****************************************************************************/
> -#define LWIP_DHCP 1
> -#define DHCP_DOES_ARP_CHECK 0
> -
> -/*****************************************************************************
> -** Auto IP Options
> -*****************************************************************************/
> -#define LWIP_AUTOIP 1
> -#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP))
> -
> -/*****************************************************************************
> -** TCP Options
> -*****************************************************************************/
> -#define TCP_MSS 1500
> -#define TCP_WND (8 * TCP_MSS)
> -#define TCP_SND_BUF (8 * TCP_MSS)
> -#define TCP_OVERSIZE TCP_MSS
> -#define LWIP_TCPIP_CORE_LOCKING 1
> -
> -/*****************************************************************************
> -** PBUF Options
> -*****************************************************************************/
> -#define PBUF_LINK_HLEN 14
> -#define PBUF_POOL_BUFSIZE 1520 /* + size of struct pbuf
> - shall be cache line
> - aligned be enabled */
> -#define ETH_PAD_SIZE 0
> -#define LWIP_NETCONN 1
> -
> -/*****************************************************************************
> -** Socket Options
> -*****************************************************************************/
> -#define LWIP_SOCKET 1
> -#define SO_REUSE 1
> -
> -/*****************************************************************************
> -** Debugging options
> -*****************************************************************************/
> -#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF
> -#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON | LWIP_DBG_TRACE \
> - |LWIP_DBG_STATE | LWIP_DBG_FRESH)
> -#define DHCP_DEBUG LWIP_DBG_OFF
> -#define NETIF_DEBUG LWIP_DBG_OFF
> -#define IP_DEBUG LWIP_DBG_OFF
> -#define UDP_DEBUG LWIP_DBG_OFF
> -#define ETHARP_DEBUG LWIP_DBG_OFF
> -#define SYS_DEBUG LWIP_DBG_OFF
> -#define RAW_DEBUG LWIP_DBG_OFF
> -#define MEM_DEBUG LWIP_DBG_OFF
> -#define MEMP_DEBUG LWIP_DBG_OFF
> -#define PBUF_DEBUG LWIP_DBG_OFF
> -#define TCPIP_DEBUG LWIP_DBG_OFF
> -#define APP_DEBUG LWIP_DBG_OFF
> -#define SOCKETS_DEBUG LWIP_DBG_OFF
> -#define LWIP_STATS 0
> -#define LWIP_STATS_DISPLAY 0
> -#define LWIP_STATS_POSIX 0
> -#define LWIP_DNS_API_DEFINE_ERRORS 1
> -
> -
> -
> -/**
> - * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
> - * (only used if you use sockets.c)
> - */
> -#define LWIP_COMPAT_SOCKETS 1
> -
> - #define LWIP_TIMEVAL_PRIVATE 0
> -
> - #define LWIP_RAW 0
> -
> -#define tskIDLE_PRIORITY RTEMS_MAXIMUM_PRIORITY
> -#define portTICK_RATE_MS (rtems_clock_get_ticks_per_second() * 1000)
> -#define vTaskDelay(x) sys_arch_delay(x)
> -
> -#endif /* __LWIPOPTS_H__ */
> diff --git a/rtemslwip/include/legacy_lwipopts.h b/rtemslwip/include/legacy_lwipopts.h
> new file mode 100644
> index 0000000..322b87d
> --- /dev/null
> +++ b/rtemslwip/include/legacy_lwipopts.h
> @@ -0,0 +1,53 @@
> +/*
> + * Copyright (C) 2023 On-Line Applications Research Corporation (OAR)
> + * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +/*
> + * The options here are pruned down, but roughly equivalent to the original set
> + * of options configured for the BeagleBone and TMS570 BSPs originally pulled
> + * from the uLan repository.
> + */
> +
> +#ifndef __LEGACY_LWIPOPTS_H__
> +#define __LEGACY_LWIPOPTS_H__
> +
> +#define CPSW_DUAL_MAC_MODE
> +
> +#define NUM_DHCP_TRIES 5
> +
> +#define LWIP_ETHERNET 1
> +
> +#define LWIP_TCPIP_CORE_LOCKING 1
> +
> +/*****************************************************************************
> +** Memory Options
> +*****************************************************************************/
> +#define MEM_ALIGNMENT 4
> +#define MEM_SIZE (1024 * 1024) /* 4K */
> +#define MEMP_NUM_TCP_SEG 32
> +#define MEMP_MEM_MALLOC 1
> +#define MEMP_MEM_INIT 1
> +
> +#endif /* __LEGACY_LWIPOPTS_H__ */
> diff --git a/rtemslwip/include/lwipopts.h b/rtemslwip/include/lwipopts.h
> new file mode 100644
> index 0000000..157cce8
> --- /dev/null
> +++ b/rtemslwip/include/lwipopts.h
> @@ -0,0 +1,281 @@
> +/*
> + * Copyright (C) 2023 On-Line Applications Research Corporation (OAR)
> + * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#ifndef __LWIPOPTS_H__
> +#define __LWIPOPTS_H__
> +
> +/* Critical items that all BSPs must use for full functionality */
> +#define SYS_LIGHTWEIGHT_PROT 1
> +#define NO_SYS 0
> +#define LWIP_SOCKET 1
> +#define SO_REUSE 1
> +#define LWIP_COMPAT_SOCKETS 1
> +#define LWIP_NETCONN 1
> +#define LWIP_NETIF_LOOPBACK 1 /* Required for socketpair implementation */
> +#define LWIP_NETIF_API 1
> +#define LWIP_TIMEVAL_PRIVATE 0
> +#define LWIP_CALLBACK_API 1
> +#define NO_SYS_NO_TIMERS 1
> +#define LWIP_COMPAT_MUTEX 0
> +#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1
> +
> +#include <lwipbspopts.h>
> +
> +/* Sane defaults that the configuration or BSP can override */
> +
> +#ifndef ARP_QUEUEING
> +#define ARP_QUEUEING 1
> +#endif
> +
> +#ifndef ARP_TABLE_SIZE
> +#define ARP_TABLE_SIZE 10
> +#endif
> +
> +#ifndef CHECKSUM_CHECK_IP
> +#define CHECKSUM_CHECK_IP 1
> +#endif
> +
> +#ifndef CHECKSUM_CHECK_TCP
> +#define CHECKSUM_CHECK_TCP 1
> +#endif
> +
> +#ifndef CHECKSUM_CHECK_UDP
> +#define CHECKSUM_CHECK_UDP 1
> +#endif
> +
> +#ifndef CHECKSUM_GEN_IP
> +#define CHECKSUM_GEN_IP 1
> +#endif
> +
> +#ifndef CHECKSUM_GEN_TCP
> +#define CHECKSUM_GEN_TCP 1
> +#endif
> +
> +#ifndef CHECKSUM_GEN_UDP
> +#define CHECKSUM_GEN_UDP 1
> +#endif
> +
> +#ifndef CONFIG_LINKSPEED_AUTODETECT
> +#define CONFIG_LINKSPEED_AUTODETECT 1
> +#endif
> +
> +#ifndef DEFAULT_ACCEPTMBOX_SIZE
> +#define DEFAULT_ACCEPTMBOX_SIZE 5
> +#endif
> +
> +#ifndef DEFAULT_TCP_RECVMBOX_SIZE
> +#define DEFAULT_TCP_RECVMBOX_SIZE 20
> +#endif
> +
> +#ifndef DEFAULT_UDP_RECVMBOX_SIZE
> +#define DEFAULT_UDP_RECVMBOX_SIZE 20
> +#endif
> +
> +#ifndef DHCP_DOES_ARP_CHECK
> +#define DHCP_DOES_ARP_CHECK 1
> +#endif
> +
> +#ifndef ICMP_TTL
> +#define ICMP_TTL 255
> +#endif
> +
> +#ifndef IP_DEFAULT_TTL
> +#define IP_DEFAULT_TTL 255
> +#endif
> +
> +#ifndef IP_FORWARD
> +#define IP_FORWARD 0
> +#endif
> +
> +#ifndef IP_FRAG
> +#define IP_FRAG 1
> +#endif
> +
> +#ifndef IP_FRAG_MAX_MTU
> +#define IP_FRAG_MAX_MTU 1500
> +#endif
> +
> +#ifndef IP_OPTIONS
> +#define IP_OPTIONS 1
> +#endif
> +
> +#ifndef IP_OPTIONS_ALLOWED
> +#define IP_OPTIONS_ALLOWED 0
> +#endif
> +
> +#ifndef IP_REASS_BUFSIZE
> +#define IP_REASS_BUFSIZE 5760
> +#endif
> +
> +#ifndef IP_REASSEMBLY
> +#define IP_REASSEMBLY 1
> +#endif
> +
> +#ifndef LWIP_ARP
> +#define LWIP_ARP 1
> +#endif
> +
> +#ifndef LWIP_AUTOIP
> +#define LWIP_AUTOIP 1
> +#endif
> +
> +#ifndef LWIP_CHKSUM_ALGORITHM
> +#define LWIP_CHKSUM_ALGORITHM 3
> +#endif
> +
> +#ifndef LWIP_DHCP
> +#define LWIP_DHCP 1
> +#endif
> +
> +#ifndef LWIP_DHCP_AUTOIP_COOP
> +#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP))
> +#endif
> +
> +#ifndef LWIP_DNS
> +#define LWIP_DNS 1
> +#endif
> +
> +#ifndef LWIP_IPV4
> +#define LWIP_IPV4 1
> +#endif
> +
> +#ifndef LWIP_IPV6
> +#define LWIP_IPV6 1
> +#endif
> +
> +#ifndef LWIP_TCP
> +#define LWIP_TCP 1
> +#endif
> +
> +#ifndef LWIP_UDP
> +#define LWIP_UDP 1
> +#endif
> +
> +#ifndef MEMP_NUM_FRAG_PBUF
> +#define MEMP_NUM_FRAG_PBUF 256
> +#endif
> +
> +#ifndef MEMP_NUM_NETCONN
> +#define MEMP_NUM_NETCONN 16
> +#endif
> +
> +#ifndef MEMP_NUM_PBUF
> +#define MEMP_NUM_PBUF 96
> +#endif
> +
> +#ifndef MEMP_NUM_TCP_PCB
> +#define MEMP_NUM_TCP_PCB 32
> +#endif
> +
> +#ifndef MEMP_NUM_TCP_PCB_LISTEN
> +#define MEMP_NUM_TCP_PCB_LISTEN 8
> +#endif
> +
> +#ifndef MEMP_NUM_TCP_SEG
> +#define MEMP_NUM_TCP_SEG 256
> +#endif
> +
> +#ifndef MEMP_NUM_UDP_PCB
> +#define MEMP_NUM_UDP_PCB 16
> +#endif
> +
> +#ifndef MEMP_SEPARATE_POOLS
> +#define MEMP_SEPARATE_POOLS 1
> +#endif
> +
> +#ifndef MEM_SIZE
> +#define MEM_SIZE 2 * 1024 * 1024
> +#endif
> +
> +#ifndef PBUF_LINK_HLEN
> +#define PBUF_LINK_HLEN 16
> +#endif
> +
> +#ifndef PBUF_POOL_BUFSIZE
> +#define PBUF_POOL_BUFSIZE 1600
> +#endif
> +
> +#ifndef PBUF_POOL_SIZE
> +#define PBUF_POOL_SIZE 512
> +#endif
> +
> +#ifndef TCP_FAST_INTERVAL
> +#define TCP_FAST_INTERVAL 250
> +#endif
> +
> +#ifndef TCPIP_MBOX_SIZE
> +#define TCPIP_MBOX_SIZE 20
> +#endif
> +
> +#ifndef TCP_MAXRTX
> +#define TCP_MAXRTX 12
> +#endif
> +
> +#ifndef TCP_MSS
> +#define TCP_MSS 1576
> +#endif
> +
> +#ifndef TCP_OVERSIZE
> +#define TCP_OVERSIZE TCP_MSS
> +#endif
> +
> +#ifndef TCP_QUEUE_OOSEQ
> +#define TCP_QUEUE_OOSEQ 1
> +#endif
> +
> +#ifndef TCP_SLOW_INTERVAL
> +#define TCP_SLOW_INTERVAL 500
> +#endif
> +
> +#ifndef TCP_SND_BUF
> +#define TCP_SND_BUF (8 * TCP_MSS)
> +#endif
> +
> +#ifndef TCP_SND_QUEUELEN
> +#define TCP_SND_QUEUELEN 16 * TCP_SND_BUF / TCP_MSS
> +#endif
> +
> +#ifndef TCP_SYNMAXRTX
> +#define TCP_SYNMAXRTX 4
> +#endif
> +
> +#ifndef TCP_TMR_INTERVAL
> +#define TCP_TMR_INTERVAL 250
> +#endif
> +
> +#ifndef TCP_TTL
> +#define TCP_TTL 255
> +#endif
> +
> +#ifndef TCP_WND
> +#define TCP_WND (8 * TCP_MSS)
> +#endif
> +
> +#ifndef UDP_TTL
> +#define UDP_TTL 255
> +#endif
> +
> +#endif /* __LWIPOPTS_H__ */
> diff --git a/rtemslwip/tms570/lwipbspopts.h b/rtemslwip/tms570/lwipbspopts.h
> new file mode 100644
> index 0000000..85b08af
> --- /dev/null
> +++ b/rtemslwip/tms570/lwipbspopts.h
> @@ -0,0 +1 @@
> +#include <legacy_lwipopts.h>
> diff --git a/rtemslwip/xilinx/xlwipopts.h b/rtemslwip/xilinx/xlwipopts.h
> new file mode 100644
> index 0000000..d915c3c
> --- /dev/null
> +++ b/rtemslwip/xilinx/xlwipopts.h
> @@ -0,0 +1,35 @@
> +/*
> + * Copyright (C) 2023 On-Line Applications Research Corporation (OAR)
> + * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#ifndef __XLWIPOPTS_H__
> +#define __XLWIPOPTS_H__
> +
> +/* These macros allow RTEMS to pretend to be FreeRTOS for Xilinx drivers */
> +#define tskIDLE_PRIORITY RTEMS_MAXIMUM_PRIORITY
> +#define portTICK_RATE_MS (rtems_clock_get_ticks_per_second() * 1000)
> +#define vTaskDelay(x) sys_arch_delay(x)
> +
> +#endif /* __XLWIPOPTS_H__ */
> diff --git a/rtemslwip/zynqmp/common_lwipopts.h b/rtemslwip/zynqmp/common_lwipopts.h
> new file mode 100644
> index 0000000..8b7d870
> --- /dev/null
> +++ b/rtemslwip/zynqmp/common_lwipopts.h
> @@ -0,0 +1,3 @@
> +#include <xparameters_ps.h>
> +#include <xlwipopts.h>
> +#define MEM_ALIGNMENT 64
> diff --git a/rtemslwip/zynqmp/lwipopts.h b/rtemslwip/zynqmp/lwipopts.h
> deleted file mode 100644
> index feabe73..0000000
> --- a/rtemslwip/zynqmp/lwipopts.h
> +++ /dev/null
> @@ -1,128 +0,0 @@
> -/*
> - * Copyright (C) 2022 On-Line Applications Research Corporation (OAR)
> - * Written by Kinsey Moore <kinsey.moore at oarcorp.com>
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - * notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright
> - * notice, this list of conditions and the following disclaimer in the
> - * documentation and/or other materials provided with the distribution.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> - * POSSIBILITY OF SUCH DAMAGE.
> - */
> -
> -#ifndef __LWIPOPTS_H__
> -#define __LWIPOPTS_H__
> -
> -#define SYS_LIGHTWEIGHT_PROT 1
> -
> -#define NO_SYS 0
> -#define LWIP_SOCKET 1
> -#define SO_REUSE 1
> -#define LWIP_COMPAT_SOCKETS 1
> -#define LWIP_NETCONN 1
> -
> -#define LWIP_ARP 1
> -#define LWIP_NETIF_API 1
> -/* Required for socketpair implementation */
> -#define LWIP_NETIF_LOOPBACK 1
> -#define LWIP_IPV6 1
> -#define LWIP_IPV4 1
> -#define LWIP_TIMEVAL_PRIVATE 0
> -#define LWIP_DNS 1
> -
> -#define LWIP_CALLBACK_API 1
> -
> -#define MEM_ALIGNMENT 64
> -#define MEM_SIZE 2 * 1024 * 1024
> -#define MEMP_NUM_PBUF 32
> -#define MEMP_NUM_NETCONN 16
> -#define MEMP_NUM_UDP_PCB 16
> -#define MEMP_NUM_TCP_PCB 32
> -#define MEMP_NUM_TCP_PCB_LISTEN 8
> -#define MEMP_NUM_TCP_SEG 256
> -
> -#define PBUF_POOL_SIZE 256
> -#define PBUF_POOL_BUFSIZE 1600
> -#define PBUF_LINK_HLEN 16
> -
> -#define ARP_TABLE_SIZE 10
> -#define ARP_QUEUEING 1
> -
> -#define ICMP_TTL 255
> -
> -#define IP_OPTIONS 1
> -#define IP_FORWARD 0
> -#define IP_REASSEMBLY 1
> -#define IP_FRAG 1
> -#define IP_REASS_BUFSIZE 5760
> -#define IP_FRAG_MAX_MTU 1500
> -#define IP_DEFAULT_TTL 255
> -#define LWIP_CHKSUM_ALGORITHM 3
> -
> -#define LWIP_UDP 1
> -#define UDP_TTL 255
> -
> -#define LWIP_TCP 1
> -#define TCP_MSS 1576
> -#define TCP_SND_BUF 16 * 1024
> -#define TCP_WND 6 * 1024
> -#define TCP_TTL 255
> -#define TCP_MAXRTX 12
> -#define TCP_SYNMAXRTX 4
> -#define TCP_QUEUE_OOSEQ 1
> -#define TCP_SND_QUEUELEN 16 * TCP_SND_BUF / TCP_MSS
> -#define CHECKSUM_GEN_TCP 1
> -#define CHECKSUM_GEN_UDP 1
> -#define CHECKSUM_GEN_IP 1
> -#define CHECKSUM_CHECK_TCP 1
> -#define CHECKSUM_CHECK_UDP 1
> -#define CHECKSUM_CHECK_IP 1
> -
> -#define TCP_TMR_INTERVAL 250
> -#define TCP_FAST_INTERVAL 250
> -#define TCP_SLOW_INTERVAL 500
> -
> -#define NO_SYS_NO_TIMERS 1
> -#define MEMP_SEPARATE_POOLS 1
> -#define MEMP_NUM_FRAG_PBUF 256
> -#define IP_OPTIONS_ALLOWED 0
> -#define TCP_OVERSIZE TCP_MSS
> -#define LWIP_COMPAT_MUTEX 0
> -#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1
> -
> -#define LWIP_DHCP 1
> -#define DHCP_DOES_ARP_CHECK 1
> -
> -#define DBG_TYPES_ON DBG_LEVEL_WARNING
> -
> -#define LWIP_STATS 0
> -#define LWIP_STATS_DISPLAY 0
> -#define LWIP_STATS_POSIX 0
> -
> -#define CONFIG_LINKSPEED_AUTODETECT 1
> -#define TCPIP_MBOX_SIZE 20
> -#define DEFAULT_TCP_RECVMBOX_SIZE 20
> -#define DEFAULT_UDP_RECVMBOX_SIZE 20
> -#define DEFAULT_ACCEPTMBOX_SIZE 5
> -
> -#define tskIDLE_PRIORITY RTEMS_MAXIMUM_PRIORITY
> -#define portTICK_RATE_MS ( rtems_clock_get_ticks_per_second() * 1000 )
> -#define vTaskDelay( x ) sys_arch_delay( x )
> -
> -#include <lwipbspopts.h>
> -
> -#endif /* __LWIPOPTS_H__ */
> diff --git a/rtemslwip/zynqmp_cfc400x/lwipbspopts.h b/rtemslwip/zynqmp_cfc400x/lwipbspopts.h
> index 00f8077..b119b7d 100644
> --- a/rtemslwip/zynqmp_cfc400x/lwipbspopts.h
> +++ b/rtemslwip/zynqmp_cfc400x/lwipbspopts.h
> @@ -27,7 +27,7 @@
> #ifndef RTEMSLWIP_LWIPBSPOPTS_H
> #define RTEMSLWIP_LWIPBSPOPTS_H
>
> -#include <xparameters_ps.h>
> +#include <common_lwipopts.h>
>
> /* Use SGMII mode for all interfaces on the CFC-400X */
> #define ZYNQMP_USE_SGMII
> diff --git a/rtemslwip/zynqmp_hardware/lwipbspopts.h b/rtemslwip/zynqmp_hardware/lwipbspopts.h
> index a3acc19..143e302 100644
> --- a/rtemslwip/zynqmp_hardware/lwipbspopts.h
> +++ b/rtemslwip/zynqmp_hardware/lwipbspopts.h
> @@ -1 +1 @@
> -#include <xparameters_ps.h>
> +#include <common_lwipopts.h>
> diff --git a/rtemslwip/zynqmp_qemu/lwipbspopts.h b/rtemslwip/zynqmp_qemu/lwipbspopts.h
> index a3acc19..143e302 100644
> --- a/rtemslwip/zynqmp_qemu/lwipbspopts.h
> +++ b/rtemslwip/zynqmp_qemu/lwipbspopts.h
> @@ -1 +1 @@
> -#include <xparameters_ps.h>
> +#include <common_lwipopts.h>
> diff --git a/uLan/ports/os/lwipopts.h b/uLan/ports/os/lwipopts.h
> deleted file mode 100644
> index 6e4287a..0000000
> --- a/uLan/ports/os/lwipopts.h
> +++ /dev/null
> @@ -1,272 +0,0 @@
> -#if 0
> -/*
> - * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without modification,
> - * are permitted provided that the following conditions are met:
> - *
> - * 1. Redistributions of source code must retain the above copyright notice,
> - * this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright notice,
> - * this list of conditions and the following disclaimer in the documentation
> - * and/or other materials provided with the distribution.
> - * 3. The name of the author may not be used to endorse or promote products
> - * derived from this software without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
> - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
> - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
> - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
> - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
> - * OF SUCH DAMAGE.
> - *
> - * This file is part of the lwIP TCP/IP stack.
> - *
> - * Author: Simon Goldschmidt
> - *
> - */
> -#ifndef LWIP_HDR_LWIPOPTS_H__
> -#define LWIP_HDR_LWIPOPTS_H__
> -
> -/* Prevent having to link sys_arch.c (we don't test the API layers in unit tests) */
> -#define NO_SYS 0
> -#define LWIP_NETCONN 1
> -#define LWIP_SOCKET 1
> -#define LWIP_DNS 1
> -
> -#define LWIP_IPV6 1
> -#define LWIP_IPV4 1
> -
> -#define LWIP_ETHERNET 1
> -#define LWIP_NETIF_API 1
> -#define LWIP_AUTOIP 1
> -/* Enable DHCP to test it, disable UDP checksum to easier inject packets */
> -#define LWIP_DHCP 1
> -#define LWIP_TIMEVAL_PRIVATE 0
> -#define LWIP_POSIX_SOCKETS_IO_NAMES 1
> -//#define LWIP_COMPAT_SOCKETS 2
> -#ifndef FIONREAD
> -#define FIONREAD 1
> -#endif
> -#ifndef FIONBIO
> -#define FIONBIO 1
> -#endif
> -#define THREAD_STACK_SIZE 4096
> -
> -#define LWIP_TIMERS 1
> -/* Minimal changes to opt.h required for tcp unit tests: */
> -
> -#define MEM_SIZE 16000
> -#define TCP_SND_QUEUELEN 40
> -#define MEMP_NUM_TCP_SEG TCP_SND_QUEUELEN
> -#define TCP_SND_BUF (12 * TCP_MSS)
> -#define TCP_WND (10 * TCP_MSS)
> -#define LWIP_WND_SCALE 1
> -#define TCP_RCV_SCALE 0
> -#define PBUF_POOL_SIZE 400 // pbuf tests need ~200KByte
> -
> -/* Minimal changes to opt.h required for etharp unit tests: */
> -#define ETHARP_SUPPORT_STATIC_ENTRIES 1
> -
> -#endif /* LWIP_HDR_LWIPOPTS_H__ */
> -
> -#endif /* 0 */
> -
> -/**
> - * \file lwipopts.h - Configuration options for lwIP
> - *
> - * Copyright (c) 2010 Texas Instruments Incorporated
> - */
> -/*
> - * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
> - * All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without modification,
> - * are permitted provided that the following conditions are met:
> - *
> - * 1. Redistributions of source code must retain the above copyright notice,
> - * this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright notice,
> - * this list of conditions and the following disclaimer in the documentation
> - * and/or other materials provided with the distribution.
> - * 3. The name of the author may not be used to endorse or promote products
> - * derived from this software without specific prior written permission.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
> - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
> - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
> - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
> - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
> - * OF SUCH DAMAGE.
> - *
> - * This file is part of the lwIP TCP/IP stack.
> - *
> - * Author: Adam Dunkels <adam at sics.se>
> - *
> - */
> -
> -#ifndef __LWIPOPTS_H__
> -#define __LWIPOPTS_H__
> -
> -/*****************************************************************************
> -** CONFIGURATIONS
> -*****************************************************************************/
> -
> -/*
> -** The macro CPSW_DUAL_MAC_MODE shall be defined for using CPSW ports in
> -** Dual MAC mode.
> -*/
> -#define CPSW_DUAL_MAC_MODE
> -
> -/*
> -** The below macro should be defined for using lwIP with cache. For cache
> -** enabling, pbuf pool shall be cache line aligned. This is done by using
> -** separate pool for each memory. The alignment of pbuf pool to cache line
> -** size is done in /ports/cpsw/include/arch/cc.h.
> -*/
> -/*#define LWIP_CACHE_ENABLED*/
> -
> -#define SOC_CACHELINE_SIZE_BYTES 64 /* Number of bytes in
> - a cache line */
> -/*
> -** The timeout for DHCP completion. lwIP library will wait for DHCP
> -** completion for (LWIP_DHCP_TIMEOUT / 100) seconds.
> -*/
> -#define LWIP_DHCP_TIMEOUT 1000
> -
> -/*
> -** The number of times DHCP is attempted. Each time, the library will wait
> -** for (LWIP_DHCP_TIMEOUT / 100) seconds for DHCP completion.
> -*/
> -#define NUM_DHCP_TRIES 5
> -
> -#define LWIP_ETHERNET 1
> -#define LWIP_ARP 1
> -#define LWIP_DNS 1
> -
> -/*****************************************************************************
> -** lwIP SPECIFIC DEFINITIONS - To be used by lwIP stack
> -*****************************************************************************/
> -#define HOST_TMR_INTERVAL 0
> -#define DYNAMIC_HTTP_HEADERS
> -
> -/*****************************************************************************
> -** Platform specific locking
> -*****************************************************************************/
> -#define SYS_LIGHTWEIGHT_PROT 1
> -#define NO_SYS 0
> -#define NO_SYS_NO_TIMERS 0
> -
> -/*****************************************************************************
> -** Memory Options
> -*****************************************************************************/
> -#define MEM_ALIGNMENT 4
> -#define MEM_SIZE (1024 * 1024) /* 4K */
> -
> -#define MEMP_NUM_PBUF 96
> -#define MEMP_NUM_TCP_PCB 32
> -#define MEMP_NUM_TCP_SEG 32
> -#define PBUF_POOL_SIZE 512
> -#define MEMP_MEM_MALLOC 1
> -#define MEMP_MEM_INIT 1
> -#define MEMP_OVERFLOW_CHECK 0
> -
> -#ifdef LWIP_CACHE_ENABLED
> -#define MEMP_SEPARATE_POOLS 1 /* We want the pbuf
> - pool cache line
> - aligned*/
> -#endif
> -
> -//#define MEMP_NUM_SYS_TIMEOUT (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_SUPPORT)
> -
> -/*****************************************************************************
> -** IP Options
> -*****************************************************************************/
> -#define IP_REASSEMBLY 0
> -#define IP_FRAG 0
> -#define LWIP_IPV4 1
> -#define LWIP_IPV6 1
> -
> -/*****************************************************************************
> -** DHCP Options
> -*****************************************************************************/
> -#define LWIP_DHCP 1
> -#define DHCP_DOES_ARP_CHECK 0
> -
> -/*****************************************************************************
> -** Auto IP Options
> -*****************************************************************************/
> -#define LWIP_AUTOIP 1
> -#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP))
> -
> -/*****************************************************************************
> -** TCP Options
> -*****************************************************************************/
> -#define TCP_MSS 1500
> -#define TCP_WND (8 * TCP_MSS)
> -#define TCP_SND_BUF (8 * TCP_MSS)
> -#define TCP_OVERSIZE TCP_MSS
> -#define LWIP_TCPIP_CORE_LOCKING 1
> -
> -/*****************************************************************************
> -** PBUF Options
> -*****************************************************************************/
> -#define PBUF_LINK_HLEN 14
> -#define PBUF_POOL_BUFSIZE 1520 /* + size of struct pbuf
> - shall be cache line
> - aligned be enabled */
> -#define ETH_PAD_SIZE 0
> -#define LWIP_NETCONN 1
> -
> -/*****************************************************************************
> -** Socket Options
> -*****************************************************************************/
> -#define LWIP_SOCKET 1
> -#define SO_REUSE 1
> -
> -/*****************************************************************************
> -** Debugging options
> -*****************************************************************************/
> -#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF
> -#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON | LWIP_DBG_TRACE \
> - |LWIP_DBG_STATE | LWIP_DBG_FRESH)
> -#define DHCP_DEBUG LWIP_DBG_OFF
> -#define NETIF_DEBUG LWIP_DBG_OFF
> -#define IP_DEBUG LWIP_DBG_OFF
> -#define UDP_DEBUG LWIP_DBG_OFF
> -#define ETHARP_DEBUG LWIP_DBG_OFF
> -#define SYS_DEBUG LWIP_DBG_OFF
> -#define RAW_DEBUG LWIP_DBG_OFF
> -#define MEM_DEBUG LWIP_DBG_OFF
> -#define MEMP_DEBUG LWIP_DBG_OFF
> -#define PBUF_DEBUG LWIP_DBG_OFF
> -#define TCPIP_DEBUG LWIP_DBG_OFF
> -#define APP_DEBUG LWIP_DBG_OFF
> -#define SOCKETS_DEBUG LWIP_DBG_OFF
> -#define LWIP_STATS 0
> -#define LWIP_STATS_DISPLAY 0
> -#define LWIP_STATS_POSIX 0
> -#define LWIP_DNS_API_DEFINE_ERRORS 1
> -
> -
> -
> -/**
> - * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
> - * (only used if you use sockets.c)
> - */
> -#define LWIP_COMPAT_SOCKETS 0
> -
> - #define LWIP_TIMEVAL_PRIVATE 0
> -
> - #define LWIP_RAW 0
> -
> -#endif /* __LWIPOPTS_H__ */
More information about the devel
mailing list