aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-redback.c
diff options
context:
space:
mode:
authorFlorian Lohoff <f@zz.de>2014-07-23 16:41:43 +0200
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2014-07-23 15:24:16 +0000
commit822d0ca132647d76417a6d0976e21d4444a18136 (patch)
treeac68b95bd3ec6b1f07aae360b06f8d234d621ca7 /epan/dissectors/packet-redback.c
parent26e4b947d359f71a6c488cc6abd9a15531ee37ac (diff)
Add dissecting of IPv6 in Redback Smartedge Captures
Change-Id: I028d294235a4e1d55096df8face48c4a74710506 Reviewed-on: https://code.wireshark.org/review/3176 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-redback.c')
-rw-r--r--epan/dissectors/packet-redback.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/epan/dissectors/packet-redback.c b/epan/dissectors/packet-redback.c
index b4ba8775e3..41367cfa38 100644
--- a/epan/dissectors/packet-redback.c
+++ b/epan/dissectors/packet-redback.c
@@ -43,6 +43,7 @@ static dissector_table_t osinl_incl_subdissector_table;
static dissector_table_t osinl_excl_subdissector_table;
static dissector_handle_t ipv4_handle;
+static dissector_handle_t ipv6_handle;
static dissector_handle_t ethnofcs_handle;
static dissector_handle_t clnp_handle;
static dissector_handle_t arp_handle;
@@ -179,6 +180,13 @@ dissect_redback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
next_tvb = tvb_new_subset_remaining(tvb, dataoff);
call_dissector(ethnofcs_handle, next_tvb, pinfo, tree);
break;
+ case 0x09: /* IPv6 either encapsulated as ethernet or native ip */
+ next_tvb = tvb_new_subset_remaining(tvb, dataoff);
+ if (dataoff == l3off)
+ call_dissector(ipv6_handle, next_tvb, pinfo, tree);
+ else
+ call_dissector(ethnofcs_handle, next_tvb, pinfo, tree);
+ break;
default:
if (tree)
proto_tree_add_text (rbtree, tvb, 24, -1, "Unknown Protocol Data %u", proto);
@@ -226,6 +234,7 @@ proto_reg_handoff_redback(void)
osinl_excl_subdissector_table = find_dissector_table("osinl.excl");
ipv4_handle = find_dissector("ip");
+ ipv6_handle = find_dissector("ipv6");
data_handle = find_dissector("data");
ethnofcs_handle = find_dissector("eth_withoutfcs");
clnp_handle = find_dissector("clnp");