aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-isis-snp.c
diff options
context:
space:
mode:
authorAlexis La Goutte <alexis.lagoutte@gmail.com>2015-11-28 16:05:22 +0100
committerMichael Mann <mmann78@netscape.net>2015-11-28 19:07:04 +0000
commit2f5849cc8c6347b3c1a4a16887d40fead6a841c3 (patch)
treef3cc9cc352024f2fc5dcfe0100b4180944756ad5 /epan/dissectors/packet-isis-snp.c
parentd3e40e499aa50dd6da057b2162a658b7fe76f9f4 (diff)
IS-IS: Add Instance ID TLV (RFC 6822)
Bug:11649 Change-Id: I852b0f93797ba9e67c2772f482182b1f0d753a43 Reviewed-on: https://code.wireshark.org/review/12254 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-isis-snp.c')
-rw-r--r--epan/dissectors/packet-isis-snp.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/epan/dissectors/packet-isis-snp.c b/epan/dissectors/packet-isis-snp.c
index 2bb19e0748..9587e003f2 100644
--- a/epan/dissectors/packet-isis-snp.c
+++ b/epan/dissectors/packet-isis-snp.c
@@ -56,11 +56,14 @@ static int hf_isis_csnp_clv_type = -1;
static int hf_isis_csnp_clv_length = -1;
static int hf_isis_csnp_ip_authentication = -1;
static int hf_isis_csnp_authentication = -1;
+static int hf_isis_csnp_instance_identifier = -1;
+static int hf_isis_csnp_supported_itid = -1;
static gint ett_isis_csnp = -1;
static gint ett_isis_csnp_clv_lsp_entries = -1;
static gint ett_isis_csnp_lsp_entry = -1;
static gint ett_isis_csnp_clv_authentication = -1;
static gint ett_isis_csnp_clv_ip_authentication = -1;
+static gint ett_isis_csnp_clv_instance_identifier = -1;
static gint ett_isis_csnp_clv_checksum = -1;
static gint ett_isis_csnp_clv_unknown = -1;
@@ -200,8 +203,38 @@ dissect_snp_lsp_entries_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree,
}
+/*
+ * Name: dissect_snp_instance_identifier_clv()
+ *
+ * Description:
+ * Decode for a snp packets Instance Identifier clv.
+ * Calls into the CLV common one.
+ *
+ * Input:
+ * tvbuff_t * : tvbuffer for packet data
+ * proto_tree * : proto tree to build on (may be null)
+ * int : current offset into packet data
+ * int : length of IDs in packet.
+ * int : length of this clv
+ *
+ * Output:
+ * void, will modify proto_tree if not null.
+ */
+static void
+dissect_snp_instance_identifier_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
+ proto_tree *tree, int offset, int id_length _U_, int length)
+{
+ isis_dissect_instance_identifier_clv(tree, pinfo, tvb, &ei_isis_csnp_short_packet, hf_isis_csnp_instance_identifier, hf_isis_csnp_supported_itid, offset, length);
+}
+
static const isis_clv_handle_t clv_l1_csnp_opts[] = {
{
+ ISIS_CLV_INSTANCE_IDENTIFIER,
+ "Instance Identifier",
+ &ett_isis_csnp_clv_instance_identifier,
+ dissect_snp_instance_identifier_clv
+ },
+ {
ISIS_CLV_LSP_ENTRIES,
"LSP entries",
&ett_isis_csnp_clv_lsp_entries,
@@ -232,6 +265,12 @@ static const isis_clv_handle_t clv_l1_csnp_opts[] = {
static const isis_clv_handle_t clv_l2_csnp_opts[] = {
{
+ ISIS_CLV_INSTANCE_IDENTIFIER,
+ "Instance Identifier",
+ &ett_isis_csnp_clv_instance_identifier,
+ dissect_snp_instance_identifier_clv
+ },
+ {
ISIS_CLV_LSP_ENTRIES,
"LSP entries",
&ett_isis_csnp_clv_lsp_entries,
@@ -262,6 +301,12 @@ static const isis_clv_handle_t clv_l2_csnp_opts[] = {
static const isis_clv_handle_t clv_l1_psnp_opts[] = {
{
+ ISIS_CLV_INSTANCE_IDENTIFIER,
+ "Instance Identifier",
+ &ett_isis_csnp_clv_instance_identifier,
+ dissect_snp_instance_identifier_clv
+ },
+ {
ISIS_CLV_LSP_ENTRIES,
"LSP entries",
&ett_isis_psnp_clv_lsp_entries,
@@ -292,6 +337,12 @@ static const isis_clv_handle_t clv_l1_psnp_opts[] = {
static const isis_clv_handle_t clv_l2_psnp_opts[] = {
{
+ ISIS_CLV_INSTANCE_IDENTIFIER,
+ "Instance Identifier",
+ &ett_isis_csnp_clv_instance_identifier,
+ dissect_snp_instance_identifier_clv
+ },
+ {
ISIS_CLV_LSP_ENTRIES,
"LSP entries",
&ett_isis_psnp_clv_lsp_entries,
@@ -479,6 +530,12 @@ proto_register_isis_csnp(void)
{ &hf_isis_csnp_authentication,
{ "Authentication", "isis.csnp.authentication", FT_BYTES,
BASE_NONE, NULL, 0x0, NULL, HFILL }},
+ { &hf_isis_csnp_instance_identifier,
+ { "Instance Identifier", "isis.csnp.iid", FT_UINT16,
+ BASE_DEC, NULL, 0x0, NULL, HFILL } },
+ { &hf_isis_csnp_supported_itid,
+ { "Supported ITID", "isis.csnp.supported_itid", FT_UINT16,
+ BASE_DEC, NULL, 0x0, NULL, HFILL }},
};
static gint *ett[] = {
@@ -487,6 +544,7 @@ proto_register_isis_csnp(void)
&ett_isis_csnp_lsp_entry,
&ett_isis_csnp_clv_authentication,
&ett_isis_csnp_clv_ip_authentication,
+ &ett_isis_csnp_clv_instance_identifier,
&ett_isis_csnp_clv_checksum,
&ett_isis_csnp_clv_unknown,
};