Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Apr 2007 14:41:48 -0700
From:      John-Mark Gurney <gurney_j@resnet.uoregon.edu>
To:        Tom Judge <tom@tomjudge.com>
Cc:        freebsd-net@freebsd.org, FreeBSD Stable List <freebsd-stable@freebsd.org>
Subject:   Re: Possible mtu bug in vlan or bce
Message-ID:  <20070416214148.GX73385@funkthat.com>
In-Reply-To: <4623B0A2.5020006@tomjudge.com>
References:  <4623B0A2.5020006@tomjudge.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Tom Judge wrote this message on Mon, Apr 16, 2007 at 18:21 +0100:
> I have seen some strange behaviour today with VLAN interfaces on bce 
> interfaces.  I am running 6.2 Release on i386.
> 
> I have a bce interface setup on a gig-e network with an MTU of 8192 i 
> attach a vlan interface to this and chnage the vlan if mtu to 1500 as it 
> has 100Mbit devices on it.  This does not seem to affect the MTU of the 
> bce interface, the VLAN mtu is reported as changed by if config but the 
> bce is not reported as changed.  However I then start to get error 
> messages saying that the NFS server is not responding as it is sending 
> packets larger than 1500 bytes.
> 
> 
> If I try to raise the mtu of the vlan interface (to 8192 which is the 
> value that ifconfig reports for bce0) at this stage ifconfig thows an 
> error saying that the value is incorrect.  If I then 'raise' (it already 
> appears to be set to 8192 according to ifconfig) the mtu of bce0 to 8192 
> and then set the vlan interface mtu to 8192 the nfs server starts to 
> work again.

Make sure that you change the host route's mtu down to the new MTU...
I changed the MTU behavior a while back so that you could have a mixed
network and support both large and regular sized MTU's on the same
nextwork...

# ifconfig em0
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 9000
        options=18b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM,TSO4>
        inet6 fe80::207:e9ff:fe0d:ad06%em0 prefixlen 64 scopeid 0x2 
        inet 192.168.0.21 netmask 0xffffff00 broadcast 192.168.0.255
        ether 00:07:e9:0d:ad:06
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
# netstat -rnWfinet
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use    Mtu    Netif Expire
default            192.168.0.14       UGS         0     8024   1500      em0
[...]
192.168.0.18       00:c0:f0:42:23:87  UHLW        1        2   1500      em0   1193
# route change 192.168.0.18 -mtu 9000
change host 192.168.0.18
# netstat -rnWfinet
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use    Mtu    Netif Expire
[...]
192.168.0.18       00:c0:f0:42:23:87  UHLW        1        2   9000      em0   1172
# ifconfig em0 mtu 1500
# ifconfig em0
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=18b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWCSUM,TSO4>
        inet6 fe80::207:e9ff:fe0d:ad06%em0 prefixlen 64 scopeid 0x2
        inet 192.168.0.21 netmask 0xffffff00 broadcast 192.168.0.255
        ether 00:07:e9:0d:ad:06
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
# netstat -rnWfinet
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use    Mtu    Netif Expire
[..]
192.168.0.18       00:c0:f0:42:23:87  UHLW        1        2   9000      em0   1128

Hmmm... We may want to add code that detects when the host route's MTU
is larger than the interface, and prevent that from happening.

Though if an mtu daemon ever gets written, then that should take care
of it.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070416214148.GX73385>