summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-bgp.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-bgp.c')
-rw-r--r--epan/dissectors/packet-bgp.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/epan/dissectors/packet-bgp.c b/epan/dissectors/packet-bgp.c
index 619c3301d5..1a191f9654 100644
--- a/epan/dissectors/packet-bgp.c
+++ b/epan/dissectors/packet-bgp.c
@@ -4221,10 +4221,17 @@ decode_prefix_MP(proto_tree *tree, int hf_addr4, int hf_addr6,
return -1;
}
SET_ADDRESS(&addr, AT_IPv6, 16, ip6addr.bytes);
- proto_tree_add_text(tree, tvb, start_offset,
+ prefix_tree = proto_tree_add_subtree_format(tree, tvb, start_offset,
(offset + length) - start_offset,
+ ett_bgp_prefix, NULL,
"Tunnel Identifier=0x%x IPv6=%s/%u",
tnl_id, address_to_str(wmem_packet_scope(), &addr), plen);
+ proto_tree_add_item(prefix_tree, hf_bgp_prefix_length, tvb, start_offset, 1, ENC_BIG_ENDIAN);
+
+ proto_tree_add_item(prefix_tree, hf_bgp_mp_nlri_tnl_id, tvb,
+ start_offset + 1, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_ipv6(prefix_tree, hf_addr6, tvb, offset, length, ip6addr.bytes);
+
total_length = (1 + 2) + length; /* length field + Tunnel Id + IPv4 len */
break;