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

Reply via email to