Thanks Piero and Kieran. I've done some experimentation, but I am a bit stuck. My configuration appears below.
I would like to change PBUF_POOL_BUFSIZE from the default of TCP_MSS + 40 + 14, to Piero's value of 128, then increase PBUF_POOL_SIZE as appropriate. However, when I do this, I find that incoming TCP packets are being truncated to 74 bytes of data (128 - (40 + 14)). In my stream receive callback function: err_t StreamRecvCallback(void *arg, struct tcp_pcb *tpcb, struct pbuf* p, err_t err); I always receive only a single buffer in variable p. The p->next field is always null, although it should point to the next portion of the data. Do I have an issue in my configuration, or is it likely in my code? Configuration pasted below. Thank you, Bruce. /* Align memory on 4 byte boundery (32-bit) */ #define MEM_ALIGNMENT 4 /* No operating system present */ #define NO_SYS 1 #define LWIP_SOCKET 0 #define LWIP_NETCONN 0 #define LWIP_CALLBACK_API 1 /* LWIP's self-managed heap size, used for malloc defined in mem.c */ #define MEM_SIZE 2048 // used if doing tcp_write with TCP_WRITE_FLAG_COPY flag /* LWIP's pool memory, used for structures defined in memp.c */ //#define MEM_USE_POOLS 1 #define MEMP_SANITY_CHECK 1 #define MEMP_OVERFLOW_CHECK 2 #define LWIP_STATS 1 #define IP_STATS 1 #define LWIP_ARP 1 //#define LWIP_UDP 1 #define LWIP_UDP 0 /* Changes to reduce memory usage */ #define MEMP_NUM_PBUF 10 // default 16 //#define MEMP_NUM_UDP_PCB 2 // default 4 #define MEMP_NUM_TCP_PCB 3 // default 6 #define MEMP_NUM_TCP_PCB_LISTEN 4 // default 8 //#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(128) // default TCP_MSS + 40 + 14 #define IP_FRAG 0 /* Changes to improve TCP performance */ //#define TCP_MSS 1460 // default 128 #define TCP_MSS 768 // default 128 #define TCP_SND_BUF (TCP_MSS<<1) // default 256 _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
