rework ppp, pptp, and gre parsing.
authordlg <dlg@openbsd.org>
Tue, 6 Feb 2018 03:07:51 +0000 (03:07 +0000)
committerdlg <dlg@openbsd.org>
Tue, 6 Feb 2018 03:07:51 +0000 (03:07 +0000)
commitc834ed88303ceeffea5e7d9fbae6c9901064aff9
tree84a240da865c5aa3383f6990b20cf4edfc9ecb71
parent2524a2d384ca145dabae884903d3a900772c1fbc
rework ppp, pptp, and gre parsing.

this started cos i was looking at pptp, which came out like this:

23:52:00.197893  call 24 seq 7: gre-ppp-payload (gre encap)
23:52:00.198930  call 1 seq 7 ack 7: gre-ppp-payload (gre encap)

now it looks like this:

23:52:00.197893 20.0.0.2 > 20.0.0.1: pptp callid 24 seq 7: 17.1.1.122 > 40.0.0.2: icmp: echo request
23:52:00.198930 20.0.0.1 > 20.0.0.2: pptp callid 1 seq 7 ack 7: 40.0.0.2 > 17.1.1.122: icmp: echo reply

the big improvement in ppp parsing is it stops parsing based on
what the ppp headers say, rather than what bytes have been captured.
this also adds parsing of EAP packets.

DLT_PPP_SERIAL is now recognised and printed. gre now prints the
outer addresses always, not just when it's encapsulated by ipv6 or
-v is passed to tcpdump.

ok sthen@
usr.sbin/tcpdump/interface.h
usr.sbin/tcpdump/print-gre.c
usr.sbin/tcpdump/print-ip.c
usr.sbin/tcpdump/print-ip6.c
usr.sbin/tcpdump/print-ppp.c
usr.sbin/tcpdump/tcpdump.c