lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [lwip-users] Try to Increase Jumbo Packet size beyond 9K


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
Sent: Friday, October 10, 2008 4:28 PM
To: address@hidden
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

 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]