Add a few IP filterable fields to make checkAPIs.pl happy. It appears that "enumerated filter fields" are necessary, but that allows them to shirk the check* tools to possibly find unused hfs.

svn path=/trunk/; revision=49021
This commit is contained in:
Michael Mann 2013-04-24 23:15:38 +00:00
parent 2dc27b8b85
commit 2d9a44e0fa
1 changed files with 77 additions and 50 deletions

View File

@ -53,6 +53,7 @@
#include <epan/in_cksum.h>
#include <epan/etypes.h>
#include <epan/ipproto.h>
#include <epan/expert.h>
#include <show_exception.h>
#include "packet-ip.h"
@ -374,6 +375,9 @@ enum hf_lmp_filter_keys {
LMPF_VAL_REMOTE_INTERFACE_ID_IPV4,
LMPF_VAL_REMOTE_INTERFACE_ID_IPV6,
LMPF_VAL_REMOTE_INTERFACE_ID_UNNUM,
LMPF_VAL_CHANNEL_STATUS_INTERFACE_ID_IPV4,
LMPF_VAL_CHANNEL_STATUS_INTERFACE_ID_IPV6,
LMPF_VAL_CHANNEL_STATUS_INTERFACE_ID_UNNUM,
LMPF_VAL_MESSAGE_ID,
LMPF_VAL_MESSAGE_ID_ACK,
LMPF_VAL_CONFIG_HELLO,
@ -395,16 +399,20 @@ enum hf_lmp_filter_keys {
LMPF_VAL_TE_LINK_FLAGS_FAULT_MGMT,
LMPF_VAL_TE_LINK_FLAGS_LINK_VERIFY,
LMPF_VAL_TE_LINK_LOCAL_IPV4,
LMPF_VAL_TE_LINK_LOCAL_IPV6,
LMPF_VAL_TE_LINK_LOCAL_UNNUM,
LMPF_VAL_TE_LINK_REMOTE_IPV4,
LMPF_VAL_TE_LINK_REMOTE_IPV6,
LMPF_VAL_TE_LINK_REMOTE_UNNUM,
LMPF_VAL_DATA_LINK_FLAGS,
LMPF_VAL_DATA_LINK_FLAGS_PORT,
LMPF_VAL_DATA_LINK_FLAGS_ALLOCATED,
LMPF_VAL_DATA_LINK_LOCAL_IPV4,
LMPF_VAL_DATA_LINK_LOCAL_IPV6,
LMPF_VAL_DATA_LINK_LOCAL_UNNUM,
LMPF_VAL_DATA_LINK_REMOTE_IPV4,
LMPF_VAL_DATA_LINK_REMOTE_IPV6,
LMPF_VAL_DATA_LINK_REMOTE_UNNUM,
LMPF_VAL_DATA_LINK_SUBOBJ,
LMPF_VAL_DATA_LINK_SUBOBJ_SWITCHING_TYPE,
@ -488,6 +496,8 @@ enum hf_lmp_filter_keys {
LMPF_VAL_LAD_INFO_SUBOBJ_SWITCHING_TYPE,
LMPF_VAL_LAD_INFO_SUBOBJ_LSP_ENCODING,
LMPF_CHECKSUM,
LMPF_MAX
};
@ -729,27 +739,21 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
if (lmp_checksum_config) {
cksum = tvb_get_ntohs(tvb, offset+6);
ti = proto_tree_add_item(lmp_header_tree, hf_lmp_filter[LMPF_CHECKSUM], tvb,
offset+6, 2, ENC_BIG_ENDIAN);
if (!pinfo->fragmented && (int) tvb_length(tvb) >= msg_length) {
/* The packet isn't part of a fragmented datagram and isn't
truncated, so we can checksum it. */
cksum_vec[0].ptr = tvb_get_ptr(tvb, 0, msg_length);
cksum_vec[0].len = msg_length;
computed_cksum = in_cksum(&cksum_vec[0], 1);
/* The packet isn't part of a fragmented datagram and isn't truncated, so we can checksum it. */
cksum_vec[0].ptr = tvb_get_ptr(tvb, 0, msg_length);
cksum_vec[0].len = msg_length;
computed_cksum = in_cksum(&cksum_vec[0], 1);
if (computed_cksum == 0) {
proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2,
"Message Checksum: 0x%04x [correct]",
cksum);
} else {
proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2,
"Message Checksum: 0x%04x [incorrect, should be 0x%04x]",
cksum,
in_cksum_shouldbe(cksum, computed_cksum));
}
} else {
proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2,
"Message Checksum: 0x%04x",
cksum);
if (computed_cksum == 0) {
proto_item_append_text( ti, " [correct]");
}
else {
expert_add_info_format(pinfo, ti, PI_PROTOCOL, PI_WARN, "[incorrect, should be 0x%04x]",
in_cksum_shouldbe(cksum, computed_cksum));
}
}
} else {
proto_tree_add_text(lmp_header_tree, tvb, offset+6, 2, "No checksum");
@ -874,8 +878,8 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
l = (type == 3)? LMPF_VAL_LOCAL_LINK_ID_IPV6:
LMPF_VAL_REMOTE_LINK_ID_IPV6;
proto_item_append_text(ti, ": IPv6 %s", tvb_ip6_to_str(tvb, offset2));
proto_tree_add_text(lmp_object_tree, tvb, offset2, 16, "IPv6: %s",
tvb_ip6_to_str(tvb, offset2));
proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
offset2, 16, ENC_NA);
break;
case 5:
case 6:
@ -912,8 +916,8 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
l = (type == 3)? LMPF_VAL_LOCAL_INTERFACE_ID_IPV6:
LMPF_VAL_REMOTE_INTERFACE_ID_IPV6;
proto_item_append_text(ti, ": IPv6 %s", tvb_ip6_to_str(tvb, offset2));
proto_tree_add_text(lmp_object_tree, tvb, offset2, 16, "IPv6: %s",
tvb_ip6_to_str(tvb, offset2));
proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
offset2, 16, ENC_NA);
break;
case 5:
@ -1130,13 +1134,13 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
case 2:
proto_item_append_text(ti, ": IPv6: Local %s, Remote %s",
tvb_ip6_to_str(tvb, offset2+4),
tvb_ip6_to_str(tvb, offset2+8));
proto_tree_add_text(lmp_object_tree, tvb, offset2+4, 16,
"TE-Link Local ID - IPv6: %s",
tvb_ip6_to_str(tvb, offset2));
proto_tree_add_text(lmp_object_tree, tvb, offset2+20,16,
"TE-Link Remote ID - IPv6: %s",
tvb_ip6_to_str(tvb, offset2+4));
tvb_ip6_to_str(tvb, offset2+20));
proto_tree_add_item(lmp_object_tree,
hf_lmp_filter[LMPF_VAL_TE_LINK_LOCAL_IPV6],
tvb, offset2+4, 16, ENC_NA);
proto_tree_add_item(lmp_object_tree,
hf_lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV6],
tvb, offset2+20, 16, ENC_NA);
break;
case 3:
@ -1380,22 +1384,20 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
for (l=0; l<obj_length - 4; ) {
switch(type) {
case 1:
proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 4,
"Interface ID: IPv4: %s",
tvb_ip_to_str(tvb, offset2+l));
proto_tree_add_item(lmp_object_tree, hf_lmp_filter[LMPF_VAL_CHANNEL_STATUS_INTERFACE_ID_IPV4],
tvb, offset2+l, 4, ENC_BIG_ENDIAN);
l += 4;
break;
case 2:
proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 16, "Interface ID: IPv6: %s",
tvb_ip6_to_str(tvb, offset2+l));
proto_tree_add_item(lmp_object_tree, hf_lmp_filter[LMPF_VAL_CHANNEL_STATUS_INTERFACE_ID_IPV6],
tvb, offset2+l, 16, ENC_NA);
l += 16;
break;
case 3:
proto_tree_add_text(lmp_object_tree, tvb, offset2+l, 4,
"Interface ID: Unnumbered: %d",
tvb_get_ntohl(tvb, offset2+l));
proto_tree_add_item(lmp_object_tree, hf_lmp_filter[LMPF_VAL_CHANNEL_STATUS_INTERFACE_ID_UNNUM],
tvb, offset2+l, 4, ENC_BIG_ENDIAN);
l += 4;
break;
@ -1732,15 +1734,13 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
tvb_get_ntohs(tvb, offset2+8),
tvb_get_ntohs(tvb, offset2+10));
proto_tree_add_uint(lmp_object_tree,
proto_tree_add_item(lmp_object_tree,
hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MIN_NVC],
tvb, offset2+8, 2,
tvb_get_ntohs(tvb, offset2+8));
tvb, offset2+8, 2, ENC_BIG_ENDIAN);
proto_tree_add_uint(lmp_object_tree,
proto_tree_add_item(lmp_object_tree,
hf_lmp_filter[LMPF_VAL_SERVICE_CONFIG_CPSA_MAX_NVC],
tvb, offset2+10, 2,
tvb_get_ntohs(tvb, offset2+10));
tvb, offset2+10, 2, ENC_BIG_ENDIAN);
/* Local interface ID */
proto_item_append_text(ti, ": Local Interface ID %s",
@ -1836,16 +1836,14 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
switch(type) {
case 1:
l = LMPF_VAL_LOCAL_DA_DCN_ADDR;
proto_item_append_text(ti, ": %s", tvb_ip_to_str(tvb, offset2));
proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
proto_tree_add_item(lmp_object_tree, hf_lmp_filter[LMPF_VAL_LOCAL_DA_DCN_ADDR], tvb,
offset2, 4, ENC_BIG_ENDIAN);
break;
case 2:
l = LMPF_VAL_REMOTE_DA_DCN_ADDR;
proto_item_append_text(ti, ": %s", tvb_ip_to_str(tvb, offset2));
proto_tree_add_item(lmp_object_tree, hf_lmp_filter[l], tvb,
proto_tree_add_item(lmp_object_tree, hf_lmp_filter[LMPF_VAL_REMOTE_DA_DCN_ADDR], tvb,
offset2, 4, ENC_BIG_ENDIAN);
break;
@ -2302,11 +2300,17 @@ proto_register_lmp(void)
{&hf_lmp_filter[LMPF_VAL_LOCAL_LINK_ID_IPV4],
{ "Local Link ID - IPv4", "lmp.local_linkid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_LOCAL_LINK_ID_IPV6],
{ "Local Link ID - IPv6", "lmp.local_linkid_ipv6", FT_IPv6, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_LOCAL_LINK_ID_UNNUM],
{ "Local Link ID - Unnumbered", "lmp.local_linkid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_REMOTE_LINK_ID_IPV4],
{ "Remote Link ID - IPv4", "lmp.remote_linkid_ipv4", FT_UINT32, BASE_DEC, NULL, 0x0,
{ "Remote Link ID - IPv4", "lmp.remote_linkid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_REMOTE_LINK_ID_IPV6],
{ "Remote Link ID - IPv6", "lmp.remote_linkid_ipv6", FT_IPv6, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_REMOTE_LINK_ID_UNNUM],
{ "Remote Link ID - Unnumbered", "lmp.remote_linkid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
@ -2315,16 +2319,30 @@ proto_register_lmp(void)
{&hf_lmp_filter[LMPF_VAL_LOCAL_INTERFACE_ID_IPV4],
{ "Local Interface ID - IPv4", "lmp.local_interfaceid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_LOCAL_INTERFACE_ID_IPV6],
{ "Local Interface ID - IPv6", "lmp.local_interfaceid_ipv6", FT_IPv6, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_LOCAL_INTERFACE_ID_UNNUM],
{ "Local Interface ID - Unnumbered", "lmp.local_interfaceid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_REMOTE_INTERFACE_ID_IPV4],
{ "Remote Interface ID - IPv4", "lmp.remote_interfaceid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_REMOTE_INTERFACE_ID_IPV6],
{ "Remote Interface ID - IPv6", "lmp.remote_interfaceid_ipv6", FT_IPv6, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_REMOTE_INTERFACE_ID_UNNUM],
{ "Remote Interface ID - Unnumbered", "lmp.remote_interfaceid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_CHANNEL_STATUS_INTERFACE_ID_IPV4],
{ "Interface ID: IPv4", "lmp.channel_status_interfaceid_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_CHANNEL_STATUS_INTERFACE_ID_IPV6],
{ "Interface ID: IPv6", "lmp.channel_status_interfaceid_ipv6", FT_IPv6, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_CHANNEL_STATUS_INTERFACE_ID_UNNUM],
{ "Interface ID: Unnumbered", "lmp.channel_status_interfaceid_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_MESSAGE_ID],
{ "Message-ID Value", "lmp.messageid", FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
@ -2375,12 +2393,18 @@ proto_register_lmp(void)
{&hf_lmp_filter[LMPF_VAL_TE_LINK_LOCAL_IPV4],
{ "TE-Link Local ID - IPv4", "lmp.te_link.local_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_TE_LINK_LOCAL_IPV6],
{ "TE-Link Local ID - IPv6", "lmp.te_link.local_ipv6", FT_IPv6, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_TE_LINK_LOCAL_UNNUM],
{ "TE-Link Local ID - Unnumbered", "lmp.te_link.local_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV4],
{ "TE-Link Remote ID - IPv4", "lmp.te_link.remote_ipv4", FT_IPv4, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_TE_LINK_REMOTE_IPV6],
{ "TE-Link Remote ID - IPv6", "lmp.te_link.remote_ipv6", FT_IPv6, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{&hf_lmp_filter[LMPF_VAL_TE_LINK_REMOTE_UNNUM],
{ "TE-Link Remote ID - Unnumbered", "lmp.te_link.remote_unnum", FT_UINT32, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
@ -2677,6 +2701,9 @@ proto_register_lmp(void)
{&hf_lmp_filter[LMPF_VAL_LAD_INFO_SUBOBJ_LSP_ENCODING],
{ "LSP Encoding Type", "lmp.lad_encoding", FT_UINT8, BASE_DEC|BASE_RANGE_STRING,
RVALS(gmpls_lsp_enc_rvals), 0x0, NULL, HFILL }},
{&hf_lmp_filter[LMPF_CHECKSUM],
{ "Message Checksum", "lmp.checksum", FT_UINT16, BASE_HEX, NULL, 0x0,
NULL, HFILL }},
};
for (i=0; i<NUM_LMP_SUBTREES; i++) {