aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-nsip.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-nsip.c')
-rw-r--r--epan/dissectors/packet-nsip.c33
1 files changed, 15 insertions, 18 deletions
diff --git a/epan/dissectors/packet-nsip.c b/epan/dissectors/packet-nsip.c
index 88377863c8..0aca414b2b 100644
--- a/epan/dissectors/packet-nsip.c
+++ b/epan/dissectors/packet-nsip.c
@@ -59,6 +59,7 @@ static int hf_nsip_ip_address_ipv4 = -1;
static int hf_nsip_ip_address_ipv6 = -1;
static int hf_nsip_end_flag = -1;
static int hf_nsip_end_flag_spare = -1;
+static int hf_nsip_control_bits = -1;
static int hf_nsip_control_bits_r = -1;
static int hf_nsip_control_bits_c = -1;
static int hf_nsip_control_bits_spare = -1;
@@ -594,27 +595,18 @@ decode_iei_end_flag(nsip_ie_t *ie, build_info_t *bi, int ie_start_offset) {
}
static void
-decode_iei_control_bits(nsip_ie_t *ie, build_info_t *bi, int ie_start_offset) {
+decode_iei_control_bits(nsip_ie_t *ie _U_, build_info_t *bi, int ie_start_offset) {
guint8 control_bits;
- proto_tree *field_tree;
+ static const int * flags[] = {
+ &hf_nsip_control_bits_r,
+ &hf_nsip_control_bits_c,
+ &hf_nsip_control_bits_spare,
+ NULL
+ };
control_bits = tvb_get_guint8(bi->tvb, bi->offset);
-
- if (bi->nsip_tree) {
- field_tree = proto_tree_add_subtree_format(bi->nsip_tree, bi->tvb, ie_start_offset,
- ie->total_length, ett_nsip_control_bits, NULL,
- "NS SDU Control bits: %#02x", control_bits);
-
- proto_tree_add_boolean(field_tree, hf_nsip_control_bits_r, bi->tvb,
- bi->offset, 1,
- control_bits & NSIP_MASK_CONTROL_BITS_R);
- proto_tree_add_boolean(field_tree, hf_nsip_control_bits_c, bi->tvb,
- bi->offset, 1,
- control_bits & NSIP_MASK_CONTROL_BITS_C);
- proto_tree_add_uint(field_tree, hf_nsip_control_bits_spare,
- bi->tvb, bi->offset, 1,
- control_bits & NSIP_MASK_CONTROL_BITS_SPARE);
- }
+ proto_tree_add_bitmask(bi->nsip_tree, bi->tvb, ie_start_offset, hf_nsip_control_bits,
+ ett_nsip_control_bits, flags, ENC_NA);
bi->offset++;
if (control_bits & NSIP_MASK_CONTROL_BITS_R) {
@@ -1080,6 +1072,11 @@ proto_register_nsip(void)
FT_UINT8, BASE_HEX, NULL, NSIP_MASK_END_FLAG_SPARE,
NULL, HFILL }
},
+ { &hf_nsip_control_bits,
+ { "NS SDU Control bits", "nsip.control_bits",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }
+ },
{ &hf_nsip_control_bits_r,
{ "Request change flow", "nsip.control_bits.r",
FT_BOOLEAN, 8, TFS(&tfs_set_notset), NSIP_MASK_CONTROL_BITS_R,