Gary,
Just wanted to let you know that I did extensive bandwidth testing (in my case to the lwIP-based device) and jumbo frames had little effect on the effective bandwidth. I think the reason is there is just as much data processing either way. There are more calls up through the stack per packet, but you'll find that's a very small percentage of time compared to handling the data (which is constant) in the stack and the application layer. We gained much improvement in bandwidth optimizing the TCP checksum (which we in the end disabled because we are always on an internal lan), passing the data from the Ethernet buffer uncopied to the application layer (something lwIP does well) and optimizing how we handled the data in the application layer. Bill From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Gary Olson Sent: Friday, October 10, 2008 4:28 PM To: [email protected] Subject: [lwip-users] Try to Increase Jumbo Packet size beyond 9K Hi, I have been working with LWIP and have made a few modifications to create Jumbo Packet sizes: At first I was creating 2020 Packets, Then Increased them to 4040, the number being my specific packet size for my Xilinx FPGA Design. Finally I was able to increase the packet size to 8080. However after that I tried to go to 10100 and have not been able to reach This size. When the problem occurs, the PC which talks to the LWIP FPGA design performs a ARP Request and the LWIP software Running on the Xilinx Board does not respond. There have been discussions on memory corruption causing ARP problems (Ping). I tried a few solutions from the discussions but still could not get it to work. Does anyone know how to create larger packets then 9 K. I have a Intel GigE Ethernet card capable of sending 16K packets. The main reason I need to do this Is I have a bandwidth requirement that could be met only if I can get my packet size higher Then what I can do at this time. I would like to get 16K packets to be received. Just in case someone would like to see what I changed to get these packets sizes here is info on what I changed. ------------------------------------------------------------------ Changes made in the xlltemac.h file // Changed by Gary XTE_MTU to be 3050 previously 1500 // Changed to 4080 Sept 15 08 This works for 4040 packets // 4380 does not work at this time // 4680 does not work at this time // 5080 does not work at this time // Changed to 6400 This works fof 6060 packets // Changed to 8140 Trying this for 8080 packets #define XTE_MAC_ADDR_SIZE 6 /* MAC addresses are 6 bytes */ #define XTE_MTU 8140 /* max MTU size of an Ethernet frame */ #define XTE_JUMBO_MTU 8192 /* max MTU size of a jumbo Ethernet frame */ #define XTE_HDR_SIZE 14 /* size of an Ethernet header */ #define XTE_HDR_VLAN_SIZE 18 /* size of an Ethernet header with VLAN */ #define XTE_TRL_SIZE 4 /* size of an Ethernet trailer (FCS) */ #define XTE_MAX_FRAME_SIZE (XTE_MTU + XTE_HDR_SIZE + XTE_TRL_SIZE) #define XTE_MAX_VLAN_FRAME_SIZE (XTE_MTU + XTE_HDR_VLAN_SIZE + XTE_TRL_SIZE) #define XTE_MAX_JUMBO_FRAME_SIZE (XTE_JUMBO_MTU + XTE_HDR_SIZE + XTE_TRL_SIZE) #define XTE_DEFAULT_OPTIONS \ ( \ XTE_JUMBO_OPTION | \ XTE_FLOW_CONTROL_OPTION | \ XTE_BROADCAST_OPTION | \ XTE_FCS_INSERT_OPTION | \ XTE_FCS_STRIP_OPTION | \ XTE_LENTYPE_ERR_OPTION | \ XTE_TRANSMITTER_ENABLE_OPTION | \ XTE_RECEIVER_ENABLE_OPTION) /**< XTE_DEFAULT_OPTIONS specify the options set in XLlTemac_Reset() and * XLlTemac_CfgInitialize() */ ------------------------------------------------------------------ Changes made in Changes made in the xlltemacif.c file /* maximum transfer unit */ // removed by gary netif->mtu = XTE_MAX_FRAME_SIZE; //netif->mtu = 3032; // Changed by gary 1482; //netif->mtu = 6400; works for 6060 netif->mtu = 8120; //try for 8080 -------------------------------------------------------------- BEGIN LIBRARY PARAMETER LIBRARY_NAME = lwip PARAMETER LIBRARY_VER = 3.00.a PARAMETER PROC_INSTANCE = microblaze_0 PARAMETER tcp_mss = 8560 PARAMETER mem_size = 500000 PARAMETER pbuf_pool_bufsize = 8600 PARAMETER tcp_wnd = 40000 PARAMETER tcp_snd_buf = 40000 PARAMETER tcp_tx_checksum_offload = true PARAMETER tcp_rx_checksum_offload = true PARAMETER udp_ttl = 255 PARAMETER ip_default_ttl = 255 END Thank You, Gary Olson
_______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
