>> mppe_compress[1]: osize too small! (have: 1400 need: 1404)
> I do not use MPPE and do not know well how it works.
> If you want to see this fixed please research the issue and provide a
> patch.

As much as I would like to - I'll not be able to provide a patch. I
could not find any suitable patch and my poor programming skills will
not suffice.
However, I have done some more tests. Maybe this will help someone.

1. Set MTU and MRU in pppd options to 1404
2. Leave Windows' MTU setting alone (according to M$, this results in a MTU 
setting of
1400 on VPN links)
3. Establish connection, transfer some chunks of data

As a result, kern.log contains:
osize too small! (have: 1400 need: 1404)

This makes me believe that it is Windows XP that is requesting an MTU
of 1400. The pppd man page states that the configured pppd mtu value
is ignored when the peer requests a smaller MTU size.
Forthermore, in the ppp sources in pppd/ccp.c around line 1190 (search
for "MPPE_PAD") pppd sets the interface's MTU to (original MTU - 4).
This seems correct, given that MPPE will add 4 bytes. 1396 plus 4
equals 1400 bytes - just right.

What I don't understand: When I set the interface's MTU to 1404
("ifconfig ppp1 mtu 1404" in my case) it seems to work. I cannot tell
if it has any impact on performance (fragmentation?), but at least the
errors are gone.

So I wonder:
- Why does it work?
- Is it a suitable fix to *not* reduce the MTU according to the peers
request?
- Will this break anything?

As a quick fix, it should be possible to add the "ifconfig pppX mtu"
command to a script file that is to be executed after the link has
been established.

BTW: This does also help with the pppd process that does not exit after the
link terminates, because the multilink option is not required anymore
and that particular problem only occurs with multilink allowed.

-- 
Mit freundlichen Grüßen / best regards
Alexander P. Weber



Reply via email to