ppp have bug in CCP negotiation?
Alexander Motin
mav at alkar.net
Sat Dec 16 18:24:36 PST 2006
Hi.
While debugging ccp support in mpd I have found strange behaviour in ppp
daemon. In rfc1962 written:
Configuration Options, in this protocol, indicate algorithms that the
receiver is willing or able to use to decompress data sent by the
sender.
But when ppp negotiates different compression methods on different sides
it behaves strictly in opposite way. It uses for decompression method
which was requested in ConfigRequest by other side.
Here is mpd logs. It negotiated pred1 for compress and mppc for
decompress (it is stupid, but possible):
[b2] CCP: SendConfigReq #1
MPPC
0x010000e0:MPPE(40, 56, 128 bits), stateless
PRED1
[b2] CCP: rec'd Configure Request #7 link 0 (Req-Sent)
DEFLATE
Not supported
PRED1
MPPC
0x000000e0:MPPE(40, 56, 128 bits),
[b2] CCP: SendConfigRej #7
DEFLATE
MPPC
0x000000e0:MPPE(40, 56, 128 bits),
[b2] CCP: rec'd Configure Reject #2 link 0 (Ack-Sent)
PRED1
[b2] CCP: SendConfigReq #3
MPPC
0x01000040:MPPE(128 bits), stateless
[b2] CCP: rec'd Configure Ack #3 link 0 (Ack-Sent)
MPPC
0x01000040:MPPE(128 bits), stateless
[b2] CCP: LayerUp
Compress using: pred1 ()
Decompress using: mppc (MPPE(128 bits), stateless)
Here is ppp output:
PPP ON fish> show ccp
deflink: CCP [Opened]
My protocol = PRED1, His protocol = MPPE
Output: 0 --> 0, Input: 0 --> 0
Input Options: value 0x01000040 (128 bits, stateless)
Output Options: (null)
When I am trying to send packets from mpd side to ppp side, ppp writes:
Error: MPPE: Input: Invalid packet (flags = 0x8000)
Error: MPPE: Input: Invalid packet (flags = 0x8000)
Error: MPPE: Input: Invalid packet (flags = 0x8000)
Error: MPPE: Input: Invalid packet (flags = 0x8000)
Error: MPPE: Input: Invalid packet (flags = 0x8000)
--
Alexander Motin mav at alkar.net
More information about the freebsd-net
mailing list