On Tue, Jun 26, 2001 at 07:56:24AM +1000, Peter Jeremy wrote:
> On 2001-Jun-25 14:25:42 -0500, Jonathan Lemon <[EMAIL PROTECTED]> wrote:
> >On Mon, Jun 25, 2001 at 11:02:55PM +0400, Yar Tikhiy wrote:
> >> Hi there,
> >>
> >> While more and more Ethernet NIC drivers start supporting long
> >> frames (>1518 bytes), the user/admin still cannot raise MTU on an
> >> Ethernet interface above the 1500 byte limit due to outdated code
> >> in net/if_ethersubr.c
> [patch removed]
>
> >I'm not at all sure how this change will help anything, unless each
> >driver alters if_hdrlen.
>
> One benefit is for 802.1Q VLAN support - the existence of lots of
> hard-wired values that restrict frames to 1518 bytes makes configuring
> VLAN's a pain. It would be nice if attaching a vlan(4) to a driver that
> handled 1522 byte frames resulted in a 1500 byte MTU on the vlan.
Maybe I'm being dense here, but even with 1522 byte frames, the MTU
of the device should still be 1500. MTU in this context applies to IP,
so it wouldn't include either the vlan header or the ethernet header.
E.g.: there is this check in vlan_config():
if (p->if_data.ifi_hdrlen == sizeof(struct ether_vlan_header))
ifv->ifv_if.if_mtu = p->if_mtu;
else
ifv->ifv_if.if_mtu = p->if_data.ifi_mtu - EVL_ENCAPLEN;
So if the underlying device is willing to support long frames (which
is indicated by hacking in a longer headerlen), the vlan MTU is 1500,
and the device MTU is 1500. If the underlying device does not support
long frames, then the vlan MTU is reduced appropriately.
> > Drivers which actually are able
> >to handle a larger mtu (e.g: 9000 byte Jumbograms) already have to do
> >their own checks, and thus don't call this function.
>
> IMHO, it would be nicer if more of the checking was centralised, rather
> than each driver repeating the same checks.
It might be cleaner if the call to ether_ioctl() passed both the
proposed MTU and the maximum MTU that the driver is willing to
support. However, that would require quite a bit of code restructuring
and modifications to existing drivers. I'm not sure it would provide
any benefits, as the code in question is a simply a single 'if' statement.
--
Jonathan
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message