aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-03-11 22:46:28 -0400
committerMichael Mann <mmann78@netscape.net>2015-03-14 01:58:04 +0000
commite5f3fe2602dd17e5b3bc0cc58e4f74c031b1b8d0 (patch)
treea2dd5a0a946c082331fddc6eda36fa49f06ac0f4 /epan
parentf074647d2b6b16af34a2a9595adffd78c3a2dfe3 (diff)
Remove proto_tree_add_text from packet-eigrp.c
Change-Id: Idb2d9e070c7f65540ad27b011bd4a3dcaa3dd7e4 Reviewed-on: https://code.wireshark.org/review/7667 Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-eigrp.c203
1 files changed, 141 insertions, 62 deletions
diff --git a/epan/dissectors/packet-eigrp.c b/epan/dissectors/packet-eigrp.c
index f1bbcf391c..b5db379c3a 100644
--- a/epan/dissectors/packet-eigrp.c
+++ b/epan/dissectors/packet-eigrp.c
@@ -496,6 +496,38 @@ static gint hf_eigrp_saf_data_length = -1;
static gint hf_eigrp_saf_data_sequence = -1;
static gint hf_eigrp_saf_data_type = -1;
+/* Generated from convert_proto_tree_add_text.pl */
+static int hf_eigrp_ipx_address = -1;
+static int hf_eigrp_release = -1;
+static int hf_eigrp_tlv_version = -1;
+static int hf_eigrp_ipv4_destination = -1;
+static int hf_eigrp_ipv6_destination = -1;
+static int hf_eigrp_appletalk_cable_range = -1;
+static int hf_eigrp_nexthop_address = -1;
+static int hf_eigrp_cable_range = -1;
+static int hf_eigrp_metric_delay = -1;
+static int hf_eigrp_metric_bandwidth = -1;
+static int hf_eigrp_checksum = -1;
+static int hf_eigrp_metric_comm_type = -1;
+static int ett_metric_comm_type = -1;
+static int hf_eigrp_extcomm_eigrp_flag = -1;
+static int hf_eigrp_extcomm_eigrp_tag = -1;
+static int hf_eigrp_extcomm_eigrp_res = -1;
+static int hf_eigrp_extcomm_eigrp_rid = -1;
+static int hf_eigrp_extcomm_eigrp_as = -1;
+static int hf_eigrp_extcomm_eigrp_sdly = -1;
+static int hf_eigrp_extcomm_eigrp_rel = -1;
+static int hf_eigrp_extcomm_eigrp_hop = -1;
+static int hf_eigrp_extcomm_eigrp_sbw = -1;
+static int hf_eigrp_extcomm_eigrp_load = -1;
+static int hf_eigrp_extcomm_eigrp_mtu = -1;
+static int hf_eigrp_extcomm_eigrp_xas = -1;
+static int hf_eigrp_extcomm_eigrp_xrid = -1;
+static int hf_eigrp_extcomm_eigrp_xproto = -1;
+static int hf_eigrp_extcomm_eigrp_xmetric = -1;
+
+
+
static expert_field ei_eigrp_checksum_bad = EI_INIT;
static expert_field ei_eigrp_unreachable = EI_INIT;
static expert_field ei_eigrp_seq_addrlen = EI_INIT;
@@ -632,6 +664,20 @@ static const value_string eigrp_saf_srv2string[] = {
{ 0, NULL}
};
+static const value_string eigrp_metric_comm_type_vals[] = {
+ { EIGRP_EXTCOMM_EIGRP, "EIGRP_EXTCOMM_EIGRP"},
+ { EIGRP_EXTCOMM_VRR, "EIGRP_EXTCOMM_VRR"},
+ { EIGRP_EXTCOMM_DAD, "EIGRP_EXTCOMM_DAD"},
+ { EIGRP_EXTCOMM_VRHB, "EIGRP_EXTCOMM_VRHB"},
+ { EIGRP_EXTCOMM_SRLM, "EIGRP_EXTCOMM_SRLM"},
+ { EIGRP_EXTCOMM_SAR, "EIGRP_EXTCOMM_SAR"},
+ { EIGRP_EXTCOMM_RPM, "EIGRP_EXTCOMM_RPM"},
+ { EIGRP_EXTCOMM_SOO_ASFMT, "EIGRP_EXTCOMM_SOO"},
+ { EIGRP_EXTCOMM_SOO_ADRFMT, "EIGRP_EXTCOMM_SOO"},
+ { 0, NULL}
+};
+
+
/**
*@fn void dissect_eigrp_parameter (proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
*
@@ -795,10 +841,8 @@ dissect_eigrp_seq_tlv (proto_tree *tree, tvbuff_t *tvb,
break;
case 10:
/* IPX */
- proto_tree_add_text(tree, tvb, offset, addr_len,
- "IPX Address = %08x.%04x.%04x.%04x",
- tvb_get_ntohl(tvb, 1), tvb_get_ntohs(tvb, 5),
- tvb_get_ntohs(tvb, 7), tvb_get_ntohs(tvb, 9));
+ proto_tree_add_bytes_format_value(tree, hf_eigrp_ipx_address, tvb, offset, addr_len, NULL,
+ "IPX Address: %s", tvb_address_to_str(wmem_packet_scope(), tvb, AT_IPX, 1));
break;
case 16:
/* IPv6 */
@@ -837,15 +881,13 @@ dissect_eigrp_sw_version (tvbuff_t *tvb, proto_tree *tree,
ios_rel_major = tvb_get_guint8(tvb, 0);
ios_rel_minor = tvb_get_guint8(tvb, 1);
- proto_tree_add_text(tree, tvb, offset, 2, "EIGRP Release: %u.%u",
- ios_rel_major, ios_rel_minor);
+ proto_tree_add_item(tree, hf_eigrp_release, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
proto_item_append_text(ti, ": EIGRP=%u.%u", ios_rel_major, ios_rel_minor);
eigrp_rel_major = tvb_get_guint8(tvb, 2);
eigrp_rel_minor = tvb_get_guint8(tvb, 3);
- proto_tree_add_text(tree,tvb,offset, 2, "EIGRP TLV version: %u.%u",
- eigrp_rel_major, eigrp_rel_minor);
+ proto_tree_add_item(tree, hf_eigrp_tlv_version, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_item_append_text(ti, ", TLV=%u.%u",
eigrp_rel_major, eigrp_rel_minor);
}
@@ -1078,8 +1120,7 @@ dissect_eigrp_ipv4_addr (proto_item *ti, proto_tree *tree, tvbuff_t *tvb,
ENC_BIG_ENDIAN);
offset += 1;
SET_ADDRESS(&addr, AT_IPv4, 4, ip_addr);
- ti_dst = proto_tree_add_text(tree, tvb, offset, addr_len,
- "Destination: %s", address_to_str(wmem_packet_scope(), &addr));
+ ti_dst = proto_tree_add_ipv4(tree, hf_eigrp_ipv4_destination, tvb, offset, addr_len, *ip_addr);
/* add it to the top level line */
proto_item_append_text(ti," %c %s/%u", first ? '=':',',
@@ -1138,8 +1179,7 @@ dissect_eigrp_ipv6_addr (proto_item *ti, proto_tree *tree, tvbuff_t *tvb,
}
SET_ADDRESS(&addr_str, AT_IPv6, 16, addr.bytes);
- ti_dst = proto_tree_add_text(tree, tvb, offset, addr_len,
- "Destination: %s", address_to_str(wmem_packet_scope(), &addr_str));
+ ti_dst = proto_tree_add_ipv6(tree, hf_eigrp_ipv6_destination, tvb, offset, addr_len, addr.bytes);
/* add it to the top level line */
proto_item_append_text(ti," %c %s/%u", first ? '=':',',
@@ -1719,8 +1759,7 @@ dissect_eigrp_atalk_tlv (proto_item *ti, proto_tree *tree, tvbuff_t *tvb,
/* cable tlv? */
if (EIGRP_TLV_AT_CBL == tlv) {
- proto_tree_add_text(tree, tvb, 0, 4, "AppleTalk Cable Range = %u-%u",
- tvb_get_ntohs(tvb, 0), tvb_get_ntohs(tvb, 2));
+ proto_tree_add_item(tree, hf_eigrp_appletalk_cable_range, tvb, 0, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_eigrp_atalk_routerid, tvb, 4, 4,
ENC_BIG_ENDIAN);
proto_item_append_text(ti, ": Cable range= %u-%u, Router ID= %u",
@@ -1728,8 +1767,7 @@ dissect_eigrp_atalk_tlv (proto_item *ti, proto_tree *tree, tvbuff_t *tvb,
tvb_get_ntohl(tvb, 4));
} else {
- proto_tree_add_text(tree, tvb, offset, 4, "NextHop Address = %u.%u",
- tvb_get_ntohs(tvb, 0), tvb_get_ntohs(tvb, 2));
+ proto_tree_add_item(tree, hf_eigrp_nexthop_address, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
/* dissect external data if needed */
@@ -1741,8 +1779,7 @@ dissect_eigrp_atalk_tlv (proto_item *ti, proto_tree *tree, tvbuff_t *tvb,
offset = dissect_eigrp_legacy_metric(tree, tvb, offset);
/* dissect cable range */
- proto_tree_add_text(tree, tvb, offset, 4, "Cable range = %u-%u",
- tvb_get_ntohs(tvb, 36), tvb_get_ntohs(tvb, 38));
+ proto_tree_add_item(tree, hf_eigrp_cable_range, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_item_append_text(ti, ": %u-%u",
tvb_get_ntohs(tvb, 36), tvb_get_ntohs(tvb, 38));
}
@@ -2003,10 +2040,15 @@ static int
dissect_eigrp_metric_comm (proto_tree *tree, tvbuff_t *tvb, int offset, int limit)
{
int comm_type;
+ proto_item* ti;
+ proto_tree* type_tree;
while (limit > 0) {
comm_type = tvb_get_ntohs(tvb, offset);
- offset++;
+ ti = proto_tree_add_uint(tree, hf_eigrp_metric_comm_type, tvb, offset, 2, comm_type);
+ type_tree = proto_item_add_subtree(ti, ett_metric_comm_type);
+
+ offset += 2;
switch (comm_type) {
/*
@@ -2014,16 +2056,13 @@ dissect_eigrp_metric_comm (proto_tree *tree, tvbuff_t *tvb, int offset, int limi
* routes, internal and external
*/
case EIGRP_EXTCOMM_EIGRP:
- proto_tree_add_text(tree, tvb, offset, 8,
- "Type(EIGRP_EXTCOMM_EIGRP): Flag(0x%02x) Tag(%u)",
- tvb_get_ntohs(tvb, 0),
- tvb_get_ntohl(tvb, 2));
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_flag, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_tag, tvb, offset+2, 4, ENC_BIG_ENDIAN);
break;
+
case EIGRP_EXTCOMM_VRR:
- proto_tree_add_text(tree, tvb, offset, 8,
- "Type(EIGRP_EXTCOMM_VRR)): RES(0x%02x) RID(0x%04x)",
- tvb_get_ntohs(tvb, 0),
- tvb_get_ntohl(tvb, 2));
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_res, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_rid, tvb, offset+2, 4, ENC_BIG_ENDIAN);
break;
/*
@@ -2031,24 +2070,20 @@ dissect_eigrp_metric_comm (proto_tree *tree, tvbuff_t *tvb, int offset, int limi
* applies to both internal and external
*/
case EIGRP_EXTCOMM_DAD:
- proto_tree_add_text(tree, tvb, offset, 8,
- "Type(EIGRP_EXTCOMM_DAD): AS(%u):SDLY(%u)",
- tvb_get_ntohs(tvb, 0),
- tvb_get_ntohl(tvb, 2));
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_as, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_sdly, tvb, offset+2, 4, ENC_BIG_ENDIAN);
break;
+
case EIGRP_EXTCOMM_VRHB:
- proto_tree_add_text(tree, tvb, offset, 8,
- "Type(EIGRP_EXTCOMM_VRHB): REL(%u) HOP(%u) SBW(%u)",
- tvb_get_guint8(tvb, 0),
- tvb_get_guint8(tvb, 1),
- tvb_get_ntohl(tvb, 2));
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_rel, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_hop, tvb, offset+1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_sbw, tvb, offset+2, 4, ENC_BIG_ENDIAN);
break;
+
case EIGRP_EXTCOMM_SRLM:
- proto_tree_add_text(tree, tvb, offset, 8,
- "Type(EIGRP_EXTCOMM_SRLM): RES(%u) LOAD(%u) MTU(%u)",
- tvb_get_guint8(tvb, 0),
- tvb_get_guint8(tvb, 1),
- tvb_get_ntohl(tvb, 2));
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_res, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_load, tvb, offset+1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_mtu, tvb, offset+2, 4, ENC_BIG_ENDIAN);
break;
/*
@@ -2056,29 +2091,24 @@ dissect_eigrp_metric_comm (proto_tree *tree, tvbuff_t *tvb, int offset, int limi
* applies to only to external routes
*/
case EIGRP_EXTCOMM_SAR:
- proto_tree_add_text(tree, tvb, offset, 8,
- "Type(EIGRP_EXTCOMM_SAR): xAS(%u) xRID(%u)",
- tvb_get_ntohs(tvb, 0),
- tvb_get_ntohl(tvb, 2));
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_xas, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_xrid, tvb, offset+2, 4, ENC_BIG_ENDIAN);
break;
+
case EIGRP_EXTCOMM_RPM:
- proto_tree_add_text(tree, tvb, offset, 8,
- "Type(EIGRP_EXTCOMM_RPM): xProto(%u) xMETRIC(%u)",
- tvb_get_ntohs(tvb, 0),
- tvb_get_ntohl(tvb, 2));
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_xproto, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_xmetric, tvb, offset+2, 4, ENC_BIG_ENDIAN);
break;
case EIGRP_EXTCOMM_SOO_ASFMT:
case EIGRP_EXTCOMM_SOO_ADRFMT:
- proto_tree_add_text(tree, tvb, offset, 8,
- "Type(EIGRP_EXTCOMM_SOO): AS(%u) TAG(%u)",
- tvb_get_ntohs(tvb, 0),
- tvb_get_ntohl(tvb, 2));
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_as, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(type_tree, hf_eigrp_extcomm_eigrp_tag, tvb, offset+2, 4, ENC_BIG_ENDIAN);
break;
}
/*on to the next */
- offset += 8;
+ offset += 6;
limit -= 8;
if (0 != limit%8) {
@@ -2247,9 +2277,9 @@ dissect_eigrp_wide_metric (proto_tree *tree, tvbuff_t *tvb, int offset)
big_num = tvb_get_ntoh64(sub_tvb, 8);
big_num >>= 16;
if (big_num == G_GUINT64_CONSTANT(0x0000ffffffffffff)) {
- proto_tree_add_text(sub_tree, sub_tvb, 8, 6, "Delay: Infinity");
+ proto_tree_add_uint64_format_value(sub_tree, hf_eigrp_metric_delay, sub_tvb, 8, 6, big_num, "Infinity");
} else {
- proto_tree_add_text(sub_tree, sub_tvb, 8, 6, "Delay: %" G_GINT64_MODIFIER "u", big_num);
+ proto_tree_add_uint64(sub_tree, hf_eigrp_metric_delay, sub_tvb, 8, 6, big_num);
}
/* The path bandwidth measured in kilobyte per second as presented by
@@ -2260,9 +2290,9 @@ dissect_eigrp_wide_metric (proto_tree *tree, tvbuff_t *tvb, int offset)
big_num = tvb_get_ntoh64(sub_tvb, 14);
big_num >>= 16;
if (big_num == G_GUINT64_CONSTANT(0x0000ffffffffffff)) {
- proto_tree_add_text(sub_tree, sub_tvb, 14, 6, "Bandwidth: Infinity");
+ proto_tree_add_uint64_format_value(sub_tree, hf_eigrp_metric_bandwidth, sub_tvb, 14, 6, big_num, "Infinity");
} else {
- proto_tree_add_text(sub_tree, sub_tvb, 14, 6, "Bandwidth: %" G_GINT64_MODIFIER "u", big_num);
+ proto_tree_add_uint64(sub_tree, hf_eigrp_metric_bandwidth, sub_tvb, 14, 6, big_num);
}
proto_tree_add_item(sub_tree, hf_eigrp_metric_reserved, sub_tvb, 20, 2,
ENC_BIG_ENDIAN);
@@ -2449,13 +2479,13 @@ dissect_eigrp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
cacl_checksum = ip_checksum_tvb(tvb, 0, size);
if (cacl_checksum == checksum) {
- proto_tree_add_text(eigrp_tree, tvb, 2, 2,
- "Checksum: 0x%02x [incorrect]",
+ proto_tree_add_uint_format_value(eigrp_tree, hf_eigrp_checksum, tvb, 2, 2,
+ checksum, "0x%02x [incorrect]",
checksum);
expert_add_info(pinfo, ti, &ei_eigrp_checksum_bad);
} else {
- proto_tree_add_text(eigrp_tree, tvb, 2, 2,
- "Checksum: 0x%02x [correct]", checksum);
+ proto_tree_add_uint_format_value(eigrp_tree, hf_eigrp_checksum, tvb, 2, 2,
+ checksum, "0x%02x [correct]", checksum);
}
/* Decode the EIGRP Flags Field */
@@ -2551,6 +2581,24 @@ dissect_eigrp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
return(tvb_length(tvb));
}
+static void
+eigrp_fmt_cable_range(gchar *result, guint32 revision )
+{
+ g_snprintf( result, ITEM_LABEL_LENGTH, "%u-%u", (guint16)(( revision & 0xFFFF0000 ) >> 8), (guint16)(revision & 0xFFFF) );
+}
+
+static void
+eigrp_fmt_nexthop_address(gchar *result, guint32 revision )
+{
+ g_snprintf( result, ITEM_LABEL_LENGTH, "%u.%u", (guint16)(( revision & 0xFFFF0000 ) >> 8), (guint16)(revision & 0xFFFF) );
+}
+
+static void
+eigrp_fmt_version(gchar *result, guint32 revision )
+{
+ g_snprintf( result, ITEM_LABEL_LENGTH, "%d.%02d", (guint8)(( revision & 0xFF00 ) >> 8), (guint8)(revision & 0xFF) );
+}
+
/**
*@fn void proto _ register _ eigrp (void)
*
@@ -3253,6 +3301,35 @@ proto_register_eigrp(void)
FT_BYTES, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
+
+ /* Generated from convert_proto_tree_add_text.pl */
+ { &hf_eigrp_ipx_address, { "IPX Address", "eigrp.ipx_address", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_release, { "EIGRP Release", "eigrp.release_version", FT_UINT16, BASE_CUSTOM, CF_FUNC(eigrp_fmt_version), 0x0, NULL, HFILL }},
+ { &hf_eigrp_tlv_version, { "EIGRP TLV version", "eigrp.tlv_version", FT_UINT16, BASE_CUSTOM, CF_FUNC(eigrp_fmt_version), 0x0, NULL, HFILL }},
+ { &hf_eigrp_ipv4_destination, { "Destination", "eigrp.ipv4.destination", FT_IPv4, BASE_NONE, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_ipv6_destination, { "Destination", "eigrp.ipv6.destination", FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_appletalk_cable_range, { "AppleTalk Cable Range", "eigrp.appletalk_cable_range", FT_UINT32, BASE_CUSTOM, CF_FUNC(eigrp_fmt_cable_range), 0x0, NULL, HFILL }},
+ { &hf_eigrp_nexthop_address, { "NextHop Address", "eigrp.nexthop_address", FT_UINT32, BASE_CUSTOM, CF_FUNC(eigrp_fmt_nexthop_address), 0x0, NULL, HFILL }},
+ { &hf_eigrp_cable_range, { "Cable range", "eigrp.cable_range", FT_UINT32, BASE_CUSTOM, CF_FUNC(eigrp_fmt_cable_range), 0x0, NULL, HFILL }},
+ { &hf_eigrp_metric_delay, { "Delay", "eigrp.metric.delay", FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_metric_bandwidth, { "Bandwidth", "eigrp.metric.bandwidth", FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_checksum, { "Checksum", "eigrp.checksum", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_metric_comm_type, { "Type", "eigrp.metric.comm_type", FT_UINT16, BASE_DEC, VALS(eigrp_metric_comm_type_vals), 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_flag, { "FLAG", "eigrp.extcomm.flag", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_tag, { "TAG", "eigrp.extcomm.tag", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_res, { "RES", "eigrp.extcomm.res", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_rid, { "RID", "eigrp.extcomm.rid", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_as, { "AS", "eigrp.extcomm.as", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_sdly, { "SDLY", "eigrp.extcomm.sdly", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_rel, { "RID", "eigrp.extcomm.rel", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_hop, { "AS", "eigrp.extcomm.hop", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_sbw, { "SDLY", "eigrp.extcomm.sbw", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_load, { "LOAD", "eigrp.extcomm.load", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_mtu, { "MTU", "eigrp.extcomm.mtu", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_xas, { "xAS", "eigrp.extcomm.xas", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_xrid, { "xRID", "eigrp.extcomm.xrid", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_xproto, { "xProto", "eigrp.extcomm.xproto", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
+ { &hf_eigrp_extcomm_eigrp_xmetric, { "xMETRIC", "eigrp.extcomm.xmetric", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
};
/* Setup protocol subtree array */
@@ -3274,6 +3351,8 @@ proto_register_eigrp(void)
/* metric tlv specific */
&ett_eigrp_metric_flags,
&ett_eigrp_extdata_flags,
+
+ &ett_metric_comm_type
};
static ei_register_info ei[] = {