aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-isis-lsp.c
diff options
context:
space:
mode:
authorMarian Ďurkovič <md@bts.sk>2014-08-20 11:30:44 +0200
committerAnders Broman <a.broman58@gmail.com>2014-08-22 11:00:35 +0000
commit28acde13339f0dd59698a8dfeaf0430c61e00148 (patch)
tree6843d1a838f09c1c500a35af663bbf88bd7a0a08 /epan/dissectors/packet-isis-lsp.c
parent76a674f0cfaa071a9fba43515f4e8ccaebb40ae0 (diff)
Parse Capabilities & Flags section of TRILL Version Sub-TLV
Change-Id: Ic82a2368c865031eaeee291055b6a4f176cde759 Reviewed-on: https://code.wireshark.org/review/3792 Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-isis-lsp.c')
-rw-r--r--epan/dissectors/packet-isis-lsp.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/epan/dissectors/packet-isis-lsp.c b/epan/dissectors/packet-isis-lsp.c
index 3266295882..5e6f1d4bc2 100644
--- a/epan/dissectors/packet-isis-lsp.c
+++ b/epan/dissectors/packet-isis-lsp.c
@@ -176,6 +176,10 @@ static int hf_isis_lsp_grp_macaddr_vlan_id = -1;
static int hf_isis_lsp_grp_ipv4addr_vlan_id = -1;
static int hf_isis_lsp_grp_ipv6addr_vlan_id = -1;
static int hf_isis_lsp_rt_capable_trill_length = -1;
+static int hf_isis_lsp_rt_capable_trill_affinity_tlv = -1;
+static int hf_isis_lsp_rt_capable_trill_fgl_safe = -1;
+static int hf_isis_lsp_rt_capable_trill_caps = -1;
+static int hf_isis_lsp_rt_capable_trill_flags = -1;
static int hf_isis_lsp_rt_capable_tree_root_id_starting_tree_no = -1;
static int hf_isis_lsp_rt_capable_interested_vlans_nickname = -1;
static int hf_isis_lsp_rt_capable_nickname_length = -1;
@@ -907,7 +911,12 @@ dissect_isis_rt_capable_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
proto_tree_add_item(rt_tree, hf_isis_lsp_rt_capable_trill_length, tvb, offset+1, 1, ENC_NA);
proto_tree_add_item(rt_tree, hf_isis_lsp_rt_capable_trill_maximum_version, tvb, offset+2, 1, ENC_NA);
- /* TODO: print flags if SubTLV length == 5 according to RFC7176 sec. 2.3.1 */
+ if ( (rt_block&0x00ff) == 5 ) {
+ proto_tree_add_item(rt_tree, hf_isis_lsp_rt_capable_trill_affinity_tlv, tvb, offset+3, 4, ENC_NA);
+ proto_tree_add_item(rt_tree, hf_isis_lsp_rt_capable_trill_fgl_safe, tvb, offset+3, 4, ENC_NA);
+ proto_tree_add_item(rt_tree, hf_isis_lsp_rt_capable_trill_caps, tvb, offset+3, 4, ENC_NA);
+ proto_tree_add_item(rt_tree, hf_isis_lsp_rt_capable_trill_flags, tvb, offset+3, 4, ENC_NA);
+ }
length -= (rt_block&0x00ff)+2;
offset += (rt_block&0x00ff)+2;
@@ -3157,6 +3166,26 @@ proto_register_isis_lsp(void)
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_isis_lsp_rt_capable_trill_affinity_tlv,
+ { "Affinity Sub-TLV", "isis.lsp.rt_capable.trill.affinity_tlv",
+ FT_BOOLEAN, 32 , TFS(&tfs_supported_not_supported), 0x80000000,
+ NULL, HFILL }
+ },
+ { &hf_isis_lsp_rt_capable_trill_fgl_safe,
+ { "FGL-safe", "isis.lsp.rt_capable.trill.fgl_safe",
+ FT_BOOLEAN, 32 , TFS(&tfs_yes_no), 0x40000000,
+ NULL, HFILL }
+ },
+ { &hf_isis_lsp_rt_capable_trill_caps,
+ { "Other Capabilities", "isis.lsp.rt_capable.trill.caps",
+ FT_BOOLEAN, 32 , TFS(&tfs_supported_not_supported), 0x3ffc0000,
+ NULL, HFILL }
+ },
+ { &hf_isis_lsp_rt_capable_trill_flags,
+ { "Extended Header Flags", "isis.lsp.rt_capable.trill.flags",
+ FT_BOOLEAN, 32 , TFS(&tfs_supported_not_supported), 0x0003ffff,
+ NULL, HFILL }
+ },
{ &hf_isis_lsp_rt_capable_trill_maximum_version,
{ "Maximum version", "isis.lsp.rt_capable.trill.maximum_version",
FT_UINT8, BASE_DEC, NULL, 0x0,