rumpk/libs/membrane/include/lwipopts.h

95 lines
3.0 KiB
C

/**
* @file lwipopts.h
* @brief lwIP Configuration for NexusOS Membrane
*/
#ifndef LWIP_LWIPOPTS_H
#define LWIP_LWIPOPTS_H
// --- LwIP Debug Constants (Needed before opt.h defines them) ---
#define LWIP_DBG_ON 0x80U
#define LWIP_DBG_OFF 0x00U
#define LWIP_DBG_TRACE 0x40U
#define LWIP_DBG_STATE 0x20U
#define LWIP_DBG_FRESH 0x10U
#define LWIP_DBG_HALT 0x08U
#define NO_SYS 1
#define LWIP_SOCKET 0
#define LWIP_NETCONN 0
// DHCP Support
#define LWIP_DHCP 1
#define LWIP_ACD 0
#define LWIP_DHCP_DOES_ACD_CHECK 0
#define LWIP_AUTOIP 0
#define LWIP_UDP 1
#define LWIP_NETIF_HOSTNAME 1
#define LWIP_RAW 1
// DNS & TCP
#define LWIP_DNS 1
#define DNS_TABLE_SIZE 4
#define DNS_MAX_NAME_LENGTH 256
#define LWIP_TCP 1
#define TCP_MSS 1460
#define TCP_WND (4 * TCP_MSS)
#define TCP_SND_BUF (4 * TCP_MSS)
// Performance & Memory
#define MEM_ALIGNMENT 8
#define MEM_SIZE (128 * 1024)
#define MEMP_NUM_PBUF 32
#define MEMP_NUM_UDP_PCB 16 // Increased from 8 (DNS needs 1, DHCP needs 1, safety margin)
#define MEMP_NUM_TCP_PCB 8
#define PBUF_POOL_SIZE 64
#define MEMP_NUM_SYS_TIMEOUT 16
// Network Interface
#define LWIP_ETHERNET 1
#define LWIP_ARP 1
#define LWIP_TIMERS 1
#define ETHARP_SUPPORT_VLAN 0
// Checksum Configuration
// CHECK disabled (don't validate incoming - helps debug)
// GEN enabled (QEMU user-mode networking requires valid checksums)
#define CHECKSUM_CHECK_UDP 0
#define CHECKSUM_CHECK_TCP 0
#define CHECKSUM_CHECK_IP 0
#define CHECKSUM_CHECK_ICMP 0
#define CHECKSUM_GEN_UDP 1
#define CHECKSUM_GEN_TCP 1
#define CHECKSUM_GEN_IP 1
#define CHECKSUM_GEN_ICMP 1
// Loopback Support
#define LWIP_HAVE_LOOPIF 1
#define LWIP_NETIF_LOOPBACK 1
#define LWIP_LOOPBACK_MAX_PBUFS 8
// Debugging (Loud Mode)
#define LWIP_DEBUG 1
#define LWIP_PLATFORM_DIAG(x) lwip_platform_diag x
#define DHCP_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE | LWIP_DBG_STATE)
#define UDP_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE)
#define NETIF_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE | LWIP_DBG_STATE)
#define IP_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE)
#define ICMP_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE)
//#define MEM_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE)
//#define MEMP_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE)
//#define PBUF_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE)
#define ETHERNET_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE)
#define ETHARP_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE)
#define DNS_DEBUG (LWIP_DBG_ON | LWIP_DBG_TRACE | LWIP_DBG_STATE)
#define LWIP_DBG_MIN_LEVEL 0
#define LWIP_DBG_TYPES_ON 0xFFU
// Endianness
#undef BYTE_ORDER
#define BYTE_ORDER 1234
#endif