Subject: Re: PPPoE vs ETHERMTU
To: Martin Husemann <martin@duskware.de>
From: Brian Somers <brian@Awfulhak.org>
List: tech-net
Date: 07/03/2001 22:29:56
> > I believe the 1490 MTU is used when (MPPE) encryption has been 
> > negotiated.  MPPE encrypts each packet to the same size as the 
> > unencrypted packet, but also encrypts the protocol id, increasing the 
> > payload by two bytes.
> 
> I do not pretend to have read the MPPE RFC yet, so probably just am 
> misunderstanding what you said. In PPPoE the 6 byte PPPoE header is always
> followed by the PPP protocol ID (two bytes), followed by payload data,
> that's why the MTU is 1500-6-2 = 1492.

Normally (without encryption) the ppp ethernet payload will have the 
2 byte protocol and the 6 byte PPPoE header.  Setting the MTU to 1492 
is ok in this case.

When MPPE is in use, the 2 byte protocol id and the payload are 
encrypted and *together* treated as the new payload, prepending a 
new 2 byte PROTO_ICOMPD or PROTO_COMPD protocol id.  So if the MTU is 
set to 1492, the ethernet payload  ends up maxing out at 1502 and 
things break.

I'm working on fixing user ppp as we speak - having it know about 
such overheads on a per CCP protocol level and adjusting the MTU as 
CCP for these protocols is brought up.

> Besides, MPPP over PPPoE sounds - strange.

Yes (I can't remember what MP context you're talking about though).

> Martin

-- 
Brian <brian@freebsd-services.com>                <brian@Awfulhak.org>
      http://www.freebsd-services.com/        <brian@[uk.]FreeBSD.org>
Don't _EVER_ lose your sense of humour !      <brian@[uk.]OpenBSD.org>