aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-sccp.c
diff options
context:
space:
mode:
authorJeff Morriss <jeff.morriss@ulticom.com>2012-07-06 21:25:47 +0000
committerJeff Morriss <jeff.morriss@ulticom.com>2012-07-06 21:25:47 +0000
commitdd105b80d854cd0e8651f682e2d5b08417756c6a (patch)
tree4eaeaedb6973685c16a0325a4e87dcabd6c172c4 /epan/dissectors/packet-sccp.c
parenta898b392e2246f59ce936b4f07e46ce3f9cc25e4 (diff)
Display (and allow filtering on) the "reserved for national use" bit in the AI.
(This bit is already decoded as the "national indicator" bit in ANSI.) svn path=/trunk/; revision=43590
Diffstat (limited to 'epan/dissectors/packet-sccp.c')
-rw-r--r--epan/dissectors/packet-sccp.c36
1 files changed, 27 insertions, 9 deletions
diff --git a/epan/dissectors/packet-sccp.c b/epan/dissectors/packet-sccp.c
index f41d89ff87..005a55ee60 100644
--- a/epan/dissectors/packet-sccp.c
+++ b/epan/dissectors/packet-sccp.c
@@ -202,7 +202,7 @@ static const value_string sccp_parameter_values[] = {
#define ANSI_PC_INDICATOR_MASK 0x02
#define ANSI_SSN_INDICATOR_MASK 0x01
-static const value_string sccp_national_indicator_values[] = {
+static const value_string sccp_ansi_national_indicator_values[] = {
{ 0x0, "Address coded to International standard" },
{ 0x1, "Address coded to National standard" },
{ 0, NULL } };
@@ -596,7 +596,8 @@ static int hf_sccp_ssn = -1;
static int hf_sccp_gt_digits = -1;
/* Called Party address */
-static int hf_sccp_called_national_indicator = -1;
+static int hf_sccp_called_ansi_national_indicator = -1;
+static int hf_sccp_called_itu_natl_use_bit = -1;
static int hf_sccp_called_routing_indicator = -1;
static int hf_sccp_called_itu_global_title_indicator = -1;
static int hf_sccp_called_ansi_global_title_indicator = -1;
@@ -621,7 +622,8 @@ static int hf_sccp_called_gt_digits = -1;
static int hf_sccp_called_gt_digits_length = -1;
/* Calling party address */
-static int hf_sccp_calling_national_indicator = -1;
+static int hf_sccp_calling_ansi_national_indicator = -1;
+static int hf_sccp_calling_itu_natl_use_bit = -1;
static int hf_sccp_calling_routing_indicator = -1;
static int hf_sccp_calling_itu_global_title_indicator = -1;
static int hf_sccp_calling_ansi_global_title_indicator = -1;
@@ -1766,13 +1768,19 @@ dissect_sccp_called_calling_param(tvbuff_t *tvb, proto_tree *tree, packet_info *
if (decode_mtp3_standard == ANSI_STANDARD) {
national = tvb_get_guint8(tvb, 0) & ANSI_NATIONAL_MASK;
- expert_item = proto_tree_add_uint(call_ai_tree, called ? hf_sccp_called_national_indicator
- : hf_sccp_calling_national_indicator,
+ expert_item = proto_tree_add_uint(call_ai_tree, called ? hf_sccp_called_ansi_national_indicator
+ : hf_sccp_calling_ansi_national_indicator,
tvb, 0, ADDRESS_INDICATOR_LENGTH, national);
if (national == 0)
expert_add_info_format(pinfo, expert_item, PI_MALFORMED, PI_WARN, "Address is coded to "
"international standards. This doesn't normally happen in ANSI "
"networks.");
+ } else {
+ guint8 natl_use_bit = tvb_get_guint8(tvb, 0) & ITU_RESERVED_MASK;
+
+ proto_tree_add_uint(call_ai_tree, called ? hf_sccp_called_itu_natl_use_bit
+ : hf_sccp_calling_itu_natl_use_bit,
+ tvb, 0, ADDRESS_INDICATOR_LENGTH, natl_use_bit);
}
routing_ind = tvb_get_guint8(tvb, 0) & ROUTING_INDICATOR_MASK;
@@ -3513,9 +3521,14 @@ proto_register_sccp(void)
FT_STRING, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
- { &hf_sccp_called_national_indicator,
+ { &hf_sccp_called_ansi_national_indicator,
{ "National Indicator", "sccp.called.ni",
- FT_UINT8, BASE_HEX, VALS(sccp_national_indicator_values), ANSI_NATIONAL_MASK,
+ FT_UINT8, BASE_HEX, VALS(sccp_ansi_national_indicator_values), ANSI_NATIONAL_MASK,
+ NULL, HFILL}
+ },
+ { &hf_sccp_called_itu_natl_use_bit,
+ { "Reserved for national use", "sccp.called.reserved",
+ FT_UINT8, BASE_HEX, NULL, ITU_RESERVED_MASK,
NULL, HFILL}
},
{ &hf_sccp_called_routing_indicator,
@@ -3628,9 +3641,14 @@ proto_register_sccp(void)
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
- { &hf_sccp_calling_national_indicator,
+ { &hf_sccp_calling_ansi_national_indicator,
{ "National Indicator", "sccp.calling.ni",
- FT_UINT8, BASE_HEX, VALS(sccp_national_indicator_values), ANSI_NATIONAL_MASK,
+ FT_UINT8, BASE_HEX, VALS(sccp_ansi_national_indicator_values), ANSI_NATIONAL_MASK,
+ NULL, HFILL}
+ },
+ { &hf_sccp_calling_itu_natl_use_bit,
+ { "Reserved for national use", "sccp.calling.reserved",
+ FT_UINT8, BASE_HEX, NULL, ITU_RESERVED_MASK,
NULL, HFILL}
},
{ &hf_sccp_calling_routing_indicator,