From 4ca4768b561fca0e47f6736e24a616d50b931f79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= Date: Sat, 11 Jun 2016 23:15:01 +0100 Subject: IPv6: Add text marker for SRH next segment Change-Id: If13ffe4ddb9ae08e738ccf0c715dc12ce7a076e8 Reviewed-on: https://code.wireshark.org/review/15834 Petri-Dish: Anders Broman Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- epan/dissectors/packet-ipv6.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'epan') diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c index d628117fb2..444c6c1b18 100644 --- a/epan/dissectors/packet-ipv6.c +++ b/epan/dissectors/packet-ipv6.c @@ -1109,6 +1109,9 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data } ti = _proto_tree_add_ipv6_vector_address(rthdr_tree, hf_ipv6_routing_srh_addr, tvb, offset, IPv6_ADDR_SIZE, addr, 0); + if (rt.ip6r_segleft == 1) { + proto_item_append_text(ti, " [next segment]"); + } dst_addr = addr; offset += IPv6_ADDR_SIZE; for (idx = 1; offset < offlim; offset += IPv6_ADDR_SIZE, idx++) { @@ -1118,6 +1121,9 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data } ti = _proto_tree_add_ipv6_vector_address(rthdr_tree, hf_ipv6_routing_srh_addr, tvb, offset, IPv6_ADDR_SIZE, &srh_addr, idx); + if (idx == rt.ip6r_segleft - 1) { + proto_item_append_text(ti, " [next segment]"); + } } rthdr_srh_addr_tree = proto_tree_add_subtree_format(rthdr_tree, tvb, offstart, srh_addr_count * IPv6_ADDR_SIZE, @@ -1126,8 +1132,11 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data offset -= IPv6_ADDR_SIZE; for (idx = srh_first_seg; offset >= offstart; offset -= IPv6_ADDR_SIZE, idx--) { tvb_get_ipv6(tvb, offset, &srh_addr); - _proto_tree_add_ipv6_vector_address(rthdr_srh_addr_tree, hf_ipv6_routing_srh_addr, tvb, + ti = _proto_tree_add_ipv6_vector_address(rthdr_srh_addr_tree, hf_ipv6_routing_srh_addr, tvb, offset, IPv6_ADDR_SIZE, &srh_addr, idx); + if (idx == rt.ip6r_segleft - 1) { + proto_item_append_text(ti, " [next segment]"); + } } } -- cgit v1.2.3