How to get maximum jumbo frame supported size?

Hello,

I've a HP N40L microserver running FreeBSD 9.0-RC2.

The nic is:
Code:
bge0: <HP NC107i PCIe Gigabit Server Adapter, ASIC rev. 0x5784100> mem 0xfe9f0000-0xfe9fffff irq 18 at device 0.0 on pci2
bge0: CHIP ID 0x05784100; ASIC REV 0x5784; CHIP REV 0x57841; PCI-E

The documentation is saying that the maximum support jumbo frame is 9000 but I'm not able to set it:
Code:
host# ifconfig bge0 mtu 9000
ifconfig: ioctl (set mtu): Invalid argument

Am I using a wrong value? How can I find the maximum value for mtu? And how to set it properly?
 
The brute force method is to bisect it. Start with manual values halfway between 1500 and 9000. If it works, try again halfway in between that number and the upper limit. If not, try halfway between the number tried and the lower limit. This would be scriptable, but it's not enough steps to really be worth it.

After you find the value, it to the ifconfig_ in /etc/rc.conf. Like
Code:
ifconfig_re0="SYNCDHCP mtu 6122"

or

Code:
ifconfig_em0="inet 192.168.1.1 netmask 255.255.255.0 mtu 9216"

Note that MTU value in the routing table has to be changed also, so either use route(8) (see -mtu) or restart after finding and setting the new value. Oh, and the switch must support jumbo frames, too.
 
I tried but when the system is accessible,
Code:
ifconfig -a
is still saying that mtu are at 1500.
 
If I can trust this document HP Network documentation pdf I would like to say yes.. but I already experienced that with another network adaptor, it supports MTU 9000 only with the windows driver, and I had to put it to 8000 under Linux / FreeBSD.

Jumbo Packet. The size, in bytes, of the largest supported Jumbo Packet (an Ethernet frame that is
greater than 1514 bytes) that the hardware can support.
o 1514 Bytes (Default)
o 4088 Bytes
o 9014 Bytes
 
digrouz said:
Do you have an idea about what should be the increment?

Half. Let me give an example:

Code:
# ifconfig re0 mtu 9000
ifconfig: ioctl (set mtu): Invalid argument

So 9000 is too much for this Realtek 8111C. Now we try halfway between 1500 and 9000:
Code:
# ifconfig re0 mtu 5250
#

No error, so it can do that much. Next we try halfway between 5250 and 9000:
Code:
# ifconfig re0 mtu 7125
ifconfig: ioctl (set mtu): Invalid argument

7125 is too large, so it must be between 5250 and 7125:
Code:
# ifconfig re0 mtu 6187
ifconfig: ioctl (set mtu): Invalid argument

Still too big, it's between 5250 and 6187. 5718 works, 5952 works, 6069 works, 6128 does not, 6099 works, 6114 works, 6121 works, 6125 does not, 6123 does not, 6122 works.

You'll probably find that it's a bit less than the maximum rated for the card to allow for a buffer. Like 8985.
 
I'm still almost positive that your specific card just doesn't support it. If you look at manpages it says specific cards only support jumbo frames (or rather, driver implementation for those chips in FreeBSD).
I could be wrong, however.
 
digrouz said:
nothing works but 1500 lol. it seems that's a windows only features

Please show the output of
% pciconf -lv | grep -B3 network

Edit: it appears to be a Broadcom 5723, which bge(4) does not include in the list of supporting jumbo frames. I would take that to mean the FreeBSD driver doesn't support them.
 
Code:
bge0@pci0:2:0:0:        class=0x020000 card=0x705d103c chip=0x165b14e4 rev=0x10 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'NetXtreme BCM5723 Gigabit Ethernet PCIe'
    class      = network

@bbzz : Maybe you're right, I really don't know.
 
From manpages
The BCM5700, BCM5701, BCM5702, BCM5703, BCM5704 and BCM5717 also support
jumbo frames, which can be configured via the interface MTU setting.

Guess you'r out of luck then :/
 
Yeah, that was I feared :(

I guess I will another true network card.

Do you have advices on a specific brand / model?
 
I've got the MicroServer N36L, with the integrated HP NC107i gigabit ethernet. It doesn't support Jumbo Frames at all.

I had to fit an Intel PRO/1000CT PCIe adapter to get this ability.
 
Back
Top