diff --git a/epan/dissectors/packet-pppoe.c b/epan/dissectors/packet-pppoe.c index 22edaa90b0..fe5ca8acfb 100644 --- a/epan/dissectors/packet-pppoe.c +++ b/epan/dissectors/packet-pppoe.c @@ -1289,6 +1289,7 @@ void proto_reg_handoff_pppoes(void) dissector_handle_t pppoes_handle = create_dissector_handle(dissect_pppoes, proto_pppoes); dissector_add_uint("ethertype", ETHERTYPE_PPPOES, pppoes_handle); + dissector_add_uint("wtap_encap", WTAP_ENCAP_PPP_ETHER, pppoes_handle); /* Get a handle for the PPP dissector */ ppp_handle = find_dissector("ppp"); diff --git a/wiretap/pcap-common.c b/wiretap/pcap-common.c index 576e5d82d4..da08af1ae3 100644 --- a/wiretap/pcap-common.c +++ b/wiretap/pcap-common.c @@ -158,6 +158,11 @@ static const struct { */ { 50, WTAP_ENCAP_PPP }, + /* + * Used by NetBSD and OpenBSD pppoe(4). + */ + { 51, WTAP_ENCAP_PPP_ETHER }, + /* * Apparently used by the Axent Raptor firewall (now Symantec * Enterprise Firewall). diff --git a/wiretap/wtap.c b/wiretap/wtap.c index 81c2a668fd..3def7c5c47 100644 --- a/wiretap/wtap.c +++ b/wiretap/wtap.c @@ -555,7 +555,10 @@ static struct encap_type_info encap_table_base[] = { { "IP over Infiniband", "ip-over-ib" }, /* WTAP_ENCAP_MPEG_2_TS */ - { "ISO/IEC 13818-1 MPEG2-TS", "mp2ts" } + { "ISO/IEC 13818-1 MPEG2-TS", "mp2ts" }, + + /* WTAP_ENCAP_PPP_ETHER */ + { "PPP-over-Ethernet session", "pppoes" } }; gint wtap_num_encap_types = sizeof(encap_table_base) / sizeof(struct encap_type_info); diff --git a/wiretap/wtap.h b/wiretap/wtap.h index 798bcae2d7..1dbbe13972 100644 --- a/wiretap/wtap.h +++ b/wiretap/wtap.h @@ -228,6 +228,7 @@ extern "C" { #define WTAP_ENCAP_NETANALYZER_TRANSPARENT 136 #define WTAP_ENCAP_IP_OVER_IB 137 #define WTAP_ENCAP_MPEG_2_TS 138 +#define WTAP_ENCAP_PPP_ETHER 139 #define WTAP_NUM_ENCAP_TYPES wtap_get_num_encap_types()