Add support for decoding PPPoE packages on an ethernet interface.
This commit is contained in:
parent
1cf95850b2
commit
90eb7ba34c
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: interface.h,v 1.19 2001/04/14 12:31:34 martin Exp $ */
|
||||
/* $NetBSD: interface.h,v 1.20 2001/05/06 07:57:08 tron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
|
||||
|
@ -240,7 +240,9 @@ extern void ospf_print(const u_char *, u_int, const u_char *);
|
|||
extern void igmp_pim_print(const u_char *, u_int);
|
||||
extern void pim_print(const u_char *, u_int);
|
||||
extern void ppp_if_print(u_char *, const struct pcap_pkthdr *, const u_char *);
|
||||
extern void pppoe_if_print(u_char *, const struct pcap_pkthdr *, const u_char *);
|
||||
extern void pppoe_if_print(u_char *, const struct pcap_pkthdr *,
|
||||
const u_char *);
|
||||
extern void pppoe_encap_print(const u_char *, u_int, u_int);
|
||||
extern void ppp_bsdos_if_print(u_char *, const struct pcap_pkthdr *,
|
||||
const u_char *);
|
||||
extern void ppp_netbsd_serial_if_print(u_char *, const struct pcap_pkthdr *,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: print-ether.c,v 1.8 2000/07/26 10:48:15 ad Exp $ */
|
||||
/* $NetBSD: print-ether.c,v 1.9 2001/05/06 07:57:08 tron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
|
||||
|
@ -26,7 +26,7 @@
|
|||
static const char rcsid[] =
|
||||
"@(#) Header: print-ether.c,v 1.44 97/05/26 17:18:13 leres Exp (LBL)";
|
||||
#else
|
||||
__RCSID("$NetBSD: print-ether.c,v 1.8 2000/07/26 10:48:15 ad Exp $");
|
||||
__RCSID("$NetBSD: print-ether.c,v 1.9 2001/05/06 07:57:08 tron Exp $");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -230,6 +230,10 @@ ether_encap_print(u_short ethertype, const u_char *p,
|
|||
}
|
||||
return (1);
|
||||
|
||||
case ETHERTYPE_PPPOE:
|
||||
pppoe_encap_print(p, length, caplen);
|
||||
return (1);
|
||||
|
||||
case ETHERTYPE_LAT:
|
||||
case ETHERTYPE_SCA:
|
||||
case ETHERTYPE_MOPRC:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: print-pppoe.c,v 1.2 2001/04/29 10:27:03 martin Exp $ */
|
||||
/* $NetBSD: print-pppoe.c,v 1.3 2001/05/06 07:57:08 tron Exp $ */
|
||||
|
||||
/*
|
||||
* Copied from print-ppp.c, slightly modified to work with the temporary
|
||||
|
@ -32,7 +32,7 @@
|
|||
static const char rcsid[] =
|
||||
"@(#) Header: print-ppp.c,v 1.26 97/06/12 14:21:29 leres Exp (LBL)";
|
||||
#else
|
||||
__RCSID("$NetBSD: print-pppoe.c,v 1.2 2001/04/29 10:27:03 martin Exp $");
|
||||
__RCSID("$NetBSD: print-pppoe.c,v 1.3 2001/05/06 07:57:08 tron Exp $");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -73,16 +73,23 @@ struct rtentry;
|
|||
#define PPP_SHORT_HDRLEN 2
|
||||
|
||||
/* PPPoE printer */
|
||||
|
||||
void
|
||||
pppoe_if_print(u_char *user, const struct pcap_pkthdr *h,
|
||||
register const u_char *p)
|
||||
{
|
||||
register u_int length = h->len;
|
||||
register u_int caplen = h->caplen;
|
||||
const struct ip *ip;
|
||||
u_int proto;
|
||||
|
||||
ts_print(&h->ts);
|
||||
pppoe_encap_print(p, length, caplen);
|
||||
}
|
||||
|
||||
void
|
||||
pppoe_encap_print(const u_char *p, u_int length, u_int caplen)
|
||||
{
|
||||
const struct ip *ip;
|
||||
u_int proto;
|
||||
|
||||
if (caplen < PPPOE_HDRLEN+PPP_SHORT_HDRLEN) {
|
||||
printf("[|pppoe]");
|
||||
|
|
Loading…
Reference in New Issue