cannot set mtu > 1500 on em0 optical Gig-E

Sergey Kandaurov pluknet at gmail.com
Thu Feb 10 20:28:15 UTC 2011


On 10 February 2011 21:49, Jay Borkenhagen <jayb at braeburn.org> wrote:
> Hi,
>
> For quite a while now it appears that mtu on my gigabit ethernet fiber
> em0 cards cannot be configured higher than the default 1500 bytes.
>
> Here's what I get when I attempt to set it lower and higher on a brand
> new 8.2-RC3 box:
>
> ===
> sandbox# uname -v
> FreeBSD 8.2-RC3 #0: Sun Jan 30 06:52:51 UTC 2011     root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
> sandbox#
>
> sandbox# ifconfig em0
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>     options=18<VLAN_MTU,VLAN_HWTAGGING>
>     ether 00:d0:b7:7c:f8:01
>     inet 10.1.2.3 netmask 0xffffff00 broadcast 10.1.2.255
>     media: Ethernet autoselect
>     status: no carrier
> sandbox# ifconfig em0 mtu 1499
> sandbox# ifconfig em0 | grep mtu
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1499
> sandbox# ifconfig em0 mtu 1501
> ifconfig: ioctl (set mtu): Invalid argument
> sandbox# ifconfig em0 | grep mtu
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1499
> sandbox# ifconfig em0 mtu 1500
> sandbox# ifconfig em0 | grep mtu
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> sandbox#
>
> sandbox# pciconf -lv | sed -n '/em0@/,/em1/p'
> em0 at pci0:0:2:0:  class=0x020000 card=0x10008086 chip=0x10008086 rev=0x03 hdr=0x00
>    vendor     = 'Intel Corporation'
>    device     = '82542 Gigabit Ethernet Controller'
>    class      = network
>    subclass   = ethernet
> em1 at pci0:0:4:0:  class=0x020000 card=0x10008086 chip=0x10008086 rev=0x03 hdr=0x00
> sandbox#
>
> ===
>
> However, back in the 6.2 days it allowed it:
>
> ===
>
> [jayb at cactus ~]$ uname -v
> FreeBSD 6.2-PRERELEASE #0: Tue Dec 26 16:53:18 EST 2006     root at cactus.iplabs.att.com:/usr/obj/usr/src/sys/CACTUS
> [jayb at cactus ~]$
>
> [jayb at cactus ~]$ ifconfig em0
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>     options=8<VLAN_MTU>
>     inet 10.0.1.152 netmask 0xfffffffc broadcast 10.0.1.155
>     ether 00:90:27:e3:0a:67
>     media: Ethernet autoselect
>     status: no carrier
> [jayb at cactus ~]$
>
> [jayb at cactus ~]$ sudo ifconfig em0 mtu 9000
> [jayb at cactus ~]$ ifconfig em0 | grep mtu
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 9000
> [jayb at cactus ~]$
>
> [jayb at cactus ~]$ pciconf -lv | sed -n '/em0@/,/none0@/p'
> em0 at pci0:2:0:    class=0x020000 card=0x10008086 chip=0x10008086 rev=0x02 hdr=0x00
>    vendor   = 'Intel Corporation'
>    device   = '82542 Gigabit Ethernet Controller'
>    class    = network
>    subclass = ethernet
> none0 at pci0:4:0: class=0x088000 card=0x0767101e chip=0x9063101e rev=0x04 hdr=0x00
> [jayb at cactus ~]$
>

Hmm.. Did jumbo frames really work on these cards for you? Intel claims:
"Adapters based on the Intel® 82542 and 82573V/E controller do not
support Jumbo Frames. These correspond to the following product names:

    * Intel® PRO/1000 Gigabit Server Adapter
    * Intel® PRO/1000 PM Network Connection "

As seen from code, the behavior was changed to match the description ("keep
old 82542 from using jumbo frames") and merged to 6-STABLE before 6.3.

-- 
wbr,
pluknet


More information about the freebsd-net mailing list