Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Jul 2015 10:29:48 +0100
From:      Karl Pielorz <kpielorz_lst@tdx.co.uk>
To:        Steve Read <steve.read@stormshield.eu>, freebsd-net@freebsd.org
Subject:   Re: lagg of em0/em1 + VLAN = lower MTU?
Message-ID:  <EDF67BF027F533D17FEB1252@[10.12.30.106]>
In-Reply-To: <55A37C1E.90804@stormshield.eu>
References:  <7CFE75F7566F5789DAD9FBB2@[10.12.30.106]> <55A37C1E.90804@stormshield.eu>

next in thread | previous in thread | raw e-mail | index | archive | help


--On 13 July 2015 10:51 +0200 Steve Read <steve.read@stormshield.eu> wrote:

> Think about what it means.  The MTU on the lagg0 interface is the
> largest packet it can send for you or for its VLAN interfaces.  The MTU
> on the lagg0.10 (VLAN) interface is the largest packet *it* can send for
> you.  The VLAN tag is added to the packet that you give to lagg0.10, and
> so the MTU of lagg0.10 must be smaller than the MTU of lagg0.

Ok, I understand all that (despite a bad cold!) - but looking at other 
peoples ifconfig outputs found on google, they show:

 - Underlying interface, MTU 1500
 - LAGG interface, MTU 1500
 - VLAN sub interface, MTU 1500

I don't get that - from the same ifconfig-uration I get:

 - Underlying interface, MTU 1500
 - LAGG interface, MTU 1500
 - VLAN sub interface, MTU 1496

I thought if cards natively support VLAN's the VLAN tag was handled 'behind 
the scenes' - e.g. if I go setup em3.10 - I wouldn't see the MTU drop to 
1496.

In fact, I've just done this with em3 on that machine...

ifconfig em3.10 create
ifconfig em3.10 inet 10.12.13.1 netmask 255.255.255.0
ifconfig em3 inet 10.13.14.1 netmask 255.255.255.0

ifconfig em3
em3: flags=8c02<BROADCAST,OACTIVE,SIMPLEX,MULTICAST> metric 0 mtu 1500

ifconfig em3.10
em3.10: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

I realise the packets sent by em3.10 will now be 1504 bytes MTU - and if 
your switch doesn't support VLAN's (and/or can only cope with strict 1500 
byte packets you're probably in trouble) - but the above is doing what I'd 
"expect" to happen for the LAGG case.

I could understand losing the 4 bytes maybe if the card didn't support 
native VLAN's (or having to do it if your switch can't cope with 1500+4 
byte frames) - but not if they're supported.

> Note that the packet given to lagg0 is four bytes bigger than the packet
> given to lagg0.10, and this is always true.  If you make the MTU of
> lagg0.10 equal to the MTU of lagg0, then lagg0.10 will end up generating
> packets that are oversize for lagg0, and you don't want that.

Yes, I get that - but as I said I thought 'native VLAN' tagging was handled 
differently - as shown by the example above with em3.

afaik - Lagging interfaces has no effect on MTU, but something behind the 
scenes is treating lagg0.10 differently from, say em0.10 as far as MTU 
configuration goes?

Ultimately the question is - why are other people running the same ifconfig 
(admittedly on different FreeBSD versions / cards) and getting what I'd 
expect [a working system], but I don't?

-Karl




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