Ethernet MTU
Chris Johns
chrisj at rtems.org
Thu Mar 26 23:40:50 UTC 2009
Michael Hamel wrote:
>> [ Please note replying to the last email on the list
>> and changing the subject stuffs up the threading.
>
> Sorry, I forgot that the threading uses other headers..
>
>> Michael Hamel wrote:
>>> Has anyone used jumbo packets (MTU of ~9000) with the RTEMS
>>> networking stack? I have a working gigabit network stack up on the
>>> PPC405EXr, but I'm not seeing more than 17Mbytes a second throughput.
>>
>> How are you testing this ?
>
> I have my own software running at both ends of the link; thats a one-way
> figure derived from blasting the host with data as fast as I can
> generate it.
What is the send buffer size for the socket set to ?
Are you using a switch or directly configured ?
Is the interface in full duplex and operating at 1G rates ?
Are you seeing any errors ?
Sorry about the long list of questions. :-)
I am still not clear on the testing set up. You have the same code on the same
hardware sending data as fast as you can to each other. Is this correct ? Is
this UDP or TCP ?
> My reading indicates that thats about what I should expect
> without using jumbo packets as the turnaround overheads dominate gigabit
> transfers with the standard MTU.
That is a fair statement for the given configuration. A different
configuration would change the figure but the relationship would stay.
>
> I thought I might be able to use the SIOCSIFMTU ioctl() to change the
> MTU, but in if_ethersubr.c I find this:
>
> case SIOCSIFMTU:
> /*
> * Set the interface MTU.
> */
> if (ifr->ifr_mtu > ETHERMTU) {
> error = EINVAL;
> } else {
> ifp->if_mtu = ifr->ifr_mtu;
> }
> break;
>
> ... which is kind of discouraging. Does anyone know why its clipping to
> ETHERMTU=1500 bytes?
>
The current FreeBSD code is the same.
ETHER_MAX_LEN_JUMBO is defined in cpukit/libnetworking/net/ethernet.h but not
used any where in the code.
A check out of the FreeBSD kernel from cvs shows ETHER_MAX_LEN_JUMBO also
defined in net/ethernet.h but no where else (well a device header which does
not use it is discounted).
A closer look at the e1000 driver in the FreeBSD kernel in CVS has a section
on Jumbo Frames. Maybe you should take a look and see where it leads.
Regards
Chris
More information about the users
mailing list