From fb215255bb1f2aef87c02a4ee3da85d8b947c12f Mon Sep 17 00:00:00 2001 From: Didier Barvaux Date: Tue, 11 Apr 2017 13:42:43 +0200 Subject: [PATCH] DVB-RCS2: dissect Ethernet/VLAN payload Change-Id: Iaae5bef3650544c49a74277495ef7a930390556a Reviewed-on: https://code.wireshark.org/review/37591 Petri-Dish: Anders Broman Reviewed-by: Anders Broman --- epan/dissectors/packet-dvb-s2-bb.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/epan/dissectors/packet-dvb-s2-bb.c b/epan/dissectors/packet-dvb-s2-bb.c index 9ea535e936..9e8546780f 100644 --- a/epan/dissectors/packet-dvb-s2-bb.c +++ b/epan/dissectors/packet-dvb-s2-bb.c @@ -68,6 +68,7 @@ static guint8 crc8_table[256] = { static dissector_handle_t ip_handle; static dissector_handle_t ipv6_handle; +static dissector_handle_t eth_withoutfcs_handle; static dissector_handle_t dvb_s2_table_handle; static dissector_handle_t data_handle; @@ -814,6 +815,7 @@ static const range_string gse_proto_str[] = { {ETHERTYPE_IP , ETHERTYPE_IP , "IPv4 Payload" }, {0x0801 , 0x86DC , "not implemented"}, {ETHERTYPE_IPv6 , ETHERTYPE_IPv6 , "IPv6 Payload" }, + {ETHERTYPE_VLAN , ETHERTYPE_VLAN , "VLAN" }, {0x86DE , 0xFFFF , "not implemented"}, {0 , 0 , NULL } }; @@ -967,6 +969,14 @@ static int dissect_dvb_s2_gse(tvbuff_t *tvb, int cur_off, proto_tree *tree, pack } break; + case ETHERTYPE_VLAN: + if (dvb_s2_full_dissection) + { + new_off += call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, tree); + dissected = TRUE; + } + break; + case DVB_RCS2_SIGNAL_TABLE: call_dissector(dvb_s2_table_handle, data_tvb, pinfo, tree); new_off += data_len; @@ -1585,6 +1595,7 @@ void proto_reg_handoff_dvb_s2_modeadapt(void) ip_handle = find_dissector_add_dependency("ip", proto_dvb_s2_bb); ipv6_handle = find_dissector_add_dependency("ipv6", proto_dvb_s2_bb); dvb_s2_table_handle = find_dissector("dvb-s2_table"); + eth_withoutfcs_handle = find_dissector("eth_withoutfcs"); data_handle = find_dissector("data"); prefs_initialized = TRUE; }