#ifndef LWIP_HDR_LWIPOPTS_MEMBRANE_H
#define LWIP_HDR_LWIPOPTS_MEMBRANE_H

// 1. Run in the App's Thread
#define NO_SYS                  1
#define LWIP_TIMERS             1

// 2. Protection (Required for sys_prot_t type definition)
#define SYS_LIGHTWEIGHT_PROT    1

// 3. Memory (Internal Pools)
#define MEM_LIBC_MALLOC         0
#define MEMP_MEM_MALLOC         0
#define MEM_SIZE                (256 * 1024)   // 256KB Heap for LwIP
#define MEMP_NUM_PBUF           64             // High RX capacity
#define PBUF_POOL_SIZE          128            // Large packet pool
#define MEM_ALIGNMENT           64

// 4. Performance (Fast Path)
#define TCP_MSS                 1460
#define TCP_WND                 (16 * TCP_MSS) // Larger window for high throughput
#define LWIP_TCP_KEEPALIVE      1

// 5. Disable System Features
#define LWIP_NETCONN            0 // We use Raw API
#define LWIP_SOCKET             0 // We implement our own Shim
#define LWIP_STATS              0 // Save cycles
#define LWIP_DHCP               1 // Enable Dynamic Host Configuration
#define LWIP_ICMP               1 // Enable ICMP (Ping)
#define LWIP_DHCP_DOES_ACD_CHECK 0 // Disable Address Conflict Detection
#define LWIP_ACD                0 // Disable ACD module

// Disable all debugs and diagnostics for a clean link
#define LWIP_DEBUG              0
#define LWIP_PLATFORM_DIAG(x)   do {} while(0)

#endif
