|
From: | bill |
Subject: | RE: [lwip-users] Try to Increase Jumbo Packet size beyond 9K |
Date: | Mon, 13 Oct 2008 08:58:08 -0400 |
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:
address@hidden
[mailto:address@hidden On Behalf
Of Gary Olson 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 |
[Prev in Thread] | Current Thread | [Next in Thread] |