diff options
author | David Ameiss <netshark@ameissnet.com> | 2014-10-14 09:14:41 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-10-18 12:29:19 +0000 |
commit | 975b02f879ca1407f40fdf5c3b446edcaa5171a2 (patch) | |
tree | cfbc182f2c5871f25a8e6c11a5ab96dfe6938600 /epan/dissectors | |
parent | 01cf7feb3ea12e40d3a7c9866695823a7747defe (diff) |
Converted numerous proto_tree_add_none_format() calls for bitmask/flag items to proto_tree_add_bitmask().
Correctly set the length of LBT-RM and LBT-RU header blocks.
Various other cosmetic cleanups.
Change-Id: If19bbdeb10176b8059fd4cf657719b3b9817bc6a
Reviewed-on: https://code.wireshark.org/review/4776
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-lbmc.c | 1788 | ||||
-rw-r--r-- | epan/dissectors/packet-lbmpdm.c | 34 | ||||
-rw-r--r-- | epan/dissectors/packet-lbmr.c | 646 | ||||
-rw-r--r-- | epan/dissectors/packet-lbtrm.c | 88 | ||||
-rw-r--r-- | epan/dissectors/packet-lbtru.c | 104 |
5 files changed, 1181 insertions, 1479 deletions
diff --git a/epan/dissectors/packet-lbmc.c b/epan/dissectors/packet-lbmc.c index 56efbf140c..8ee210d6a1 100644 --- a/epan/dissectors/packet-lbmc.c +++ b/epan/dissectors/packet-lbmc.c @@ -3888,6 +3888,7 @@ typedef struct #define LBMC_UME_PROXY_SRC_E_FLAG 0x4000 #define LBMC_UME_PROXY_SRC_C_FLAG 0x2000 #define LBMC_UME_RXREQ_T_FLAG 0x4000 +#define LBMC_UME_RXREQ_MARKER_MASK 0x00FF #define LBMC_LJI_REQ_L_FLAG 0x0001 #define LBMC_LJI_REQ_M_FLAG 0x0002 #define LBMC_LJI_REQ_O_FLAG 0x0004 @@ -4576,9 +4577,8 @@ static int lbmc_uim_tap_handle = -1; static int lbmc_stream_tap_handle = -1; static int hf_lbmc_tag = -1; static int hf_lbmc_topic = -1; -static int hf_lbmc_ver_type = -1; -static int hf_lbmc_ver_type_version = -1; -static int hf_lbmc_ver_type_type = -1; +static int hf_lbmc_version = -1; +static int hf_lbmc_type = -1; static int hf_lbmc_next_hdr = -1; static int hf_lbmc_msglen = -1; static int hf_lbmc_tidx = -1; @@ -4618,8 +4618,7 @@ static int hf_lbmc_apphdr = -1; static int hf_lbmc_apphdr_next_hdr = -1; static int hf_lbmc_apphdr_hdr_len = -1; static int hf_lbmc_apphdr_code = -1; -static int hf_lbmc_apphdr_code_ignore = -1; -static int hf_lbmc_apphdr_code_code = -1; +static int hf_lbmc_apphdr_ignore = -1; static int hf_lbmc_apphdr_data = -1; static int hf_lbmc_apphdr_chain = -1; static int hf_lbmc_apphdr_chain_next_hdr = -1; @@ -4730,9 +4729,8 @@ static int hf_lbmc_ume_preg_flags_f_flag = -1; static int hf_lbmc_ume_preg_flags_p_flag = -1; static int hf_lbmc_ume_preg_flags_w_flag = -1; static int hf_lbmc_ume_preg_flags_d_flag = -1; +static int hf_lbmc_ume_preg_s_flag = -1; static int hf_lbmc_ume_preg_marker = -1; -static int hf_lbmc_ume_preg_marker_s_flag = -1; -static int hf_lbmc_ume_preg_marker_marker = -1; static int hf_lbmc_ume_preg_reg_id = -1; static int hf_lbmc_ume_preg_transport_idx = -1; static int hf_lbmc_ume_preg_topic_idx = -1; @@ -4751,9 +4749,8 @@ static int hf_lbmc_ume_preg_resp_code_n_flag = -1; static int hf_lbmc_ume_preg_resp_code_w_flag = -1; static int hf_lbmc_ume_preg_resp_code_d_flag = -1; static int hf_lbmc_ume_preg_resp_code_code = -1; +static int hf_lbmc_ume_preg_resp_s_flag = -1; static int hf_lbmc_ume_preg_resp_marker = -1; -static int hf_lbmc_ume_preg_resp_marker_s_flag = -1; -static int hf_lbmc_ume_preg_resp_marker_marker = -1; static int hf_lbmc_ume_preg_resp_reg_id = -1; static int hf_lbmc_ume_preg_resp_transport_idx = -1; static int hf_lbmc_ume_preg_resp_topic_idx = -1; @@ -4779,6 +4776,7 @@ static int hf_lbmc_ume_rxreq_hdr_len = -1; static int hf_lbmc_ume_rxreq_flags = -1; static int hf_lbmc_ume_rxreq_flags_ignore = -1; static int hf_lbmc_ume_rxreq_flags_tsni_req = -1; +static int hf_lbmc_ume_rxreq_marker = -1; static int hf_lbmc_ume_rxreq_request_idx = -1; static int hf_lbmc_ume_rxreq_transport_idx = -1; static int hf_lbmc_ume_rxreq_id_2 = -1; @@ -4800,9 +4798,8 @@ static int hf_lbmc_ume_keepalive_reg_id = -1; static int hf_lbmc_ume_storeid = -1; static int hf_lbmc_ume_storeid_next_hdr = -1; static int hf_lbmc_ume_storeid_hdr_len = -1; +static int hf_lbmc_ume_storeid_ignore = -1; static int hf_lbmc_ume_storeid_store_id = -1; -static int hf_lbmc_ume_storeid_store_id_ignore = -1; -static int hf_lbmc_ume_storeid_store_id_store_id = -1; static int hf_lbmc_ume_ranged_ack = -1; static int hf_lbmc_ume_ranged_ack_next_hdr = -1; static int hf_lbmc_ume_ranged_ack_hdr_len = -1; @@ -4859,9 +4856,8 @@ static int hf_lbmc_ume_lj_info_qidx = -1; static int hf_lbmc_tsni = -1; static int hf_lbmc_tsni_next_hdr = -1; static int hf_lbmc_tsni_hdr_len = -1; +static int hf_lbmc_tsni_ignore = -1; static int hf_lbmc_tsni_num_recs = -1; -static int hf_lbmc_tsni_num_recs_ignore = -1; -static int hf_lbmc_tsni_num_recs_num_recs = -1; static int hf_lbmc_tsni_rec = -1; static int hf_lbmc_tsni_rec_tidx = -1; static int hf_lbmc_tsni_rec_sqn = -1; @@ -4971,7 +4967,7 @@ static int hf_lbmc_umq_ack_msgs = -1; static int hf_lbmc_umq_ack_msgs_ignore = -1; static int hf_lbmc_umq_ack_msgs_t_flag = -1; static int hf_lbmc_umq_ack_msgs_d_flag = -1; -static int hf_lbmc_umq_ack_msgs_numids = -1; +static int hf_lbmc_umq_ack_numids = -1; static int hf_lbmc_umq_ack_ack_type = -1; static int hf_lbmc_umq_ack_msgid = -1; static int hf_lbmc_umq_ack_msgid_regid = -1; @@ -5730,9 +5726,8 @@ static int hf_lbm_msg_properties = -1; static int hf_lbm_msg_properties_data = -1; static int hf_lbm_msg_properties_data_magic = -1; static int hf_lbm_msg_properties_data_num_fields = -1; -static int hf_lbm_msg_properties_data_vertype = -1; -static int hf_lbm_msg_properties_data_vertype_version = -1; -static int hf_lbm_msg_properties_data_vertype_type = -1; +static int hf_lbm_msg_properties_data_version = -1; +static int hf_lbm_msg_properties_data_type = -1; static int hf_lbm_msg_properties_data_res = -1; static int hf_lbm_msg_properties_hdr = -1; static int hf_lbm_msg_properties_hdr_key_offset = -1; @@ -5762,7 +5757,6 @@ static int hf_reassembly_frame = -1; /* Protocol trees */ static gint ett_lbmc = -1; -static gint ett_lbmc_ver_type = -1; static gint ett_lbmc_frag = -1; static gint ett_lbmc_frag_flags = -1; static gint ett_lbmc_batch = -1; @@ -5772,7 +5766,6 @@ static gint ett_lbmc_tcp_request_flags = -1; static gint ett_lbmc_topicname = -1; static gint ett_lbmc_topicname_flags = -1; static gint ett_lbmc_apphdr = -1; -static gint ett_lbmc_apphdr_code = -1; static gint ett_lbmc_apphdr_chain = -1; static gint ett_lbmc_apphdr_chain_element = -1; static gint ett_lbmc_apphdr_chain_msgprop = -1; @@ -5798,7 +5791,6 @@ static gint ett_lbmc_ssf_creq = -1; static gint ett_lbmc_ssf_creq_flags = -1; static gint ett_lbmc_ume_preg = -1; static gint ett_lbmc_ume_preg_flags = -1; -static gint ett_lbmc_ume_preg_marker = -1; static gint ett_lbmc_ume_preg_resp = -1; static gint ett_lbmc_ume_preg_resp_code = -1; static gint ett_lbmc_ume_preg_resp_marker = -1; @@ -5809,7 +5801,6 @@ static gint ett_lbmc_ume_rxreq_flags = -1; static gint ett_lbmc_ume_keepalive = -1; static gint ett_lbmc_ume_keepalive_flags = -1; static gint ett_lbmc_ume_storeid = -1; -static gint ett_lbmc_ume_storeid_store_id = -1; static gint ett_lbmc_ume_ranged_ack = -1; static gint ett_lbmc_ume_ranged_ack_flags = -1; static gint ett_lbmc_ume_ack_id = -1; @@ -5825,7 +5816,6 @@ static gint ett_lbmc_ume_store_flags = -1; static gint ett_lbmc_ume_lj_info = -1; static gint ett_lbmc_ume_lj_info_flags = -1; static gint ett_lbmc_tsni = -1; -static gint ett_lbmc_tsni_num_recs = -1; static gint ett_lbmc_tsni_rec = -1; static gint ett_lbmc_umq_reg = -1; static gint ett_lbmc_umq_reg_flags = -1; @@ -6015,7 +6005,6 @@ static gint ett_lbmc_extopt_reassembled_data = -1; static gint ett_lbmc_extopt_reassembled_data_cfgopt = -1; static gint ett_lbm_msg_properties = -1; static gint ett_lbm_msg_properties_data = -1; -static gint ett_lbm_msg_properties_data_vertype = -1; static gint ett_lbm_msg_properties_hdr = -1; static gint ett_lbmc_unhandled_hdr = -1; static gint ett_lbm_stream = -1; @@ -6281,18 +6270,17 @@ static int dissect_nhdr_frag(tvbuff_t * tvb, int offset, packet_info * pinfo _U_ { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_frag_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_frag, tvb, offset, L_LBMC_FRAG_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_frag); proto_tree_add_item(subtree, hf_lbmc_frag_next_hdr, tvb, offset + O_LBMC_FRAG_HDR_T_NEXT_HDR, L_LBMC_FRAG_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_frag_hdr_len, tvb, offset + O_LBMC_FRAG_HDR_T_HDR_LEN, L_LBMC_FRAG_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_FRAG_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_frag_flags, tvb, offset + O_LBMC_FRAG_HDR_T_FLAGS, L_LBMC_FRAG_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_frag); - proto_tree_add_item(flags_tree, hf_lbmc_frag_flags_ignore, tvb, offset + O_LBMC_FRAG_HDR_T_FLAGS, L_LBMC_FRAG_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_FRAG_HDR_T_FLAGS, hf_lbmc_frag_flags, ett_lbmc_frag, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_frag_first_sqn, tvb, offset + O_LBMC_FRAG_HDR_T_FIRST_SQN, L_LBMC_FRAG_HDR_T_FIRST_SQN, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_frag_offset, tvb, offset + O_LBMC_FRAG_HDR_T_OFFSET, L_LBMC_FRAG_HDR_T_OFFSET, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_frag_len, tvb, offset + O_LBMC_FRAG_HDR_T_LEN, L_LBMC_FRAG_HDR_T_LEN, ENC_BIG_ENDIAN); @@ -6310,20 +6298,19 @@ static int dissect_nhdr_batch(tvbuff_t * tvb, int offset, packet_info * pinfo _U { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_batch_flags_ignore, + &hf_lbmc_batch_flags_batch_start, + &hf_lbmc_batch_flags_batch_end, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_batch, tvb, offset, L_LBMC_BATCH_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_batch); proto_tree_add_item(subtree, hf_lbmc_batch_next_hdr, tvb, offset + O_LBMC_BATCH_HDR_T_NEXT_HDR, L_LBMC_BATCH_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_batch_hdr_len, tvb, offset + O_LBMC_BATCH_HDR_T_HDR_LEN, L_LBMC_BATCH_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_BATCH_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_batch_flags, tvb, offset + O_LBMC_BATCH_HDR_T_FLAGS, L_LBMC_BATCH_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_batch_flags); - proto_tree_add_item(flags_tree, hf_lbmc_batch_flags_ignore, tvb, offset + O_LBMC_BATCH_HDR_T_FLAGS, L_LBMC_BATCH_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_batch_flags_batch_start, tvb, offset + O_LBMC_BATCH_HDR_T_FLAGS, L_LBMC_BATCH_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_batch_flags_batch_end, tvb, offset + O_LBMC_BATCH_HDR_T_FLAGS, L_LBMC_BATCH_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_BATCH_HDR_T_FLAGS, hf_lbmc_batch_flags, ett_lbmc_batch_flags, flags, ENC_BIG_ENDIAN); return (L_LBMC_BATCH_HDR_T); } @@ -6331,18 +6318,17 @@ static int dissect_nhdr_request(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_tcp_request_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_tcp_request, tvb, offset, L_LBMC_TCP_REQUEST_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tcp_request); proto_tree_add_item(subtree, hf_lbmc_tcp_request_next_hdr, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_NEXT_HDR, L_LBMC_TCP_REQUEST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tcp_request_hdr_len, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_HDR_LEN, L_LBMC_TCP_REQUEST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_tcp_request_flags, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_FLAGS, L_LBMC_TCP_REQUEST_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_tcp_request_flags); - proto_tree_add_item(flags_tree, hf_lbmc_tcp_request_flags_ignore, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_FLAGS, L_LBMC_TCP_REQUEST_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_FLAGS, hf_lbmc_tcp_request_flags, ett_lbmc_tcp_request_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tcp_request_transport, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_TRANSPORT, L_LBMC_TCP_REQUEST_HDR_T_TRANSPORT, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tcp_request_qidx, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_QIDX, L_LBMC_TCP_REQUEST_HDR_T_QIDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tcp_request_port, tvb, offset + O_LBMC_TCP_REQUEST_HDR_T_PORT, L_LBMC_TCP_REQUEST_HDR_T_PORT, ENC_BIG_ENDIAN); @@ -6356,9 +6342,11 @@ static int dissect_nhdr_topicname(tvbuff_t * tvb, int offset, packet_info * pinf proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_topicname_flags_ignore, + NULL + }; int len_dissected = 0; int namelen = 0; proto_item * hdrlen_item = NULL; @@ -6368,10 +6356,7 @@ static int dissect_nhdr_topicname(tvbuff_t * tvb, int offset, packet_info * pinf subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topicname); proto_tree_add_item(subtree, hf_lbmc_topicname_next_hdr, tvb, offset + O_LBMC_TOPICNAME_HDR_T_NEXT_HDR, L_LBMC_TOPICNAME_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_topicname_hdr_len, tvb, offset + O_LBMC_TOPICNAME_HDR_T_HDR_LEN, L_LBMC_TOPICNAME_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_TOPICNAME_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_topicname_flags, tvb, offset + O_LBMC_TOPICNAME_HDR_T_FLAGS, L_LBMC_TOPICNAME_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_topicname_flags); - proto_tree_add_item(flags_tree, hf_lbmc_topicname_flags_ignore, tvb, offset + O_LBMC_TOPICNAME_HDR_T_FLAGS, L_LBMC_TOPICNAME_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_TOPICNAME_HDR_T_FLAGS, hf_lbmc_topicname_flags, ett_lbmc_topicname_flags, flags, ENC_BIG_ENDIAN); len_dissected = L_LBMC_BASIC_HDR_T; namelen = (int) hdrlen - len_dissected; if (namelen > 0) @@ -6392,9 +6377,6 @@ static int dissect_nhdr_apphdr(tvbuff_t * tvb, int offset, packet_info * pinfo _ proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * code_item = NULL; - proto_tree * code_tree = NULL; - guint16 code = 0; int len_dissected = 0; int datalen = 0; proto_item * hdrlen_item = NULL; @@ -6404,11 +6386,8 @@ static int dissect_nhdr_apphdr(tvbuff_t * tvb, int offset, packet_info * pinfo _ subtree = proto_item_add_subtree(subtree_item, ett_lbmc_apphdr); proto_tree_add_item(subtree, hf_lbmc_apphdr_next_hdr, tvb, offset + O_LBMC_APPHDR_HDR_T_NEXT_HDR, L_LBMC_APPHDR_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_apphdr_hdr_len, tvb, offset + O_LBMC_APPHDR_HDR_T_HDR_LEN, L_LBMC_APPHDR_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - code = tvb_get_ntohs(tvb, offset + O_LBMC_APPHDR_HDR_T_CODE); - code_item = proto_tree_add_none_format(subtree, hf_lbmc_apphdr_code, tvb, offset + O_LBMC_APPHDR_HDR_T_CODE, L_LBMC_APPHDR_HDR_T_CODE, "Code: 0x%04x", code); - code_tree = proto_item_add_subtree(code_item, ett_lbmc_apphdr_code); - proto_tree_add_item(code_tree, hf_lbmc_apphdr_code_ignore, tvb, offset + O_LBMC_APPHDR_HDR_T_CODE, L_LBMC_APPHDR_HDR_T_CODE, ENC_BIG_ENDIAN); - proto_tree_add_item(code_tree, hf_lbmc_apphdr_code_code, tvb, offset + O_LBMC_APPHDR_HDR_T_CODE, L_LBMC_APPHDR_HDR_T_CODE, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_apphdr_ignore, tvb, offset + O_LBMC_APPHDR_HDR_T_CODE, L_LBMC_APPHDR_HDR_T_CODE, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_apphdr_code, tvb, offset + O_LBMC_APPHDR_HDR_T_CODE, L_LBMC_APPHDR_HDR_T_CODE, ENC_BIG_ENDIAN); len_dissected = O_LBMC_APPHDR_HDR_T_CODE + L_LBMC_APPHDR_HDR_T_CODE; datalen = (int) hdrlen - len_dissected; if (datalen > 0) @@ -6486,7 +6465,6 @@ static int dissect_nhdr_apphdr_chain_msgprop_element(tvbuff_t * tvb, int offset, { *msg_prop_len += datalen; } - len_dissected += datalen; proto_item_set_len(subtree_item, len_dissected); return (len_dissected); } @@ -6544,18 +6522,17 @@ static int dissect_nhdr_umq_msgid(tvbuff_t * tvb, int offset, packet_info * pinf { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_msgid_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_msgid, tvb, offset, L_LBMC_UMQ_MSGID_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_msgid); proto_tree_add_item(subtree, hf_lbmc_umq_msgid_next_hdr, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_NEXT_HDR, L_LBMC_UMQ_MSGID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_msgid_hdr_len, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_HDR_LEN, L_LBMC_UMQ_MSGID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_msgid_flags, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_FLAGS, L_LBMC_UMQ_MSGID_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_msgid_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_msgid_flags_ignore, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_FLAGS, L_LBMC_UMQ_MSGID_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_FLAGS, hf_lbmc_umq_msgid_flags, ett_lbmc_umq_msgid_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_msgid_msgid_regid, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_MSGID_REGID, L_LBMC_UMQ_MSGID_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_msgid_msgid_stamp, tvb, offset + O_LBMC_UMQ_MSGID_HDR_T_MSGID_STAMP, L_LBMC_UMQ_MSGID_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN); return (L_LBMC_UMQ_MSGID_HDR_T); @@ -6565,23 +6542,22 @@ static int dissect_nhdr_umq_sqd_rcv(tvbuff_t * tvb, int offset, packet_info * pi { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_sqd_rcv_flags_ignore, + &hf_lbmc_umq_sqd_rcv_flags_r_flag, + &hf_lbmc_umq_sqd_rcv_flags_s_flag, + &hf_lbmc_umq_sqd_rcv_flags_re_flag, + &hf_lbmc_umq_sqd_rcv_flags_eoi_flag, + &hf_lbmc_umq_sqd_rcv_flags_boi_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_sqd_rcv, tvb, offset, L_LBMC_UMQ_SQD_RCV_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_sqd_rcv); proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_next_hdr, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_NEXT_HDR, L_LBMC_UMQ_SQD_RCV_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_hdr_len, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_HDR_LEN, L_LBMC_UMQ_SQD_RCV_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_sqd_rcv_flags, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_sqd_rcv_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_sqd_rcv_flags_ignore, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_sqd_rcv_flags_r_flag, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_sqd_rcv_flags_s_flag, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_sqd_rcv_flags_re_flag, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_sqd_rcv_flags_eoi_flag, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_sqd_rcv_flags_boi_flag, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS, hf_lbmc_umq_sqd_rcv_flags, ett_lbmc_umq_sqd_rcv_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_queue_id, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_ID, L_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_queue_ver, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_VER, L_LBMC_UMQ_SQD_RCV_HDR_T_QUEUE_VER, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_sqd_rcv_rcr_idx, tvb, offset + O_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX, L_LBMC_UMQ_SQD_RCV_HDR_T_RCR_IDX, ENC_BIG_ENDIAN); @@ -6607,19 +6583,18 @@ static int dissect_nhdr_umq_resub(tvbuff_t * tvb, int offset, packet_info * pinf { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_resub_flags_ignore, + &hf_lbmc_umq_resub_flags_q_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_resub, tvb, offset, L_LBMC_UMQ_RESUB_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_resub); proto_tree_add_item(subtree, hf_lbmc_umq_resub_next_hdr, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_NEXT_HDR, L_LBMC_UMQ_RESUB_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_hdr_len, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_HDR_LEN, L_LBMC_UMQ_RESUB_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_resub_flags, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_FLAGS, L_LBMC_UMQ_RESUB_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_resub_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_resub_flags_ignore, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_FLAGS, L_LBMC_UMQ_RESUB_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_resub_flags_q_flag, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_FLAGS, L_LBMC_UMQ_RESUB_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_FLAGS, hf_lbmc_umq_resub_flags, ett_lbmc_umq_resub_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_rcr_idx, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_RCR_IDX, L_LBMC_UMQ_RESUB_HDR_T_RCR_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_ip, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_RESP_IP, L_LBMC_UMQ_RESUB_HDR_T_RESP_IP, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_port, tvb, offset + O_LBMC_UMQ_RESUB_HDR_T_RESP_PORT, L_LBMC_UMQ_RESUB_HDR_T_RESP_PORT, ENC_BIG_ENDIAN); @@ -6631,34 +6606,32 @@ static int dissect_nhdr_otid(tvbuff_t * tvb, int offset, packet_info * pinfo _U_ { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_otid_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_otid, tvb, offset, L_LBMC_OTID_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_otid); proto_tree_add_item(subtree, hf_lbmc_otid_next_hdr, tvb, offset + O_LBMC_OTID_HDR_T_NEXT_HDR, L_LBMC_OTID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_otid_hdr_len, tvb, offset + O_LBMC_OTID_HDR_T_HDR_LEN, L_LBMC_OTID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_OTID_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_otid_flags, tvb, offset + O_LBMC_OTID_HDR_T_FLAGS, L_LBMC_OTID_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_otid_flags); - proto_tree_add_item(flags_tree, hf_lbmc_otid_flags_ignore, tvb, offset + O_LBMC_OTID_HDR_T_FLAGS, L_LBMC_OTID_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_OTID_HDR_T_FLAGS, hf_lbmc_otid_flags, ett_lbmc_otid_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_otid_otid, tvb, offset + O_LBMC_OTID_HDR_T_OTID, L_LBMC_OTID_HDR_T_OTID, ENC_NA); return (L_LBMC_OTID_HDR_T); } static void dissect_ctxinst(tvbuff_t * tvb, int offset, proto_tree * tree, lbmc_ctxinst_info_t * info) { - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ctxinst_flags_ignore, + NULL + }; proto_tree_add_item(tree, hf_lbmc_ctxinst_next_hdr, tvb, offset + O_LBMC_CTXINST_HDR_T_NEXT_HDR, L_LBMC_CTXINST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmc_ctxinst_hdr_len, tvb, offset + O_LBMC_CTXINST_HDR_T_HDR_LEN, L_LBMC_CTXINST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CTXINST_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(tree, hf_lbmc_ctxinst_flags, tvb, offset + O_LBMC_CTXINST_HDR_T_FLAGS, L_LBMC_CTXINST_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ctxinst_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ctxinst_flags_ignore, tvb, offset + O_LBMC_CTXINST_HDR_T_FLAGS, L_LBMC_CTXINST_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(tree, tvb, offset + O_LBMC_CTXINST_HDR_T_FLAGS, hf_lbmc_ctxinst_flags, ett_lbmc_ctxinst_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmc_ctxinst_ctxinst, tvb, offset + O_LBMC_CTXINST_HDR_T_CTXINST, L_LBMC_CTXINST_HDR_T_CTXINST, ENC_NA); if (info != NULL) { @@ -6704,18 +6677,17 @@ static int dissect_nhdr_srcidx(tvbuff_t * tvb, int offset, packet_info * pinfo _ { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_srcidx_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_srcidx, tvb, offset, L_LBMC_SRCIDX_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_srcidx); proto_tree_add_item(subtree, hf_lbmc_srcidx_next_hdr, tvb, offset + O_LBMC_SRCIDX_HDR_T_NEXT_HDR, L_LBMC_SRCIDX_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_srcidx_hdr_len, tvb, offset + O_LBMC_SRCIDX_HDR_T_HDR_LEN, L_LBMC_SRCIDX_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_SRCIDX_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_srcidx_flags, tvb, offset + O_LBMC_SRCIDX_HDR_T_FLAGS, L_LBMC_SRCIDX_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_srcidx_flags); - proto_tree_add_item(flags_tree, hf_lbmc_srcidx_flags_ignore, tvb, offset + O_LBMC_SRCIDX_HDR_T_FLAGS, L_LBMC_SRCIDX_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_SRCIDX_HDR_T_FLAGS, hf_lbmc_srcidx_flags, ett_lbmc_srcidx_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_srcidx_srcidx, tvb, offset + O_LBMC_SRCIDX_HDR_T_SRCIDX, L_LBMC_SRCIDX_HDR_T_SRCIDX, ENC_BIG_ENDIAN); return (L_LBMC_SRCIDX_HDR_T); } @@ -6724,20 +6696,19 @@ static int dissect_nhdr_umq_ulb_msg(tvbuff_t * tvb, int offset, packet_info * pi { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_ulb_msg_flags_ignore, + &hf_lbmc_umq_ulb_msg_flags_a_flag, + &hf_lbmc_umq_ulb_msg_flags_r_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ulb_msg, tvb, offset, L_LBMC_UMQ_ULB_MSG_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ulb_msg); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_next_hdr, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_NEXT_HDR, L_LBMC_UMQ_ULB_MSG_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_hdr_len, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_HDR_LEN, L_LBMC_UMQ_ULB_MSG_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_ulb_msg_flags, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_ulb_msg); - proto_tree_add_item(flags_tree, hf_lbmc_umq_ulb_msg_flags_ignore, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_ulb_msg_flags_a_flag, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_ulb_msg_flags_r_flag, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS, hf_lbmc_umq_ulb_msg_flags, ett_lbmc_umq_ulb_msg, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_queue_id, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_QUEUE_ID, L_LBMC_UMQ_ULB_MSG_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_ulb_src_id, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_ULB_SRC_ID, L_LBMC_UMQ_ULB_MSG_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_msg_assign_id, tvb, offset + O_LBMC_UMQ_ULB_MSG_HDR_T_ASSIGN_ID, L_LBMC_UMQ_ULB_MSG_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN); @@ -6750,20 +6721,19 @@ static int dissect_nhdr_ssf_init(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ssf_init_flags_ignore, + &hf_lbmc_ssf_init_flags_default_exclusions, + &hf_lbmc_ssf_init_flags_default_inclusions, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ssf_init, tvb, offset, L_LBMC_CNTL_SSF_INIT_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ssf_init); proto_tree_add_item(subtree, hf_lbmc_ssf_init_next_hdr, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_NEXT_HDR, L_LBMC_CNTL_SSF_INIT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ssf_init_hdr_len, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_HDR_LEN, L_LBMC_CNTL_SSF_INIT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ssf_init_flags, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ssf_init); - proto_tree_add_item(flags_tree, hf_lbmc_ssf_init_flags_ignore, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ssf_init_flags_default_exclusions, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ssf_init_flags_default_inclusions, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS, hf_lbmc_ssf_init_flags, ett_lbmc_ssf_init, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ssf_init_transport, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT, L_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ssf_init_transport_idx, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_SSF_INIT_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ssf_init_client_idx, tvb, offset + O_LBMC_CNTL_SSF_INIT_HDR_T_CLIENT_IDX, L_LBMC_CNTL_SSF_INIT_HDR_T_CLIENT_IDX, ENC_BIG_ENDIAN); @@ -6777,18 +6747,17 @@ static int dissect_nhdr_ssf_creq(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ssf_creq_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ssf_creq, tvb, offset, L_LBMC_CNTL_SSF_CREQ_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ssf_creq); proto_tree_add_item(subtree, hf_lbmc_ssf_creq_next_hdr, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_SSF_CREQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ssf_creq_hdr_len, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_HDR_LEN, L_LBMC_CNTL_SSF_CREQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ssf_creq_flags, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS, L_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ssf_creq); - proto_tree_add_item(flags_tree, hf_lbmc_ssf_creq_flags_ignore, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS, L_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS, hf_lbmc_ssf_creq_flags, ett_lbmc_ssf_creq, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ssf_creq_mode, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_MODE, L_LBMC_CNTL_SSF_CREQ_HDR_T_MODE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ssf_creq_transport_idx, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_SSF_CREQ_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ssf_creq_topic_idx, tvb, offset + O_LBMC_CNTL_SSF_CREQ_HDR_T_TOPIC_IDX, L_LBMC_CNTL_SSF_CREQ_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN); @@ -6800,30 +6769,23 @@ static int dissect_nhdr_ume_preg(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - proto_item * marker_item = NULL; - proto_tree * marker_tree = NULL; - guint8 flags = 0; - guint8 marker = 0; + static const int * flags[] = + { + &hf_lbmc_ume_preg_flags_ignore, + &hf_lbmc_ume_preg_flags_f_flag, + &hf_lbmc_ume_preg_flags_p_flag, + &hf_lbmc_ume_preg_flags_w_flag, + &hf_lbmc_ume_preg_flags_d_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_preg, tvb, offset, L_LBMC_CNTL_UME_PREG_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_preg); proto_tree_add_item(subtree, hf_lbmc_ume_preg_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PREG_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_preg_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PREG_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_preg_flags, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_preg_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_preg_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_preg_flags_f_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_preg_flags_p_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_preg_flags_w_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_preg_flags_d_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - marker = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_MARKER); - marker_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_preg_marker, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER, "Marker: 0x%02x", marker); - marker_tree = proto_item_add_subtree(marker_item, ett_lbmc_ume_preg_marker); - proto_tree_add_item(marker_tree, hf_lbmc_ume_preg_marker_s_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER, ENC_BIG_ENDIAN); - proto_tree_add_item(marker_tree, hf_lbmc_ume_preg_marker_marker, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_FLAGS, hf_lbmc_ume_preg_flags, ett_lbmc_ume_preg_flags, flags, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_ume_preg_s_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_ume_preg_marker, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_preg_reg_id, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_REG_ID, L_LBMC_CNTL_UME_PREG_HDR_T_REG_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_preg_transport_idx, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_PREG_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_preg_topic_idx, tvb, offset + O_LBMC_CNTL_UME_PREG_HDR_T_TOPIC_IDX, L_LBMC_CNTL_UME_PREG_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN); @@ -6838,38 +6800,41 @@ static int dissect_nhdr_ume_preg_resp(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * code_item = NULL; - proto_tree * code_tree = NULL; - proto_item * marker_item = NULL; - proto_tree * marker_tree = NULL; guint8 code = 0; - guint8 marker = 0; + static const int * codes[] = + { + &hf_lbmc_ume_preg_resp_code_ignore, + &hf_lbmc_ume_preg_resp_code_o_flag, + &hf_lbmc_ume_preg_resp_code_e_flag, + &hf_lbmc_ume_preg_resp_code_n_flag, + &hf_lbmc_ume_preg_resp_code_w_flag, + &hf_lbmc_ume_preg_resp_code_d_flag, + NULL + }; + static const int * codes_e[] = + { + &hf_lbmc_ume_preg_resp_code_ignore, + &hf_lbmc_ume_preg_resp_code_o_flag, + &hf_lbmc_ume_preg_resp_code_e_flag, + &hf_lbmc_ume_preg_resp_code_code, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_preg_resp, tvb, offset, L_LBMC_CNTL_UME_PREG_RESP_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_preg_resp); proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); code = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE); - code_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_preg_resp_code, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, "Code: 0x%02x", code); - code_tree = proto_item_add_subtree(code_item, ett_lbmc_ume_preg_resp_code); - proto_tree_add_item(code_tree, hf_lbmc_ume_preg_resp_code_ignore, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, ENC_BIG_ENDIAN); - proto_tree_add_item(code_tree, hf_lbmc_ume_preg_resp_code_o_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, ENC_BIG_ENDIAN); - proto_tree_add_item(code_tree, hf_lbmc_ume_preg_resp_code_e_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, ENC_BIG_ENDIAN); if ((code & LBMC_UME_PREG_RESP_E_FLAG) == 0) { - proto_tree_add_item(code_tree, hf_lbmc_ume_preg_resp_code_n_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, ENC_BIG_ENDIAN); - proto_tree_add_item(code_tree, hf_lbmc_ume_preg_resp_code_w_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, ENC_BIG_ENDIAN); - proto_tree_add_item(code_tree, hf_lbmc_ume_preg_resp_code_d_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, hf_lbmc_ume_preg_resp_code, ett_lbmc_ume_preg_resp_code, codes, ENC_BIG_ENDIAN); } else { - proto_tree_add_item(code_tree, hf_lbmc_ume_preg_resp_code_code, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE, hf_lbmc_ume_preg_resp_code, ett_lbmc_ume_preg_resp_code, codes_e, ENC_BIG_ENDIAN); } - marker = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER); - marker_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_preg_resp_marker, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, "Marker: 0x%02x", marker); - marker_tree = proto_item_add_subtree(marker_item, ett_lbmc_ume_preg_resp_marker); - proto_tree_add_item(marker_tree, hf_lbmc_ume_preg_resp_marker_s_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, ENC_BIG_ENDIAN); - proto_tree_add_item(marker_tree, hf_lbmc_ume_preg_resp_marker_marker, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_s_flag, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_marker, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_reg_id, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_REG_ID, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_REG_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_transport_idx, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_preg_resp_topic_idx, tvb, offset + O_LBMC_CNTL_UME_PREG_RESP_HDR_T_TOPIC_IDX, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN); @@ -6882,22 +6847,21 @@ static int dissect_nhdr_ume_ack(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_ack_flags_ignore, + &hf_lbmc_ume_ack_flags_o_flag, + &hf_lbmc_ume_ack_flags_f_flag, + &hf_lbmc_ume_ack_flags_u_flag, + &hf_lbmc_ume_ack_flags_e_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ack, tvb, offset, L_LBMC_CNTL_UME_ACK_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ack); proto_tree_add_item(subtree, hf_lbmc_ume_ack_next_hdr, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_ACK_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_ack_hdr_len, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_ACK_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_ack_flags, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_ack_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_ack_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_ack_flags_o_flag, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_ack_flags_f_flag, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_ack_flags_u_flag, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_ack_flags_e_flag, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_FLAGS, hf_lbmc_ume_ack_flags, ett_lbmc_ume_ack_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_ack_type, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_TYPE, L_LBMC_CNTL_UME_ACK_HDR_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_ack_transport_idx, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_ACK_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_ack_id_2, tvb, offset + O_LBMC_CNTL_UME_ACK_HDR_T_ID_2, L_LBMC_CNTL_UME_ACK_HDR_T_ID_2, ENC_BIG_ENDIAN); @@ -6910,19 +6874,19 @@ static int dissect_nhdr_ume_rxreq(tvbuff_t * tvb, int offset, packet_info * pinf { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_rxreq_flags_ignore, + &hf_lbmc_ume_rxreq_flags_tsni_req, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_rxreq, tvb, offset, L_LBMC_CNTL_UME_RXREQ_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_rxreq); proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_next_hdr, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_RXREQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_hdr_len, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_RXREQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_rxreq_flags, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_rxreq_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_rxreq_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_rxreq_flags_tsni_req, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, hf_lbmc_ume_rxreq_flags, ett_lbmc_ume_rxreq_flags, flags, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_marker, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_request_idx, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_REQUEST_IDX, L_LBMC_CNTL_UME_RXREQ_HDR_T_REQUEST_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_transport_idx, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_RXREQ_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_rxreq_id_2, tvb, offset + O_LBMC_CNTL_UME_RXREQ_HDR_T_ID_2, L_LBMC_CNTL_UME_RXREQ_HDR_T_ID_2, ENC_BIG_ENDIAN); @@ -6937,20 +6901,19 @@ static int dissect_nhdr_ume_keepalive(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_keepalive_flags_ignore, + &hf_lbmc_ume_keepalive_flags_r_flag, + &hf_lbmc_ume_keepalive_flags_t_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_keepalive, tvb, offset, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_keepalive); proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_next_hdr, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_hdr_len, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_keepalive_flags, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_keepalive_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_keepalive_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_keepalive_flags_r_flag, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_keepalive_flags_t_flag, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS, hf_lbmc_ume_keepalive_flags, ett_lbmc_ume_keepalive_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_type, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TYPE, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_transport_idx, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_keepalive_topic_idx, tvb, offset + O_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TOPIC_IDX, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN); @@ -6962,19 +6925,13 @@ static int dissect_nhdr_ume_storeid(tvbuff_t * tvb, int offset, packet_info * pi { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * storeid_item = NULL; - proto_tree * storeid_tree = NULL; - guint16 store_id = 0; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_storeid, tvb, offset, L_LBMC_CNTL_UME_STOREID_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_storeid); proto_tree_add_item(subtree, hf_lbmc_ume_storeid_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STOREID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_storeid_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STOREID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - store_id = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID); - storeid_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_storeid_store_id, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, "Store ID: 0x%04x", store_id); - storeid_tree = proto_item_add_subtree(storeid_item, ett_lbmc_ume_storeid_store_id); - proto_tree_add_item(storeid_tree, hf_lbmc_ume_storeid_store_id_ignore, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, ENC_BIG_ENDIAN); - proto_tree_add_item(storeid_tree, hf_lbmc_ume_storeid_store_id_store_id, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_ume_storeid_ignore, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_ume_storeid_store_id, tvb, offset + O_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UME_STOREID_HDR_T); } @@ -6982,18 +6939,17 @@ static int dissect_nhdr_ume_ranged_ack(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_ranged_ack_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ranged_ack, tvb, offset, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ranged_ack); proto_tree_add_item(subtree, hf_lbmc_ume_ranged_ack_next_hdr, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_ranged_ack_hdr_len, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_ranged_ack_flags, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_ranged_ack_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_ranged_ack_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS, hf_lbmc_ume_ranged_ack_flags, ett_lbmc_ume_ranged_ack_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_ranged_ack_first_seqnum, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FIRST_SEQNUM, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FIRST_SEQNUM, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_ranged_ack_last_seqnum, tvb, offset + O_LBMC_CNTL_UME_RANGED_ACK_HDR_T_LAST_SEQNUM, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_LAST_SEQNUM, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UME_RANGED_ACK_HDR_T); @@ -7003,18 +6959,17 @@ static int dissect_nhdr_ume_ack_id(tvbuff_t * tvb, int offset, packet_info * pin { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_ack_id_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_ack_id, tvb, offset, L_LBMC_CNTL_UME_ACK_ID_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_ack_id); proto_tree_add_item(subtree, hf_lbmc_ume_ack_id_next_hdr, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_ACK_ID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_ack_id_hdr_len, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_ACK_ID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_ack_id_flags, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS, L_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_ack_id_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_ack_id_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS, L_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS, hf_lbmc_ume_ack_id_flags, ett_lbmc_ume_ack_id_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_ack_id_id, tvb, offset + O_LBMC_CNTL_UME_ACK_ID_HDR_T_ID, L_LBMC_CNTL_UME_ACK_ID_HDR_T_ID, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UME_ACK_ID_HDR_T); } @@ -7023,20 +6978,19 @@ static int dissect_nhdr_ume_capability(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_capability_flags_ignore, + &hf_lbmc_ume_capability_flags_qc_flag, + &hf_lbmc_ume_capability_flags_client_lifetime_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_capability, tvb, offset, L_LBMC_CNTL_UME_CAPABILITY_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_capability); proto_tree_add_item(subtree, hf_lbmc_ume_capability_next_hdr, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_capability_hdr_len, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_capability_flags, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_capability_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_capability_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_capability_flags_qc_flag, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_capability_flags_client_lifetime_flag, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS, hf_lbmc_ume_capability_flags, ett_lbmc_ume_capability_flags, flags, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UME_CAPABILITY_HDR_T); } @@ -7044,20 +6998,19 @@ static int dissect_nhdr_ume_proxy_src(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_proxy_src_flags_ignore, + &hf_lbmc_ume_proxy_src_flags_enable, + &hf_lbmc_ume_proxy_src_flags_compatibility, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_proxy_src, tvb, offset, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_proxy_src); proto_tree_add_item(subtree, hf_lbmc_ume_proxy_src_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_proxy_src_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_proxy_src_flags, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_proxy_src_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_proxy_src_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_proxy_src_flags_enable, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_proxy_src_flags_compatibility, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS, hf_lbmc_ume_proxy_src_flags, ett_lbmc_ume_proxy_src_flags, flags, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UME_PROXY_SRC_HDR_T); } @@ -7065,18 +7018,17 @@ static int dissect_nhdr_ume_store_group(tvbuff_t * tvb, int offset, packet_info { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_store_group_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store_group, tvb, offset, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store_group); proto_tree_add_item(subtree, hf_lbmc_ume_store_group_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_group_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_store_group_flags, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_store_group_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_store_group_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_FLAGS, hf_lbmc_ume_store_group_flags, ett_lbmc_ume_store_group_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_group_grp_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_IDX, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_group_grp_sz, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_SZ, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_GRP_SZ, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_group_res1, tvb, offset + O_LBMC_CNTL_UME_STORE_GROUP_HDR_T_RES1, L_LBMC_CNTL_UME_STORE_GROUP_HDR_T_RES1, ENC_BIG_ENDIAN); @@ -7087,18 +7039,17 @@ static int dissect_nhdr_ume_store(tvbuff_t * tvb, int offset, packet_info * pinf { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_store_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store, tvb, offset, L_LBMC_CNTL_UME_STORE_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store); proto_tree_add_item(subtree, hf_lbmc_ume_store_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STORE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STORE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_store_flags, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_FLAGS, L_LBMC_CNTL_UME_STORE_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_store_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_store_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_FLAGS, L_LBMC_CNTL_UME_STORE_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_FLAGS, hf_lbmc_ume_store_flags, ett_lbmc_ume_store_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_grp_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_GRP_IDX, L_LBMC_CNTL_UME_STORE_HDR_T_GRP_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_store_tcp_port, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_STORE_TCP_PORT, L_LBMC_CNTL_UME_STORE_HDR_T_STORE_TCP_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_store_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_HDR_T_STORE_IDX, L_LBMC_CNTL_UME_STORE_HDR_T_STORE_IDX, ENC_BIG_ENDIAN); @@ -7111,18 +7062,17 @@ static int dissect_nhdr_ume_lj_info(tvbuff_t * tvb, int offset, packet_info * pi { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_lj_info_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_lj_info, tvb, offset, L_LBMC_CNTL_UME_LJ_INFO_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_lj_info); proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_next_hdr, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_hdr_len, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_lj_info_flags, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_lj_info_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_lj_info_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS, hf_lbmc_ume_lj_info_flags, ett_lbmc_ume_lj_info_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_low_seqnum, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_LOW_SEQNUM, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_LOW_SEQNUM, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_high_seqnum, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_HIGH_SEQNUM, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_HIGH_SEQNUM, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_lj_info_qidx, tvb, offset + O_LBMC_CNTL_UME_LJ_INFO_HDR_T_QIDX, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_QIDX, ENC_BIG_ENDIAN); @@ -7152,8 +7102,6 @@ static int dissect_nhdr_tsni(tvbuff_t * tvb, int offset, packet_info * pinfo, pr guint8 hdrlen = 0; guint8 hdrlen_remaining; int rec_offset = 0; - proto_item * num_recs_subtree_item = NULL; - proto_tree * num_recs_subtree = NULL; int len_dissected = 0; hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_HDR_LEN); @@ -7161,10 +7109,8 @@ static int dissect_nhdr_tsni(tvbuff_t * tvb, int offset, packet_info * pinfo, pr subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tsni); proto_tree_add_item(subtree, hf_lbmc_tsni_next_hdr, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_NEXT_HDR, L_LBMC_CNTL_TSNI_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tsni_hdr_len, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_HDR_LEN, L_LBMC_CNTL_TSNI_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - num_recs_subtree_item = proto_tree_add_item(subtree, hf_lbmc_tsni_num_recs, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, ENC_NA); - num_recs_subtree = proto_item_add_subtree(num_recs_subtree_item, ett_lbmc_tsni_num_recs); - proto_tree_add_item(num_recs_subtree, hf_lbmc_tsni_num_recs_ignore, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, ENC_BIG_ENDIAN); - proto_tree_add_item(num_recs_subtree, hf_lbmc_tsni_num_recs_num_recs, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_tsni_ignore, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_tsni_num_recs, tvb, offset + O_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS, ENC_BIG_ENDIAN); len_dissected = L_LBMC_CNTL_TSNI_HDR_T; hdrlen_remaining = hdrlen - L_LBMC_CNTL_TSNI_HDR_T; rec_offset = L_LBMC_CNTL_TSNI_HDR_T; @@ -7293,25 +7239,24 @@ static int dissect_nhdr_umq_reg(tvbuff_t * tvb, int offset, packet_info * pinfo, guint8 hdrlen = 0; guint8 reg_type = 0; int len_dissected = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags; int len = 0; proto_item * reg_type_item = NULL; + static const int * flags[] = + { + &hf_lbmc_umq_reg_flags_ignore, + &hf_lbmc_umq_reg_flags_r_flag, + &hf_lbmc_umq_reg_flags_t_flag, + &hf_lbmc_umq_reg_flags_i_flag, + &hf_lbmc_umq_reg_flags_msg_sel_flag, + NULL + }; hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN); subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg, tvb, offset, (gint)hdrlen, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg); proto_tree_add_item(subtree, hf_lbmc_umq_reg_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_REG_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_reg_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_REG_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_reg_flags, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_reg_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_flags_r_flag, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_flags_t_flag, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_flags_i_flag, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_flags_msg_sel_flag, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS, hf_lbmc_umq_reg_flags, ett_lbmc_umq_reg_flags, flags, ENC_BIG_ENDIAN); reg_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_reg_reg_type, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE, L_LBMC_CNTL_UMQ_REG_HDR_T_REG_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_reg_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_REG_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_reg_cmd_id, tvb, offset + O_LBMC_CNTL_UMQ_REG_HDR_T_CMD_ID, L_LBMC_CNTL_UMQ_REG_HDR_T_CMD_ID, ENC_BIG_ENDIAN); @@ -7371,18 +7316,17 @@ static int dissect_nhdr_umq_reg_resp_ctx_ex(tvbuff_t * tvb, int offset, packet_i { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_reg_resp_reg_ctx_ex_flags_firstmsg, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_reg_resp_reg_ctx_ex, tvb, offset, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp_reg_ctx_ex); proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ctx_ex_capabilities, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_CAPABILITIES, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_CAPABILITIES, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ctx_ex_reserved, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_RESERVED, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_reg_resp_reg_ctx_ex_flags, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_reg_resp_reg_ctx_ex_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_resp_reg_ctx_ex_flags_firstmsg, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS, hf_lbmc_umq_reg_resp_reg_ctx_ex_flags, ett_lbmc_umq_reg_resp_reg_ctx_ex_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_reg_ctx_ex_stamp, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_STAMP, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_STAMP, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T); } @@ -7496,9 +7440,28 @@ static int dissect_nhdr_umq_reg_resp(tvbuff_t * tvb, int offset, packet_info * p guint8 hdrlen = 0; guint8 resp_type = 0; int len_dissected = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags; + static const int * flags[] = + { + &hf_lbmc_umq_reg_resp_flags_ignore, + &hf_lbmc_umq_reg_resp_flags_r_flag, + NULL + }; + static const int * flags_err[] = + { + &hf_lbmc_umq_reg_resp_flags_ignore, + &hf_lbmc_umq_reg_resp_flags_r_flag, + &hf_lbmc_umq_reg_resp_flags_l_flag, + NULL + }; + static const int * flags_src[] = + { + &hf_lbmc_umq_reg_resp_flags_ignore, + &hf_lbmc_umq_reg_resp_flags_r_flag, + &hf_lbmc_umq_reg_resp_flags_src_s_flag, + &hf_lbmc_umq_reg_resp_flags_src_d_flag, + NULL + }; + int len = 0; proto_item * resp_type_item = NULL; @@ -7508,37 +7471,24 @@ static int dissect_nhdr_umq_reg_resp(tvbuff_t * tvb, int offset, packet_info * p subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_reg_resp); proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_reg_resp_flags, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_reg_resp_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_resp_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_resp_flags_r_flag, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, ENC_BIG_ENDIAN); switch (resp_type) { case LBMC_UMQ_REG_RESP_CTX_TYPE: - break; case LBMC_UMQ_REG_RESP_CTX_EX_TYPE: - break; - case LBMC_UMQ_REG_RESP_ERR_TYPE: - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_resp_flags_l_flag, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, ENC_BIG_ENDIAN); - break; - case LBMC_UMQ_REG_RESP_SRC_TYPE: - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_resp_flags_src_s_flag, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_reg_resp_flags_src_d_flag, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, ENC_BIG_ENDIAN); - break; case LBMC_UMQ_REG_RESP_RCV_TYPE: - break; case LBMC_UMQ_REG_RESP_OBSERVER_RCV_TYPE: - break; case LBMC_UMQ_REG_RESP_RCV_DEREG_TYPE: - break; case LBMC_UMQ_REG_RESP_OBSERVER_RCV_DEREG_TYPE: - break; case LBMC_UMQ_REG_RESP_ULB_RCV_TYPE: - break; case LBMC_UMQ_REG_RESP_ULB_RCV_DEREG_TYPE: - break; default: + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, hf_lbmc_umq_reg_resp_flags, ett_lbmc_umq_reg_resp_flags, flags, ENC_BIG_ENDIAN); + break; + case LBMC_UMQ_REG_RESP_ERR_TYPE: + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, hf_lbmc_umq_reg_resp_flags, ett_lbmc_umq_reg_resp_flags, flags_err, ENC_BIG_ENDIAN); + break; + case LBMC_UMQ_REG_RESP_SRC_TYPE: + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS, hf_lbmc_umq_reg_resp_flags, ett_lbmc_umq_reg_resp_flags, flags_src, ENC_BIG_ENDIAN); break; } resp_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_reg_resp_resp_type, tvb, offset + O_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_REG_RESP_TYPE, ENC_BIG_ENDIAN); @@ -7651,9 +7601,14 @@ static int dissect_nhdr_umq_ack(tvbuff_t * tvb, int offset, packet_info * pinfo, guint8 num_ids = 0; guint8 idx; int len_dissected = 0; - proto_item * msgs_item = NULL; - proto_tree * msgs_tree = NULL; - guint8 msgs; + guint8 msg_count; + static const int * msgs[] = + { + &hf_lbmc_umq_ack_msgs_ignore, + &hf_lbmc_umq_ack_msgs_t_flag, + &hf_lbmc_umq_ack_msgs_d_flag, + NULL + }; int len; int packet_len = 0; proto_item * ack_type_item = NULL; @@ -7663,17 +7618,13 @@ static int dissect_nhdr_umq_ack(tvbuff_t * tvb, int offset, packet_info * pinfo, subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ack); proto_tree_add_item(subtree, hf_lbmc_umq_ack_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_ACK_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_ack_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_ACK_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - msgs = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS); - msgs_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_ack_msgs, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, "Messages: 0x%02x", msgs); - msgs_tree = proto_item_add_subtree(msgs_item, ett_lbmc_umq_ack_msgs); - proto_tree_add_item(msgs_tree, hf_lbmc_umq_ack_msgs_ignore, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, ENC_BIG_ENDIAN); - proto_tree_add_item(msgs_tree, hf_lbmc_umq_ack_msgs_t_flag, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, ENC_BIG_ENDIAN); - proto_tree_add_item(msgs_tree, hf_lbmc_umq_ack_msgs_d_flag, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, ENC_BIG_ENDIAN); - proto_tree_add_item(msgs_tree, hf_lbmc_umq_ack_msgs_numids, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, ENC_BIG_ENDIAN); + msg_count = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, hf_lbmc_umq_ack_msgs, ett_lbmc_umq_ack_msgs, msgs, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_umq_ack_numids, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS, ENC_BIG_ENDIAN); ack_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_ack_ack_type, tvb, offset + O_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE, L_LBMC_CNTL_UMQ_ACK_HDR_T_ACK_TYPE, ENC_BIG_ENDIAN); packet_len = tvb_reported_length_remaining(tvb, offset); len_dissected = L_LBMC_CNTL_UMQ_ACK_HDR_T; - num_ids = msgs & LBMC_UMQ_ACK_NUMIDS_MASK; + num_ids = msg_count & LBMC_UMQ_ACK_NUMIDS_MASK; for (idx = 0; (idx < num_ids) && (len_dissected < packet_len); idx++) { len = dissect_nhdr_umq_ack_msgid(tvb, offset + len_dissected, pinfo, subtree); @@ -7705,23 +7656,22 @@ static int dissect_nhdr_umq_rcr(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - guint16 flags; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; + static const int * flags[] = + { + &hf_lbmc_umq_rcr_flags_ignore, + &hf_lbmc_umq_rcr_flags_r_flag, + &hf_lbmc_umq_rcr_flags_d_flag, + &hf_lbmc_umq_rcr_flags_s_flag, + &hf_lbmc_umq_rcr_flags_eoi_flag, + &hf_lbmc_umq_rcr_flags_boi_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_rcr, tvb, offset, L_LBMC_CNTL_UMQ_RCR_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rcr); proto_tree_add_item(subtree, hf_lbmc_umq_rcr_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_RCR_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_rcr_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_RCR_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_rcr_flags, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_rcr_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_rcr_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_rcr_flags_r_flag, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_rcr_flags_d_flag, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_rcr_flags_s_flag, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_rcr_flags_eoi_flag, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_rcr_flags_boi_flag, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS, hf_lbmc_umq_rcr_flags, ett_lbmc_umq_rcr_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_rcr_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_RCR_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_rcr_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RCR_HDR_T_RCR_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_rcr_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_RCR_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN); @@ -7790,24 +7740,23 @@ static int dissect_nhdr_umq_ka(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - guint8 flags; guint8 type; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; int len_dissected = 0; int len; proto_item * ka_type_item = NULL; + static const int * flags[] = + { + &hf_lbmc_cntl_umq_ka_flags_ignore, + &hf_lbmc_cntl_umq_ka_flags_r_flag, + NULL + }; hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN); subtree_item = proto_tree_add_item(tree, hf_lbmc_cntl_umq_ka, tvb, offset, (gint)hdrlen, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ka); proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_KA_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_KA_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_cntl_umq_ka_flags, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_ka_flags); - proto_tree_add_item(flags_tree, hf_lbmc_cntl_umq_ka_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_cntl_umq_ka_flags_r_flag, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS, hf_lbmc_cntl_umq_ka_flags, ett_lbmc_umq_ka_flags, flags, ENC_BIG_ENDIAN); ka_type_item = proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_ka_type, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE, L_LBMC_CNTL_UMQ_KA_HDR_T_KA_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_KA_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_cntl_umq_ka_regid, tvb, offset + O_LBMC_CNTL_UMQ_KA_HDR_T_REGID, L_LBMC_CNTL_UMQ_KA_HDR_T_REGID, ENC_BIG_ENDIAN); @@ -7966,10 +7915,14 @@ static int dissect_nhdr_umq_rxreq(tvbuff_t * tvb, int offset, packet_info * pinf proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - guint8 flags; guint8 type; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; + guint8 flags_val; + static const int * flags[] = + { + &hf_lbmc_umq_rxreq_flags_ignore, + &hf_lbmc_umq_rxreq_flags_r_flag, + NULL + }; int len_dissected = 0; int len = 0; proto_item * rxreq_type_item = NULL; @@ -7979,14 +7932,11 @@ static int dissect_nhdr_umq_rxreq(tvbuff_t * tvb, int offset, packet_info * pinf subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_rxreq); proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_rxreq_flags, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_rxreq_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_rxreq_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_rxreq_flags_r_flag, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS, hf_lbmc_umq_rxreq_flags, ett_lbmc_umq_rxreq_flags, flags, ENC_BIG_ENDIAN); rxreq_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_rxreq_rxreq_type, tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_RXREQ_TYPE, ENC_BIG_ENDIAN); len_dissected = L_LBMC_CNTL_UMQ_RXREQ_HDR_T; - if ((flags & LBMC_UMQ_RXREQ_R_FLAG) != 0) + flags_val = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS); + if ((flags_val & LBMC_UMQ_RXREQ_R_FLAG) != 0) { len = dissect_nhdr_umq_rxreq_regid_resp(tvb, offset + len_dissected, pinfo, subtree); } @@ -8050,18 +8000,17 @@ static int dissect_nhdr_umq_resub_req(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - guint16 flags; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; + static const int * flags[] = + { + &hf_lbmc_umq_resub_req_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_resub_req, tvb, offset, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_resub_req); proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_resub_req_flags, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_resub_req_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_resub_req_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS, hf_lbmc_umq_resub_req_flags, ett_lbmc_umq_resub_req_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_STAMP, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_req_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_RCR_IDX, ENC_BIG_ENDIAN); @@ -8075,18 +8024,17 @@ static int dissect_nhdr_umq_resub_resp(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - guint8 flags; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; + static const int * flags[] = + { + &hf_lbmc_umq_resub_resp_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_resub_resp, tvb, offset, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_resub_resp); proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_resub_resp_flags, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_resub_resp_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_resub_resp_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS, hf_lbmc_umq_resub_resp_flags, ett_lbmc_umq_resub_resp_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_code, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_CODE, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_CODE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_resub_resp_msgid_stamp, tvb, offset + O_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_STAMP, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_MSGID_STAMP, ENC_BIG_ENDIAN); @@ -8100,20 +8048,19 @@ static int dissect_nhdr_topic_interest(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_topic_interest_flags_ignore, + &hf_lbmc_topic_interest_flags_cancel, + &hf_lbmc_topic_interest_flags_refresh, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_interest, tvb, offset, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_interest); proto_tree_add_item(subtree, hf_lbmc_topic_interest_next_hdr, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_NEXT_HDR, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_interest_hdr_len, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_HDR_LEN, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_topic_interest_flags, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_topic_interest_flags); - proto_tree_add_item(flags_tree, hf_lbmc_topic_interest_flags_ignore, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_topic_interest_flags_cancel, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_topic_interest_flags_refresh, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS, hf_lbmc_topic_interest_flags, ett_lbmc_topic_interest_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_interest_domain_id, tvb, offset + O_LBMC_CNTL_TOPIC_INTEREST_HDR_T_DOMAIN_ID, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_TOPIC_INTEREST_HDR_T); } @@ -8122,20 +8069,19 @@ static int dissect_nhdr_pattern_interest(tvbuff_t * tvb, int offset, packet_info { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_pattern_interest_flags_ignore, + &hf_lbmc_pattern_interest_flags_cancel, + &hf_lbmc_pattern_interest_flags_refresh, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_pattern_interest, tvb, offset, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_pattern_interest); proto_tree_add_item(subtree, hf_lbmc_pattern_interest_next_hdr, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_NEXT_HDR, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_pattern_interest_hdr_len, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_HDR_LEN, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_pattern_interest_flags, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_pattern_interest_flags); - proto_tree_add_item(flags_tree, hf_lbmc_pattern_interest_flags_ignore, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_pattern_interest_flags_cancel, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_pattern_interest_flags_refresh, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS, hf_lbmc_pattern_interest_flags, ett_lbmc_pattern_interest_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_pattern_interest_type, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_TYPE, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_pattern_interest_domain_id, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_DOMAIN_ID, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_pattern_interest_index, tvb, offset + O_LBMC_CNTL_PATTERN_INTEREST_HDR_T_INDEX, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_INDEX, ENC_BIG_ENDIAN); @@ -8146,33 +8092,31 @@ static int dissect_nhdr_advertisement(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - proto_item * ad_flags_item = NULL; - proto_tree * ad_flags_tree = NULL; - guint8 flags = 0; - guint32 ad_flags = 0; + static const int * flags[] = + { + &hf_lbmc_advertisement_flags_ignore, + &hf_lbmc_advertisement_flags_eos, + &hf_lbmc_advertisement_flags_pattern, + &hf_lbmc_advertisement_flags_change, + &hf_lbmc_advertisement_flags_ctxinst, + NULL + }; + static const int * ad_flags[] = + { + &hf_lbmc_advertisement_ad_flags_lj, + &hf_lbmc_advertisement_ad_flags_ume, + &hf_lbmc_advertisement_ad_flags_acktosrc, + &hf_lbmc_advertisement_ad_flags_queue, + &hf_lbmc_advertisement_ad_flags_ulb, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_advertisement, tvb, offset, L_LBMC_CNTL_ADVERTISEMENT_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_advertisement); proto_tree_add_item(subtree, hf_lbmc_advertisement_next_hdr, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_NEXT_HDR, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_advertisement_hdr_len, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HDR_LEN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_advertisement_flags, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_advertisement_flags); - proto_tree_add_item(flags_tree, hf_lbmc_advertisement_flags_ignore, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_advertisement_flags_eos, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_advertisement_flags_pattern, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_advertisement_flags_change, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_advertisement_flags_ctxinst, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - ad_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS); - ad_flags_item = proto_tree_add_none_format(subtree, hf_lbmc_advertisement_ad_flags, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, "Ad Flags: 0x%08x", ad_flags); - ad_flags_tree = proto_item_add_subtree(ad_flags_item, ett_lbmc_advertisement_ad_flags); - proto_tree_add_item(ad_flags_tree, hf_lbmc_advertisement_ad_flags_lj, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(ad_flags_tree, hf_lbmc_advertisement_ad_flags_ume, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(ad_flags_tree, hf_lbmc_advertisement_ad_flags_acktosrc, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(ad_flags_tree, hf_lbmc_advertisement_ad_flags_queue, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(ad_flags_tree, hf_lbmc_advertisement_ad_flags_ulb, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS, hf_lbmc_advertisement_flags, ett_lbmc_advertisement_flags, flags, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS, hf_lbmc_advertisement_ad_flags, ett_lbmc_advertisement_ad_flags, ad_flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_advertisement_hop_count, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_HOP_COUNT, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_HOP_COUNT, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_advertisement_cost, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_COST, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_COST, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_advertisement_transport_idx, tvb, offset + O_LBMC_CNTL_ADVERTISEMENT_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); @@ -8190,9 +8134,11 @@ static int dissect_nhdr_storename(tvbuff_t * tvb, int offset, packet_info * pinf proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_storename_flags_ignore, + NULL + }; int len_dissected = 0; int namelen = 0; proto_item * hdrlen_item = NULL; @@ -8202,10 +8148,7 @@ static int dissect_nhdr_storename(tvbuff_t * tvb, int offset, packet_info * pinf subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_storename); proto_tree_add_item(subtree, hf_lbmc_ume_storename_next_hdr, tvb, offset + O_LBMC_UME_STORENAME_HDR_T_NEXT_HDR, L_LBMC_UME_STORENAME_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_ume_storename_hdr_len, tvb, offset + O_LBMC_UME_STORENAME_HDR_T_HDR_LEN, L_LBMC_UME_STORENAME_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_UME_STORENAME_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_storename_flags, tvb, offset + O_LBMC_UME_STORENAME_HDR_T_FLAGS, L_LBMC_UME_STORENAME_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_storename_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_storename_flags_ignore, tvb, offset + O_LBMC_UME_STORENAME_HDR_T_FLAGS, L_LBMC_UME_STORENAME_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_UME_STORENAME_HDR_T_FLAGS, hf_lbmc_ume_storename_flags, ett_lbmc_ume_storename_flags, flags, ENC_BIG_ENDIAN); len_dissected = L_LBMC_BASIC_HDR_T; namelen = (int) hdrlen - len_dissected; if (namelen > 0) @@ -8225,22 +8168,21 @@ static int dissect_nhdr_umq_ulb_rcr(tvbuff_t * tvb, int offset, packet_info * pi { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - guint16 flags; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; + static const int * flags[] = + { + &hf_lbmc_umq_ulb_rcr_flags_ignore, + &hf_lbmc_umq_ulb_rcr_flags_r_flag, + &hf_lbmc_umq_ulb_rcr_flags_d_flag, + &hf_lbmc_umq_ulb_rcr_flags_eoi_flag, + &hf_lbmc_umq_ulb_rcr_flags_boi_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_ulb_rcr, tvb, offset, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_ulb_rcr); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_ulb_rcr_flags, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_ulb_rcr_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_ulb_rcr_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_ulb_rcr_flags_r_flag, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_ulb_rcr_flags_d_flag, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_ulb_rcr_flags_eoi_flag, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_ulb_rcr_flags_boi_flag, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS, hf_lbmc_umq_ulb_rcr_flags, ett_lbmc_umq_ulb_rcr_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_ulb_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ULB_SRC_ID, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_ULB_SRC_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_ulb_rcr_msgid_regid, tvb, offset + O_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_REGID, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_MSGID_REGID, ENC_BIG_ENDIAN); @@ -8256,18 +8198,17 @@ static int dissect_nhdr_umq_lf(tvbuff_t * tvb, int offset, packet_info * pinfo _ { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - guint8 flags; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; + static const int * flags[] = + { + &hf_lbmc_umq_lf_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_lf, tvb, offset, L_LBMC_CNTL_UMQ_LF_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_lf); proto_tree_add_item(subtree, hf_lbmc_umq_lf_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_LF_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_lf_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_LF_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_lf_flags, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_lf_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_lf_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS, hf_lbmc_umq_lf_flags, ett_lbmc_umq_lf_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_lf_type, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_TYPE, L_LBMC_CNTL_UMQ_LF_HDR_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_lf_num_srcs, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_NUM_SRCS, L_LBMC_CNTL_UMQ_LF_HDR_T_NUM_SRCS, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_lf_lf, tvb, offset + O_LBMC_CNTL_UMQ_LF_HDR_T_LF, L_LBMC_CNTL_UMQ_LF_HDR_T_LF, ENC_BIG_ENDIAN); @@ -8279,11 +8220,19 @@ static int dissect_nhdr_ctxinfo(tvbuff_t * tvb, int offset, packet_info * pinfo proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; - wmem_strbuf_t * flagbuf; - const char * sep = ""; + guint16 flags_val = 0; + static const int * flags[] = + { + &hf_lbmc_ctxinfo_flags_ignore, + &hf_lbmc_ctxinfo_flags_query, + &hf_lbmc_ctxinfo_flags_addr, + &hf_lbmc_ctxinfo_flags_ctxinst, + &hf_lbmc_ctxinfo_flags_name, + &hf_lbmc_ctxinfo_flags_tnwgsrc, + &hf_lbmc_ctxinfo_flags_tnwgrcv, + &hf_lbmc_ctxinfo_flags_proxy, + NULL + }; int len_dissected = 0; proto_item * hdrlen_item = NULL; @@ -8292,66 +8241,8 @@ static int dissect_nhdr_ctxinfo(tvbuff_t * tvb, int offset, packet_info * pinfo subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ctxinfo); proto_tree_add_item(subtree, hf_lbmc_ctxinfo_next_hdr, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_NEXT_HDR, L_LBMC_CNTL_CTXINFO_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_ctxinfo_hdr_len, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN, L_LBMC_CNTL_CTXINFO_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS); - flagbuf = wmem_strbuf_new_label(wmem_packet_scope()); - if ((flags & LBMC_CTXINFO_PROXY_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "Proxy"); - sep = ", "; - } - if ((flags & LBMC_CTXINFO_TNWGRCV_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "GW Rcv"); - sep = ", "; - } - if ((flags & LBMC_CTXINFO_TNWGSRC_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "GW Src"); - sep = ", "; - } - if ((flags & LBMC_CTXINFO_NAME_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "Name"); - sep = ", "; - } - if ((flags & LBMC_CTXINFO_CTXINST_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "CtxInst"); - sep = ", "; - } - if ((flags & LBMC_CTXINFO_ADDR_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "IP"); - sep = ", "; - } - if ((flags & LBMC_CTXINFO_QUERY_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "Query"); - } - if (flags != LBMC_OPT_IGNORE) - { - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ctxinfo_flags, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, "Flags: 0x%04x (%s)", flags, (char *)wmem_strbuf_get_str(flagbuf)); - } - else - { - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ctxinfo_flags, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, "Flags: 0x%04x", flags); - } - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ctxinfo_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ctxinfo_flags_ignore, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ctxinfo_flags_query, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ctxinfo_flags_addr, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ctxinfo_flags_ctxinst, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ctxinfo_flags_name, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ctxinfo_flags_tnwgsrc, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ctxinfo_flags_tnwgrcv, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ctxinfo_flags_proxy, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); + flags_val = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_FLAGS, hf_lbmc_ctxinfo_flags, ett_lbmc_ctxinfo_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ctxinfo_reserved, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_RESERVED, L_LBMC_CNTL_CTXINFO_HDR_T_RESERVED, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ctxinfo_hop_count, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_HOP_COUNT, L_LBMC_CNTL_CTXINFO_HDR_T_HOP_COUNT, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ctxinfo_port, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_PORT, L_LBMC_CNTL_CTXINFO_HDR_T_PORT, ENC_BIG_ENDIAN); @@ -8359,7 +8250,7 @@ static int dissect_nhdr_ctxinfo(tvbuff_t * tvb, int offset, packet_info * pinfo proto_tree_add_item(subtree, hf_lbmc_ctxinfo_domain_id, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_DOMAIN_ID, L_LBMC_CNTL_CTXINFO_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ctxinfo_ctxinst, tvb, offset + O_LBMC_CNTL_CTXINFO_HDR_T_CTXINST, L_LBMC_CNTL_CTXINFO_HDR_T_CTXINST, ENC_NA); len_dissected = L_LBMC_CNTL_CTXINFO_HDR_T; - if ((flags & LBMC_CTXINFO_NAME_FLAG) != 0) + if ((flags_val & LBMC_CTXINFO_NAME_FLAG) != 0) { int namelen = (int) hdrlen - len_dissected; if (namelen > 0) @@ -8380,21 +8271,20 @@ static int dissect_nhdr_ume_pser(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_pser_flags_ignore, + &hf_lbmc_ume_pser_flags_source_ctxinst, + &hf_lbmc_ume_pser_flags_store_ctxinst, + &hf_lbmc_ume_pser_flags_reelect, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_pser, tvb, offset, L_LBMC_CNTL_UME_PSER_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_pser); proto_tree_add_item(subtree, hf_lbmc_ume_pser_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PSER_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_pser_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PSER_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_pser_flags, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_pser_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_pser_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_pser_flags_source_ctxinst, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_pser_flags_store_ctxinst, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_ume_pser_flags_reelect, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_FLAGS, hf_lbmc_ume_pser_flags, ett_lbmc_ume_pser_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_pser_source_ip, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_IP, L_LBMC_CNTL_UME_PSER_HDR_T_SOURCE_IP, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_pser_store_ip, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_STORE_IP, L_LBMC_CNTL_UME_PSER_HDR_T_STORE_IP, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_pser_transport_idx, tvb, offset + O_LBMC_CNTL_UME_PSER_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_UME_PSER_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); @@ -8410,19 +8300,18 @@ static int dissect_nhdr_domain(tvbuff_t * tvb, int offset, packet_info * pinfo _ { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_domain_flags_ignore, + &hf_lbmc_domain_flags_active, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_domain, tvb, offset, L_LBMC_DOMAIN_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_domain); proto_tree_add_item(subtree, hf_lbmc_domain_next_hdr, tvb, offset + O_LBMC_DOMAIN_HDR_T_NEXT_HDR, L_LBMC_DOMAIN_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_domain_hdr_len, tvb, offset + O_LBMC_DOMAIN_HDR_T_HDR_LEN, L_LBMC_DOMAIN_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_DOMAIN_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_domain_flags, tvb, offset + O_LBMC_DOMAIN_HDR_T_FLAGS, L_LBMC_DOMAIN_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_domain_flags); - proto_tree_add_item(flags_tree, hf_lbmc_domain_flags_ignore, tvb, offset + O_LBMC_DOMAIN_HDR_T_FLAGS, L_LBMC_DOMAIN_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_domain_flags_active, tvb, offset + O_LBMC_DOMAIN_HDR_T_FLAGS, L_LBMC_DOMAIN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_DOMAIN_HDR_T_FLAGS, hf_lbmc_domain_flags, ett_lbmc_domain_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_domain_domain, tvb, offset + O_LBMC_DOMAIN_HDR_T_DOMAIN, L_LBMC_DOMAIN_HDR_T_DOMAIN, ENC_BIG_ENDIAN); return (L_LBMC_DOMAIN_HDR_T); } @@ -8431,36 +8320,33 @@ static int dissect_nhdr_tnwg_capabilities(tvbuff_t * tvb, int offset, packet_inf { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; - proto_item * cap1_item = NULL; - proto_tree * cap1_tree = NULL; - guint32 cap1 = 0; - proto_item * cap3_item = NULL; - proto_tree * cap3_tree = NULL; - guint32 cap3 = 0; + static const int * flags[] = + { + &hf_lbmc_tnwg_capabilities_flags_ignore, + &hf_lbmc_tnwg_capabilities_flags_version, + NULL + }; + static const int * cap1[] = + { + &hf_lbmc_tnwg_capabilities_capabilities1_ume, + &hf_lbmc_tnwg_capabilities_capabilities1_umq, + NULL + }; + static const int * cap3[] = + { + &hf_lbmc_tnwg_capabilities_capabilities3_pcre, + &hf_lbmc_tnwg_capabilities_capabilities3_regex, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_tnwg_capabilities, tvb, offset, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tnwg_capabilities); proto_tree_add_item(subtree, hf_lbmc_tnwg_capabilities_next_hdr, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_NEXT_HDR, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tnwg_capabilities_hdr_len, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_HDR_LEN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_tnwg_capabilities_flags, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_tnwg_capabilities_flags); - proto_tree_add_item(flags_tree, hf_lbmc_tnwg_capabilities_flags_ignore, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_tnwg_capabilities_flags_version, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS, ENC_BIG_ENDIAN); - cap1 = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1); - cap1_item = proto_tree_add_none_format(subtree, hf_lbmc_tnwg_capabilities_capabilities1, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1, "Capabilities1: 0x%08x", cap1); - cap1_tree = proto_item_add_subtree(cap1_item, ett_lbmc_tnwg_capabilities_capabilities1); - proto_tree_add_item(cap1_tree, hf_lbmc_tnwg_capabilities_capabilities1_ume, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1, ENC_BIG_ENDIAN); - proto_tree_add_item(cap1_tree, hf_lbmc_tnwg_capabilities_capabilities1_umq, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS, hf_lbmc_tnwg_capabilities_flags, ett_lbmc_tnwg_capabilities_flags, flags, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1, hf_lbmc_tnwg_capabilities_capabilities1, ett_lbmc_tnwg_capabilities_capabilities1, cap1, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tnwg_capabilities_capabilities2, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES2, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES2, ENC_BIG_ENDIAN); - cap3 = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3); - cap3_item = proto_tree_add_none_format(subtree, hf_lbmc_tnwg_capabilities_capabilities3, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3, "Capabilities3: 0x%08x", cap3); - cap3_tree = proto_item_add_subtree(cap3_item, ett_lbmc_tnwg_capabilities_capabilities3); - proto_tree_add_item(cap3_tree, hf_lbmc_tnwg_capabilities_capabilities3_pcre, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3, ENC_BIG_ENDIAN); - proto_tree_add_item(cap3_tree, hf_lbmc_tnwg_capabilities_capabilities3_regex, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3, hf_lbmc_tnwg_capabilities_capabilities3, ett_lbmc_tnwg_capabilities_capabilities3, cap3, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tnwg_capabilities_capabilities4, tvb, offset + O_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES4, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES4, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T); } @@ -8469,18 +8355,17 @@ static int dissect_nhdr_patidx(tvbuff_t * tvb, int offset, packet_info * pinfo _ { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_patidx_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_patidx, tvb, offset, L_LBMC_PATIDX_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_patidx); proto_tree_add_item(subtree, hf_lbmc_patidx_next_hdr, tvb, offset + O_LBMC_PATIDX_HDR_T_NEXT_HDR, L_LBMC_PATIDX_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_patidx_hdr_len, tvb, offset + O_LBMC_PATIDX_HDR_T_HDR_LEN, L_LBMC_PATIDX_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_PATIDX_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_patidx_flags, tvb, offset + O_LBMC_PATIDX_HDR_T_FLAGS, L_LBMC_PATIDX_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_patidx_flags); - proto_tree_add_item(flags_tree, hf_lbmc_patidx_flags_ignore, tvb, offset + O_LBMC_PATIDX_HDR_T_FLAGS, L_LBMC_PATIDX_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_PATIDX_HDR_T_FLAGS, hf_lbmc_patidx_flags, ett_lbmc_patidx_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_patidx_patidx, tvb, offset + O_LBMC_PATIDX_HDR_T_PATIDX, L_LBMC_PATIDX_HDR_T_PATIDX, ENC_BIG_ENDIAN); return (L_LBMC_PATIDX_HDR_T); } @@ -8489,18 +8374,17 @@ static int dissect_nhdr_ume_client_lifetime(tvbuff_t * tvb, int offset, packet_i { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_client_lifetime_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_client_lifetime, tvb, offset, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_client_lifetime); proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_next_hdr, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_hdr_len, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_client_lifetime_flags, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_client_lifetime_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_client_lifetime_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS, hf_lbmc_ume_client_lifetime_flags, ett_lbmc_ume_client_lifetime_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_activity_tmo, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_ACTIVITY_TMO, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_ACTIVITY_TMO, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_lifetime, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_LIFETIME, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_LIFETIME, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_client_lifetime_ttl, tvb, offset + O_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_TTL, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_TTL, ENC_BIG_ENDIAN); @@ -8511,18 +8395,17 @@ static int dissect_nhdr_ume_sid(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_sid_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_sid, tvb, offset, L_LBMC_CNTL_UME_SID_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_sid); proto_tree_add_item(subtree, hf_lbmc_ume_sid_next_hdr, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_SID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_sid_hdr_len, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_SID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_sid_flags, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_FLAGS, L_LBMC_CNTL_UME_SID_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_sid_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_sid_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_FLAGS, L_LBMC_CNTL_UME_SID_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_FLAGS, hf_lbmc_ume_sid_flags, ett_lbmc_ume_sid_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_sid_sid, tvb, offset + O_LBMC_CNTL_UME_SID_HDR_T_SID, L_LBMC_CNTL_UME_SID_HDR_T_SID, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UME_SID_HDR_T); } @@ -8532,15 +8415,35 @@ static int dissect_nhdr_umq_idx_cmd(tvbuff_t * tvb, int offset, packet_info * pi proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_idx_cmd_flags_ignore, + NULL + }; guint8 cmd_type = 0; proto_item * opt_subtree_item = NULL; proto_tree * opt_subtree = NULL; guint32 opt_flags = 0; - proto_item * opt_flags_item = NULL; - proto_tree * opt_flags_tree = NULL; + static const int * release_assign_flags[] = + { + &hf_lbmc_umq_idx_cmd_release_assign_flags_numeric, + NULL + }; + static const int * ulb_release_assign_flags[] = + { + &hf_lbmc_umq_idx_cmd_ulb_release_assign_flags_numeric, + NULL + }; + static const int * reserve_assign_flags[] = + { + &hf_lbmc_umq_idx_cmd_reserve_assign_flags_numeric, + NULL + }; + static const int * ulb_reserve_assign_flags[] = + { + &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags_numeric, + NULL + }; guint8 index_len = 0; int opt_len = 0; int len_dissected = 0; @@ -8551,10 +8454,7 @@ static int dissect_nhdr_umq_idx_cmd(tvbuff_t * tvb, int offset, packet_info * pi subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_idx_cmd); proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_idx_cmd_flags, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_idx_cmd_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_idx_cmd_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_flags, ett_lbmc_umq_idx_cmd_flags, flags, ENC_BIG_ENDIAN); cmd_type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE); cmd_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_cmd_type, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_CMD_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); @@ -8604,9 +8504,7 @@ static int dissect_nhdr_umq_idx_cmd(tvbuff_t * tvb, int offset, packet_info * pi proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN); opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS); - opt_flags_item = proto_tree_add_none_format(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_flags, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, "Flags: 0x%08x", opt_flags); - opt_flags_tree = proto_item_add_subtree(opt_flags_item, ett_lbmc_umq_idx_cmd_release_assign_flags); - proto_tree_add_item(opt_flags_tree, hf_lbmc_umq_idx_cmd_release_assign_flags_numeric, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_release_assign_flags, ett_lbmc_umq_idx_cmd_release_assign_flags, release_assign_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_release_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA); if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0) @@ -8626,9 +8524,7 @@ static int dissect_nhdr_umq_idx_cmd(tvbuff_t * tvb, int offset, packet_info * pi proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN); opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS); - opt_flags_item = proto_tree_add_none_format(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_flags, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, "Flags: 0x%08x", opt_flags); - opt_flags_tree = proto_item_add_subtree(opt_flags_item, ett_lbmc_umq_idx_cmd_ulb_release_assign_flags); - proto_tree_add_item(opt_flags_tree, hf_lbmc_umq_idx_cmd_ulb_release_assign_flags_numeric, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_ulb_release_assign_flags, ett_lbmc_umq_idx_cmd_ulb_release_assign_flags, ulb_release_assign_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_release_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA); @@ -8649,9 +8545,7 @@ static int dissect_nhdr_umq_idx_cmd(tvbuff_t * tvb, int offset, packet_info * pi proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN); opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS); - opt_flags_item = proto_tree_add_none_format(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_flags, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, "Flags: 0x%08x", opt_flags); - opt_flags_tree = proto_item_add_subtree(opt_flags_item, ett_lbmc_umq_idx_cmd_reserve_assign_flags); - proto_tree_add_item(opt_flags_tree, hf_lbmc_umq_idx_cmd_reserve_assign_flags_numeric, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_reserve_assign_flags, ett_lbmc_umq_idx_cmd_reserve_assign_flags, reserve_assign_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_reserve_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA); if ((opt_flags & LBM_UMQ_INDEX_FLAG_NUMERIC) != 0) @@ -8671,9 +8565,7 @@ static int dissect_nhdr_umq_idx_cmd(tvbuff_t * tvb, int offset, packet_info * pi proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN); opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS); - opt_flags_item = proto_tree_add_none_format(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, "Flags: 0x%08x", opt_flags); - opt_flags_tree = proto_item_add_subtree(opt_flags_item, ett_lbmc_umq_idx_cmd_ulb_reserve_assign_flags); - proto_tree_add_item(opt_flags_tree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags_numeric, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags, ett_lbmc_umq_idx_cmd_ulb_reserve_assign_flags, ulb_reserve_assign_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_ulb_reserve_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA); @@ -8700,17 +8592,28 @@ static int dissect_nhdr_umq_idx_cmd_resp(tvbuff_t * tvb, int offset, packet_info proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_idx_cmd_resp_flags_ignore, + &hf_lbmc_umq_idx_cmd_resp_flags_ulb, + NULL + }; + static const int * reserve_assign_flags[] = + { + &hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags_numeric, + NULL + }; + static const int * ulb_reserve_assign_flags[] = + { + &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags_numeric, + NULL + }; guint8 resp_type = 0; proto_item * opt_subtree_item = NULL; proto_tree * opt_subtree = NULL; int string_len = 0; int len_dissected = 0; guint32 opt_flags = 0; - proto_item * opt_flags_item = NULL; - proto_tree * opt_flags_tree = NULL; guint8 index_len = 0; proto_item * resp_type_item = NULL; @@ -8719,11 +8622,7 @@ static int dissect_nhdr_umq_idx_cmd_resp(tvbuff_t * tvb, int offset, packet_info subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_idx_cmd_resp); proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_idx_cmd_resp_flags, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_idx_cmd_resp_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_idx_cmd_resp_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_umq_idx_cmd_resp_flags_ulb, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_resp_flags, ett_lbmc_umq_idx_cmd_resp_flags, flags, ENC_BIG_ENDIAN); resp_type = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE); resp_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_resp_type, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_RESP_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_idx_cmd_resp_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); @@ -8802,9 +8701,7 @@ static int dissect_nhdr_umq_idx_cmd_resp(tvbuff_t * tvb, int offset, packet_info proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_rcr_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RCR_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN); opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS); - opt_flags_item = proto_tree_add_none_format(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, "Flags: 0x%08x", opt_flags); - opt_flags_tree = proto_item_add_subtree(opt_flags_item, ett_lbmc_umq_idx_cmd_resp_reserve_assign_flags); - proto_tree_add_item(opt_flags_tree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags_numeric, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags, ett_lbmc_umq_idx_cmd_resp_reserve_assign_flags, reserve_assign_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_reserve_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA); @@ -8825,9 +8722,7 @@ static int dissect_nhdr_umq_idx_cmd_resp(tvbuff_t * tvb, int offset, packet_info proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_src_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_SRC_ID, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_assign_id, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_ASSIGN_ID, ENC_BIG_ENDIAN); opt_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS); - opt_flags_item = proto_tree_add_none_format(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, "Flags: 0x%08x", opt_flags); - opt_flags_tree = proto_item_add_subtree(opt_flags_item, ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags); - proto_tree_add_item(opt_flags_tree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags_numeric, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_subtree, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags, ett_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags, ulb_reserve_assign_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_appset_idx, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_APPSET_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_index_len, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_INDEX_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(opt_subtree, hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_reserved, tvb, offset + O_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_RESERVED, ENC_NA); @@ -8853,18 +8748,17 @@ static int dissect_nhdr_odomain(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_odomain_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_odomain, tvb, offset, L_LBMC_ODOMAIN_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_odomain); proto_tree_add_item(subtree, hf_lbmc_odomain_next_hdr, tvb, offset + O_LBMC_ODOMAIN_HDR_T_NEXT_HDR, L_LBMC_ODOMAIN_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_odomain_hdr_len, tvb, offset + O_LBMC_ODOMAIN_HDR_T_HDR_LEN, L_LBMC_ODOMAIN_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_ODOMAIN_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_odomain_flags, tvb, offset + O_LBMC_ODOMAIN_HDR_T_FLAGS, L_LBMC_ODOMAIN_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_odomain_flags); - proto_tree_add_item(flags_tree, hf_lbmc_odomain_flags_ignore, tvb, offset + O_LBMC_ODOMAIN_HDR_T_FLAGS, L_LBMC_ODOMAIN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_ODOMAIN_HDR_T_FLAGS, hf_lbmc_odomain_flags, ett_lbmc_odomain_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_odomain_domain, tvb, offset + O_LBMC_ODOMAIN_HDR_T_ODOMAIN, L_LBMC_ODOMAIN_HDR_T_ODOMAIN, ENC_BIG_ENDIAN); return (L_LBMC_ODOMAIN_HDR_T); } @@ -8873,18 +8767,17 @@ static int dissect_nhdr_stream(tvbuff_t * tvb, int offset, packet_info * pinfo _ { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_stream_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_stream, tvb, offset, L_LBMC_STREAM_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_stream); proto_tree_add_item(subtree, hf_lbmc_stream_next_hdr, tvb, offset + O_LBMC_STREAM_HDR_T_NEXT_HDR, L_LBMC_STREAM_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_stream_hdr_len, tvb, offset + O_LBMC_STREAM_HDR_T_HDR_LEN, L_LBMC_STREAM_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_STREAM_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_stream_flags, tvb, offset + O_LBMC_STREAM_HDR_T_FLAGS, L_LBMC_STREAM_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_stream_flags); - proto_tree_add_item(flags_tree, hf_lbmc_stream_flags_ignore, tvb, offset + O_LBMC_STREAM_HDR_T_FLAGS, L_LBMC_STREAM_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_STREAM_HDR_T_FLAGS, hf_lbmc_stream_flags, ett_lbmc_stream_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_stream_stream_id, tvb, offset + O_LBMC_STREAM_HDR_T_STREAM_ID, L_LBMC_STREAM_HDR_T_STREAM_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_stream_sqn, tvb, offset + O_LBMC_STREAM_HDR_T_SQN, L_LBMC_STREAM_HDR_T_SQN, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_stream_ctxinst, tvb, offset + O_LBMC_STREAM_HDR_T_CTXINST, L_LBMC_STREAM_HDR_T_CTXINST, ENC_NA); @@ -8903,9 +8796,13 @@ static int dissect_nhdr_topic_md_interest(tvbuff_t * tvb, int offset, packet_inf proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_topic_md_interest_flags_ignore, + &hf_lbmc_topic_md_interest_flags_cancel, + &hf_lbmc_topic_md_interest_flags_refresh, + NULL + }; guint16 dom_count = 0; int idx = 0; int len_dissected = 0; @@ -8915,12 +8812,7 @@ static int dissect_nhdr_topic_md_interest(tvbuff_t * tvb, int offset, packet_inf subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_md_interest); proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_next_hdr, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_NEXT_HDR, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_hdr_len, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_topic_md_interest_flags, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_topic_md_interest_flags); - proto_tree_add_item(flags_tree, hf_lbmc_topic_md_interest_flags_ignore, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_topic_md_interest_flags_cancel, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_topic_md_interest_flags_refresh, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS, hf_lbmc_topic_md_interest_flags, ett_lbmc_topic_md_interest_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_domain_count, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_DOMAIN_COUNT, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_md_interest_res1, tvb, offset + O_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_RES1, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_RES1, ENC_BIG_ENDIAN); len_dissected = L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T; @@ -8941,9 +8833,13 @@ static int dissect_nhdr_pattern_md_interest(tvbuff_t * tvb, int offset, packet_i proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_pattern_md_interest_flags_ignore, + &hf_lbmc_pattern_md_interest_flags_cancel, + &hf_lbmc_pattern_md_interest_flags_refresh, + NULL + }; guint16 dom_count = 0; int idx = 0; int len_dissected = 0; @@ -8953,12 +8849,7 @@ static int dissect_nhdr_pattern_md_interest(tvbuff_t * tvb, int offset, packet_i subtree = proto_item_add_subtree(subtree_item, ett_lbmc_pattern_md_interest); proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_next_hdr, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_NEXT_HDR, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_hdr_len, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_pattern_md_interest_flags, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_pattern_md_interest_flags); - proto_tree_add_item(flags_tree, hf_lbmc_pattern_md_interest_flags_ignore, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_pattern_md_interest_flags_cancel, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_pattern_md_interest_flags_refresh, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS, hf_lbmc_pattern_md_interest_flags, ett_lbmc_pattern_md_interest_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_type, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_TYPE, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_domain_count, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_DOMAIN_COUNT, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_pattern_md_interest_res1, tvb, offset + O_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_RES1, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_RES1, ENC_BIG_ENDIAN); @@ -8980,21 +8871,20 @@ static int dissect_nhdr_lji_req(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_lji_req_flags_ignore, + &hf_lbmc_lji_req_flags_l_flag, + &hf_lbmc_lji_req_flags_m_flag, + &hf_lbmc_lji_req_flags_o_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_lji_req, tvb, offset, L_LBMC_CNTL_LJI_REQ_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_lji_req); proto_tree_add_item(subtree, hf_lbmc_lji_req_next_hdr, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_LJI_REQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_lji_req_hdr_len, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_HDR_LEN, L_LBMC_CNTL_LJI_REQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_lji_req_flags, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_lji_req_flags); - proto_tree_add_item(flags_tree, hf_lbmc_lji_req_flags_ignore, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_lji_req_flags_l_flag, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_lji_req_flags_m_flag, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_lji_req_flags_o_flag, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS, hf_lbmc_lji_req_flags, ett_lbmc_lji_req_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_lji_req_request_idx, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_REQUEST_IDX, L_LBMC_CNTL_LJI_REQ_HDR_T_REQUEST_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_lji_req_transport_idx, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_LJI_REQ_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_lji_req_topic_idx, tvb, offset + O_LBMC_CNTL_LJI_REQ_HDR_T_TOPIC_IDX, L_LBMC_CNTL_LJI_REQ_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN); @@ -9011,20 +8901,19 @@ static int dissect_nhdr_tnwg_ka(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_tnwg_ka_flags_ignore, + &hf_lbmc_tnwg_ka_flags_q_flag, + &hf_lbmc_tnwg_ka_flags_r_flag, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_tnwg_ka, tvb, offset, L_LBMC_CNTL_TNWG_KA_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tnwg_ka); proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_next_hdr, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_NEXT_HDR, L_LBMC_CNTL_TNWG_KA_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_hdr_len, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_HDR_LEN, L_LBMC_CNTL_TNWG_KA_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_tnwg_ka_flags, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_tnwg_ka_flags); - proto_tree_add_item(flags_tree, hf_lbmc_tnwg_ka_flags_ignore, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_tnwg_ka_flags_q_flag, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_tnwg_ka_flags_r_flag, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS, hf_lbmc_tnwg_ka_flags, ett_lbmc_tnwg_ka_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_index, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_INDEX, L_LBMC_CNTL_TNWG_KA_HDR_T_INDEX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_ts_seconds, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_TS_SECONDS, L_LBMC_CNTL_TNWG_KA_HDR_T_TS_SECONDS, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tnwg_ka_ts_microseconds, tvb, offset + O_LBMC_CNTL_TNWG_KA_HDR_T_TS_MICROSECONDS, L_LBMC_CNTL_TNWG_KA_HDR_T_TS_MICROSECONDS, ENC_BIG_ENDIAN); @@ -9041,18 +8930,17 @@ static int dissect_nhdr_ume_receiver_keepalive(tvbuff_t * tvb, int offset, packe { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_receiver_keepalive_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_receiver_keepalive, tvb, offset, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_receiver_keepalive); proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_next_hdr, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_hdr_len, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_receiver_keepalive_flags, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_receiver_keepalive_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_receiver_keepalive_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS, hf_lbmc_ume_receiver_keepalive_flags, ett_lbmc_ume_receiver_keepalive_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_rcv_regid, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_RCV_REGID, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_RCV_REGID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_session_id, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_SESSION_ID, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_SESSION_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_receiver_keepalive_ctxinst, tvb, offset + O_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_CTXINST, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_CTXINST, ENC_NA); @@ -9127,9 +9015,11 @@ static int dissect_nhdr_umq_cmd(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_cmd_flags_ignore, + NULL + }; int len_dissected = 0; guint8 cmd_type = 0; proto_item * cmd_type_item = NULL; @@ -9139,10 +9029,7 @@ static int dissect_nhdr_umq_cmd(tvbuff_t * tvb, int offset, packet_info * pinfo, subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd); proto_tree_add_item(subtree, hf_lbmc_umq_cmd_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_CMD_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_cmd_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_CMD_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_cmd_flags, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_cmd_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_cmd_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS, hf_lbmc_umq_cmd_flags, ett_lbmc_umq_cmd_flags, flags, ENC_BIG_ENDIAN); cmd_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_cmd_cmd_type, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE, L_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_cmd_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_CMD_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_cmd_cmd_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_ID, L_LBMC_CNTL_UMQ_CMD_HDR_T_CMD_ID, ENC_BIG_ENDIAN); @@ -9377,9 +9264,11 @@ static int dissect_nhdr_umq_cmd_resp(tvbuff_t * tvb, int offset, packet_info * p proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_cmd_resp_flags_ignore, + NULL + }; int len_dissected = 0; int len; guint8 resp_type; @@ -9390,10 +9279,7 @@ static int dissect_nhdr_umq_cmd_resp(tvbuff_t * tvb, int offset, packet_info * p subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_cmd_resp); proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_cmd_resp_flags, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_cmd_resp_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_cmd_resp_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS, hf_lbmc_umq_cmd_resp_flags, ett_lbmc_umq_cmd_resp, flags, ENC_BIG_ENDIAN); resp_type_item = proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_resp_type, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_RESP_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_queue_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_QUEUE_ID, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_cmd_resp_cmd_id, tvb, offset + O_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_CMD_ID, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_CMD_ID, ENC_BIG_ENDIAN); @@ -9450,18 +9336,17 @@ static int dissect_nhdr_sri_req(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_sri_req_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_sri_req, tvb, offset, L_LBMC_CNTL_SRI_REQ_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_sri_req); proto_tree_add_item(subtree, hf_lbmc_sri_req_next_hdr, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_NEXT_HDR, L_LBMC_CNTL_SRI_REQ_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_sri_req_hdr_len, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_HDR_LEN, L_LBMC_CNTL_SRI_REQ_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_sri_req_flags, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS, L_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_sri_req_flags); - proto_tree_add_item(flags_tree, hf_lbmc_sri_req_flags_ignore, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS, L_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS, hf_lbmc_sri_req_flags, ett_lbmc_sri_req_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_sri_req_transport_idx, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_TRANSPORT_IDX, L_LBMC_CNTL_SRI_REQ_HDR_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_sri_req_topic_idx, tvb, offset + O_LBMC_CNTL_SRI_REQ_HDR_T_TOPIC_IDX, L_LBMC_CNTL_SRI_REQ_HDR_T_TOPIC_IDX, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_SRI_REQ_HDR_T); @@ -9471,18 +9356,17 @@ static int dissect_nhdr_ume_store_domain(tvbuff_t * tvb, int offset, packet_info { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_store_domain_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store_domain, tvb, offset, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store_domain); proto_tree_add_item(subtree, hf_lbmc_ume_store_domain_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_domain_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_store_domain_flags, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_store_domain_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_store_domain_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS, hf_lbmc_ume_store_domain_flags, ett_lbmc_ume_store_domain_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_domain_domain, tvb, offset + O_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_DOMAIN, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_DOMAIN, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T); } @@ -9491,20 +9375,19 @@ static int dissect_nhdr_sri(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_sri_flags_ignore, + &hf_lbmc_sri_flags_acktosrc, + &hf_lbmc_sri_flags_initial_sqn_known, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_sri, tvb, offset, L_LBMC_CNTL_SRI_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_sri); proto_tree_add_item(subtree, hf_lbmc_sri_next_hdr, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_NEXT_HDR, L_LBMC_CNTL_SRI_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_sri_hdr_len, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_HDR_LEN, L_LBMC_CNTL_SRI_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_SRI_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_sri_flags, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_FLAGS, L_LBMC_CNTL_SRI_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_sri_flags); - proto_tree_add_item(flags_tree, hf_lbmc_sri_flags_ignore, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_FLAGS, L_LBMC_CNTL_SRI_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_sri_flags_acktosrc, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_FLAGS, L_LBMC_CNTL_SRI_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_sri_flags_initial_sqn_known, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_FLAGS, L_LBMC_CNTL_SRI_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_FLAGS, hf_lbmc_sri_flags, ett_lbmc_sri_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_sri_version, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_VERSION, L_LBMC_CNTL_SRI_HDR_T_VERSION, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_sri_low_sqn, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_LOW_SQN, L_LBMC_CNTL_SRI_HDR_T_LOW_SQN, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_sri_high_sqn, tvb, offset + O_LBMC_CNTL_SRI_HDR_T_HIGH_SQN, L_LBMC_CNTL_SRI_HDR_T_HIGH_SQN, ENC_BIG_ENDIAN); @@ -9515,18 +9398,17 @@ static int dissect_nhdr_route_info(tvbuff_t * tvb, int offset, packet_info * pin { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_route_info_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_route_info, tvb, offset, L_LBMC_CNTL_ROUTE_INFO_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_route_info); proto_tree_add_item(subtree, hf_lbmc_route_info_next_hdr, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_NEXT_HDR, L_LBMC_CNTL_ROUTE_INFO_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_route_info_hdr_len, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_HDR_LEN, L_LBMC_CNTL_ROUTE_INFO_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_route_info_flags, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS, L_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_route_info_flags); - proto_tree_add_item(flags_tree, hf_lbmc_route_info_flags_ignore, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS, L_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS, hf_lbmc_route_info_flags, ett_lbmc_route_info_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_route_info_gateway_version, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_GATEWAY_VERSION, L_LBMC_CNTL_ROUTE_INFO_HDR_T_GATEWAY_VERSION, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_route_info_configuration_signature, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_CONFIGURATION_SIGNATURE, L_LBMC_CNTL_ROUTE_INFO_HDR_T_CONFIGURATION_SIGNATURE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_route_info_node_id, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_HDR_T_NODE_ID, L_LBMC_CNTL_ROUTE_INFO_HDR_T_NODE_ID, ENC_BIG_ENDIAN); @@ -9543,18 +9425,17 @@ static int dissect_nhdr_route_info_neighbor(tvbuff_t * tvb, int offset, packet_i { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_route_info_neighbor_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_route_info_neighbor, tvb, offset, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_route_info_neighbor); proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_next_hdr, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NEXT_HDR, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_hdr_len, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_HDR_LEN, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_route_info_neighbor_flags, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_route_info_neighbor_flags); - proto_tree_add_item(flags_tree, hf_lbmc_route_info_neighbor_flags_ignore, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS, hf_lbmc_route_info_neighbor_flags, ett_lbmc_route_info_neighbor_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_node_id, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NODE_ID, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_NODE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_ingress_cost, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_INGRESS_COST, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_INGRESS_COST, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_route_info_neighbor_egress_cost, tvb, offset + O_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_EGRESS_COST, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_EGRESS_COST, ENC_BIG_ENDIAN); @@ -9566,9 +9447,11 @@ static int dissect_nhdr_gateway_name(tvbuff_t * tvb, int offset, packet_info * p proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_gateway_name_flags_ignore, + NULL + }; int len_dissected = 0; int namelen = 0; proto_item * hdrlen_item = NULL; @@ -9578,10 +9461,7 @@ static int dissect_nhdr_gateway_name(tvbuff_t * tvb, int offset, packet_info * p subtree = proto_item_add_subtree(subtree_item, ett_lbmc_gateway_name); proto_tree_add_item(subtree, hf_lbmc_gateway_name_next_hdr, tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_NEXT_HDR, L_LBMC_CNTL_GATEWAY_NAME_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); hdrlen_item = proto_tree_add_item(subtree, hf_lbmc_gateway_name_hdr_len, tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN, L_LBMC_CNTL_GATEWAY_NAME_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_gateway_name_flags, tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS, L_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_gateway_name_flags); - proto_tree_add_item(flags_tree, hf_lbmc_gateway_name_flags_ignore, tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS, L_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS, hf_lbmc_gateway_name_flags, ett_lbmc_gateway_name_flags, flags, ENC_BIG_ENDIAN); len_dissected = L_LBMC_BASIC_HDR_T; namelen = (int) hdrlen - len_dissected; if (namelen > 0) @@ -9602,9 +9482,11 @@ static int dissect_nhdr_auth_request(tvbuff_t * tvb, int offset, packet_info * p proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_auth_request_flags_ignore, + NULL + }; int len_dissected = 0; guint8 user_len; int data_offset; @@ -9614,10 +9496,7 @@ static int dissect_nhdr_auth_request(tvbuff_t * tvb, int offset, packet_info * p subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_request); proto_tree_add_item(subtree, hf_lbmc_auth_request_next_hdr, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_NEXT_HDR, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_request_hdr_len, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_auth_request_flags, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_auth_request_flags); - proto_tree_add_item(flags_tree, hf_lbmc_auth_request_flags_ignore, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS, hf_lbmc_auth_request_flags, ett_lbmc_auth_request_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_request_opid, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_OPID, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_OPID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_request_user_len, tvb, offset + O_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_USER_LEN, ENC_BIG_ENDIAN); len_dissected = L_LBMC_CNTL_AUTH_REQUEST_HDR_T; @@ -9637,9 +9516,11 @@ static int dissect_nhdr_auth_challenge(tvbuff_t * tvb, int offset, packet_info * proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_auth_challenge_flags_ignore, + NULL + }; int len_dissected = 0; guint8 mod_len; guint8 gen_len; @@ -9652,10 +9533,7 @@ static int dissect_nhdr_auth_challenge(tvbuff_t * tvb, int offset, packet_info * subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_challenge); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_next_hdr, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_NEXT_HDR, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_hdr_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_auth_challenge_flags, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_auth_challenge_flags); - proto_tree_add_item(flags_tree, hf_lbmc_auth_challenge_flags_ignore, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS, hf_lbmc_auth_challenge_flags, ett_lbmc_auth_challenge_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_opid, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_OPID, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_OPID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_mod_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_MOD_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_gen_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_GEN_LEN, ENC_BIG_ENDIAN); @@ -9699,9 +9577,11 @@ static int dissect_nhdr_auth_challenge_rsp(tvbuff_t * tvb, int offset, packet_in proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_auth_challenge_rsp_flags_ignore, + NULL + }; int len_dissected = 0; guint8 pubkey_len; guint8 evidence_len; @@ -9712,10 +9592,7 @@ static int dissect_nhdr_auth_challenge_rsp(tvbuff_t * tvb, int offset, packet_in subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_challenge_rsp); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_next_hdr, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_NEXT_HDR, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_hdr_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_auth_challenge_rsp_flags, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_auth_challenge_rsp_flags); - proto_tree_add_item(flags_tree, hf_lbmc_auth_challenge_rsp_flags_ignore, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS, hf_lbmc_auth_challenge_rsp_flags, ett_lbmc_auth_challenge_rsp_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_opid, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_OPID, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_OPID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_pubkey_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_PUBKEY_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_challenge_rsp_evidence_len, tvb, offset + O_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_EVIDENCE_LEN, ENC_BIG_ENDIAN); @@ -9742,18 +9619,17 @@ static int dissect_nhdr_auth_result(tvbuff_t * tvb, int offset, packet_info * pi { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_auth_result_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_auth_result, tvb, offset, L_LBMC_CNTL_AUTH_RESULT_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_auth_result); proto_tree_add_item(subtree, hf_lbmc_auth_result_next_hdr, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_NEXT_HDR, L_LBMC_CNTL_AUTH_RESULT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_result_hdr_len, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_HDR_LEN, L_LBMC_CNTL_AUTH_RESULT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_auth_result_flags, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS, L_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_auth_result_flags); - proto_tree_add_item(flags_tree, hf_lbmc_auth_result_flags_ignore, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS, L_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS, hf_lbmc_auth_result_flags, ett_lbmc_auth_result_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_result_opid, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_OPID, L_LBMC_CNTL_AUTH_RESULT_HDR_T_OPID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_auth_result_result, tvb, offset + O_LBMC_CNTL_AUTH_RESULT_HDR_T_RESULT, L_LBMC_CNTL_AUTH_RESULT_HDR_T_RESULT, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_AUTH_RESULT_HDR_T); @@ -9798,18 +9674,17 @@ static int dissect_nhdr_hmac(tvbuff_t * tvb, int offset, packet_info * pinfo _U_ { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_hmac_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_hmac, tvb, offset, L_LBMC_CNTL_HMAC_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_hmac); proto_tree_add_item(subtree, hf_lbmc_hmac_next_hdr, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_NEXT_HDR, L_LBMC_CNTL_HMAC_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_hmac_hdr_len, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_HDR_LEN, L_LBMC_CNTL_HMAC_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_hmac_flags, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_FLAGS, L_LBMC_CNTL_HMAC_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_hmac_flags); - proto_tree_add_item(flags_tree, hf_lbmc_hmac_flags_ignore, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_FLAGS, L_LBMC_CNTL_HMAC_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_FLAGS, hf_lbmc_hmac_flags, ett_lbmc_hmac_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_hmac_padding, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_PADDING, L_LBMC_CNTL_HMAC_HDR_T_PADDING, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_hmac_data, tvb, offset + O_LBMC_CNTL_HMAC_HDR_T_DATA, L_LBMC_CNTL_HMAC_HDR_T_DATA, ENC_NA); return (L_LBMC_CNTL_HMAC_HDR_T); @@ -9819,18 +9694,17 @@ static int dissect_nhdr_umq_sid(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_umq_sid_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_umq_sid, tvb, offset, L_LBMC_CNTL_UMQ_SID_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_umq_sid); proto_tree_add_item(subtree, hf_lbmc_umq_sid_next_hdr, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_NEXT_HDR, L_LBMC_CNTL_UMQ_SID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_sid_hdr_len, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_HDR_LEN, L_LBMC_CNTL_UMQ_SID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_umq_sid_flags, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_umq_sid_flags); - proto_tree_add_item(flags_tree, hf_lbmc_umq_sid_flags_ignore, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS, L_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS, hf_lbmc_umq_sid_flags, ett_lbmc_umq_sid_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_sid_key, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_KEY, L_LBMC_CNTL_UMQ_SID_HDR_T_KEY, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_umq_sid_sid, tvb, offset + O_LBMC_CNTL_UMQ_SID_HDR_T_SID, L_LBMC_CNTL_UMQ_SID_HDR_T_SID, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UMQ_SID_HDR_T); @@ -9840,18 +9714,17 @@ static int dissect_nhdr_destination(tvbuff_t * tvb, int offset, packet_info * pi { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_destination_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_destination, tvb, offset, L_LBMC_DESTINATION_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_destination); proto_tree_add_item(subtree, hf_lbmc_destination_next_hdr, tvb, offset + O_LBMC_DESTINATION_HDR_T_NEXT_HDR, L_LBMC_DESTINATION_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_destination_hdr_len, tvb, offset + O_LBMC_DESTINATION_HDR_T_HDR_LEN, L_LBMC_DESTINATION_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_DESTINATION_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_destination_flags, tvb, offset + O_LBMC_DESTINATION_HDR_T_FLAGS, L_LBMC_DESTINATION_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_destination_flags); - proto_tree_add_item(flags_tree, hf_lbmc_destination_flags_ignore, tvb, offset + O_LBMC_DESTINATION_HDR_T_FLAGS, L_LBMC_DESTINATION_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_DESTINATION_HDR_T_FLAGS, hf_lbmc_destination_flags, ett_lbmc_destination_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_destination_domain_id, tvb, offset + O_LBMC_DESTINATION_HDR_T_DOMAIN_ID, L_LBMC_DESTINATION_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_destination_ipaddr, tvb, offset + O_LBMC_DESTINATION_HDR_T_IPADDR, L_LBMC_DESTINATION_HDR_T_IPADDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_destination_port, tvb, offset + O_LBMC_DESTINATION_HDR_T_PORT, L_LBMC_DESTINATION_HDR_T_PORT, ENC_BIG_ENDIAN); @@ -9877,18 +9750,17 @@ static int dissect_nhdr_topic_idx(tvbuff_t * tvb, int offset, packet_info * pinf { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint8 flags = 0; + static const int * flags[] = + { + &hf_lbmc_topic_idx_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_idx, tvb, offset, L_LBMC_TOPIC_IDX_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_idx); proto_tree_add_item(subtree, hf_lbmc_topic_idx_next_hdr, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_NEXT_HDR, L_LBMC_TOPIC_IDX_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_idx_hdr_len, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_HDR_LEN, L_LBMC_TOPIC_IDX_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_topic_idx_flags, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_FLAGS, L_LBMC_TOPIC_IDX_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_topic_idx_flags); - proto_tree_add_item(flags_tree, hf_lbmc_topic_idx_flags_ignore, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_FLAGS, L_LBMC_TOPIC_IDX_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_FLAGS, hf_lbmc_topic_idx_flags, ett_lbmc_topic_idx_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_idx_tidx, tvb, offset + O_LBMC_TOPIC_IDX_HDR_T_TIDX, L_LBMC_TOPIC_IDX_HDR_T_TIDX, ENC_BIG_ENDIAN); return (L_LBMC_TOPIC_IDX_HDR_T); } @@ -9897,19 +9769,18 @@ static int dissect_nhdr_topic_source(tvbuff_t * tvb, int offset, packet_info * p { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_topic_source_flags_ignore, + &hf_lbmc_topic_source_flags_eos, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_source, tvb, offset, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_source); proto_tree_add_item(subtree, hf_lbmc_topic_source_next_hdr, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_NEXT_HDR, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_source_hdr_len, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_HDR_LEN, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_topic_source_flags, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_topic_source_flags); - proto_tree_add_item(flags_tree, hf_lbmc_topic_source_flags_ignore, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_topic_source_flags_eos, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS, hf_lbmc_topic_source_flags, ett_lbmc_topic_source_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_source_domain_id, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_HDR_T_DOMAIN_ID, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_DOMAIN_ID, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_TOPIC_SOURCE_HDR_T); } @@ -9918,31 +9789,29 @@ static int dissect_nhdr_topic_source_exfunc(tvbuff_t * tvb, int offset, packet_i { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; - proto_item * functionality_flags_item = NULL; - proto_tree * functionality_flags_tree = NULL; - guint32 functionality_flags = 0; + static const int * flags[] = + { + &hf_lbmc_topic_source_exfunc_flags_ignore, + NULL + }; + static const int * functionality_flags[] = + { + &hf_lbmc_topic_source_exfunc_functionality_flags_lj, + &hf_lbmc_topic_source_exfunc_functionality_flags_ume, + &hf_lbmc_topic_source_exfunc_functionality_flags_umq, + &hf_lbmc_topic_source_exfunc_functionality_flags_ulb, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_topic_source_exfunc, tvb, offset, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_topic_source_exfunc); proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_next_hdr, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_NEXT_HDR, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_hdr_len, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_HDR_LEN, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_topic_source_exfunc_flags, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_topic_source_exfunc_flags); - proto_tree_add_item(flags_tree, hf_lbmc_topic_source_exfunc_flags_ignore, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS, hf_lbmc_topic_source_exfunc_flags, ett_lbmc_topic_source_exfunc_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_src_ip, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_IP, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_IP, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_src_port, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_PORT, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_SRC_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_topic_source_exfunc_unused, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_UNUSED, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_UNUSED, ENC_BIG_ENDIAN); - functionality_flags = tvb_get_ntohl(tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS); - functionality_flags_item = proto_tree_add_none_format(subtree, hf_lbmc_topic_source_exfunc_functionality_flags, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, "Flags: 0x%08x", functionality_flags); - functionality_flags_tree = proto_item_add_subtree(functionality_flags_item, ett_lbmc_topic_source_exfunc_functionality_flags); - proto_tree_add_item(functionality_flags_tree, hf_lbmc_topic_source_exfunc_functionality_flags_lj, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(functionality_flags_tree, hf_lbmc_topic_source_exfunc_functionality_flags_ume, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(functionality_flags_tree, hf_lbmc_topic_source_exfunc_functionality_flags_umq, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(functionality_flags_tree, hf_lbmc_topic_source_exfunc_functionality_flags_ulb, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS, hf_lbmc_topic_source_exfunc_functionality_flags, ett_lbmc_topic_source_exfunc_functionality_flags, functionality_flags, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T); } @@ -9950,18 +9819,17 @@ static int dissect_nhdr_ume_store_ext(tvbuff_t * tvb, int offset, packet_info * { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_store_ext_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_store_ext, tvb, offset, L_LBMC_CNTL_UME_STORE_EXT_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_store_ext); proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_next_hdr, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_hdr_len, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_store_ext_flags, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_store_ext_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_store_ext_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS, hf_lbmc_ume_store_ext_flags, ett_lbmc_ume_store_ext_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_grp_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_GRP_IDX, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_GRP_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_store_tcp_port, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_TCP_PORT, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_TCP_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_store_ext_store_idx, tvb, offset + O_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IDX, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_STORE_IDX, ENC_BIG_ENDIAN); @@ -9976,18 +9844,17 @@ static int dissect_nhdr_ume_psrc_election_token(tvbuff_t * tvb, int offset, pack { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_ume_psrc_election_token_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_ume_psrc_election_token, tvb, offset, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_ume_psrc_election_token); proto_tree_add_item(subtree, hf_lbmc_ume_psrc_election_token_next_hdr, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_NEXT_HDR, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_psrc_election_token_hdr_len, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_HDR_LEN, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_ume_psrc_election_token_flags, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_ume_psrc_election_token_flags); - proto_tree_add_item(flags_tree, hf_lbmc_ume_psrc_election_token_flags_ignore, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS, hf_lbmc_ume_psrc_election_token_flags, ett_lbmc_ume_psrc_election_token_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_psrc_election_token_store_index, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_STORE_INDEX, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_STORE_INDEX, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_ume_psrc_election_token_token, tvb, offset + O_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_TOKEN, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_TOKEN, ENC_BIG_ENDIAN); return (L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T); @@ -9997,18 +9864,17 @@ static int dissect_nhdr_tcp_sid(tvbuff_t * tvb, int offset, packet_info * pinfo { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - guint16 flags = 0; + static const int * flags[] = + { + &hf_lbmc_tcp_sid_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmc_tcp_sid, tvb, offset, L_LBMC_CNTL_TCP_SID_HDR_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_tcp_sid); proto_tree_add_item(subtree, hf_lbmc_tcp_sid_next_hdr, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_NEXT_HDR, L_LBMC_CNTL_TCP_SID_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tcp_sid_hdr_len, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_HDR_LEN, L_LBMC_CNTL_TCP_SID_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags = tvb_get_ntohs(tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_FLAGS); - flags_item = proto_tree_add_none_format(subtree, hf_lbmc_tcp_sid_flags, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_FLAGS, L_LBMC_CNTL_TCP_SID_HDR_T_FLAGS, "Flags: 0x%04x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_tcp_sid_flags); - proto_tree_add_item(flags_tree, hf_lbmc_tcp_sid_flags_ignore, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_FLAGS, L_LBMC_CNTL_TCP_SID_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_FLAGS, hf_lbmc_tcp_sid_flags, ett_lbmc_tcp_sid_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_tcp_sid_sid, tvb, offset + O_LBMC_CNTL_TCP_SID_HDR_T_SID, L_LBMC_CNTL_TCP_SID_HDR_T_SID, ENC_BIG_ENDIAN); if (info != NULL) { @@ -10060,11 +9926,16 @@ static int dissect_nhdr_extopt(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 hdrlen = 0; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; + static const int * flags[] = + { + &hf_lbmc_extopt_flags_ignore, + &hf_lbmc_extopt_flags_ignore_subtype, + &hf_lbmc_extopt_flags_more_fragments, + NULL + }; proto_item * ritem = NULL; proto_tree * rtree = NULL; - guint8 flags = 0; + guint8 flags_val = 0; int len_dissected = 0; int data_len = 0; guint16 subtype; @@ -10072,19 +9943,14 @@ static int dissect_nhdr_extopt(tvbuff_t * tvb, int offset, packet_info * pinfo, int data_offset; hdrlen = tvb_get_guint8(tvb, offset + O_LBMC_EXTOPT_HDR_T_HDR_LEN); - flags = tvb_get_guint8(tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS); + flags_val = tvb_get_guint8(tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS); subtype = tvb_get_ntohs(tvb, offset + O_LBMC_EXTOPT_HDR_T_SUBTYPE); fragment_offset = tvb_get_ntohs(tvb, offset + O_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET); subtree_item = proto_tree_add_item(tree, hf_lbmc_extopt, tvb, offset, (gint)hdrlen, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmc_extopt); proto_tree_add_item(subtree, hf_lbmc_extopt_next_hdr, tvb, offset + O_LBMC_EXTOPT_HDR_T_NEXT_HDR, L_LBMC_EXTOPT_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_extopt_hdr_len, tvb, offset + O_LBMC_EXTOPT_HDR_T_HDR_LEN, L_LBMC_EXTOPT_HDR_T_HDR_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_none_format(subtree, - hf_lbmc_extopt_flags, tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS, L_LBMC_EXTOPT_HDR_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmc_extopt_flags); - proto_tree_add_item(flags_tree, hf_lbmc_extopt_flags_ignore, tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS, L_LBMC_EXTOPT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_extopt_flags_ignore_subtype, tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS, L_LBMC_EXTOPT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmc_extopt_flags_more_fragments, tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS, L_LBMC_EXTOPT_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMC_EXTOPT_HDR_T_FLAGS, hf_lbmc_extopt_flags, ett_lbmc_extopt_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_extopt_id, tvb, offset + O_LBMC_EXTOPT_HDR_T_ID, L_LBMC_EXTOPT_HDR_T_ID, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_extopt_subtype, tvb, offset + O_LBMC_EXTOPT_HDR_T_SUBTYPE, L_LBMC_EXTOPT_HDR_T_SUBTYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_extopt_fragment_offset, tvb, offset + O_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET, L_LBMC_EXTOPT_HDR_T_FRAGMENT_OFFSET, ENC_BIG_ENDIAN); @@ -10092,7 +9958,7 @@ static int dissect_nhdr_extopt(tvbuff_t * tvb, int offset, packet_info * pinfo, data_len = (int)hdrlen - len_dissected; data_offset = offset + len_dissected; len_dissected += data_len; - if ((flags & LBMC_EXTOPT_FLAG_MORE_FRAGMENT) == 0) + if ((flags_val & LBMC_EXTOPT_FLAG_MORE_FRAGMENT) == 0) { /* No more fragments. Do we have a reassembly already started? */ if (reassembly->reassembly_in_progress) @@ -10211,8 +10077,6 @@ static int dissect_msg_properties(tvbuff_t * tvb, int offset, packet_info * pinf proto_tree * data_tree = NULL; proto_item * field_item = NULL; proto_tree * field_tree = NULL; - proto_item * vertype_item = NULL; - proto_tree * vertype_tree = NULL; guint32 magic; guint32 * magic_ptr = NULL; char magic_char[4]; @@ -10246,10 +10110,8 @@ static int dissect_msg_properties(tvbuff_t * tvb, int offset, packet_info * pinf data_tree = proto_item_add_subtree(data_item, ett_lbm_msg_properties_data); magic_item = proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_magic, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_MAGIC, L_LBM_MSG_PROPERTIES_DATA_T_MAGIC, ENC_LITTLE_ENDIAN); proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_num_fields, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS, L_LBM_MSG_PROPERTIES_DATA_T_NUM_FIELDS, encoding); - vertype_item = proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_vertype, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, L_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, encoding); - vertype_tree = proto_item_add_subtree(vertype_item, ett_lbm_msg_properties_data_vertype); - proto_tree_add_item(vertype_tree, hf_lbm_msg_properties_data_vertype_version, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, L_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, encoding); - proto_tree_add_item(vertype_tree, hf_lbm_msg_properties_data_vertype_type, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, L_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, encoding); + proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_version, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, L_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, encoding); + proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_type, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, L_LBM_MSG_PROPERTIES_DATA_T_VERTYPE, encoding); proto_tree_add_item(data_tree, hf_lbm_msg_properties_data_res, tvb, offset + O_LBM_MSG_PROPERTIES_DATA_T_RES, L_LBM_MSG_PROPERTIES_DATA_T_RES, encoding); if ((magic != LBM_MSG_PROPERTIES_MAGIC) && (magic != LBM_MSG_PROPERTIES_ANTIMAGIC)) { @@ -10718,7 +10580,6 @@ int lbmc_dissect_lbmc_packet(tvbuff_t * tvb, int offset, packet_info * pinfo, pr proto_item * subtree_item = NULL; proto_tree * subtree = NULL; guint8 type; - guint8 version; guint8 ver_type; guint8 next_hdr; guint16 msglen = 0; @@ -10730,8 +10591,6 @@ int lbmc_dissect_lbmc_packet(tvbuff_t * tvb, int offset, packet_info * pinfo, pr guint32 topic_index = 0; int len_dissected = 0; int lbmc_hdr_len; - proto_item * ver_type_item = NULL; - proto_tree * ver_type_tree = NULL; guint32 msgprop_len = 0; lbmc_fragment_info_t frag_info; lbmc_extopt_reassembled_data_t reassembly; @@ -10762,7 +10621,6 @@ int lbmc_dissect_lbmc_packet(tvbuff_t * tvb, int offset, packet_info * pinfo, pr /* Get the version and type. */ ver_type = tvb_get_guint8(tvb, tvb_lbmc_offset + O_LBMC_HDR_T_VER_TYPE); - version = LBMC_HDR_VER(ver_type); type = LBMC_HDR_TYPE(ver_type); /* Get the message length. */ msglen = tvb_get_ntohs(tvb, tvb_lbmc_offset + O_LBMC_MINIMAL_HDR_T_MSGLEN); @@ -10824,18 +10682,8 @@ int lbmc_dissect_lbmc_packet(tvbuff_t * tvb, int offset, packet_info * pinfo, pr pi = proto_tree_add_string(subtree, hf_lbmc_topic, tvb, 0, 0, topic_name); PROTO_ITEM_SET_GENERATED(pi); } - ver_type_item = proto_tree_add_none_format(subtree, - hf_lbmc_ver_type, - lbmc_tvb, - O_LBMC_HDR_T_VER_TYPE, - L_LBMC_HDR_T_VER_TYPE, - "Version/Type: 0x%02x (Version:%u, Type:%s)", - ver_type, - version, - val_to_str(type, lbmc_message_type, "Unknown (0x%02x)")); - ver_type_tree = proto_item_add_subtree(ver_type_item, ett_lbmc_ver_type); - proto_tree_add_item(ver_type_tree, hf_lbmc_ver_type_version, lbmc_tvb, O_LBMC_HDR_T_VER_TYPE, L_LBMC_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); - type_item = proto_tree_add_item(ver_type_tree, hf_lbmc_ver_type_type, lbmc_tvb, O_LBMC_HDR_T_VER_TYPE, L_LBMC_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_lbmc_version, lbmc_tvb, O_LBMC_HDR_T_VER_TYPE, L_LBMC_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); + type_item = proto_tree_add_item(subtree, hf_lbmc_type, lbmc_tvb, O_LBMC_HDR_T_VER_TYPE, L_LBMC_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmc_next_hdr, lbmc_tvb, O_LBMC_HDR_T_NEXT_HDR, L_LBMC_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); last_initial_item = proto_tree_add_item(subtree, hf_lbmc_msglen, lbmc_tvb, O_LBMC_HDR_T_MSGLEN, L_LBMC_HDR_T_MSGLEN, ENC_BIG_ENDIAN); len_dissected += (L_LBMC_HDR_T_VER_TYPE + L_LBMC_HDR_T_NEXT_HDR + L_LBMC_HDR_T_MSGLEN); @@ -11673,12 +11521,10 @@ void proto_register_lbmc(void) { "Tag", "lbmc.tag", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic, { "Topic", "lbmc.topic", FT_STRING, BASE_NONE, NULL, 0x0, "Topic string", HFILL } }, - { &hf_lbmc_ver_type, - { "Version/Type", "lbmc.ver_type", FT_NONE, BASE_NONE, NULL, 0x0, "Version/Type information", HFILL } }, - { &hf_lbmc_ver_type_version, - { "Version", "lbmc.ver_type.version", FT_UINT8, BASE_DEC, NULL, LBMC_HDR_VER_TYPE_VER_MASK, "LBMC protocol version", HFILL } }, - { &hf_lbmc_ver_type_type, - { "Type", "lbmc.ver_type.type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_message_type), LBMC_HDR_VER_TYPE_TYPE_MASK, "LBMC packet type", HFILL } }, + { &hf_lbmc_version, + { "Version", "lbmc.version", FT_UINT8, BASE_DEC, NULL, LBMC_HDR_VER_TYPE_VER_MASK, "LBMC protocol version", HFILL } }, + { &hf_lbmc_type, + { "Type", "lbmc.type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_message_type), LBMC_HDR_VER_TYPE_TYPE_MASK, "LBMC packet type", HFILL } }, { &hf_lbmc_next_hdr, { "Next Header", "lbmc.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } }, { &hf_lbmc_msglen, @@ -11694,7 +11540,7 @@ void proto_register_lbmc(void) { &hf_lbmc_frag_hdr_len, { "Header Length", "lbmc.frag.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_frag_flags, - { "Flags", "lbmc.frag.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.frag.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_frag_flags_ignore, { "Ignore", "lbmc.frag.flags.ignore", FT_BOOLEAN, L_LBMC_FRAG_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_frag_first_sqn, @@ -11710,7 +11556,7 @@ void proto_register_lbmc(void) { &hf_lbmc_batch_hdr_len, { "Header Length", "lbmc.batch.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_batch_flags, - { "Flags", "lbmc.batch.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.batch.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_batch_flags_ignore, { "Ignore", "lbmc.batch.flags.ignore", FT_BOOLEAN, L_LBMC_BATCH_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_batch_flags_batch_start, @@ -11724,7 +11570,7 @@ void proto_register_lbmc(void) { &hf_lbmc_tcp_request_hdr_len, { "Header Length", "lbmc.tcp_request.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tcp_request_flags, - { "Flags", "lbmc.tcp_request.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.tcp_request.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tcp_request_flags_ignore, { "Ignore", "lbmc.tcp_request_flags.ignore", FT_BOOLEAN, L_LBMC_TCP_REQUEST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_tcp_request_transport, @@ -11744,7 +11590,7 @@ void proto_register_lbmc(void) { &hf_lbmc_topicname_hdr_len, { "Header Length", "lbmc.topicname.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topicname_flags, - { "Flags", "lbmc.topicname.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.topicname.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topicname_flags_ignore, { "Ignore", "lbmc.topicname.flags.ignore", FT_BOOLEAN, L_LBMC_TOPICNAME_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_topicname_topicname, @@ -11755,12 +11601,10 @@ void proto_register_lbmc(void) { "Next Header", "lbmc.apphdr.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } }, { &hf_lbmc_apphdr_hdr_len, { "Header Length", "lbmc.apphdr.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, + { &hf_lbmc_apphdr_ignore, + { "Ignore", "lbmc.apphdr.ignore", FT_BOOLEAN, L_LBMC_APPHDR_HDR_T_CODE * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_apphdr_code, - { "Code", "lbmc.apphdr.code", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmc_apphdr_code_ignore, - { "Ignore", "lbmc.apphdr.code.ignore", FT_BOOLEAN, L_LBMC_APPHDR_HDR_T_CODE * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, - { &hf_lbmc_apphdr_code_code, - { "Application Code", "lbmc.apphdr.code.code", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_APPHDR_CODE_MASK, "Application header code", HFILL } }, + { "Application Code", "lbmc.apphdr.code", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_APPHDR_CODE_MASK, "Application header code", HFILL } }, { &hf_lbmc_apphdr_data, { "Data", "lbmc.apphdr.data", FT_NONE, BASE_NONE, NULL, 0x0, "Application header data", HFILL } }, { &hf_lbmc_apphdr_chain, @@ -11800,7 +11644,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_msgid_hdr_len, { "Header Length", "lbmc.umq_msgid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_msgid_flags, - { "Flags", "lbmc.umq_msgid.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_msgid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_msgid_flags_ignore, { "Ignore", "lbmc.umq_msgid.flags.ignore", FT_BOOLEAN, L_LBMC_UMQ_MSGID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_umq_msgid_msgid_regid, @@ -11814,7 +11658,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_sqd_rcv_hdr_len, { "Header Length", "lbmc.umq_sqd_rcv.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_sqd_rcv_flags, - { "Flags", "lbmc.umq_sqd_rcv.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_sqd_rcv.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_sqd_rcv_flags_ignore, { "Ignore", "lbmc.umq_sqd_rcv.flags.ignore", FT_BOOLEAN, L_LBMC_UMQ_SQD_RCV_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_umq_sqd_rcv_flags_r_flag, @@ -11842,7 +11686,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_resub_hdr_len, { "Header Length", "lbmc.umq_resub.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_resub_flags, - { "Flags", "lbmc.umq_resub.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_resub.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_resub_flags_ignore, { "Ignore", "lbmc.umq_resub.flags.ignore", FT_BOOLEAN, L_LBMC_UMQ_RESUB_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_umq_resub_flags_q_flag, @@ -11862,7 +11706,7 @@ void proto_register_lbmc(void) { &hf_lbmc_otid_hdr_len, { "Header Length", "lbmc.otid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_otid_flags, - { "Flags", "lbmc.otid.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.otid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_otid_flags_ignore, { "Ignore", "lbmc.otid.flags.ignore", FT_BOOLEAN, L_LBMC_OTID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_otid_otid, @@ -11874,7 +11718,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ctxinst_hdr_len, { "Header Length", "lbmc.ctxinst.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ctxinst_flags, - { "Flags", "lbmc.ctxinst.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ctxinst.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ctxinst_flags_ignore, { "Ignore", "lbmc.ctxinst_flags.ignore", FT_BOOLEAN, L_LBMC_CTXINST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ctxinst_ctxinst, @@ -11890,7 +11734,7 @@ void proto_register_lbmc(void) { &hf_lbmc_srcidx_hdr_len, { "Header Length", "lbmc.srcidx.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_srcidx_flags, - { "Flags", "lbmc.srcidx.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.srcidx.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_srcidx_flags_ignore, { "Ignore", "lbmc.srcidx.flags.ignore", FT_BOOLEAN, L_LBMC_SRCIDX_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_srcidx_srcidx, @@ -11902,7 +11746,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_ulb_msg_hdr_len, { "Header Length", "lbmc.umq_ulb_msg.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_ulb_msg_flags, - { "Flags", "lbmc.umq_ulb_msg.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_ulb_msg.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_ulb_msg_flags_ignore, { "Ignore", "lbmc.umq_ulb_msg.flags.ignore", FT_BOOLEAN, L_LBMC_UMQ_ULB_MSG_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_umq_ulb_msg_flags_a_flag, @@ -11928,7 +11772,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ssf_init_transport, { "Transport", "lbmc.ssf_init.transport", FT_UINT8, BASE_DEC, VALS(lbmc_ssf_transport_type), 0x0, NULL, HFILL } }, { &hf_lbmc_ssf_init_flags, - { "Flags", "lbmc.ssf_init.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ssf_init.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ssf_init_flags_ignore, { "Ignore", "lbmc.ssf_init.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_SSF_INIT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_ssf_init_flags_default_inclusions, @@ -11952,7 +11796,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ssf_creq_hdr_len, { "Header Length", "lbmc.ssf_creq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ssf_creq_flags, - { "Flags", "lbmc.ssf_creq.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ssf_creq.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ssf_creq_flags_ignore, { "Ignore", "lbmc.ssf_creq.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_SSF_CREQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_ssf_creq_mode, @@ -11970,7 +11814,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_preg_hdr_len, { "Header Length", "lbmc.ume_preg.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_preg_flags, - { "Flags", "lbmc.ume_preg.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_preg.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_preg_flags_ignore, { "Ignore", "lbmc.ume_preg.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_ume_preg_flags_f_flag, @@ -11981,12 +11825,10 @@ void proto_register_lbmc(void) { "Receiver Paced Persistence", "lbmc.ume_preg.flags.w_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PREG_W_FLAG, "Set if receiver paced persistence is used", HFILL } }, { &hf_lbmc_ume_preg_flags_d_flag, { "Deregister", "lbmc.ume_preg.flags.d_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_PREG_D_FLAG, "Set if this is a de-registration", HFILL } }, + { &hf_lbmc_ume_preg_s_flag, + { "Source Registration", "lbmc.ume_preg.s_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER * 8, TFS(&lbmc_ume_s_flag), LBMC_UME_PREG_S_FLAG, "Set if this is a source registration", HFILL } }, { &hf_lbmc_ume_preg_marker, - { "Marker", "lbmc.ume_preg.marker", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmc_ume_preg_marker_s_flag, - { "Source Registration", "lbmc.ume_preg.marker.s_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_HDR_T_MARKER * 8, TFS(&lbmc_ume_s_flag), LBMC_UME_PREG_S_FLAG, "Set if this is a source registration", HFILL } }, - { &hf_lbmc_ume_preg_marker_marker, - { "Marker", "lbmc.ume_preg.marker.marker", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_PREG_MARKER_MASK, NULL, HFILL } }, + { "Marker", "lbmc.ume_preg.marker", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_PREG_MARKER_MASK, NULL, HFILL } }, { &hf_lbmc_ume_preg_reg_id, { "Registration ID", "lbmc.ume_preg.reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_preg_transport_idx, @@ -12008,7 +11850,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_preg_resp_hdr_len, { "Header Length", "lbmc.ume_preg_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_preg_resp_code, - { "Code", "lbmc.ume_preg_resp.code", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Code", "lbmc.ume_preg_resp.code", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_preg_resp_code_ignore, { "Ignore", "lbmc.ume_preg_resp.code.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_ume_preg_resp_code_e_flag, @@ -12023,12 +11865,10 @@ void proto_register_lbmc(void) { "Deregister", "lbmc.ume_preg_resp.code.d_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_CODE * 8, TFS(&tfs_set_notset), LBMC_UME_PREG_RESP_D_FLAG, "Set if deregistration", HFILL } }, { &hf_lbmc_ume_preg_resp_code_code, { "Error Code", "lbmc.ume_preg_resp.code.code", FT_UINT8, BASE_HEX, VALS(lbmc_ume_preg_resp_error_code), LBMC_CNTL_UME_PREG_RESP_CODE_MASK, NULL, HFILL } }, + { &hf_lbmc_ume_preg_resp_s_flag, + { "Source Registration", "lbmc.ume_preg_resp.s_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER * 8, TFS(&lbmc_ume_s_flag), LBMC_UME_PREG_S_FLAG, "Set if source registration", HFILL } }, { &hf_lbmc_ume_preg_resp_marker, - { "Marker", "lbmc.ume_preg_resp.marker", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmc_ume_preg_resp_marker_s_flag, - { "Source Registration", "lbmc.ume_preg_resp.marker.s_flag", FT_BOOLEAN, L_LBMC_CNTL_UME_PREG_RESP_HDR_T_MARKER * 8, TFS(&lbmc_ume_s_flag), LBMC_UME_PREG_S_FLAG, "Set if source registration", HFILL } }, - { &hf_lbmc_ume_preg_resp_marker_marker, - { "Marker", "lbmc.ume_preg_resp.marker.marker", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_PREG_MARKER_MASK, NULL, HFILL } }, + { "Marker", "lbmc.ume_preg_resp.marker", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_PREG_MARKER_MASK, NULL, HFILL } }, { &hf_lbmc_ume_preg_resp_reg_id, { "Registration ID", "lbmc.ume_preg_resp.reg_id", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_preg_resp_transport_idx, @@ -12046,7 +11886,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_ack_hdr_len, { "Header Length", "lbmc.ume_ack.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_ack_flags, - { "Flags", "lbmc.ume_ack.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_ack.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_ack_flags_ignore, { "Ignore", "lbmc.ume_ack.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_ACK_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_ume_ack_flags_o_flag, @@ -12074,11 +11914,13 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_rxreq_hdr_len, { "Header Length", "lbmc.ume_rxreq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_rxreq_flags, - { "Flags", "lbmc.ume_rxreq.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_rxreq.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_rxreq_flags_ignore, { "Ignore", "lbmc.ume_rxreq.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_rxreq_flags_tsni_req, { "TSNI Request", "lbmc.ume_rxreq.flags.t", FT_BOOLEAN, L_LBMC_CNTL_UME_RXREQ_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UME_RXREQ_T_FLAG, "Set if TSNI request", HFILL } }, + { &hf_lbmc_ume_rxreq_marker, + { "Marker", "lbmc.ume_rxreq.marker", FT_UINT16, BASE_HEX_DEC, NULL, LBMC_UME_RXREQ_MARKER_MASK, NULL, HFILL } }, { &hf_lbmc_ume_rxreq_request_idx, { "Request Index", "lbmc.ume_rxreq.request_idx", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_rxreq_transport_idx, @@ -12100,7 +11942,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_keepalive_hdr_len, { "Header Length", "lbmc.ume_keepalive.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_keepalive_flags, - { "Flags", "lbmc.ume_keepalive.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_keepalive.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_keepalive_flags_ignore, { "Ignore", "lbmc.ume_keepalive.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_KEEPALIVE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_ume_keepalive_flags_r_flag, @@ -12121,12 +11963,10 @@ void proto_register_lbmc(void) { "Next Header", "lbmc.ume_storeid.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } }, { &hf_lbmc_ume_storeid_hdr_len, { "Header Length", "lbmc.ume_storeid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, + { &hf_lbmc_ume_storeid_ignore, + { "Ignore", "lbmc.ume_storeid.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_storeid_store_id, - { "Store ID", "lbmc.ume_storeid.storeid", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmc_ume_storeid_store_id_ignore, - { "Ignore", "lbmc.ume_storeid.storeid.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STOREID_HDR_T_STORE_ID * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, - { &hf_lbmc_ume_storeid_store_id_store_id, - { "Store ID", "lbmc.ume_storeid.storeid.store_id", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_STOREID_STOREID_MASK, NULL, HFILL } }, + { "Store ID", "lbmc.ume_storeid.store_id", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_CNTL_UME_STOREID_STOREID_MASK, NULL, HFILL } }, { &hf_lbmc_ume_ranged_ack, { "UME Ranged ACK", "lbmc.ume_ranged_ack", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_ranged_ack_next_hdr, @@ -12134,7 +11974,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_ranged_ack_hdr_len, { "Header Length", "lbmc.ume_ranged_ack.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_ranged_ack_flags, - { "Flags", "lbmc.ume_ranged_ack.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_ranged_ack.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_ranged_ack_flags_ignore, { "Ignore", "lbmc.ume_ranged_ack.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_RANGED_ACK_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_ranged_ack_first_seqnum, @@ -12148,7 +11988,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_ack_id_hdr_len, { "Header Length", "lbmc.ume_ack_id.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_ack_id_flags, - { "Flags", "lbmc.ume_ack_id.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_ack_id.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_ack_id_flags_ignore, { "Ignore", "lbmc.ume_ack_id.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_ACK_ID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_ack_id_id, @@ -12160,7 +12000,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_capability_hdr_len, { "Header Length", "lbmc.ume_capability.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_capability_flags, - { "Flags", "lbmc.ume_capability.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_capability.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_capability_flags_ignore, { "Ignore", "lbmc.ume_capability.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_CAPABILITY_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_capability_flags_qc_flag, @@ -12174,7 +12014,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_proxy_src_hdr_len, { "Header Length", "lbmc.ume_proxy_src.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_proxy_src_flags, - { "Flags", "lbmc.ume_proxy_src.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_proxy_src.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_proxy_src_flags_ignore, { "Ignore", "lbmc.ume_proxy_src.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PROXY_SRC_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_proxy_src_flags_enable, @@ -12188,7 +12028,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_store_group_hdr_len, { "Header Length", "lbmc.ume_store_group.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_store_group_flags, - { "Flags", "lbmc.ume_store_group.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_store_group.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_store_group_flags_ignore, { "Ignore", "lbmc.ume_store_group.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STORE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_store_group_grp_idx, @@ -12204,7 +12044,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_store_hdr_len, { "Header Length", "lbmc.ume_store.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_store_flags, - { "Flags", "lbmc.ume_store.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_store.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_store_flags_ignore, { "Ignore", "lbmc.ume_store.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STORE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_store_grp_idx, @@ -12224,7 +12064,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_lj_info_hdr_len, { "Header Length", "lbmc.ume_lj_info.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_lj_info_flags, - { "Flags", "lbmc.ume_lj_info.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_lj_info.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_lj_info_flags_ignore, { "Ignore", "lbmc.ume_lj_info.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_LJ_INFO_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_lj_info_low_seqnum, @@ -12239,12 +12079,10 @@ void proto_register_lbmc(void) { "Next Header", "lbmc.tsni.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_next_header), 0x0, NULL, HFILL } }, { &hf_lbmc_tsni_hdr_len, { "Header Length", "lbmc.tsni.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, + { &hf_lbmc_tsni_ignore, + { "Ignore", "lbmc.tsni.ignore", FT_BOOLEAN, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_tsni_num_recs, - { "Num Recs", "lbmc.tsni.num_recs", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmc_tsni_num_recs_ignore, - { "Ignore", "lbmc.tsni.num_recs.ignore", FT_BOOLEAN, L_LBMC_CNTL_TSNI_HDR_T_NUM_RECS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, - { &hf_lbmc_tsni_num_recs_num_recs, - { "Num Recs", "lbmc.tsni.num_recs.num_recs", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_CNTL_TSNI_NUM_RECS_MASK, NULL, HFILL } }, + { "Num Recs", "lbmc.tsni.num_recs", FT_UINT16, BASE_DEC_HEX, NULL, LBMC_CNTL_TSNI_NUM_RECS_MASK, NULL, HFILL } }, { &hf_lbmc_tsni_rec, { "TSNIs", "lbmc.tsni.tsni_rec", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tsni_rec_tidx, @@ -12258,7 +12096,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_reg_hdr_len, { "Header Length", "lbmc.umq_reg.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_reg_flags, - { "Flags", "lbmc.umq_reg.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_reg.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_reg_flags_ignore, { "Ignore", "lbmc.umq_reg.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_reg_flags_r_flag, @@ -12352,7 +12190,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_reg_resp_hdr_len, { "Header Length", "lbmc.umq_reg_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_reg_resp_flags, - { "Flags", "lbmc.umq_reg_resp.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_reg_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_reg_resp_flags_ignore, { "Ignore", "lbmc.umq_reg_resp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_RESP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_reg_resp_flags_r_flag, @@ -12384,7 +12222,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_reg_resp_reg_ctx_ex_reserved, { "Reserved", "lbmc.umq_reg_resp.reg_ctx_ex.reserved", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_reg_resp_reg_ctx_ex_flags, - { "Flags", "lbmc.umq_reg_resp.reg_ctx_ex.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_reg_resp.reg_ctx_ex.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_reg_resp_reg_ctx_ex_flags_firstmsg, { "First Message", "lbmc.umq_reg_resp.reg_ctx_ex.flags.firstmsg", FT_BOOLEAN, L_LBMC_CNTL_UMQ_REG_RESP_CTX_EX_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_REG_RESP_CTX_EX_FLAG_FIRSTMSG, "Set if first message", HFILL } }, { &hf_lbmc_umq_reg_resp_reg_ctx_ex_stamp, @@ -12456,15 +12294,15 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_ack_hdr_len, { "Header Length", "lbmc.umq_ack.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_ack_msgs, - { "Msgs", "lbmc.umq_ack.msgs", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Msgs", "lbmc.umq_ack.msgs", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_ack_msgs_ignore, { "Ignore", "lbmc.umq_ack.msgs.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_ack_msgs_t_flag, { "T Flag", "lbmc.umq_ack.msgs.t_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ACK_T_FLAG, NULL, HFILL } }, { &hf_lbmc_umq_ack_msgs_d_flag, { "D Flag", "lbmc.umq_ack.msgs.d_flag", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ACK_HDR_T_MSGS * 8, TFS(&tfs_set_notset), LBMC_UMQ_ACK_D_FLAG, NULL, HFILL } }, - { &hf_lbmc_umq_ack_msgs_numids, - { "Number of Message IDs", "lbmc.umq_ack.msgs.num_ids", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_UMQ_ACK_NUMIDS_MASK, NULL, HFILL } }, + { &hf_lbmc_umq_ack_numids, + { "Number of Message IDs", "lbmc.umq_ack.num_ids", FT_UINT8, BASE_DEC_HEX, NULL, LBMC_UMQ_ACK_NUMIDS_MASK, NULL, HFILL } }, { &hf_lbmc_umq_ack_ack_type, { "ACK Type", "lbmc.umq_ack.ack_type", FT_UINT8, BASE_DEC_HEX, VALS(lbmc_umq_ack_type), 0x0, NULL, HFILL } }, { &hf_lbmc_umq_ack_msgid, @@ -12508,7 +12346,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_rcr_hdr_len, { "Header Length", "lbmc.umq_rcr.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_rcr_flags, - { "Flags", "lbmc.umq_rcr.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_rcr.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_rcr_flags_ignore, { "Ignore", "lbmc.umq_rcr.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RCR_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_umq_rcr_flags_r_flag, @@ -12548,7 +12386,7 @@ void proto_register_lbmc(void) { &hf_lbmc_cntl_umq_ka_hdr_len, { "Header Length", "lbmc.umq_ka.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_cntl_umq_ka_flags, - { "Flags", "lbmc.umq_ka.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_ka.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_cntl_umq_ka_flags_ignore, { "Ignore", "lbmc.umq_ka.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_KA_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_cntl_umq_ka_flags_r_flag, @@ -12598,7 +12436,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_rxreq_hdr_len, { "Header Length", "lbmc.umq_rxreq.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_rxreq_flags, - { "Flags", "lbmc.umq_rxreq.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_rxreq.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_rxreq_flags_ignore, { "Ignore", "lbmc.umq_rxreq.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RXREQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_rxreq_flags_r_flag, @@ -12688,7 +12526,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_resub_req_hdr_len, { "Header Length", "lbmc.umq_resub_req.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_resub_req_flags, - { "Flags", "lbmc.umq_resub_req.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_resub_req.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_resub_req_flags_ignore, { "Ignore", "lbmc.umq_resub_req.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RESUB_REQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_umq_resub_req_msgid_regid, @@ -12710,7 +12548,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_resub_resp_hdr_len, { "Header Length", "lbmc.umq_resub_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_resub_resp_flags, - { "Flags", "lbmc.umq_resub_resp.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_resub_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_resub_resp_flags_ignore, { "Ignore", "lbmc.umq_resub_resp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_RESUB_RESP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_resub_resp_code, @@ -12732,7 +12570,7 @@ void proto_register_lbmc(void) { &hf_lbmc_topic_interest_hdr_len, { "Header Length", "lbmc.topic_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_interest_flags, - { "Flags", "lbmc.topic_interest.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.topic_interest.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_interest_flags_ignore, { "Ignore", "lbmc.topic_interest.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_INTEREST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_topic_interest_flags_cancel, @@ -12748,7 +12586,7 @@ void proto_register_lbmc(void) { &hf_lbmc_pattern_interest_hdr_len, { "Header Length", "lbmc.pattern_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_pattern_interest_flags, - { "Flags", "lbmc.pattern_interest.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.pattern_interest.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_pattern_interest_flags_ignore, { "Ignore", "lbmc.pattern_interest.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_PATTERN_INTEREST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_pattern_interest_flags_cancel, @@ -12768,7 +12606,7 @@ void proto_register_lbmc(void) { &hf_lbmc_advertisement_hdr_len, { "Header Length", "lbmc.advertisement.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_advertisement_flags, - { "Flags", "lbmc.advertisement.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.advertisement.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_advertisement_flags_ignore, { "Ignore", "lbmc.advertisement.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_advertisement_flags_eos, @@ -12782,7 +12620,7 @@ void proto_register_lbmc(void) { &hf_lbmc_advertisement_hop_count, { "Hop Count", "lbmc.advertisement.hop_count", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_advertisement_ad_flags, - { "Ad Flags", "lbmc.advertisement.ad_flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Ad Flags", "lbmc.advertisement.ad_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_advertisement_ad_flags_lj, { "Late Join", "lbmc.advertisement.ad_flags.lj", FT_BOOLEAN, L_LBMC_CNTL_ADVERTISEMENT_HDR_T_AD_FLAGS * 8, TFS(&tfs_set_notset), LBMC_ADVERTISEMENT_AD_LJ_FLAG, "Set if source provides late join", HFILL } }, { &hf_lbmc_advertisement_ad_flags_ume, @@ -12816,7 +12654,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_storename_hdr_len, { "Header Length", "lbmc.ume_storename.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_storename_flags, - { "Flags", "lbmc.ume_storename.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_storename.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_storename_flags_ignore, { "Ignore", "lbmc.ume_storename.flags.ignore", FT_BOOLEAN, L_LBMC_UME_STORENAME_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_storename_store, @@ -12828,7 +12666,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_ulb_rcr_hdr_len, { "Header Length", "lbmc.umq_ulb_rcr.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_ulb_rcr_flags, - { "Flags", "lbmc.umq_ulb_rcr.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_ulb_rcr.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_ulb_rcr_flags_ignore, { "Ignore", "lbmc.umq_ulb_rcr.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_RCR_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_umq_ulb_rcr_flags_r_flag, @@ -12862,7 +12700,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_lf_hdr_len, { "Header Length", "lbmc.umq_lf.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_lf_flags, - { "Flags", "lbmc.umq_lf.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_lf.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_lf_flags_ignore, { "Ignore", "lbmc.umq_lf.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_LF_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_lf_type, @@ -12878,7 +12716,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ctxinfo_hdr_len, { "Header Length", "lbmc.ctxinfo.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ctxinfo_flags, - { "Flags", "lbmc.ctxinfo.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ctxinfo.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ctxinfo_flags_ignore, { "Ignore", "lbmc.ctxinfo.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_CTXINFO_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ctxinfo_flags_query, @@ -12916,7 +12754,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_pser_hdr_len, { "Header Length", "lbmc.ume_pser.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_pser_flags, - { "Flags", "lbmc.ume_pser.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_pser.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_pser_flags_ignore, { "Ignore", "lbmc.ume_pser.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PSER_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_pser_flags_source_ctxinst, @@ -12948,7 +12786,7 @@ void proto_register_lbmc(void) { &hf_lbmc_domain_hdr_len, { "Header Length", "lbmc.domain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_domain_flags, - { "Flags", "lbmc.domain.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.domain.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_domain_flags_ignore, { "Ignore", "lbmc.domain.flags.ignore", FT_BOOLEAN, L_LBMC_DOMAIN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_domain_flags_active, @@ -12962,13 +12800,13 @@ void proto_register_lbmc(void) { &hf_lbmc_tnwg_capabilities_hdr_len, { "Header Length", "lbmc.tnwg_capabilities.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tnwg_capabilities_flags, - { "Flags", "lbmc.tnwg_capabilities.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.tnwg_capabilities.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tnwg_capabilities_flags_ignore, { "Ignore", "lbmc.tnwg_capabilities.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_tnwg_capabilities_flags_version, { "Version", "lbmc.tnwg_capabilities.flags.version", FT_UINT16, BASE_DEC, NULL, LBMC_CNTL_TNWG_CAPABILITIES_VERSION_MASK, NULL, HFILL } }, { &hf_lbmc_tnwg_capabilities_capabilities1, - { "Capabilities1", "lbmc.tnwg_capabilities.capabilities1", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Capabilities1", "lbmc.tnwg_capabilities.capabilities1", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tnwg_capabilities_capabilities1_ume, { "UME", "lbmc.tnwg_capabilities.capabilities1.ume", FT_BOOLEAN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES1 * 8, TFS(&tfs_set_notset), LBMC_CNTL_TNWG_CAPABILITIES1_UME_FLAG, "Set if UME is supported", HFILL } }, { &hf_lbmc_tnwg_capabilities_capabilities1_umq, @@ -12976,7 +12814,7 @@ void proto_register_lbmc(void) { &hf_lbmc_tnwg_capabilities_capabilities2, { "Capabilities2", "lbmc.tnwg_capabilities.capabilities2", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tnwg_capabilities_capabilities3, - { "Capabilities3", "lbmc.tnwg_capabilities.capabilities3", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Capabilities3", "lbmc.tnwg_capabilities.capabilities3", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tnwg_capabilities_capabilities3_pcre, { "PCRE", "lbmc.tnwg_capabilities.capabilities3.pcre", FT_BOOLEAN, L_LBMC_CNTL_TNWG_CAPABILITIES_HDR_T_CAPABILITIES3 * 8, TFS(&tfs_set_notset), LBMC_CNTL_TNWG_CAPABILITIES3_PCRE_FLAG, "Set if PCRE patterns are supported", HFILL } }, { &hf_lbmc_tnwg_capabilities_capabilities3_regex, @@ -12990,7 +12828,7 @@ void proto_register_lbmc(void) { &hf_lbmc_patidx_hdr_len, { "Header Length", "lbmc.patidx.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_patidx_flags, - { "Flags", "lbmc.patidx.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.patidx.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_patidx_flags_ignore, { "Ignore", "lbmc.patidx.flags.ignore", FT_BOOLEAN, L_LBMC_PATIDX_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_patidx_patidx, @@ -13002,7 +12840,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_client_lifetime_hdr_len, { "Header Length", "lbmc.ume_client_lifetime.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_client_lifetime_flags, - { "Flags", "lbmc.ume_client_lifetime.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_client_lifetime.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_client_lifetime_flags_ignore, { "Ignore", "lbmc.ume_client_lifetime.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_CLIENT_LIFETIME_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_client_lifetime_activity_tmo, @@ -13018,7 +12856,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_sid_hdr_len, { "Header Length", "lbmc.ume_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_sid_flags, - { "Flags", "lbmc.ume_sid.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_sid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_sid_flags_ignore, { "Ignore", "lbmc.ume_sid.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_SID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_sid_sid, @@ -13030,7 +12868,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_idx_cmd_hdr_len, { "Header Length", "lbmc.umq_idx_cmd.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_flags, - { "Flags", "lbmc.umq_idx_cmd.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_idx_cmd.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_flags_ignore, { "Ignore", "lbmc.umq_idx_cmd.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_cmd_type, @@ -13062,7 +12900,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_idx_cmd_release_assign_assign_id, { "Assignment ID", "lbmc.umq_idx_cmd.release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_release_assign_flags, - { "Flags", "lbmc.umq_idx_cmd.release_assign.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_idx_cmd.release_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_release_assign_flags_numeric, { "Numeric", "lbmc.umq_idx_cmd.release_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } }, { &hf_lbmc_umq_idx_cmd_release_assign_index_len, @@ -13100,7 +12938,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_idx_cmd_ulb_release_assign_assign_id, { "Assignment ID", "lbmc.umq_idx_cmd.ulb_release_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_ulb_release_assign_flags, - { "Flags", "lbmc.umq_idx_cmd.ulb_release_assign.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_idx_cmd.ulb_release_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_ulb_release_assign_flags_numeric, { "Numeric", "lbmc.umq_idx_cmd.ulb_release_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RELEASE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } }, { &hf_lbmc_umq_idx_cmd_ulb_release_assign_appset_idx, @@ -13120,7 +12958,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_idx_cmd_reserve_assign_assign_id, { "Assignment ID", "lbmc.umq_idx_cmd.reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_reserve_assign_flags, - { "Flags", "lbmc.umq_idx_cmd.reserve_assign.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_idx_cmd.reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_reserve_assign_flags_numeric, { "Numeric", "lbmc.umq_idx_cmd.reserve_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } }, { &hf_lbmc_umq_idx_cmd_reserve_assign_index_len, @@ -13138,7 +12976,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_assign_id, { "Assignment ID", "lbmc.umq_idx_cmd.ulb_reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags, - { "Flags", "lbmc.umq_idx_cmd.ulb_reserve_assign.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_idx_cmd.ulb_reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_flags_numeric, { "Numeric", "lbmc.umq_idx_cmd.ulb_reserve_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_ULB_IDX_CMD_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } }, { &hf_lbmc_umq_idx_cmd_ulb_reserve_assign_appset_idx, @@ -13158,7 +12996,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_idx_cmd_resp_hdr_len, { "Header Length", "lbmc.umq_idx_cmd_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_resp_flags, - { "Flags", "lbmc.umq_idx_cmd_resp.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_idx_cmd_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_resp_flags_ignore, { "Ignore", "lbmc.umq_idx_cmd_resp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_resp_flags_ulb, @@ -13244,7 +13082,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_assign_id, { "Assignment ID", "lbmc.umq_idx_cmd_resp.reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags, - { "Flags", "lbmc.umq_idx_cmd_resp.reserve_assign.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_idx_cmd_resp.reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_flags_numeric, { "Numeric", "lbmc.umq_idx_cmd_resp.reserve_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } }, { &hf_lbmc_umq_idx_cmd_resp_reserve_assign_appset_idx, @@ -13264,7 +13102,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_assign_id, { "Assignment ID", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.assign_id", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags, - { "Flags", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_flags_numeric, { "Numeric", "lbmc.umq_idx_cmd_resp.ulb_reserve_assign.flags.numeric", FT_BOOLEAN, L_LBMC_CNTL_UMQ_IDX_CMD_RESP_ULB_RCV_RESERVE_IDX_ASSIGN_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), LBM_UMQ_INDEX_FLAG_NUMERIC, "Set if index is numeric", HFILL } }, { &hf_lbmc_umq_idx_cmd_resp_ulb_reserve_assign_appset_idx, @@ -13284,7 +13122,7 @@ void proto_register_lbmc(void) { &hf_lbmc_odomain_hdr_len, { "Header Length", "lbmc.odomain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_odomain_flags, - { "Flags", "lbmc.odomain.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.odomain.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_odomain_flags_ignore, { "Ignore", "lbmc.odomain.flags.ignore", FT_BOOLEAN, L_LBMC_ODOMAIN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_odomain_domain, @@ -13296,7 +13134,7 @@ void proto_register_lbmc(void) { &hf_lbmc_stream_hdr_len, { "Header Length", "lbmc.stream.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_stream_flags, - { "Flags", "lbmc.stream.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.stream.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_stream_flags_ignore, { "Ignore", "lbmc.stream.flags.ignore", FT_BOOLEAN, L_LBMC_STREAM_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_stream_stream_id, @@ -13312,7 +13150,7 @@ void proto_register_lbmc(void) { &hf_lbmc_topic_md_interest_hdr_len, { "Header Length", "lbmc.topic_md_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_md_interest_flags, - { "Flags", "lbmc.topic_md_interest.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.topic_md_interest.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_md_interest_flags_ignore, { "Ignore", "lbmc.topic_md_interest.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_MD_INTEREST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_topic_md_interest_flags_cancel, @@ -13332,7 +13170,7 @@ void proto_register_lbmc(void) { &hf_lbmc_pattern_md_interest_hdr_len, { "Header Length", "lbmc.pattern_md_interest.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_pattern_md_interest_flags, - { "Flags", "lbmc.pattern_md_interest.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.pattern_md_interest.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_pattern_md_interest_flags_ignore, { "Ignore", "lbmc.pattern_md_interest.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_PATTERN_MD_INTEREST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_pattern_md_interest_flags_cancel, @@ -13356,7 +13194,7 @@ void proto_register_lbmc(void) { &hf_lbmc_lji_req_hdr_len, { "Header Length", "lbmc.lji_req.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_lji_req_flags, - { "Flags", "lbmc.lji_req.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.lji_req.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_lji_req_flags_ignore, { "Ignore", "lbmc.lji_req.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_LJI_REQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_lji_req_flags_l_flag, @@ -13390,7 +13228,7 @@ void proto_register_lbmc(void) { &hf_lbmc_tnwg_ka_hdr_len, { "Header Length", "lbmc.tnwg_ka.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tnwg_ka_flags, - { "Flags", "lbmc.tnwg_ka.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.tnwg_ka.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tnwg_ka_flags_ignore, { "Ignore", "lbmc.tnwg_ka.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TNWG_KA_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_tnwg_ka_flags_q_flag, @@ -13422,7 +13260,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_receiver_keepalive_hdr_len, { "Header Length", "lbmc.ume_receiver_keepalive.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_receiver_keepalive_flags, - { "Flags", "lbmc.ume_receiver_keepalive.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_receiver_keepalive.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_receiver_keepalive_flags_ignore, { "Ignore", "lbmc.ume_receiver_keepalive.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_RECEIVER_KEEPALIVE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_receiver_keepalive_rcv_regid, @@ -13438,7 +13276,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_cmd_hdr_len, { "Header Length", "lbmc.umq_cmd.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_cmd_flags, - { "Flags", "lbmc.umq_cmd.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_cmd.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_cmd_flags_ignore, { "Ignore", "lbmc.umq_cmd.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_CMD_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_cmd_cmd_type, @@ -13486,7 +13324,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_cmd_resp_hdr_len, { "Header Length", "lbmc.umq_cmd_resp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_cmd_resp_flags, - { "Flags", "lbmc.umq_cmd_resp.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_cmd_resp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_cmd_resp_flags_ignore, { "Ignore", "lbmc.umq_cmd_resp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_CMD_RESP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_cmd_resp_resp_type, @@ -13588,7 +13426,7 @@ void proto_register_lbmc(void) { &hf_lbmc_sri_req_hdr_len, { "Header Length", "lbmc.sri_req.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_sri_req_flags, - { "Flags", "lbmc.sri_req.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.sri_req.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_sri_req_flags_ignore, { "Ignore", "lbmc.sri_req.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_SRI_REQ_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_sri_req_transport_idx, @@ -13602,7 +13440,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_store_domain_hdr_len, { "Header Length", "lbmc.ume_store_domain.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_store_domain_flags, - { "Flags", "lbmc.ume_store_domain.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_store_domain.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_store_domain_flags_ignore, { "Ignore", "lbmc.ume_store_domain.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STORE_DOMAIN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_store_domain_domain, @@ -13614,7 +13452,7 @@ void proto_register_lbmc(void) { &hf_lbmc_sri_hdr_len, { "Header Length", "lbmc.sri.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_sri_flags, - { "Flags", "lbmc.sri.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.sri.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_sri_flags_ignore, { "Ignore", "lbmc.sri.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_SRI_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_sri_flags_acktosrc, @@ -13634,7 +13472,7 @@ void proto_register_lbmc(void) { &hf_lbmc_route_info_hdr_len, { "Header Length", "lbmc.route_info.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_route_info_flags, - { "Flags", "lbmc.route_info.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.route_info.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_route_info_flags_ignore, { "Ignore", "lbmc.route_info.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_ROUTE_INFO_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_route_info_gateway_version, @@ -13662,7 +13500,7 @@ void proto_register_lbmc(void) { &hf_lbmc_route_info_neighbor_hdr_len, { "Header Length", "lbmc.route_info_neighbor.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_route_info_neighbor_flags, - { "Flags", "lbmc.route_info_neighbor.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.route_info_neighbor.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_route_info_neighbor_flags_ignore, { "Ignore", "lbmc.route_info_neighbor.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_ROUTE_INFO_NEIGHBOR_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_route_info_neighbor_node_id, @@ -13678,7 +13516,7 @@ void proto_register_lbmc(void) { &hf_lbmc_gateway_name_hdr_len, { "Header Length", "lbmc.gateway_name.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_gateway_name_flags, - { "Flags", "lbmc.gateway_name.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.gateway_name.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_gateway_name_flags_ignore, { "Ignore", "lbmc.gateway_name.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_GATEWAY_NAME_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_gateway_name_gateway_name, @@ -13690,7 +13528,7 @@ void proto_register_lbmc(void) { &hf_lbmc_auth_request_hdr_len, { "Header Length", "lbmc.auth_request.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_auth_request_flags, - { "Flags", "lbmc.auth_request.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.auth_request.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_auth_request_flags_ignore, { "Ignore", "lbmc.auth_request.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_AUTH_REQUEST_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_auth_request_opid, @@ -13706,7 +13544,7 @@ void proto_register_lbmc(void) { &hf_lbmc_auth_challenge_hdr_len, { "Header Length", "lbmc.auth_challenge.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_auth_challenge_flags, - { "Flags", "lbmc.auth_challenge.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.auth_challenge.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_auth_challenge_flags_ignore, { "Ignore", "lbmc.auth_challenge.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_AUTH_CHALLENGE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_auth_challenge_opid, @@ -13734,7 +13572,7 @@ void proto_register_lbmc(void) { &hf_lbmc_auth_challenge_rsp_hdr_len, { "Header Length", "lbmc.auth_challenge_rsp.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_auth_challenge_rsp_flags, - { "Flags", "lbmc.auth_challenge_rsp.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.auth_challenge_rsp.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_auth_challenge_rsp_flags_ignore, { "Ignore", "lbmc.auth_challenge_rsp.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_AUTH_CHALLENGE_RSP_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_auth_challenge_rsp_opid, @@ -13754,7 +13592,7 @@ void proto_register_lbmc(void) { &hf_lbmc_auth_result_hdr_len, { "Header Length", "lbmc.auth_result.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_auth_result_flags, - { "Flags", "lbmc.auth_result.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.auth_result.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_auth_result_flags_ignore, { "Ignore", "lbmc.auth_result.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_AUTH_RESULT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_auth_result_opid, @@ -13780,7 +13618,7 @@ void proto_register_lbmc(void) { &hf_lbmc_hmac_hdr_len, { "Header Length", "lbmc.hmac.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_hmac_flags, - { "Flags", "lbmc.hmac.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.hmac.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_hmac_flags_ignore, { "Ignore", "lbmc.hmac.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_HMAC_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_hmac_padding, @@ -13794,7 +13632,7 @@ void proto_register_lbmc(void) { &hf_lbmc_umq_sid_hdr_len, { "Header Length", "lbmc.umq_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_sid_flags, - { "Flags", "lbmc.umq_sid.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.umq_sid.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_umq_sid_flags_ignore, { "Ignore", "lbmc.umq_sid.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UMQ_SID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_umq_sid_key, @@ -13808,7 +13646,7 @@ void proto_register_lbmc(void) { &hf_lbmc_destination_hdr_len, { "Header Length", "lbmc.destination.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_destination_flags, - { "Flags", "lbmc.destination.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.destination.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_destination_flags_ignore, { "Ignore", "lbmc.destination.flags.ignore", FT_BOOLEAN, L_LBMC_DESTINATION_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_destination_domain_id, @@ -13834,9 +13672,9 @@ void proto_register_lbmc(void) { &hf_lbmc_topic_idx_hdr_len, { "Header Length", "lbmc.topic_idx.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_idx_flags, - { "Flags", "lbmc.topic_idx.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.topic_idx.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_idx_flags_ignore, - { "Ignore", "lbmc.topic_idx.flags.ignore", FT_BOOLEAN, L_LBMC_TOPIC_IDX_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, + { "Ignore", "lbmc.topic_idx.flags.ignore", FT_BOOLEAN, L_LBMC_TOPIC_IDX_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE_CHAR, NULL, HFILL } }, { &hf_lbmc_topic_idx_tidx, { "Topic Index", "lbmc.topic_idx.tidx", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_source, @@ -13846,7 +13684,7 @@ void proto_register_lbmc(void) { &hf_lbmc_topic_source_hdr_len, { "Header Length", "lbmc.topic_source.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_source_flags, - { "Flags", "lbmc.topic_source.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.topic_source.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_source_flags_ignore, { "Ignore", "lbmc.topic_source.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_topic_source_flags_eos, @@ -13860,7 +13698,7 @@ void proto_register_lbmc(void) { &hf_lbmc_topic_source_exfunc_hdr_len, { "Header Length", "lbmc.topic_source_exfunc.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_source_exfunc_flags, - { "Flags", "lbmc.topic_source_exfunc.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.topic_source_exfunc.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_source_exfunc_flags_ignore, { "Ignore", "lbmc.topic_source_exfunc.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_topic_source_exfunc_src_ip, @@ -13870,7 +13708,7 @@ void proto_register_lbmc(void) { &hf_lbmc_topic_source_exfunc_unused, { "Unused", "lbmc.topic_source_exfunc.unused", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_source_exfunc_functionality_flags, - { "Functionality Flags", "lbmc.topic_source_exfunc.functionality_flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Functionality Flags", "lbmc.topic_source_exfunc.functionality_flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_topic_source_exfunc_functionality_flags_ulb, { "ULB", "lbmc.topic_source_exfunc.functionality_flags.ulb", FT_BOOLEAN, L_LBMC_CNTL_TOPIC_SOURCE_EXFUNC_HDR_T_FUNCTIONALITY_FLAGS * 8, TFS(&tfs_capable_not_capable), LBM_TOPIC_OPT_EXFUNC_FFLAG_ULB, NULL, HFILL } }, { &hf_lbmc_topic_source_exfunc_functionality_flags_umq, @@ -13886,7 +13724,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_store_ext_hdr_len, { "Header Length", "lbmc.ume_store_ext.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_store_ext_flags, - { "Flags", "lbmc.ume_store_ext.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_store_ext.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_store_ext_flags_ignore, { "Ignore", "lbmc.ume_store_ext.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_STORE_EXT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_store_ext_grp_idx, @@ -13910,7 +13748,7 @@ void proto_register_lbmc(void) { &hf_lbmc_ume_psrc_election_token_hdr_len, { "Header Length", "lbmc.ume_psrc_election_token.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_psrc_election_token_flags, - { "Flags", "lbmc.ume_psrc_election_token.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.ume_psrc_election_token.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_ume_psrc_election_token_flags_ignore, { "Ignore", "lbmc.ume_psrc_election_token.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_UME_PSRC_ELECTION_TOKEN_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_ume_psrc_election_token_store_index, @@ -13924,7 +13762,7 @@ void proto_register_lbmc(void) { &hf_lbmc_tcp_sid_hdr_len, { "Header Length", "lbmc.tcp_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tcp_sid_flags, - { "Flags", "lbmc.tcp_sid.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.tcp_sid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_tcp_sid_flags_ignore, { "Ignore", "lbmc.tcp_sid.flags.ignore", FT_BOOLEAN, L_LBMC_CNTL_TCP_SID_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_OPT_IGNORE, NULL, HFILL } }, { &hf_lbmc_tcp_sid_sid, @@ -13936,7 +13774,7 @@ void proto_register_lbmc(void) { &hf_lbmc_extopt_hdr_len, { "Header Length", "lbmc.extopt.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_extopt_flags, - { "Flags", "lbmc.extopt.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmc.extopt.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmc_extopt_flags_ignore, { "Ignore", "lbmc.extopt.flags.ignore", FT_BOOLEAN, L_LBMC_EXTOPT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMC_EXTOPT_FLAG_IGNORE, NULL, HFILL } }, { &hf_lbmc_extopt_flags_ignore_subtype, @@ -13981,12 +13819,10 @@ void proto_register_lbmc(void) { "Magic", "lbmc.lbm_msg_properties.data.magic", FT_UINT32, BASE_HEX, VALS(lbm_msg_prop_magic_type), 0x0, NULL, HFILL } }, { &hf_lbm_msg_properties_data_num_fields, { "Number of Fields", "lbmc.lbm_msg_properties.data.num_fields", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, - { &hf_lbm_msg_properties_data_vertype, - { "Version/Type", "lbmc.lbm_msg_properties.data.vertype", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbm_msg_properties_data_vertype_version, - { "Version", "lbmc.lbm_msg_properties.data.vertype.version", FT_UINT8, BASE_DEC, NULL, LBM_MSG_PROPERTIES_HDR_VER_MASK, NULL, HFILL } }, - { &hf_lbm_msg_properties_data_vertype_type, - { "Type", "lbmc.lbm_msg_properties.data.vertype.type", FT_UINT8, BASE_DEC_HEX, VALS(lbm_msg_prop_header_type), LBM_MSG_PROPERTIES_HDR_VER_MASK, NULL, HFILL } }, + { &hf_lbm_msg_properties_data_version, + { "Version", "lbmc.lbm_msg_properties.data.version", FT_UINT8, BASE_DEC, NULL, LBM_MSG_PROPERTIES_HDR_VER_MASK, NULL, HFILL } }, + { &hf_lbm_msg_properties_data_type, + { "Type", "lbmc.lbm_msg_properties.data.type", FT_UINT8, BASE_DEC_HEX, VALS(lbm_msg_prop_header_type), LBM_MSG_PROPERTIES_HDR_TYPE_MASK, NULL, HFILL } }, { &hf_lbm_msg_properties_data_res, { "Reserved", "lbmc.lbm_msg_properties.data.res", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbm_msg_properties_hdr, @@ -14044,7 +13880,6 @@ void proto_register_lbmc(void) static gint * ett[] = { &ett_lbmc, - &ett_lbmc_ver_type, &ett_lbmc_frag, &ett_lbmc_frag_flags, &ett_lbmc_batch, @@ -14054,7 +13889,6 @@ void proto_register_lbmc(void) &ett_lbmc_topicname, &ett_lbmc_topicname_flags, &ett_lbmc_apphdr, - &ett_lbmc_apphdr_code, &ett_lbmc_apphdr_chain, &ett_lbmc_apphdr_chain_element, &ett_lbmc_apphdr_chain_msgprop, @@ -14080,7 +13914,6 @@ void proto_register_lbmc(void) &ett_lbmc_ssf_creq_flags, &ett_lbmc_ume_preg, &ett_lbmc_ume_preg_flags, - &ett_lbmc_ume_preg_marker, &ett_lbmc_ume_preg_resp, &ett_lbmc_ume_preg_resp_code, &ett_lbmc_ume_preg_resp_marker, @@ -14091,7 +13924,6 @@ void proto_register_lbmc(void) &ett_lbmc_ume_keepalive, &ett_lbmc_ume_keepalive_flags, &ett_lbmc_ume_storeid, - &ett_lbmc_ume_storeid_store_id, &ett_lbmc_ume_ranged_ack, &ett_lbmc_ume_ranged_ack_flags, &ett_lbmc_ume_ack_id, @@ -14107,7 +13939,6 @@ void proto_register_lbmc(void) &ett_lbmc_ume_lj_info, &ett_lbmc_ume_lj_info_flags, &ett_lbmc_tsni, - &ett_lbmc_tsni_num_recs, &ett_lbmc_tsni_rec, &ett_lbmc_umq_reg, &ett_lbmc_umq_reg_flags, @@ -14297,7 +14128,6 @@ void proto_register_lbmc(void) &ett_lbmc_extopt_reassembled_data_cfgopt, &ett_lbm_msg_properties, &ett_lbm_msg_properties_data, - &ett_lbm_msg_properties_data_vertype, &ett_lbm_msg_properties_hdr, &ett_lbmc_unhandled_hdr, &ett_lbm_stream, diff --git a/epan/dissectors/packet-lbmpdm.c b/epan/dissectors/packet-lbmpdm.c index 0b13a75bec..b7f2d3f9b6 100644 --- a/epan/dissectors/packet-lbmpdm.c +++ b/epan/dissectors/packet-lbmpdm.c @@ -319,9 +319,8 @@ static int proto_lbmpdm = -1; /* Protocol fields */ static int hf_lbmpdm_magic = -1; static int hf_lbmpdm_encoding = -1; -static int hf_lbmpdm_ver_type = -1; -static int hf_lbmpdm_ver_type_ver = -1; -static int hf_lbmpdm_ver_type_type = -1; +static int hf_lbmpdm_ver = -1; +static int hf_lbmpdm_type = -1; static int hf_lbmpdm_next_hdr = -1; static int hf_lbmpdm_def_major_ver = -1; static int hf_lbmpdm_def_minor_ver = -1; @@ -386,7 +385,6 @@ static int hf_lbmpdm_field_value_message = -1; /* Protocol trees */ static gint ett_lbmpdm = -1; -static gint ett_lbmpdm_ver_type = -1; static gint ett_lbmpdm_segments = -1; static gint ett_lbmpdm_segment = -1; static gint ett_lbmpdm_offset_entry = -1; @@ -865,7 +863,7 @@ static int dissect_segment_ofstable(tvbuff_t * tvb, int offset, packet_info * pi lbmpdm_offset_table_t * ofs_table = NULL; seglen = lbmpdm_get_segment_length(tvb, offset, encoding, &datalen); - subtree_item = proto_tree_add_none_format(tree, hf_lbmpdm_segment, tvb, offset, seglen, "offset Table Segment"); + subtree_item = proto_tree_add_none_format(tree, hf_lbmpdm_segment, tvb, offset, seglen, "Offset Table Segment"); subtree = proto_item_add_subtree(subtree_item, ett_lbmpdm_segment); proto_tree_add_item(subtree, hf_lbmpdm_segment_next_hdr, tvb, offset + O_LBMPDM_SEG_HDR_T_NEXT_HDR, L_LBMPDM_SEG_HDR_T_NEXT_HDR, encoding); proto_tree_add_item(subtree, hf_lbmpdm_segment_flags, tvb, offset + O_LBMPDM_SEG_HDR_T_FLAGS, L_LBMPDM_SEG_HDR_T_FLAGS, encoding); @@ -1243,14 +1241,9 @@ int lbmpdm_dissect_lbmpdm_payload(tvbuff_t * tvb, int offset, packet_info * pinf { proto_item * subtree_item = NULL; proto_tree * subtree = NULL; - proto_item * ver_type_item = NULL; - proto_tree * ver_type_tree = NULL; proto_item * segments_item = NULL; proto_tree * segments_tree = NULL; proto_item * pi = NULL; - guint8 type; - guint8 version; - guint8 ver_type; guint8 next_hdr; int dissected_len = 0; int encoding; @@ -1279,14 +1272,8 @@ int lbmpdm_dissect_lbmpdm_payload(tvbuff_t * tvb, int offset, packet_info * pinf pi = proto_tree_add_string(subtree, hf_lbmpdm_encoding, tvb, offset + O_LBMPDM_MSG_HDR_T_MAGIC, L_LBMPDM_MSG_HDR_T_MAGIC, ((encoding == ENC_BIG_ENDIAN) ? "Big-Endian" : "Little-Endian")); PROTO_ITEM_SET_GENERATED(pi); - ver_type = tvb_get_guint8(tvb, offset + O_LBMPDM_MSG_HDR_T_VER_TYPE); - version = PDM_HDR_VER(ver_type); - type = PDM_HDR_TYPE(ver_type); - ver_type_item = proto_tree_add_none_format(subtree, hf_lbmpdm_ver_type, tvb, offset + O_LBMPDM_MSG_HDR_T_VER_TYPE, - L_LBMPDM_MSG_HDR_T_VER_TYPE, "Version/Type: 0x%02x (Version:%u, Type:%u)", ver_type, version, type); - ver_type_tree = proto_item_add_subtree(ver_type_item, ett_lbmpdm_ver_type); - proto_tree_add_item(ver_type_tree, hf_lbmpdm_ver_type_ver, tvb, offset + O_LBMPDM_MSG_HDR_T_VER_TYPE, L_LBMPDM_MSG_HDR_T_VER_TYPE, encoding); - proto_tree_add_item(ver_type_tree, hf_lbmpdm_ver_type_type, tvb, offset + O_LBMPDM_MSG_HDR_T_VER_TYPE, L_LBMPDM_MSG_HDR_T_VER_TYPE, encoding); + proto_tree_add_item(subtree, hf_lbmpdm_ver, tvb, offset + O_LBMPDM_MSG_HDR_T_VER_TYPE, L_LBMPDM_MSG_HDR_T_VER_TYPE, encoding); + proto_tree_add_item(subtree, hf_lbmpdm_type, tvb, offset + O_LBMPDM_MSG_HDR_T_VER_TYPE, L_LBMPDM_MSG_HDR_T_VER_TYPE, encoding); proto_tree_add_item(subtree, hf_lbmpdm_next_hdr, tvb, offset + O_LBMPDM_MSG_HDR_T_NEXT_HDR, L_LBMPDM_MSG_HDR_T_NEXT_HDR, encoding); proto_tree_add_item(subtree, hf_lbmpdm_def_major_ver, tvb, offset + O_LBMPDM_MSG_HDR_T_DEF_MAJOR_VER, L_LBMPDM_MSG_HDR_T_DEF_MAJOR_VER, encoding); msgid.ver_major = tvb_get_guint8(tvb, offset + O_LBMPDM_MSG_HDR_T_DEF_MAJOR_VER); @@ -1348,12 +1335,10 @@ void proto_register_lbmpdm(void) { "Magic", "lbmpdm.magic", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmpdm_encoding, { "Encoding", "lbmpdm.encoding", FT_STRING, BASE_NONE, NULL, 0x0, "encoding as determined by magic number", HFILL } }, - { &hf_lbmpdm_ver_type, - { "Version/Type", "lbmpdm.ver_type", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmpdm_ver_type_ver, - { "Version", "lbmpdm.ver_type.ver", FT_UINT8, BASE_DEC, NULL, PDM_HDR_VER_TYPE_VER_MASK, NULL, HFILL } }, - { &hf_lbmpdm_ver_type_type, - { "Type", "lbmpdm.ver_type.type", FT_UINT8, BASE_DEC, NULL, PDM_HDR_VER_TYPE_TYPE_MASK, NULL, HFILL } }, + { &hf_lbmpdm_ver, + { "Version", "lbmpdm.ver", FT_UINT8, BASE_DEC, NULL, PDM_HDR_VER_TYPE_VER_MASK, NULL, HFILL } }, + { &hf_lbmpdm_type, + { "Type", "lbmpdm.type", FT_UINT8, BASE_DEC, NULL, PDM_HDR_VER_TYPE_TYPE_MASK, NULL, HFILL } }, { &hf_lbmpdm_next_hdr, { "Next Header", "lbmpdm.next_hdr", FT_UINT8, BASE_DEC_HEX, VALS(lbmpdm_next_header), 0x0, NULL, HFILL } }, { &hf_lbmpdm_def_major_ver, @@ -1480,7 +1465,6 @@ void proto_register_lbmpdm(void) static gint * ett[] = { &ett_lbmpdm, - &ett_lbmpdm_ver_type, &ett_lbmpdm_segments, &ett_lbmpdm_segment, &ett_lbmpdm_offset_entry, diff --git a/epan/dissectors/packet-lbmr.c b/epan/dissectors/packet-lbmr.c index 4d1dcbbd7d..bd38041ff7 100644 --- a/epan/dissectors/packet-lbmr.c +++ b/epan/dissectors/packet-lbmr.c @@ -2118,12 +2118,10 @@ static dissector_handle_t lbmr_dissector_handle; /* Dissector tree handles */ static gint ett_lbmr = -1; static gint ett_lbmr_hdr = -1; -static gint ett_lbmr_hdr_ver_type = -1; static gint ett_lbmr_tqrs = -1; static gint ett_lbmr_tqr = -1; static gint ett_lbmr_tirs = -1; static gint ett_lbmr_tir = -1; -static gint ett_lbmr_tir_transport = -1; static gint ett_lbmr_tir_tcp = -1; static gint ett_lbmr_tir_lbtrm = -1; static gint ett_lbmr_tir_lbtru = -1; @@ -2174,7 +2172,6 @@ static gint ett_lbmr_qqrs = -1; static gint ett_lbmr_qirs = -1; static gint ett_lbmr_qir = -1; static gint ett_lbmr_qir_options = -1; -static gint ett_lbmr_qir_grp_blks = -1; static gint ett_lbmr_qir_grp_blk = -1; static gint ett_lbmr_qir_queue_blk = -1; static gint ett_lbmr_qir_grp = -1; @@ -2229,10 +2226,9 @@ static gint ett_lbmr_opt_unknown = -1; /* Dissector field handles */ static int hf_lbmr_tag = -1; static int hf_lbmr_hdr = -1; -static int hf_lbmr_hdr_ver_type = -1; -static int hf_lbmr_hdr_ver_type_ver = -1; -static int hf_lbmr_hdr_ver_type_opt = -1; -static int hf_lbmr_hdr_ver_type_type = -1; +static int hf_lbmr_hdr_ver = -1; +static int hf_lbmr_hdr_opt = -1; +static int hf_lbmr_hdr_type = -1; static int hf_lbmr_hdr_tqrs = -1; static int hf_lbmr_hdr_tirs = -1; static int hf_lbmr_hdr_qqrs = -1; @@ -2245,7 +2241,6 @@ static int hf_lbmr_tqr_pattern = -1; static int hf_lbmr_tqr_name = -1; static int hf_lbmr_tirs = -1; static int hf_lbmr_tir = -1; -static int hf_lbmr_tir_transport = -1; static int hf_lbmr_tir_transport_opts = -1; static int hf_lbmr_tir_transport_type = -1; static int hf_lbmr_tir_tlen = -1; @@ -2427,9 +2422,8 @@ static int hf_lbmr_qir_topic_name = -1; static int hf_lbmr_qir_queue_id = -1; static int hf_lbmr_qir_queue_ver = -1; static int hf_lbmr_qir_queue_prev_ver = -1; +static int hf_lbmr_qir_option_flag = -1; static int hf_lbmr_qir_grp_blks = -1; -static int hf_lbmr_qir_grp_blks_option_flag = -1; -static int hf_lbmr_qir_grp_blks_count = -1; static int hf_lbmr_qir_queue_blks = -1; static int hf_lbmr_qir_grps = -1; static int hf_lbmr_qir_grp_blk = -1; @@ -3135,19 +3129,18 @@ static int dissect_lbmr_tnwg_ctxinst_opt(tvbuff_t * tvb, int offset, packet_info proto_tree * opt_tree = NULL; proto_item * opt_item = NULL; guint8 opt_len = 0; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_tnwg_opt_ctxinst_flags_ignore, + NULL + }; opt_len = tvb_get_guint8(tvb, offset + O_LBMR_TNWG_OPT_CTXINST_T_LEN); opt_item = proto_tree_add_item(tree, hf_lbmr_tnwg_opt_ctxinst, tvb, offset, opt_len, ENC_NA); opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_tnwg_ctxinst_opt); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_ctxinst_type, tvb, offset + O_LBMR_TNWG_OPT_CTXINST_T_TYPE, L_LBMR_TNWG_OPT_CTXINST_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_ctxinst_len, tvb, offset + O_LBMR_TNWG_OPT_CTXINST_T_LEN, L_LBMR_TNWG_OPT_CTXINST_T_LEN, ENC_BIG_ENDIAN); - - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_ctxinst_flags, tvb, offset + O_LBMR_TNWG_OPT_CTXINST_T_FLAGS, L_LBMR_TNWG_OPT_CTXINST_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_tnwg_ctxinst_opt_flags); - proto_tree_add_item(flags_tree, hf_lbmr_tnwg_opt_ctxinst_flags_ignore, tvb, offset + O_LBMR_TNWG_OPT_CTXINST_T_FLAGS, L_LBMR_TNWG_OPT_CTXINST_T_FLAGS, ENC_BIG_ENDIAN); - + proto_tree_add_bitmask(opt_tree, tvb, offset + O_LBMR_TNWG_OPT_CTXINST_T_FLAGS, hf_lbmr_tnwg_opt_ctxinst_flags, ett_lbmr_tnwg_ctxinst_opt_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_ctxinst_instance, tvb, offset + O_LBMR_TNWG_OPT_CTXINST_T_INSTANCE, L_LBMR_TNWG_OPT_CTXINST_T_INSTANCE, ENC_NA); return ((int) opt_len); } @@ -3157,19 +3150,18 @@ static int dissect_lbmr_tnwg_address_opt(tvbuff_t * tvb, int offset, packet_info proto_tree * opt_tree = NULL; proto_item * opt_item = NULL; guint8 opt_len = 0; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_tnwg_opt_address_flags_ignore, + NULL + }; opt_len = tvb_get_guint8(tvb, offset + O_LBMR_TNWG_OPT_ADDRESS_T_LEN); opt_item = proto_tree_add_item(tree, hf_lbmr_tnwg_opt_address, tvb, offset, opt_len, ENC_NA); opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_tnwg_address_opt); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_address_type, tvb, offset + O_LBMR_TNWG_OPT_ADDRESS_T_TYPE, L_LBMR_TNWG_OPT_ADDRESS_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_address_len, tvb, offset + O_LBMR_TNWG_OPT_ADDRESS_T_LEN, L_LBMR_TNWG_OPT_ADDRESS_T_LEN, ENC_BIG_ENDIAN); - - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_address_flags, tvb, offset + O_LBMR_TNWG_OPT_ADDRESS_T_FLAGS, L_LBMR_TNWG_OPT_ADDRESS_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_tnwg_address_opt_flags); - proto_tree_add_item(flags_tree, hf_lbmr_tnwg_opt_address_flags_ignore, tvb, offset + O_LBMR_TNWG_OPT_ADDRESS_T_FLAGS, L_LBMR_TNWG_OPT_ADDRESS_T_FLAGS, ENC_BIG_ENDIAN); - + proto_tree_add_bitmask(opt_tree, tvb, offset + O_LBMR_TNWG_OPT_ADDRESS_T_FLAGS, hf_lbmr_tnwg_opt_address_flags, ett_lbmr_tnwg_address_opt_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_address_port, tvb, offset + O_LBMR_TNWG_OPT_ADDRESS_T_PORT, L_LBMR_TNWG_OPT_ADDRESS_T_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_address_res, tvb, offset + O_LBMR_TNWG_OPT_ADDRESS_T_RES, L_LBMR_TNWG_OPT_ADDRESS_T_RES, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_address_ip, tvb, offset + O_LBMR_TNWG_OPT_ADDRESS_T_IP, L_LBMR_TNWG_OPT_ADDRESS_T_IP, ENC_BIG_ENDIAN); @@ -3181,19 +3173,18 @@ static int dissect_lbmr_tnwg_domain_opt(tvbuff_t * tvb, int offset, packet_info proto_tree * opt_tree = NULL; proto_item * opt_item = NULL; guint8 opt_len = 0; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_tnwg_opt_domain_flags_ignore, + NULL + }; opt_len = tvb_get_guint8(tvb, offset + O_LBMR_TNWG_OPT_DOMAIN_T_LEN); opt_item = proto_tree_add_item(tree, hf_lbmr_tnwg_opt_domain, tvb, offset, opt_len, ENC_NA); opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_tnwg_domain_opt); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_domain_type, tvb, offset + O_LBMR_TNWG_OPT_DOMAIN_T_TYPE, L_LBMR_TNWG_OPT_DOMAIN_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_domain_len, tvb, offset + O_LBMR_TNWG_OPT_DOMAIN_T_LEN, L_LBMR_TNWG_OPT_DOMAIN_T_LEN, ENC_BIG_ENDIAN); - - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_domain_flags, tvb, offset + O_LBMR_TNWG_OPT_DOMAIN_T_FLAGS, L_LBMR_TNWG_OPT_DOMAIN_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_tnwg_domain_opt_flags); - proto_tree_add_item(flags_tree, hf_lbmr_tnwg_opt_domain_flags_ignore, tvb, offset + O_LBMR_TNWG_OPT_DOMAIN_T_FLAGS, L_LBMR_TNWG_OPT_DOMAIN_T_FLAGS, ENC_BIG_ENDIAN); - + proto_tree_add_bitmask(opt_tree, tvb, offset + O_LBMR_TNWG_OPT_DOMAIN_T_FLAGS, hf_lbmr_tnwg_opt_domain_flags, ett_lbmr_tnwg_domain_opt_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_domain_domain_id, tvb, offset + O_LBMR_TNWG_OPT_DOMAIN_T_DOMAIN_ID, L_LBMR_TNWG_OPT_DOMAIN_T_DOMAIN_ID, ENC_BIG_ENDIAN); return ((int)opt_len); } @@ -3203,8 +3194,11 @@ static int dissect_lbmr_tnwg_name_opt(tvbuff_t * tvb, int offset, packet_info * proto_tree * opt_tree = NULL; proto_item * opt_item = NULL; guint8 opt_len = 0; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_tnwg_opt_name_flags_ignore, + NULL + }; guint32 name_len = 0; opt_len = tvb_get_guint8(tvb, offset + O_LBMR_TNWG_OPT_T_LEN); @@ -3213,11 +3207,7 @@ static int dissect_lbmr_tnwg_name_opt(tvbuff_t * tvb, int offset, packet_info * opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_tnwg_name_opt); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_name_type, tvb, offset + O_LBMR_TNWG_OPT_T_TYPE, L_LBMR_TNWG_OPT_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_name_len, tvb, offset + O_LBMR_TNWG_OPT_T_LEN, L_LBMR_TNWG_OPT_T_LEN, ENC_BIG_ENDIAN); - - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_name_flags, tvb, offset + O_LBMR_TNWG_OPT_T_FLAGS, L_LBMR_TNWG_OPT_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_tnwg_name_opt_flags); - proto_tree_add_item(flags_tree, hf_lbmr_tnwg_opt_name_flags_ignore, tvb, offset + O_LBMR_TNWG_OPT_T_FLAGS, L_LBMR_TNWG_OPT_T_FLAGS, ENC_BIG_ENDIAN); - + proto_tree_add_bitmask(opt_tree, tvb, offset + O_LBMR_TNWG_OPT_T_FLAGS, hf_lbmr_tnwg_opt_name_flags, ett_lbmr_tnwg_name_opt_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_name_name, tvb, offset + L_LBMR_TNWG_OPT_T, name_len, ENC_ASCII|ENC_NA); return ((int)opt_len); } @@ -3227,8 +3217,11 @@ static int dissect_lbmr_tnwg_unknown_opt(tvbuff_t * tvb, int offset, packet_info proto_tree * opt_tree = NULL; proto_item * opt_item = NULL; guint8 opt_len = 0; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_tnwg_opt_flags_ignore, + NULL + }; guint32 data_len = 0; opt_len = tvb_get_guint8(tvb, offset + O_LBMR_TNWG_OPT_T_LEN); @@ -3237,11 +3230,7 @@ static int dissect_lbmr_tnwg_unknown_opt(tvbuff_t * tvb, int offset, packet_info opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_tnwg_unknown_opt); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_type, tvb, offset + O_LBMR_TNWG_OPT_T_TYPE, L_LBMR_TNWG_OPT_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_len, tvb, offset + O_LBMR_TNWG_OPT_T_LEN, L_LBMR_TNWG_OPT_T_LEN, ENC_BIG_ENDIAN); - - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_flags, tvb, offset + O_LBMR_TNWG_OPT_T_FLAGS, L_LBMR_TNWG_OPT_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_tnwg_unknown_opt_flags); - proto_tree_add_item(flags_tree, hf_lbmr_tnwg_opt_flags_ignore, tvb, offset + O_LBMR_TNWG_OPT_T_FLAGS, L_LBMR_TNWG_OPT_T_FLAGS, ENC_BIG_ENDIAN); - + proto_tree_add_bitmask(opt_tree, tvb, offset + O_LBMR_TNWG_OPT_T_FLAGS, hf_lbmr_tnwg_opt_flags, ett_lbmr_tnwg_unknown_opt_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_tnwg_opt_data, tvb, offset + L_LBMR_TNWG_OPT_T, data_len, ENC_NA); return ((int)opt_len); } @@ -3291,22 +3280,21 @@ static int dissect_lbmr_tnwg_interest_rec(tvbuff_t * tvb, int offset, packet_inf proto_item * rec_item = NULL; guint16 rec_len = 0; gint string_len = 0; - guint8 flags = 0; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_tnwg_interest_rec_flags_pattern, + &hf_lbmr_tnwg_interest_rec_flags_cancel, + &hf_lbmr_tnwg_interest_rec_flags_refresh, + NULL + }; rec_len = tvb_get_ntohs(tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_LEN); - flags = tvb_get_guint8(tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_FLAGS); string_len = rec_len - L_LBMR_TNWG_INTEREST_REC_T; rec_item = proto_tree_add_item(tree, hf_lbmr_tnwg_interest_rec, tvb, offset, rec_len, ENC_NA); rec_tree = proto_item_add_subtree(rec_item, ett_lbmr_tnwg_interest_rec); proto_tree_add_item(rec_tree, hf_lbmr_tnwg_interest_rec_len, tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_LEN, L_LBMR_TNWG_INTEREST_REC_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_none_format(rec_tree, hf_lbmr_tnwg_interest_rec_flags, tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_FLAGS, L_LBMR_TNWG_INTEREST_REC_T_FLAGS, "Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_tnwg_interest_rec_flags); - proto_tree_add_item(flags_tree, hf_lbmr_tnwg_interest_rec_flags_pattern, tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_FLAGS, L_LBMR_TNWG_INTEREST_REC_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_tnwg_interest_rec_flags_cancel, tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_FLAGS, L_LBMR_TNWG_INTEREST_REC_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_tnwg_interest_rec_flags_refresh, tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_FLAGS, L_LBMR_TNWG_INTEREST_REC_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(rec_tree, tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_FLAGS, hf_lbmr_tnwg_interest_rec_flags, ett_lbmr_tnwg_interest_rec_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(rec_tree, hf_lbmr_tnwg_interest_rec_pattype, tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_PATTYPE, L_LBMR_TNWG_INTEREST_REC_T_PATTYPE, ENC_BIG_ENDIAN); proto_tree_add_item(rec_tree, hf_lbmr_tnwg_interest_rec_domain_id, tvb, offset + O_LBMR_TNWG_INTEREST_REC_T_DOMAIN_ID, L_LBMR_TNWG_INTEREST_REC_T_DOMAIN_ID, ENC_BIG_ENDIAN); proto_tree_add_item(rec_tree, hf_lbmr_tnwg_interest_rec_symbol, tvb, offset + L_LBMR_TNWG_INTEREST_REC_T, string_len, ENC_ASCII|ENC_NA); @@ -3349,64 +3337,27 @@ static int dissect_lbmr_tnwg_ctxinfo(tvbuff_t * tvb, int offset, packet_info * p { proto_tree * ctxinfo_tree = NULL; proto_item * ctxinfo_item = NULL; - proto_tree * flags1_tree = NULL; - proto_item * flags1_item = NULL; - guint32 flags1 = 0; - wmem_strbuf_t * flagbuf; - const char * sep = ""; + static const int * flags1[] = + { + &hf_lbmr_tnwg_ctxinfo_flags1_query, + &hf_lbmr_tnwg_ctxinfo_flags1_tnwg_src, + &hf_lbmr_tnwg_ctxinfo_flags1_tnwg_rcv, + &hf_lbmr_tnwg_ctxinfo_flags1_proxy, + NULL + }; guint16 reclen = 0; guint16 len_remaining = 0; int len_used = 0; reclen = tvb_get_ntohs(tvb, offset + O_LBMR_TNWG_CTXINFO_T_LEN); len_remaining = reclen; - flags1 = tvb_get_ntohl(tvb, offset + O_LBMR_TNWG_CTXINFO_T_FLAGS1); - ctxinfo_item = proto_tree_add_item(tree, hf_lbmr_tnwg_ctxinfo, tvb, offset, (gint)reclen, ENC_NA); ctxinfo_tree = proto_item_add_subtree(ctxinfo_item, ett_lbmr_tnwg_ctxinfo); proto_tree_add_item(ctxinfo_tree, hf_lbmr_tnwg_ctxinfo_len, tvb, offset + O_LBMR_TNWG_CTXINFO_T_LEN, L_LBMR_TNWG_CTXINFO_T_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(ctxinfo_tree, hf_lbmr_tnwg_ctxinfo_hop_count, tvb, offset + O_LBMR_TNWG_CTXINFO_T_HOP_COUNT, L_LBMR_TNWG_CTXINFO_T_HOP_COUNT, ENC_BIG_ENDIAN); proto_tree_add_item(ctxinfo_tree, hf_lbmr_tnwg_ctxinfo_reserved, tvb, offset + O_LBMR_TNWG_CTXINFO_T_RESERVED, L_LBMR_TNWG_CTXINFO_T_RESERVED, ENC_BIG_ENDIAN); - - flagbuf = wmem_strbuf_new_label(wmem_packet_scope()); - if ((flags1 & LBMR_TNWG_CTXINFO_QUERY_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "Query"); - sep = ", "; - } - if ((flags1 & LBMR_TNWG_CTXINFO_TNWG_SRC_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "GW Src"); - sep = ", "; - } - if ((flags1 & LBMR_TNWG_CTXINFO_TNWG_RCV_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "GW Rcv"); - sep = ", "; - } - if ((flags1 & LBMR_TNWG_CTXINFO_PROXY_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "Proxy"); - } - if (flags1 != 0) - { - flags1_item = proto_tree_add_none_format(ctxinfo_tree, hf_lbmr_tnwg_ctxinfo_flags1, tvb, offset + O_LBMR_TNWG_CTXINFO_T_FLAGS1, L_LBMR_TNWG_CTXINFO_T_FLAGS1, "Flags1: 0x%04x (%s)", flags1, wmem_strbuf_get_str(flagbuf)); - } - else - { - flags1_item = proto_tree_add_item(ctxinfo_tree, hf_lbmr_tnwg_ctxinfo_flags1, tvb, offset + O_LBMR_TNWG_CTXINFO_T_FLAGS1, L_LBMR_TNWG_CTXINFO_T_FLAGS1, ENC_NA); - } - flags1_tree = proto_item_add_subtree(flags1_item, ett_lbmr_tnwg_ctxinfo_flags1); - proto_tree_add_item(flags1_tree, hf_lbmr_tnwg_ctxinfo_flags1_query, tvb, offset + O_LBMR_TNWG_CTXINFO_T_FLAGS1, L_LBMR_TNWG_CTXINFO_T_FLAGS1, ENC_BIG_ENDIAN); - proto_tree_add_item(flags1_tree, hf_lbmr_tnwg_ctxinfo_flags1_tnwg_src, tvb, offset + O_LBMR_TNWG_CTXINFO_T_FLAGS1, L_LBMR_TNWG_CTXINFO_T_FLAGS1, ENC_BIG_ENDIAN); - proto_tree_add_item(flags1_tree, hf_lbmr_tnwg_ctxinfo_flags1_tnwg_rcv, tvb, offset + O_LBMR_TNWG_CTXINFO_T_FLAGS1, L_LBMR_TNWG_CTXINFO_T_FLAGS1, ENC_BIG_ENDIAN); - proto_tree_add_item(flags1_tree, hf_lbmr_tnwg_ctxinfo_flags1_proxy, tvb, offset + O_LBMR_TNWG_CTXINFO_T_FLAGS1, L_LBMR_TNWG_CTXINFO_T_FLAGS1, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(ctxinfo_tree, tvb, offset + O_LBMR_TNWG_CTXINFO_T_FLAGS1, hf_lbmr_tnwg_ctxinfo_flags1, ett_lbmr_tnwg_ctxinfo_flags1, flags1, ENC_BIG_ENDIAN); proto_tree_add_item(ctxinfo_tree, hf_lbmr_tnwg_ctxinfo_flags2, tvb, offset + O_LBMR_TNWG_CTXINFO_T_FLAGS2, L_LBMR_TNWG_CTXINFO_T_FLAGS2, ENC_BIG_ENDIAN); - offset += L_LBMR_TNWG_CTXINFO_T; len_remaining -= L_LBMR_TNWG_CTXINFO_T; len_used = L_LBMR_TNWG_CTXINFO_T; @@ -3489,8 +3440,13 @@ static int dissect_lbmr_tmr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, char * name = NULL; proto_item * ti = NULL; proto_tree * tinfo_tree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; + static const int * flags[] = + { + &hf_lbmr_tmr_flags_response, + &hf_lbmr_tmr_flags_wildcard_pcre, + &hf_lbmr_tmr_flags_wildcard_regex, + NULL + }; guint16 tmr_len; guint8 tmr_type; guint8 tmr_flags; @@ -3524,11 +3480,7 @@ static int dissect_lbmr_tmr(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, tinfo_tree = proto_item_add_subtree(ti, ett_lbmr_tmr); proto_tree_add_item(tinfo_tree, hf_lbmr_tmr_len, tvb, offset + O_LBMR_TMR_T_LEN, L_LBMR_TMR_T_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(tinfo_tree, hf_lbmr_tmr_type, tvb, offset + O_LBMR_TMR_T_TYPE, L_LBMR_TMR_T_TYPE, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(tinfo_tree, hf_lbmr_tmr_flags, tvb, offset + O_LBMR_TMR_T_FLAGS, L_LBMR_TMR_T_FLAGS, ENC_NA); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_tmr_flags); - proto_tree_add_item(flags_tree, hf_lbmr_tmr_flags_response, tvb, offset + O_LBMR_TMR_T_FLAGS, L_LBMR_TMR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_tmr_flags_wildcard_pcre, tvb, offset + O_LBMR_TMR_T_FLAGS, L_LBMR_TMR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_tmr_flags_wildcard_regex, tvb, offset + O_LBMR_TMR_T_FLAGS, L_LBMR_TMR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(tinfo_tree, tvb, offset + O_LBMR_TMR_T_FLAGS, hf_lbmr_tmr_flags, ett_lbmr_tmr_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(tinfo_tree, hf_lbmr_tmr_name, tvb, name_offset, namelen, ENC_ASCII|ENC_NA); return ((int) tmr_len); } @@ -3650,12 +3602,96 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi int curr_offset = offset; proto_item * oi = NULL; proto_tree * otree = NULL; - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - proto_item * fflags_item = NULL; - proto_tree * fflags_tree = NULL; proto_item * optlen_item = NULL; proto_tree * optlen_tree = NULL; + static const int * opt_ume_flags[] = + { + &hf_lbmr_topt_ume_flags_ignore, + &hf_lbmr_topt_ume_flags_latejoin, + &hf_lbmr_topt_ume_flags_store, + &hf_lbmr_topt_ume_flags_qccap, + &hf_lbmr_topt_ume_flags_acktosrc, + NULL + }; + static const int * opt_ume_store_flags[] = + { + &hf_lbmr_topt_ume_store_flags_ignore, + NULL + }; + static const int * opt_ume_store_group_flags[] = + { + &hf_lbmr_topt_ume_store_group_flags_ignore, + NULL + }; + static const int * opt_latejoin_flags[] = + { + &hf_lbmr_topt_latejoin_flags_ignore, + &hf_lbmr_topt_latejoin_flags_acktosrc, + NULL + }; + static const int * opt_umq_rcridx_flags[] = + { + &hf_lbmr_topt_umq_rcridx_flags_ignore, + NULL + }; + static const int * opt_umq_qinfo_flags[] = + { + &hf_lbmr_topt_umq_qinfo_flags_ignore, + &hf_lbmr_topt_umq_qinfo_flags_queue, + &hf_lbmr_topt_umq_qinfo_flags_rcvlisten, + &hf_lbmr_topt_umq_qinfo_flags_control, + &hf_lbmr_topt_umq_qinfo_flags_srcrcvlisten, + &hf_lbmr_topt_umq_qinfo_flags_participants_only, + NULL + }; + static const int * opt_cost_flags[] = + { + &hf_lbmr_topt_cost_flags_ignore, + NULL + }; + static const int * opt_otid_flags[] = + { + &hf_lbmr_topt_otid_flags_ignore, + NULL + }; + static const int * opt_ctxinst_flags[] = + { + &hf_lbmr_topt_ctxinst_flags_ignore, + NULL + }; + static const int * opt_ctxinsts_flags[] = + { + &hf_lbmr_topt_ctxinsts_flags_ignore, + NULL + }; + static const int * opt_ulb_flags[] = + { + &hf_lbmr_topt_ulb_flags_ignore, + NULL + }; + static const int * opt_ctxinstq_flags[] = + { + &hf_lbmr_topt_ctxinstq_flags_ignore, + NULL + }; + static const int * opt_domain_id_flags[] = + { + &hf_lbmr_topt_domain_id_flags_ignore, + NULL + }; + static const int * opt_exfunc_flags[] = + { + &hf_lbmr_topt_exfunc_flags_ignore, + NULL + }; + static const int * opt_exfunc_functionality_flags[] = + { + &hf_lbmr_topt_exfunc_functionality_flags_ulb, + &hf_lbmr_topt_exfunc_functionality_flags_umq, + &hf_lbmr_topt_exfunc_functionality_flags_ume, + &hf_lbmr_topt_exfunc_functionality_flags_lj, + NULL + }; int len = 0; opt_total_len = (int)tvb_get_ntohs(tvb, curr_offset + O_LBMR_TOPIC_OPT_LEN_T_TOTAL_LEN); @@ -3701,13 +3737,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_ume); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_TYPE, L_LBMR_TOPIC_OPT_UME_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_LEN, L_LBMR_TOPIC_OPT_UME_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_FLAGS, L_LBMR_TOPIC_OPT_UME_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_ume_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ume_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_FLAGS, L_LBMR_TOPIC_OPT_UME_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ume_flags_latejoin, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_FLAGS, L_LBMR_TOPIC_OPT_UME_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ume_flags_store, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_FLAGS, L_LBMR_TOPIC_OPT_UME_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ume_flags_qccap, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_FLAGS, L_LBMR_TOPIC_OPT_UME_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ume_flags_acktosrc, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_FLAGS, L_LBMR_TOPIC_OPT_UME_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_FLAGS, hf_lbmr_topt_ume_flags, ett_lbmr_topt_ume_flags, opt_ume_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_tcp_port, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_STORE_TCP_PORT, L_LBMR_TOPIC_OPT_UME_T_STORE_TCP_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_src_tcp_port, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_SRC_TCP_PORT, L_LBMR_TOPIC_OPT_UME_T_SRC_TCP_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_tcp_addr, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_T_STORE_TCP_ADDR, L_LBMR_TOPIC_OPT_UME_T_STORE_TCP_ADDR, ENC_BIG_ENDIAN); @@ -3722,9 +3752,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_ume_store); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_T_TYPE, L_LBMR_TOPIC_OPT_UME_STORE_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_T_LEN, L_LBMR_TOPIC_OPT_UME_STORE_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_T_FLAGS, L_LBMR_TOPIC_OPT_UME_STORE_T_FLAGS, ENC_NA); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_ume_store_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ume_store_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_T_FLAGS, L_LBMR_TOPIC_OPT_UME_STORE_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_T_FLAGS, hf_lbmr_topt_ume_store_flags, ett_lbmr_topt_ume_store_flags, opt_ume_store_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_grp_idx, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_T_GRP_IDX, L_LBMR_TOPIC_OPT_UME_STORE_T_GRP_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_store_tcp_port, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_T_STORE_TCP_PORT, L_LBMR_TOPIC_OPT_UME_STORE_T_STORE_TCP_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_store_idx, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_T_STORE_IDX, L_LBMR_TOPIC_OPT_UME_STORE_T_STORE_IDX, ENC_BIG_ENDIAN); @@ -3736,9 +3764,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_ume_store_group); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_group_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_TYPE, L_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_group_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_LEN, L_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_group_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_FLAGS, L_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_FLAGS, ENC_NA); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_ume_store_group_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ume_store_group_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_FLAGS, L_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_FLAGS, hf_lbmr_topt_ume_store_group_flags, ett_lbmr_topt_ume_store_group_flags, opt_ume_store_group_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_group_grp_idx, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_GRP_IDX, L_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_GRP_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_group_grp_sz, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_GRP_SZ, L_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_GRP_SZ, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ume_store_group_reserved, tvb, curr_offset + O_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_RESERVED, L_LBMR_TOPIC_OPT_UME_STORE_GROUP_T_RESERVED, ENC_BIG_ENDIAN); @@ -3748,10 +3774,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_latejoin); proto_tree_add_item(opt_tree, hf_lbmr_topt_latejoin_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_LATEJOIN_T_TYPE, L_LBMR_TOPIC_OPT_LATEJOIN_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_latejoin_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_LATEJOIN_T_LEN, L_LBMR_TOPIC_OPT_LATEJOIN_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_latejoin_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_LATEJOIN_T_FLAGS, L_LBMR_TOPIC_OPT_LATEJOIN_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_latejoin_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_latejoin_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_LATEJOIN_T_FLAGS, L_LBMR_TOPIC_OPT_LATEJOIN_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_latejoin_flags_acktosrc, tvb, curr_offset + O_LBMR_TOPIC_OPT_LATEJOIN_T_FLAGS, L_LBMR_TOPIC_OPT_LATEJOIN_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_LATEJOIN_T_FLAGS, hf_lbmr_topt_latejoin_flags, ett_lbmr_topt_latejoin_flags, opt_latejoin_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_latejoin_src_tcp_port, tvb, curr_offset + O_LBMR_TOPIC_OPT_LATEJOIN_T_SRC_TCP_PORT, L_LBMR_TOPIC_OPT_LATEJOIN_T_SRC_TCP_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_latejoin_reserved, tvb, curr_offset + O_LBMR_TOPIC_OPT_LATEJOIN_T_RESERVED, L_LBMR_TOPIC_OPT_LATEJOIN_T_RESERVED, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_latejoin_src_ip_addr, tvb, curr_offset + O_LBMR_TOPIC_OPT_LATEJOIN_T_SRC_IP_ADDR, L_LBMR_TOPIC_OPT_LATEJOIN_T_SRC_IP_ADDR, ENC_BIG_ENDIAN); @@ -3764,9 +3787,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_umq_rcridx); proto_tree_add_item(opt_tree, hf_lbmr_topt_umq_rcridx_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_TYPE, L_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_umq_rcridx_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_LEN, L_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_umq_rcridx_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_FLAGS, L_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_umq_rcridx_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_umq_rcridx_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_FLAGS, L_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_FLAGS, hf_lbmr_topt_umq_rcridx_flags, ett_lbmr_topt_umq_rcridx_flags, opt_umq_rcridx_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_umq_rcridx_rcr_idx, tvb, curr_offset + O_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_RCR_IDX, L_LBMR_TOPIC_OPT_UMQ_RCRIDX_T_RCR_IDX, ENC_BIG_ENDIAN); break; case LBMR_TOPIC_OPT_UMQ_QINFO_TYPE: @@ -3775,14 +3796,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi proto_tree_add_item(opt_tree, hf_lbmr_topt_umq_qinfo_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_TYPE, L_LBMR_TOPIC_OPT_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_umq_qinfo_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_LEN, L_LBMR_TOPIC_OPT_T_LEN, ENC_BIG_ENDIAN); qname_len = opt_len - L_LBMR_TOPIC_OPT_T; - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_umq_qinfo_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_FLAGS, L_LBMR_TOPIC_OPT_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_umq_qinfo_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_umq_qinfo_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_FLAGS, L_LBMR_TOPIC_OPT_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_umq_qinfo_flags_queue, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_FLAGS, L_LBMR_TOPIC_OPT_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_umq_qinfo_flags_rcvlisten, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_FLAGS, L_LBMR_TOPIC_OPT_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_umq_qinfo_flags_control, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_FLAGS, L_LBMR_TOPIC_OPT_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_umq_qinfo_flags_srcrcvlisten, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_FLAGS, L_LBMR_TOPIC_OPT_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topt_umq_qinfo_flags_participants_only, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_FLAGS, L_LBMR_TOPIC_OPT_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_FLAGS, hf_lbmr_topt_umq_qinfo_flags, ett_lbmr_topt_umq_qinfo_flags, opt_umq_qinfo_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_umq_qinfo_queue, tvb, curr_offset + L_LBMR_TOPIC_OPT_T, qname_len, ENC_ASCII|ENC_NA); break; case LBMR_TOPIC_OPT_COST_TYPE: @@ -3790,9 +3804,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_cost); proto_tree_add_item(opt_tree, hf_lbmr_topt_cost_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_COST_T_TYPE, L_LBMR_TOPIC_OPT_COST_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_cost_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_COST_T_LEN, L_LBMR_TOPIC_OPT_COST_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_cost_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_COST_T_FLAGS, L_LBMR_TOPIC_OPT_COST_T_FLAGS, ENC_NA); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_cost_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_cost_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_COST_T_FLAGS, L_LBMR_TOPIC_OPT_COST_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_COST_T_FLAGS, hf_lbmr_topt_cost_flags, ett_lbmr_topt_cost_flags, opt_cost_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_cost_hop_count, tvb, curr_offset + O_LBMR_TOPIC_OPT_COST_T_HOP_COUNT, L_LBMR_TOPIC_OPT_COST_T_HOP_COUNT, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_cost_cost, tvb, curr_offset + O_LBMR_TOPIC_OPT_COST_T_COST, L_LBMR_TOPIC_OPT_COST_T_COST, ENC_BIG_ENDIAN); break; @@ -3801,9 +3813,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_otid); proto_tree_add_item(opt_tree, hf_lbmr_topt_otid_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_OTID_T_TYPE, L_LBMR_TOPIC_OPT_OTID_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_otid_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_OTID_T_LEN, L_LBMR_TOPIC_OPT_OTID_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_otid_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_OTID_T_FLAGS, L_LBMR_TOPIC_OPT_OTID_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_otid_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_otid_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_OTID_T_FLAGS, L_LBMR_TOPIC_OPT_OTID_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_OTID_T_FLAGS, hf_lbmr_topt_otid_flags, ett_lbmr_topt_otid_flags, opt_otid_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_otid_originating_transport, tvb, curr_offset + O_LBMR_TOPIC_OPT_OTID_T_ORIGINATING_TRANSPORT, L_LBMR_TOPIC_OPT_OTID_T_ORIGINATING_TRANSPORT, ENC_NA); break; case LBMR_TOPIC_OPT_CTXINST_TYPE: @@ -3811,9 +3821,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_ctxinst); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinst_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINST_T_TYPE, L_LBMR_TOPIC_OPT_CTXINST_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinst_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINST_T_LEN, L_LBMR_TOPIC_OPT_CTXINST_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinst_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINST_T_FLAGS, L_LBMR_TOPIC_OPT_CTXINST_T_FLAGS, ENC_NA); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_ctxinst_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ctxinst_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINST_T_FLAGS, L_LBMR_TOPIC_OPT_CTXINST_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINST_T_FLAGS, hf_lbmr_topt_ctxinst_flags, ett_lbmr_topt_ctxinst_flags, opt_ctxinst_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinst_res, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINST_T_RES, L_LBMR_TOPIC_OPT_CTXINST_T_RES, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinst_ctxinst, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINST_T_CTXINST, L_LBMR_TOPIC_OPT_CTXINST_T_CTXINST, ENC_NA); break; @@ -3822,9 +3830,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_ctxinsts); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinsts_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTS_T_TYPE, L_LBMR_TOPIC_OPT_CTXINSTS_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinsts_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTS_T_LEN, L_LBMR_TOPIC_OPT_CTXINSTS_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinsts_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTS_T_FLAGS, L_LBMR_TOPIC_OPT_CTXINSTS_T_FLAGS, ENC_NA); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_ctxinsts_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ctxinsts_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTS_T_FLAGS, L_LBMR_TOPIC_OPT_CTXINSTS_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTS_T_FLAGS, hf_lbmr_topt_ctxinsts_flags, ett_lbmr_topt_ctxinsts_flags, opt_ctxinsts_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinsts_idx, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTS_T_IDX, L_LBMR_TOPIC_OPT_CTXINSTS_T_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinsts_ctxinst, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTS_T_CTXINST, L_LBMR_TOPIC_OPT_CTXINSTS_T_CTXINST, ENC_NA); break; @@ -3833,9 +3839,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_ulb); proto_tree_add_item(opt_tree, hf_lbmr_topt_ulb_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_ULB_T_TYPE, L_LBMR_TOPIC_OPT_ULB_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ulb_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_ULB_T_LEN, L_LBMR_TOPIC_OPT_ULB_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_ulb_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_ULB_T_FLAGS, L_LBMR_TOPIC_OPT_ULB_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_ulb_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ulb_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_ULB_T_FLAGS, L_LBMR_TOPIC_OPT_ULB_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_ULB_T_FLAGS, hf_lbmr_topt_ulb_flags, ett_lbmr_topt_ulb_flags, opt_ulb_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ulb_queue_id, tvb, curr_offset + O_LBMR_TOPIC_OPT_ULB_T_QUEUE_ID, L_LBMR_TOPIC_OPT_ULB_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ulb_regid, tvb, curr_offset + O_LBMR_TOPIC_OPT_ULB_T_REGID, L_LBMR_TOPIC_OPT_ULB_T_REGID, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ulb_ulb_src_id, tvb, curr_offset + O_LBMR_TOPIC_OPT_ULB_T_ULB_SRC_ID, L_LBMR_TOPIC_OPT_ULB_T_ULB_SRC_ID, ENC_BIG_ENDIAN); @@ -3848,9 +3852,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_ctxinstq); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinstq_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTQ_T_TYPE, L_LBMR_TOPIC_OPT_CTXINSTQ_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinstq_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTQ_T_LEN, L_LBMR_TOPIC_OPT_CTXINSTQ_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinstq_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTQ_T_FLAGS, L_LBMR_TOPIC_OPT_CTXINSTQ_T_FLAGS, ENC_NA); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_ctxinstq_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_ctxinstq_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTQ_T_FLAGS, L_LBMR_TOPIC_OPT_CTXINSTQ_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTQ_T_FLAGS, hf_lbmr_topt_ctxinstq_flags, ett_lbmr_topt_ctxinstq_flags, opt_ctxinstq_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinstq_idx, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTQ_T_IDX, L_LBMR_TOPIC_OPT_CTXINSTQ_T_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_ctxinstq_ctxinst, tvb, curr_offset + O_LBMR_TOPIC_OPT_CTXINSTQ_T_CTXINST, L_LBMR_TOPIC_OPT_CTXINSTQ_T_CTXINST, ENC_NA); break; @@ -3859,9 +3861,7 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_domain_id); proto_tree_add_item(opt_tree, hf_lbmr_topt_domain_id_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_DOMAIN_ID_T_TYPE, L_LBMR_TOPIC_OPT_DOMAIN_ID_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_domain_id_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_DOMAIN_ID_T_LEN, L_LBMR_TOPIC_OPT_DOMAIN_ID_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_domain_id_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_DOMAIN_ID_T_FLAGS, L_LBMR_TOPIC_OPT_DOMAIN_ID_T_FLAGS, ENC_NA); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_domain_id_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_domain_id_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_DOMAIN_ID_T_FLAGS, L_LBMR_TOPIC_OPT_DOMAIN_ID_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_DOMAIN_ID_T_FLAGS, hf_lbmr_topt_domain_id_flags, ett_lbmr_topt_domain_id_flags, opt_domain_id_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_domain_id_domain_id, tvb, curr_offset + O_LBMR_TOPIC_OPT_DOMAIN_ID_T_DOMAIN_ID, L_LBMR_TOPIC_OPT_DOMAIN_ID_T_DOMAIN_ID, ENC_BIG_ENDIAN); break; case LBMR_TOPIC_OPT_EXFUNC_TYPE: @@ -3869,18 +3869,11 @@ static int dissect_lbmr_tir_options(tvbuff_t * tvb, int offset, packet_info * pi opt_tree = proto_item_add_subtree(opt_item, ett_lbmr_topt_exfunc); proto_tree_add_item(opt_tree, hf_lbmr_topt_exfunc_type, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_TYPE, L_LBMR_TOPIC_OPT_EXFUNC_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_exfunc_len, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_LEN, L_LBMR_TOPIC_OPT_EXFUNC_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_exfunc_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_FLAGS, L_LBMR_TOPIC_OPT_EXFUNC_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topt_exfunc_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topt_exfunc_flags_ignore, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_FLAGS, L_LBMR_TOPIC_OPT_EXFUNC_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_FLAGS, hf_lbmr_topt_exfunc_flags, ett_lbmr_topt_exfunc_flags, opt_exfunc_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_exfunc_src_tcp_port, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_SRC_TCP_PORT, L_LBMR_TOPIC_OPT_EXFUNC_T_SRC_TCP_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_exfunc_reserved, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_RESERVED, L_LBMR_TOPIC_OPT_EXFUNC_T_RESERVED, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbmr_topt_exfunc_src_ip_addr, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_SRC_IP_ADDR, L_LBMR_TOPIC_OPT_EXFUNC_T_SRC_IP_ADDR, ENC_BIG_ENDIAN); - fflags_item = proto_tree_add_item(opt_tree, hf_lbmr_topt_exfunc_functionality_flags, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, L_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, ENC_BIG_ENDIAN); - fflags_tree = proto_item_add_subtree(fflags_item, ett_lbmr_topt_exfunc_functionality_flags); - proto_tree_add_item(fflags_tree, hf_lbmr_topt_exfunc_functionality_flags_ulb, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, L_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(fflags_tree, hf_lbmr_topt_exfunc_functionality_flags_umq, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, L_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(fflags_tree, hf_lbmr_topt_exfunc_functionality_flags_ume, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, L_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(fflags_tree, hf_lbmr_topt_exfunc_functionality_flags_lj, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, L_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, curr_offset + O_LBMR_TOPIC_OPT_EXFUNC_T_FUNCTIONALITY_FLAGS, hf_lbmr_topt_exfunc_functionality_flags, ett_lbmr_topt_exfunc_functionality_flags, opt_exfunc_functionality_flags, ENC_BIG_ENDIAN); break; default: opt_item = proto_tree_add_item(otree, hf_lbmr_topt_unknown, tvb, curr_offset + O_LBMR_TOPIC_OPT_T_TYPE, opt_len, ENC_NA); @@ -4130,8 +4123,6 @@ static int dissect_lbmr_tir_entry(tvbuff_t * tvb, int offset, packet_info * pinf guint16 ttl; guint32 idx; int curr_offset; - proto_item * transport_item = NULL; - proto_tree * transport_tree = NULL; proto_item * transport_len_item = NULL; name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &namelen, ENC_ASCII); @@ -4149,10 +4140,8 @@ static int dissect_lbmr_tir_entry(tvbuff_t * tvb, int offset, packet_info * pinf name, val_to_str((transport & LBMR_TIR_TRANSPORT), lbmr_transport_type, "Unknown (0x%02x)"), tlen, idx, ttl); tinfo_tree = proto_item_add_subtree(ti, ett_lbmr_tir); proto_tree_add_item(tinfo_tree, hf_lbmr_tir_name, tvb, offset, namelen, ENC_ASCII|ENC_NA); - transport_item = proto_tree_add_item(tinfo_tree, hf_lbmr_tir_transport, tvb, tinfo_offset + O_LBMR_TIR_T_TRANSPORT, L_LBMR_TIR_T_TRANSPORT, ENC_NA); - transport_tree = proto_item_add_subtree(transport_item, ett_lbmr_tir_transport); - proto_tree_add_item(transport_tree, hf_lbmr_tir_transport_opts, tvb, tinfo_offset + O_LBMR_TIR_T_TRANSPORT, L_LBMR_TIR_T_TRANSPORT, ENC_BIG_ENDIAN); - proto_tree_add_item(transport_tree, hf_lbmr_tir_transport_type, tvb, tinfo_offset + O_LBMR_TIR_T_TRANSPORT, L_LBMR_TIR_T_TRANSPORT, ENC_BIG_ENDIAN); + proto_tree_add_item(tinfo_tree, hf_lbmr_tir_transport_opts, tvb, tinfo_offset + O_LBMR_TIR_T_TRANSPORT, L_LBMR_TIR_T_TRANSPORT, ENC_BIG_ENDIAN); + proto_tree_add_item(tinfo_tree, hf_lbmr_tir_transport_type, tvb, tinfo_offset + O_LBMR_TIR_T_TRANSPORT, L_LBMR_TIR_T_TRANSPORT, ENC_BIG_ENDIAN); transport_len_item = proto_tree_add_item(tinfo_tree, hf_lbmr_tir_tlen, tvb, tinfo_offset + O_LBMR_TIR_T_TLEN, L_LBMR_TIR_T_TLEN, ENC_BIG_ENDIAN); proto_tree_add_item(tinfo_tree, hf_lbmr_tir_ttl, tvb, tinfo_offset + O_LBMR_TIR_T_TTL, L_LBMR_TIR_T_TTL, ENC_BIG_ENDIAN); proto_tree_add_item(tinfo_tree, hf_lbmr_tir_index, tvb, tinfo_offset + O_LBMR_TIR_T_INDEX, L_LBMR_TIR_T_INDEX, ENC_BIG_ENDIAN); @@ -4287,8 +4276,6 @@ static int dissect_lbmr_qir_entry(tvbuff_t * tvb, int offset, packet_info * pinf guint16 queue_blks = 0; guint16 have_options = 0; int optlen = 0; - proto_item * grpblkti = NULL; - proto_tree * grpblktree = NULL; /* queue name (null-terminated) @@ -4321,10 +4308,8 @@ static int dissect_lbmr_qir_entry(tvbuff_t * tvb, int offset, packet_info * pinf proto_tree_add_item(qirtree, hf_lbmr_qir_queue_id, tvb, curr_offset + O_LBMR_QIR_T_QUEUE_ID, L_LBMR_QIR_T_QUEUE_ID, ENC_BIG_ENDIAN); proto_tree_add_item(qirtree, hf_lbmr_qir_queue_ver, tvb, curr_offset + O_LBMR_QIR_T_QUEUE_VER, L_LBMR_QIR_T_QUEUE_VER, ENC_BIG_ENDIAN); proto_tree_add_item(qirtree, hf_lbmr_qir_queue_prev_ver, tvb, curr_offset + O_LBMR_QIR_T_QUEUE_PREV_VER, L_LBMR_QIR_T_QUEUE_PREV_VER, ENC_BIG_ENDIAN); - grpblkti = proto_tree_add_item(qirtree, hf_lbmr_qir_grp_blks, tvb, curr_offset + O_LBMR_QIR_T_GRP_BLKS, L_LBMR_QIR_T_GRP_BLKS, ENC_NA); - grpblktree = proto_item_add_subtree(grpblkti, ett_lbmr_qir_grp_blks); - proto_tree_add_item(grpblktree, hf_lbmr_qir_grp_blks_option_flag, tvb, curr_offset + O_LBMR_QIR_T_GRP_BLKS, L_LBMR_QIR_T_GRP_BLKS, ENC_BIG_ENDIAN); - proto_tree_add_item(grpblktree, hf_lbmr_qir_grp_blks_count, tvb, curr_offset + O_LBMR_QIR_T_GRP_BLKS, L_LBMR_QIR_T_GRP_BLKS, ENC_BIG_ENDIAN); + proto_tree_add_item(qirtree, hf_lbmr_qir_option_flag, tvb, curr_offset + O_LBMR_QIR_T_GRP_BLKS, L_LBMR_QIR_T_GRP_BLKS, ENC_BIG_ENDIAN); + proto_tree_add_item(qirtree, hf_lbmr_qir_grp_blks, tvb, curr_offset + O_LBMR_QIR_T_GRP_BLKS, L_LBMR_QIR_T_GRP_BLKS, ENC_BIG_ENDIAN); proto_tree_add_item(qirtree, hf_lbmr_qir_queue_blks, tvb, curr_offset + O_LBMR_QIR_T_QUEUE_BLKS, L_LBMR_QIR_T_QUEUE_BLKS, ENC_BIG_ENDIAN); curr_offset += L_LBMR_QIR_T; reclen += L_LBMR_QIR_T; @@ -4395,19 +4380,20 @@ static int dissect_lbmr_pser(tvbuff_t * tvb, int offset, packet_info * pinfo, pr int hdr_len = 0; int len = 0; int topic_len = 0; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_pser_flags_option, + NULL + }; int curr_offset = offset; - guint16 flags = 0; + guint16 flags_val = 0; hdr_len = (int)tvb_get_ntohs(tvb, curr_offset + O_LBMR_PSER_T_LEN); - flags = tvb_get_ntohs(tvb, curr_offset + O_LBMR_PSER_T_FLAGS); + flags_val = tvb_get_ntohs(tvb, curr_offset + O_LBMR_PSER_T_FLAGS); topic_len = hdr_len - L_LBMR_PSER_T; proto_tree_add_item(tree, hf_lbmr_pser_dep_type, tvb, offset + O_LBMR_PSER_T_DEP_TYPE, L_LBMR_PSER_T_DEP_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmr_pser_len, tvb, offset + O_LBMR_PSER_T_LEN, L_LBMR_PSER_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_none_format(tree, hf_lbmr_pser_flags, tvb, offset + O_LBMR_PSER_T_FLAGS, L_LBMR_PSER_T_FLAGS, "Flags (0x%04x)", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_pser_flags); - proto_tree_add_item(flags_tree, hf_lbmr_pser_flags_option, tvb, offset + O_LBMR_PSER_T_FLAGS, L_LBMR_PSER_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(tree, tvb, offset + O_LBMR_PSER_T_FLAGS, hf_lbmr_pser_flags, ett_lbmr_pser_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmr_pser_source_ip, tvb, offset + O_LBMR_PSER_T_SOURCE_IP, L_LBMR_PSER_T_SOURCE_IP, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmr_pser_store_ip, tvb, offset + O_LBMR_PSER_T_STORE_IP, L_LBMR_PSER_T_STORE_IP, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmr_pser_transport_idx, tvb, offset + O_LBMR_PSER_T_TRANSPORT_IDX, L_LBMR_PSER_T_TRANSPORT_IDX, ENC_BIG_ENDIAN); @@ -4417,7 +4403,7 @@ static int dissect_lbmr_pser(tvbuff_t * tvb, int offset, packet_info * pinfo, pr proto_tree_add_item(tree, hf_lbmr_pser_topic, tvb, offset + O_LBMR_PSER_T_TOPIC, topic_len, ENC_ASCII|ENC_NA); curr_offset += hdr_len; len = hdr_len; - if ((flags & LBMR_PSER_OPT_FLAG) != 0) + if ((flags_val & LBMR_PSER_OPT_FLAG) != 0) { proto_tree * opts_tree = NULL; proto_item * opts_item = NULL; @@ -4477,22 +4463,33 @@ int lbmr_dissect_umq_qmgmt(tvbuff_t * tvb, int offset, packet_info * pinfo, prot int curr_offset = 0; guint16 dep16; guint16 idx; - guint8 flags = 0; + guint8 flags_val = 0; int len_dissected = 0; - proto_item * subtree_item = NULL; - proto_tree * subtree = NULL; + static const int * flags[] = + { + &hf_qmgmt_flags_i_flag, + &hf_qmgmt_flags_n_flag, + NULL + }; + static const int * il_flags[] = + { + &hf_qmgmt_flags_i_flag, + &hf_qmgmt_flags_n_flag, + &hf_qmgmt_flags_il_l_flag, + &hf_qmgmt_flags_il_k_flag, + NULL + }; - flags = tvb_get_guint8(tvb, offset + O_UMQ_QMGMT_HDR_T_FLAGS); + flags_val = tvb_get_guint8(tvb, offset + O_UMQ_QMGMT_HDR_T_FLAGS); pckt_type = tvb_get_guint8(tvb, offset + O_UMQ_QMGMT_HDR_T_PCKT_TYPE); dep16 = tvb_get_ntohs(tvb, offset + O_UMQ_QMGMT_HDR_T_PCKT_TYPE_DEP16); - subtree_item = proto_tree_add_item(tree, hf_qmgmt_flags, tvb, offset + O_UMQ_QMGMT_HDR_T_FLAGS, L_UMQ_QMGMT_HDR_T_FLAGS, ENC_NA); - subtree = proto_item_add_subtree(subtree_item, ett_qmgmt_flags); - proto_tree_add_item(subtree, hf_qmgmt_flags_i_flag, tvb, offset + O_UMQ_QMGMT_HDR_T_FLAGS, L_UMQ_QMGMT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(subtree, hf_qmgmt_flags_n_flag, tvb, offset + O_UMQ_QMGMT_HDR_T_FLAGS, L_UMQ_QMGMT_HDR_T_FLAGS, ENC_BIG_ENDIAN); if (pckt_type == UMQ_QMGMT_HDR_PCKT_TYPE_IL) { - proto_tree_add_item(subtree, hf_qmgmt_flags_il_l_flag, tvb, offset + O_UMQ_QMGMT_HDR_T_FLAGS, L_UMQ_QMGMT_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(subtree, hf_qmgmt_flags_il_k_flag, tvb, offset + O_UMQ_QMGMT_HDR_T_FLAGS, L_UMQ_QMGMT_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(tree, tvb, offset + O_UMQ_QMGMT_HDR_T_FLAGS, hf_qmgmt_flags, ett_qmgmt_flags, il_flags, ENC_BIG_ENDIAN); + } + else + { + proto_tree_add_bitmask(tree, tvb, offset + O_UMQ_QMGMT_HDR_T_FLAGS, hf_qmgmt_flags, ett_qmgmt_flags, flags, ENC_BIG_ENDIAN); } proto_tree_add_item(tree, hf_qmgmt_pckt_type, tvb, offset + O_UMQ_QMGMT_HDR_T_PCKT_TYPE, L_UMQ_QMGMT_HDR_T_PCKT_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_qmgmt_cfgsig, tvb, offset + O_UMQ_QMGMT_HDR_T_CFGSIG, L_UMQ_QMGMT_HDR_T_CFGSIG, ENC_NA); @@ -4525,6 +4522,13 @@ int lbmr_dissect_umq_qmgmt(tvbuff_t * tvb, int offset, packet_info * pinfo, prot { proto_item * il_subtree_item = NULL; proto_tree * il_subtree = NULL; + static const int * il_inst_flags[] = + { + &hf_qmgmt_il_inst_flags_m_flag, + &hf_qmgmt_il_inst_flags_q_flag, + &hf_qmgmt_il_inst_flags_p_flag, + NULL + }; il_subtree_item = proto_tree_add_item(tree, hf_qmgmt_il, tvb, curr_offset, L_UMQ_QMGMT_IL_HDR_T, ENC_NA); il_subtree = proto_item_add_subtree(il_subtree_item, ett_qmgmt_il); @@ -4535,8 +4539,6 @@ int lbmr_dissect_umq_qmgmt(tvbuff_t * tvb, int offset, packet_info * pinfo, prot { proto_item * il_inst_subtree_item = NULL; proto_tree * il_inst_subtree = NULL; - proto_item * il_inst_flags_subtree_item = NULL; - proto_tree * il_inst_flags_subtree = NULL; il_inst_subtree_item = proto_tree_add_item(tree, hf_qmgmt_il_inst, tvb, curr_offset, L_UMQ_QMGMT_IL_INST_HDR_T, ENC_NA); il_inst_subtree = proto_item_add_subtree(il_inst_subtree_item, ett_qmgmt_il_inst); @@ -4544,11 +4546,7 @@ int lbmr_dissect_umq_qmgmt(tvbuff_t * tvb, int offset, packet_info * pinfo, prot proto_tree_add_item(il_inst_subtree, hf_qmgmt_il_inst_port, tvb, curr_offset + O_UMQ_QMGMT_IL_INST_HDR_T_PORT, L_UMQ_QMGMT_IL_INST_HDR_T_PORT, ENC_BIG_ENDIAN); proto_tree_add_item(il_inst_subtree, hf_qmgmt_il_inst_inst_idx, tvb, curr_offset + O_UMQ_QMGMT_IL_INST_HDR_T_INST_IDX, L_UMQ_QMGMT_IL_INST_HDR_T_INST_IDX, ENC_BIG_ENDIAN); proto_tree_add_item(il_inst_subtree, hf_qmgmt_il_inst_grp_idx, tvb, curr_offset + O_UMQ_QMGMT_IL_INST_HDR_T_GRP_IDX, L_UMQ_QMGMT_IL_INST_HDR_T_GRP_IDX, ENC_BIG_ENDIAN); - il_inst_flags_subtree_item = proto_tree_add_item(il_inst_subtree, hf_qmgmt_il_inst_flags, tvb, curr_offset + O_UMQ_QMGMT_IL_INST_HDR_T_FLAGS, L_UMQ_QMGMT_IL_INST_HDR_T_FLAGS, ENC_NA); - il_inst_flags_subtree = proto_item_add_subtree(il_inst_flags_subtree_item, ett_qmgmt_il_inst_flags); - proto_tree_add_item(il_inst_flags_subtree, hf_qmgmt_il_inst_flags_m_flag, tvb, curr_offset + O_UMQ_QMGMT_IL_INST_HDR_T_FLAGS, L_UMQ_QMGMT_IL_INST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(il_inst_flags_subtree, hf_qmgmt_il_inst_flags_q_flag, tvb, curr_offset + O_UMQ_QMGMT_IL_INST_HDR_T_FLAGS, L_UMQ_QMGMT_IL_INST_HDR_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(il_inst_flags_subtree, hf_qmgmt_il_inst_flags_p_flag, tvb, curr_offset + O_UMQ_QMGMT_IL_INST_HDR_T_FLAGS, L_UMQ_QMGMT_IL_INST_HDR_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(il_inst_subtree, tvb, curr_offset + O_UMQ_QMGMT_IL_INST_HDR_T_FLAGS, hf_qmgmt_il_inst_flags, ett_qmgmt_il_inst_flags, il_inst_flags, ENC_BIG_ENDIAN); len_dissected += L_UMQ_QMGMT_IL_INST_HDR_T; curr_offset += L_UMQ_QMGMT_IL_INST_HDR_T; } @@ -4607,7 +4605,7 @@ int lbmr_dissect_umq_qmgmt(tvbuff_t * tvb, int offset, packet_info * pinfo, prot expert_add_info_format(pinfo, NULL, &ei_lbmr_analysis_invalid_value, "Unknown LBMR QMGMT packet type 0x%02x", pckt_type); break; } - if ((flags & UMQ_QMGMT_HDR_N_FLAG) != 0) + if ((flags_val & UMQ_QMGMT_HDR_N_FLAG) != 0) { int qnamelen = tvb_reported_length_remaining(tvb, curr_offset); if (qnamelen > 1) @@ -4624,87 +4622,28 @@ int lbmr_dissect_umq_qmgmt(tvbuff_t * tvb, int offset, packet_info * pinfo, prot /*----------------------------------------------------------------------------*/ static int dissect_lbmr_ctxinfo(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree) { - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; - guint16 flags = 0; guint8 reclen = 0; int name_offset = -1; int name_len = 0; - wmem_strbuf_t * flagbuf; - const char * sep = ""; + static const int * flags[] = + { + &hf_lbmr_ctxinfo_flags_query, + &hf_lbmr_ctxinfo_flags_ip, + &hf_lbmr_ctxinfo_flags_instance, + &hf_lbmr_ctxinfo_flags_tnwg_src, + &hf_lbmr_ctxinfo_flags_tnwg_rcv, + &hf_lbmr_ctxinfo_flags_proxy, + &hf_lbmr_ctxinfo_flags_name, + NULL + }; - flags = tvb_get_ntohs(tvb, offset + O_LBMR_CTXINFO_T_FLAGS); reclen = tvb_get_guint8(tvb, offset + O_LBMR_CTXINFO_T_LEN); - if ((flags & LBMR_CTXINFO_NAME_FLAG) != 0) - { - name_offset = offset + L_LBMR_CTXINFO_T; - name_len = reclen - L_LBMR_CTXINFO_T; - } proto_tree_add_item(tree, hf_lbmr_ctxinfo_len, tvb, offset + O_LBMR_CTXINFO_T_LEN, L_LBMR_CTXINFO_T_LEN, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmr_ctxinfo_hop_count, tvb, offset + O_LBMR_CTXINFO_T_HOP_COUNT, L_LBMR_CTXINFO_T_HOP_COUNT, ENC_BIG_ENDIAN); - flagbuf = wmem_strbuf_new_label(wmem_packet_scope()); - if ((flags & LBMR_CTXINFO_NAME_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "Name"); - sep = ", "; - } - if ((flags & LBMR_CTXINFO_PROXY_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "Proxy"); - sep = ", "; - } - if ((flags & LBMR_CTXINFO_TNWG_RCV_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "GW Rcv"); - sep = ", "; - } - if ((flags & LBMR_CTXINFO_TNWG_SRC_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "GW Src"); - sep = ", "; - } - if ((flags & LBMR_CTXINFO_INSTANCE_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "CtxInst"); - sep = ", "; - } - if ((flags & LBMR_CTXINFO_IP_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "IP"); - sep = ", "; - } - if ((flags & LBMR_CTXINFO_QUERY_FLAG) != 0) - { - wmem_strbuf_append(flagbuf, sep); - wmem_strbuf_append(flagbuf, "Query"); - } - if (flags != 0) - { - flags_item = proto_tree_add_none_format(tree, hf_lbmr_ctxinfo_flags, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, L_LBMR_CTXINFO_T_FLAGS, "Flags: 0x%04x (%s)", flags, wmem_strbuf_get_str(flagbuf)); - } - else - { - flags_item = proto_tree_add_item(tree, hf_lbmr_ctxinfo_flags, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, L_LBMR_CTXINFO_T_FLAGS, ENC_NA); - } - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_ctxinfo_flags); - proto_tree_add_item(flags_tree, hf_lbmr_ctxinfo_flags_query, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, L_LBMR_CTXINFO_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_ctxinfo_flags_ip, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, L_LBMR_CTXINFO_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_ctxinfo_flags_instance, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, L_LBMR_CTXINFO_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_ctxinfo_flags_tnwg_src, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, L_LBMR_CTXINFO_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_ctxinfo_flags_tnwg_rcv, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, L_LBMR_CTXINFO_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_ctxinfo_flags_proxy, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, L_LBMR_CTXINFO_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_ctxinfo_flags_name, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, L_LBMR_CTXINFO_T_FLAGS, ENC_ASCII); - + proto_tree_add_bitmask(tree, tvb, offset + O_LBMR_CTXINFO_T_FLAGS, hf_lbmr_ctxinfo_flags, ett_lbmr_ctxinfo_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmr_ctxinfo_port, tvb, offset + O_LBMR_CTXINFO_T_PORT, L_LBMR_CTXINFO_T_FLAGS, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmr_ctxinfo_ip, tvb, offset + O_LBMR_CTXINFO_T_IP, L_LBMR_CTXINFO_T_IP, ENC_BIG_ENDIAN); proto_tree_add_item(tree, hf_lbmr_ctxinfo_instance, tvb, offset + O_LBMR_CTXINFO_T_INSTANCE, L_LBMR_CTXINFO_T_INSTANCE, ENC_NA); - if (name_offset != -1) { proto_tree_add_item(tree, hf_lbmr_ctxinfo_name, tvb, name_offset, name_len, ENC_ASCII|ENC_NA); @@ -4717,18 +4656,19 @@ static int dissect_lbmr_ctxinfo(tvbuff_t * tvb, int offset, packet_info * pinfo /*----------------------------------------------------------------------------*/ static int dissect_lbmr_topic_res_request(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree) { - proto_item * flags_item = NULL; - proto_tree * flags_tree = NULL; - - flags_item = proto_tree_add_item(tree, hf_lbmr_topic_res_request_flags, tvb, offset + O_LBMR_TOPIC_RES_REQUEST_T_FLAGS, L_LBMR_TOPIC_RES_REQUEST_T_FLAGS, ENC_NA); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_topic_res_request_flags); - proto_tree_add_item(flags_tree, hf_lbmr_topic_res_request_flags_gw_remote_interest, tvb, offset + O_LBMR_TOPIC_RES_REQUEST_T_FLAGS, L_LBMR_TOPIC_RES_REQUEST_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topic_res_request_flags_context_query, tvb, offset + O_LBMR_TOPIC_RES_REQUEST_T_FLAGS, L_LBMR_TOPIC_RES_REQUEST_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topic_res_request_flags_context_advertisement, tvb, offset + O_LBMR_TOPIC_RES_REQUEST_T_FLAGS, L_LBMR_TOPIC_RES_REQUEST_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topic_res_request_flags_gateway_meta, tvb, offset + O_LBMR_TOPIC_RES_REQUEST_T_FLAGS, L_LBMR_TOPIC_RES_REQUEST_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topic_res_request_flags_advertisement, tvb, offset + O_LBMR_TOPIC_RES_REQUEST_T_FLAGS, L_LBMR_TOPIC_RES_REQUEST_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topic_res_request_flags_query, tvb, offset + O_LBMR_TOPIC_RES_REQUEST_T_FLAGS, L_LBMR_TOPIC_RES_REQUEST_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_topic_res_request_flags_wildcard_query, tvb, offset + O_LBMR_TOPIC_RES_REQUEST_T_FLAGS, L_LBMR_TOPIC_RES_REQUEST_T_FLAGS, ENC_BIG_ENDIAN); + static const int * flags[] = + { + &hf_lbmr_topic_res_request_flags_gw_remote_interest, + &hf_lbmr_topic_res_request_flags_context_query, + &hf_lbmr_topic_res_request_flags_context_advertisement, + &hf_lbmr_topic_res_request_flags_gateway_meta, + &hf_lbmr_topic_res_request_flags_advertisement, + &hf_lbmr_topic_res_request_flags_query, + &hf_lbmr_topic_res_request_flags_wildcard_query, + NULL + }; + + proto_tree_add_bitmask(tree, tvb, offset + O_LBMR_TOPIC_RES_REQUEST_T_FLAGS, hf_lbmr_topic_res_request_flags, ett_lbmr_topic_res_request_flags, flags, ENC_BIG_ENDIAN); return (L_LBMR_TOPIC_RES_REQUEST_T); } @@ -4858,23 +4798,22 @@ static int dissect_lbmr_rctxinfo_rec(tvbuff_t * tvb, int offset, packet_info * p proto_tree * subtree = NULL; proto_item * subtree_item = NULL; guint8 opt_type = 0; - proto_tree * flags_subtree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_rctxinfo_rec_flags_query, + NULL + }; guint16 len = 0; - guint16 flags = 0; int rec_len_remaining = 0; int ofs = 0; int opt_len_dissected = 0; int len_dissected = 0; len = tvb_get_ntohs(tvb, offset + O_LBMR_RCTXINFO_REC_T_LEN); - flags = tvb_get_ntohs(tvb, offset + O_LBMR_RCTXINFO_REC_T_FLAGS); subtree_item = proto_tree_add_item(tree, hf_lbmr_rctxinfo_rec, tvb, offset, -1, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmr_rctxinfo_rec); proto_tree_add_item(subtree, hf_lbmr_rctxinfo_rec_len, tvb, offset + O_LBMR_RCTXINFO_REC_T_LEN, L_LBMR_RCTXINFO_REC_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_none_format(subtree, hf_lbmr_rctxinfo_rec_flags, tvb, offset + O_LBMR_RCTXINFO_REC_T_FLAGS, L_LBMR_RCTXINFO_REC_T_FLAGS, "Flags: 0x%04x", flags); - flags_subtree = proto_item_add_subtree(flags_item, ett_lbmr_rctxinfo_rec_flags); - proto_tree_add_item(flags_subtree, hf_lbmr_rctxinfo_rec_flags_query, tvb, offset + O_LBMR_RCTXINFO_REC_T_FLAGS, L_LBMR_RCTXINFO_REC_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMR_RCTXINFO_REC_T_FLAGS, hf_lbmr_rctxinfo_rec_flags, ett_lbmr_rctxinfo_rec_flags, flags, ENC_BIG_ENDIAN); ofs = offset + L_LBMR_RCTXINFO_REC_T; rec_len_remaining = len - L_LBMR_RCTXINFO_REC_T; len_dissected = L_LBMR_RCTXINFO_REC_T; @@ -4932,15 +4871,11 @@ static int dissect_lbmr_rctxinfo(tvbuff_t * tvb, int offset, packet_info * pinfo static proto_item * format_ver_type(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree) { - proto_tree * subtree = NULL; - proto_item * subtree_item = NULL; proto_item * type_item = NULL; - subtree_item = proto_tree_add_item(tree, hf_lbmr_hdr_ver_type, tvb, offset + O_LBMR_HDR_T_VER_TYPE, L_LBMR_HDR_T_VER_TYPE, ENC_NA); - subtree = proto_item_add_subtree(subtree_item, ett_lbmr_hdr_ver_type); - proto_tree_add_item(subtree, hf_lbmr_hdr_ver_type_ver, tvb, offset + O_LBMR_HDR_T_VER_TYPE, L_LBMR_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); - proto_tree_add_item(subtree, hf_lbmr_hdr_ver_type_opt, tvb, offset + O_LBMR_HDR_T_VER_TYPE, L_LBMR_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); - type_item = proto_tree_add_item(subtree, hf_lbmr_hdr_ver_type_type, tvb, offset + O_LBMR_HDR_T_VER_TYPE, L_LBMR_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); + proto_tree_add_item(tree, hf_lbmr_hdr_ver, tvb, offset + O_LBMR_HDR_T_VER_TYPE, L_LBMR_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); + proto_tree_add_item(tree, hf_lbmr_hdr_opt, tvb, offset + O_LBMR_HDR_T_VER_TYPE, L_LBMR_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); + type_item = proto_tree_add_item(tree, hf_lbmr_hdr_type, tvb, offset + O_LBMR_HDR_T_VER_TYPE, L_LBMR_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); return (type_item); } @@ -4966,16 +4901,17 @@ static int dissect_lbmr_opt_src_id(tvbuff_t * tvb, int offset, packet_info * pin { proto_tree * subtree = NULL; proto_item * subtree_item = NULL; - proto_tree * flags_subtree = NULL; - proto_item * flags_subtree_item = NULL; + static const int * flags[] = + { + &hf_lbmr_opt_src_id_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmr_opt_src_id, tvb, offset, L_LBMR_LBMR_OPT_SRC_ID_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmr_opt_src_id); proto_tree_add_item(subtree, hf_lbmr_opt_src_id_type, tvb, offset + O_LBMR_LBMR_OPT_SRC_ID_T_TYPE, L_LBMR_LBMR_OPT_SRC_ID_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmr_opt_src_id_len, tvb, offset + O_LBMR_LBMR_OPT_SRC_ID_T_LEN, L_LBMR_LBMR_OPT_SRC_ID_T_LEN, ENC_BIG_ENDIAN); - flags_subtree_item = proto_tree_add_item(subtree, hf_lbmr_opt_src_id_flags, tvb, offset + O_LBMR_LBMR_OPT_SRC_ID_T_FLAGS, L_LBMR_LBMR_OPT_SRC_ID_T_FLAGS, ENC_NA); - flags_subtree = proto_item_add_subtree(flags_subtree_item, ett_lbmr_opt_src_id_flags); - proto_tree_add_item(flags_subtree, hf_lbmr_opt_src_id_flags_ignore, tvb, offset + O_LBMR_LBMR_OPT_SRC_ID_T_FLAGS, L_LBMR_LBMR_OPT_SRC_ID_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMR_LBMR_OPT_SRC_ID_T_FLAGS, hf_lbmr_opt_src_id_flags, ett_lbmr_opt_src_id_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmr_opt_src_id_src_id, tvb, offset + O_LBMR_LBMR_OPT_SRC_ID_T_SRC_ID, L_LBMR_LBMR_OPT_SRC_ID_T_SRC_ID, ENC_NA); return (L_LBMR_LBMR_OPT_SRC_ID_T); } @@ -4984,16 +4920,17 @@ static int dissect_lbmr_opt_src_type(tvbuff_t * tvb, int offset, packet_info * p { proto_tree * subtree = NULL; proto_item * subtree_item = NULL; - proto_tree * flags_subtree = NULL; - proto_item * flags_subtree_item = NULL; + static const int * flags[] = + { + &hf_lbmr_opt_src_type_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmr_opt_src_type, tvb, offset, L_LBMR_LBMR_OPT_SRC_TYPE_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmr_opt_src_type); proto_tree_add_item(subtree, hf_lbmr_opt_src_type_type, tvb, offset + O_LBMR_LBMR_OPT_SRC_TYPE_T_TYPE, L_LBMR_LBMR_OPT_SRC_TYPE_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmr_opt_src_type_len, tvb, offset + O_LBMR_LBMR_OPT_SRC_TYPE_T_LEN, L_LBMR_LBMR_OPT_SRC_TYPE_T_LEN, ENC_BIG_ENDIAN); - flags_subtree_item = proto_tree_add_item(subtree, hf_lbmr_opt_src_type_flags, tvb, offset + O_LBMR_LBMR_OPT_SRC_TYPE_T_FLAGS, L_LBMR_LBMR_OPT_SRC_TYPE_T_FLAGS, ENC_NA); - flags_subtree = proto_item_add_subtree(flags_subtree_item, ett_lbmr_opt_src_type_flags); - proto_tree_add_item(flags_subtree, hf_lbmr_opt_src_type_flags_ignore, tvb, offset + O_LBMR_LBMR_OPT_SRC_TYPE_T_FLAGS, L_LBMR_LBMR_OPT_SRC_TYPE_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMR_LBMR_OPT_SRC_TYPE_T_FLAGS, hf_lbmr_opt_src_type_flags, ett_lbmr_opt_src_type_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmr_opt_src_type_src_type, tvb, offset + O_LBMR_LBMR_OPT_SRC_TYPE_T_SRC_TYPE, L_LBMR_LBMR_OPT_SRC_TYPE_T_SRC_TYPE, ENC_BIG_ENDIAN); return (L_LBMR_LBMR_OPT_SRC_TYPE_T); } @@ -5002,18 +4939,19 @@ static int dissect_lbmr_opt_version(tvbuff_t * tvb, int offset, packet_info * pi { proto_tree * subtree = NULL; proto_item * subtree_item = NULL; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_opt_version_flags_ignore, + &hf_lbmr_opt_version_flags_ume, + &hf_lbmr_opt_version_flags_umq, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmr_opt_version, tvb, offset, L_LBMR_LBMR_OPT_VERSION_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmr_opt_version); proto_tree_add_item(subtree, hf_lbmr_opt_version_type, tvb, offset + O_LBMR_LBMR_OPT_VERSION_T_TYPE, L_LBMR_LBMR_OPT_VERSION_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmr_opt_version_len, tvb, offset + O_LBMR_LBMR_OPT_VERSION_T_LEN, L_LBMR_LBMR_OPT_VERSION_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(subtree, hf_lbmr_opt_version_flags, tvb, offset + O_LBMR_LBMR_OPT_VERSION_T_FLAGS, L_LBMR_LBMR_OPT_VERSION_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_opt_version_flags); - proto_tree_add_item(flags_tree, hf_lbmr_opt_version_flags_ignore, tvb, offset + O_LBMR_LBMR_OPT_VERSION_T_FLAGS, L_LBMR_LBMR_OPT_VERSION_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_opt_version_flags_ume, tvb, offset + O_LBMR_LBMR_OPT_VERSION_T_FLAGS, L_LBMR_LBMR_OPT_VERSION_T_FLAGS, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbmr_opt_version_flags_umq, tvb, offset + O_LBMR_LBMR_OPT_VERSION_T_FLAGS, L_LBMR_LBMR_OPT_VERSION_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMR_LBMR_OPT_VERSION_T_FLAGS, hf_lbmr_opt_version_flags, ett_lbmr_opt_version_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmr_opt_version_version, tvb, offset + O_LBMR_LBMR_OPT_VERSION_T_VERSION, L_LBMR_LBMR_OPT_VERSION_T_VERSION, ENC_BIG_ENDIAN); return (L_LBMR_LBMR_OPT_VERSION_T); } @@ -5022,16 +4960,17 @@ static int dissect_lbmr_opt_local_domain(tvbuff_t * tvb, int offset, packet_info { proto_tree * subtree = NULL; proto_item * subtree_item = NULL; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbmr_opt_local_domain_flags_ignore, + NULL + }; subtree_item = proto_tree_add_item(tree, hf_lbmr_opt_local_domain, tvb, offset, L_LBMR_LBMR_OPT_LOCAL_DOMAIN_T, ENC_NA); subtree = proto_item_add_subtree(subtree_item, ett_lbmr_opt_local_domain); proto_tree_add_item(subtree, hf_lbmr_opt_local_domain_type, tvb, offset + O_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_TYPE, L_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_TYPE, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmr_opt_local_domain_len, tvb, offset + O_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_LEN, L_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_LEN, ENC_BIG_ENDIAN); - flags_item = proto_tree_add_item(subtree, hf_lbmr_opt_local_domain_flags, tvb, offset + O_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_FLAGS, L_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_FLAGS, ENC_BIG_ENDIAN); - flags_tree = proto_item_add_subtree(flags_item, ett_lbmr_opt_local_domain_flags); - proto_tree_add_item(flags_tree, hf_lbmr_opt_local_domain_flags_ignore, tvb, offset + O_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_FLAGS, L_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_FLAGS, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(subtree, tvb, offset + O_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_FLAGS, hf_lbmr_opt_local_domain_flags, ett_lbmr_opt_local_domain_flags, flags, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_lbmr_opt_local_domain_local_domain_id, tvb, offset + O_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_LOCAL_DOMAIN_ID, L_LBMR_LBMR_OPT_LOCAL_DOMAIN_T_LOCAL_DOMAIN_ID, ENC_BIG_ENDIAN); return (L_LBMR_LBMR_OPT_LOCAL_DOMAIN_T); } @@ -5279,7 +5218,7 @@ static int dissect_lbmr(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, } lbmr_hdr_item = proto_tree_add_item(lbmr_tree, hf_lbmr_hdr, tvb, 0, -1, ENC_NA); lbmr_hdr_tree = proto_item_add_subtree(lbmr_hdr_item, ett_lbmr_hdr); - format_ver_type(tvb, 0, pinfo, lbmr_hdr_tree); + (void) format_ver_type(tvb, 0, pinfo, lbmr_hdr_tree); ext_type_item = proto_tree_add_item(lbmr_hdr_tree, hf_lbmr_hdr_ext_type, tvb, O_LBMR_HDR_EXT_TYPE_T_EXT_TYPE, L_LBMR_HDR_EXT_TYPE_T_EXT_TYPE, ENC_BIG_ENDIAN); /* ver_type and ext_type have already been processed. But their dissected length is included in the individual type dissections below. */ @@ -5576,14 +5515,12 @@ void proto_register_lbmr(void) { "Tag", "lbmr.tag", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_hdr, { "Header", "lbmr.hdr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmr_hdr_ver_type, - { "Version/Type", "lbmr.hdr.ver_type", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmr_hdr_ver_type_ver, - { "Version", "lbmr.hdr.ver_type.ver", FT_UINT8, BASE_DEC, NULL, LBMR_HDR_VER_VER_MASK, NULL, HFILL } }, - { &hf_lbmr_hdr_ver_type_opt, - { "Options", "lbmr.hdr.ver_type.opts", FT_BOOLEAN, 8, TFS(&tfs_present_not_present), LBMR_HDR_TYPE_OPTS_MASK, "Set if LBMR options are present", HFILL } }, - { &hf_lbmr_hdr_ver_type_type, - { "Type", "lbmr.hdr.ver_type.type", FT_UINT8, BASE_HEX, VALS(lbmr_packet_type), LBMR_HDR_VER_TYPE_MASK, NULL, HFILL } }, + { &hf_lbmr_hdr_ver, + { "Version", "lbmr.hdr.ver", FT_UINT8, BASE_DEC, NULL, LBMR_HDR_VER_VER_MASK, NULL, HFILL } }, + { &hf_lbmr_hdr_opt, + { "Options", "lbmr.hdr.opts", FT_BOOLEAN, 8, TFS(&tfs_present_not_present), LBMR_HDR_TYPE_OPTS_MASK, "Set if LBMR options are present", HFILL } }, + { &hf_lbmr_hdr_type, + { "Type", "lbmr.hdr.type", FT_UINT8, BASE_HEX, VALS(lbmr_packet_type), LBMR_HDR_VER_TYPE_MASK, NULL, HFILL } }, { &hf_lbmr_hdr_tqrs, { "Topic Query Records", "lbmr.hdr.tqrs", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_hdr_tirs, @@ -5610,12 +5547,10 @@ void proto_register_lbmr(void) { "TIR", "lbmr.tir", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_tir_name, { "Topic Name", "lbmr.tir.name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmr_tir_transport, - { "Transport", "lbmr.tir.transport", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_tir_transport_opts, - { "Transport Options Present", "lbmr.tir.transport.opts", FT_BOOLEAN, L_LBMR_TIR_T_TRANSPORT * 8, TFS(&tfs_set_notset), LBMR_TIR_OPTIONS, "Set if transport options are present", HFILL } }, + { "Transport Options Present", "lbmr.tir.transport_opts", FT_BOOLEAN, L_LBMR_TIR_T_TRANSPORT * 8, TFS(&tfs_set_notset), LBMR_TIR_OPTIONS, "Set if transport options are present", HFILL } }, { &hf_lbmr_tir_transport_type, - { "Transport Type", "lbmr.tir.transport.type", FT_UINT8, BASE_HEX, VALS(lbmr_transport_type), LBMR_TIR_TRANSPORT, NULL, HFILL } }, + { "Transport Type", "lbmr.tir.transport_type", FT_UINT8, BASE_HEX, VALS(lbmr_transport_type), LBMR_TIR_TRANSPORT, NULL, HFILL } }, { &hf_lbmr_tir_tlen, { "Transport Info Length", "lbmr.tir.tlen", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_tir_ttl, @@ -5969,7 +5904,7 @@ void proto_register_lbmr(void) { &hf_lbmr_tmr_type, { "TMR Type", "lbmr.tmb.tmr.type", FT_UINT8, BASE_DEC, VALS(lbmr_tmr_type), 0x0, NULL, HFILL } }, { &hf_lbmr_tmr_flags, - { "Flags", "lbmr.tmb.tmr.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.tmb.tmr.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_tmr_flags_response, { "Response", "lbmr.tmb.tmr.flags.response", FT_BOOLEAN, L_LBMR_TMR_T_FLAGS * 8, TFS(&tfs_set_notset), LBMR_TMR_FLAG_RESPONSE, "Set if this is a response", HFILL } }, { &hf_lbmr_tmr_flags_wildcard_pcre, @@ -5983,7 +5918,7 @@ void proto_register_lbmr(void) { &hf_lbmr_pser_len, { "Length", "lbmr.pser.len", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_pser_flags, - { "Flags", "lbmr.pser.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.pser.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_pser_flags_option, { "Option", "lbmr.pser.flags.option", FT_BOOLEAN, L_LBMR_PSER_T_FLAGS * 8, TFS(&tfs_set_notset), LBMR_PSER_OPT_FLAG, NULL, HFILL } }, { &hf_lbmr_pser_source_ip, @@ -6034,12 +5969,10 @@ void proto_register_lbmr(void) { "Queue Version", "lbmr.qir.queue_ver", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_qir_queue_prev_ver, { "Queue Previous Version", "lbmr.qir.queue_prev_ver", FT_UINT32, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, + { &hf_lbmr_qir_option_flag, + { "QIR Options Present", "lbmr.qir.opts", FT_BOOLEAN, L_LBMR_QIR_T_GRP_BLKS * 8, TFS(&tfs_set_notset), LBMR_QIR_OPTIONS, NULL, HFILL } }, { &hf_lbmr_qir_grp_blks, - { "Group Blocks", "lbmr.qir.grp_blks", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbmr_qir_grp_blks_option_flag, - { "QIR Options Present", "lbmr.qir.grp_blocks.opts", FT_BOOLEAN, L_LBMR_QIR_T_GRP_BLKS * 8, TFS(&tfs_set_notset), LBMR_QIR_OPTIONS, NULL, HFILL } }, - { &hf_lbmr_qir_grp_blks_count, - { "Group Block Count", "lbmr.qir.grp_blks.count", FT_UINT16, BASE_DEC_HEX, NULL, LBMR_QIR_GRP_BLOCKS_MASK, NULL, HFILL } }, + { "Group Block Count", "lbmr.qir.grp_blks", FT_UINT16, BASE_DEC_HEX, NULL, LBMR_QIR_GRP_BLOCKS_MASK, NULL, HFILL } }, { &hf_lbmr_qir_queue_blks, { "Queue Blocks", "lbmr.qir.queue_blks", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_qir_grps, @@ -6081,7 +6014,7 @@ void proto_register_lbmr(void) { &hf_lbmr_opt_src_id_len, { "Length", "lbmr.opt.src_id.len", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_opt_src_id_flags, - { "Flags", "lbmr.opt.src_id.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.opt.src_id.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_opt_src_id_flags_ignore, { "Ignore", "lbmr.opt.src_id.flags.ignore", FT_BOOLEAN, L_LBMR_LBMR_OPT_SRC_ID_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMR_LBMR_OPT_SRC_ID_FLAG_IGNORE, NULL, HFILL } }, { &hf_lbmr_opt_src_id_src_id, @@ -6093,7 +6026,7 @@ void proto_register_lbmr(void) { &hf_lbmr_opt_src_type_len, { "Length", "lbmr.opt.src_type.len", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_opt_src_type_flags, - { "Flags", "lbmr.opt.src_type.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.opt.src_type.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_opt_src_type_flags_ignore, { "Ignore", "lbmr.opt.src_type.flags.ignore", FT_BOOLEAN, L_LBMR_LBMR_OPT_SRC_TYPE_T_FLAGS * 8, TFS(&lbm_ignore_flag), LBMR_LBMR_OPT_SRC_TYPE_FLAG_IGNORE, NULL, HFILL } }, { &hf_lbmr_opt_src_type_src_type, @@ -6137,7 +6070,7 @@ void proto_register_lbmr(void) { &hf_lbmr_opt_unknown_data, { "Data", "lbmr.opt.unknown.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_topic_res_request_flags, - { "Flags", "lbmr.topic_res_request.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.topic_res_request.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_topic_res_request_flags_gw_remote_interest, { "Gateway Remote Interest", "lbmr.topic_res_request.flags.gw_remote_interest", FT_BOOLEAN, 8 * L_LBMR_TOPIC_RES_REQUEST_T_FLAGS, TFS(&tfs_set_notset), LBM_TOPIC_RES_REQUEST_GW_REMOTE_INTEREST, "Set if gateway remote interest is requested", HFILL } }, { &hf_lbmr_topic_res_request_flags_context_query, @@ -6157,7 +6090,7 @@ void proto_register_lbmr(void) { &hf_lbmr_ctxinfo_hop_count, { "Hop Count", "lbmr.ctxinfo.hop_count", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_ctxinfo_flags, - { "Flags", "lbmr.ctxinfo.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.ctxinfo.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_ctxinfo_flags_query, { "Query", "lbmr.ctxinfo.flags.query", FT_BOOLEAN, 16, TFS(&tfs_set_notset), LBMR_CTXINFO_QUERY_FLAG, "Set if query, clear if response", HFILL } }, { &hf_lbmr_ctxinfo_flags_ip, @@ -6197,7 +6130,7 @@ void proto_register_lbmr(void) { &hf_lbmr_tnwg_interest_rec_len, { "Length", "lbmr.tnwg.interest_rec.len", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_tnwg_interest_rec_flags, - { "Flags", "lbmr.tnwg.interest_rec.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.tnwg.interest_rec.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_tnwg_interest_rec_flags_pattern, { "Pattern", "lbmr.tnwg.interest_rec.flags.pattern", FT_BOOLEAN, L_LBMR_TNWG_INTEREST_REC_T_FLAGS * 8, TFS(&tfs_set_notset), LBMR_TNWG_INTEREST_REC_PATTERN_FLAG, "Set if interest is for a pattern", HFILL } }, { &hf_lbmr_tnwg_interest_rec_flags_cancel, @@ -6219,7 +6152,7 @@ void proto_register_lbmr(void) { &hf_lbmr_tnwg_ctxinfo_reserved, { "Reserved", "lbmr.tnwg.ctxinfo.reserved", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_tnwg_ctxinfo_flags1, - { "Flags1", "lbmr.tnwg.ctxinfo.flags1", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags1", "lbmr.tnwg.ctxinfo.flags1", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_tnwg_ctxinfo_flags1_query, { "Query", "lbmr.tnwg.ctxinfo.flags1.query", FT_BOOLEAN, L_LBMR_TNWG_CTXINFO_T_FLAGS1 * 8, TFS(&tfs_set_notset), LBMR_TNWG_CTXINFO_QUERY_FLAG, "Set if a query, clear if a response", HFILL } }, { &hf_lbmr_tnwg_ctxinfo_flags1_tnwg_src, @@ -6321,7 +6254,7 @@ void proto_register_lbmr(void) { &hf_lbmr_rctxinfo_rec_len, { "Length", "lbmr.rctxinfo.rec.len", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_rctxinfo_rec_flags, - { "Flags", "lbmr.rctxinfo.rec.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.rctxinfo.rec.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbmr_rctxinfo_rec_flags_query, { "Query", "lbmr.rctxinfo.rec.flags.query", FT_BOOLEAN, L_LBMR_RCTXINFO_REC_T_FLAGS * 8, TFS(&tfs_set_notset), LBMR_RCTXINFO_REC_FLAG_QUERY, "Set if a query, clear if a response", HFILL } }, { &hf_lbmr_rctxinfo_rec_address, @@ -6381,7 +6314,7 @@ void proto_register_lbmr(void) { &hf_lbmr_rctxinfo_rec_unknown_data, { "Data", "lbmr.rctxinfo.rec.unknown.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_qmgmt_flags, - { "Flags", "lbmr.qmgmt.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.qmgmt.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_qmgmt_flags_i_flag, { "Ignore", "lbmr.qmgmt.flags.i_flag", FT_BOOLEAN, L_UMQ_QMGMT_HDR_T_FLAGS * 8, TFS(&lbm_ignore_flag), UMQ_QMGMT_HDR_I_FLAG, NULL, HFILL } }, { &hf_qmgmt_flags_n_flag, @@ -6429,7 +6362,7 @@ void proto_register_lbmr(void) { &hf_qmgmt_il_inst_grp_idx, { "Group Index", "lbmr.qmgmt.il_inst.grp_idx", FT_UINT16, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_qmgmt_il_inst_flags, - { "Flags", "lbmr.qmgmt.il_inst.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbmr.qmgmt.il_inst.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_qmgmt_il_inst_flags_m_flag, { "Master", "lbmr.qmgmt.il_inst.flags.m_flag", FT_BOOLEAN, L_UMQ_QMGMT_IL_INST_HDR_T_FLAGS * 8, TFS(&tfs_set_notset), UMQ_QMGMT_HDR_IL_INST_M_FLAG, "Set if the master queue", HFILL } }, { &hf_qmgmt_il_inst_flags_q_flag, @@ -6457,7 +6390,6 @@ void proto_register_lbmr(void) { &ett_lbmr, &ett_lbmr_hdr, - &ett_lbmr_hdr_ver_type, &ett_lbmr_opts, &ett_lbmr_opt_src_id, &ett_lbmr_opt_src_id_flags, @@ -6473,7 +6405,6 @@ void proto_register_lbmr(void) &ett_lbmr_tqr, &ett_lbmr_tirs, &ett_lbmr_tir, - &ett_lbmr_tir_transport, &ett_lbmr_tir_tcp, &ett_lbmr_tir_lbtrm, &ett_lbmr_tir_lbtru, @@ -6524,7 +6455,6 @@ void proto_register_lbmr(void) &ett_lbmr_qirs, &ett_lbmr_qir, &ett_lbmr_qir_options, - &ett_lbmr_qir_grp_blks, &ett_lbmr_qir_grp_blk, &ett_lbmr_qir_queue_blk, &ett_lbmr_qir_grp, diff --git a/epan/dissectors/packet-lbtrm.c b/epan/dissectors/packet-lbtrm.c index c7165aa59f..b6fc181077 100644 --- a/epan/dissectors/packet-lbtrm.c +++ b/epan/dissectors/packet-lbtrm.c @@ -791,7 +791,6 @@ static char * lbtrm_tag_find(packet_info * pinfo) /* Dissector tree handles */ static gint ett_lbtrm = -1; static gint ett_lbtrm_hdr = -1; -static gint ett_lbtrm_hdr_ver_type = -1; static gint ett_lbtrm_data = -1; static gint ett_lbtrm_data_flags_fec_type = -1; static gint ett_lbtrm_sm = -1; @@ -799,7 +798,6 @@ static gint ett_lbtrm_sm_flags_fec_type = -1; static gint ett_lbtrm_nak = -1; static gint ett_lbtrm_nak_list = -1; static gint ett_lbtrm_ncf = -1; -static gint ett_lbtrm_ncf_reason_format = -1; static gint ett_lbtrm_ncf_list = -1; static gint ett_lbtrm_transport = -1; static gint ett_lbtrm_transport_sqn = -1; @@ -808,9 +806,8 @@ static gint ett_lbtrm_transport_sqn = -1; static int hf_lbtrm_channel = -1; static int hf_lbtrm_tag = -1; static int hf_lbtrm_hdr = -1; -static int hf_lbtrm_hdr_ver_type = -1; -static int hf_lbtrm_hdr_ver_type_ver = -1; -static int hf_lbtrm_hdr_ver_type_type = -1; +static int hf_lbtrm_hdr_ver = -1; +static int hf_lbtrm_hdr_type = -1; static int hf_lbtrm_hdr_next_hdr = -1; static int hf_lbtrm_hdr_ucast_port = -1; static int hf_lbtrm_hdr_session_id = -1; @@ -839,9 +836,8 @@ static int hf_lbtrm_ncf = -1; static int hf_lbtrm_ncf_trail_sqn = -1; static int hf_lbtrm_ncf_num_ncfs = -1; static int hf_lbtrm_ncf_reserved = -1; -static int hf_lbtrm_ncf_reason_format = -1; -static int hf_lbtrm_ncf_reason_format_reason = -1; -static int hf_lbtrm_ncf_reason_format_format = -1; +static int hf_lbtrm_ncf_reason = -1; +static int hf_lbtrm_ncf_format = -1; static int hf_lbtrm_ncf_list = -1; static int hf_lbtrm_ncf_list_ncf = -1; static int hf_lbtrm_analysis = -1; @@ -929,8 +925,6 @@ static int dissect_lbtrm_ncf(tvbuff_t * tvb, int offset, packet_info * pinfo, pr guint8 reason; proto_tree * ncf_tree = NULL; proto_item * ncf_item = NULL; - proto_tree * rf_tree = NULL; - proto_item * rf_item = NULL; proto_item * reason_item = NULL; ncf_item = proto_tree_add_item(tree, hf_lbtrm_ncf, tvb, offset, -1, ENC_NA); @@ -940,12 +934,8 @@ static int dissect_lbtrm_ncf(tvbuff_t * tvb, int offset, packet_info * pinfo, pr proto_tree_add_item(ncf_tree, hf_lbtrm_ncf_trail_sqn, tvb, offset + O_LBTRM_NCF_HDR_T_TRAIL_SQN, L_LBTRM_NCF_HDR_T_TRAIL_SQN, ENC_BIG_ENDIAN); proto_tree_add_item(ncf_tree, hf_lbtrm_ncf_num_ncfs, tvb, offset + O_LBTRM_NCF_HDR_T_NUM_NCFS, L_LBTRM_NCF_HDR_T_NUM_NCFS, ENC_BIG_ENDIAN); proto_tree_add_item(ncf_tree, hf_lbtrm_ncf_reserved, tvb, offset + O_LBTRM_NCF_HDR_T_RESERVED, L_LBTRM_NCF_HDR_T_RESERVED, ENC_BIG_ENDIAN); - rf_item = proto_tree_add_none_format(ncf_tree, hf_lbtrm_ncf_reason_format, tvb, O_LBTRM_NCF_HDR_T_REASON_FORMAT, L_LBTRM_NCF_HDR_T_REASON_FORMAT, - "Reason/Format: %s/%s", val_to_str(LBTRM_NCF_HDR_REASON(reason), lbtrm_ncf_reason, "Unknown (0x%02x)"), - val_to_str(LBTRM_NCF_HDR_FORMAT(reason), lbtrm_ncf_format, "Unknown (0x%02x)")); - rf_tree = proto_item_add_subtree(rf_item, ett_lbtrm_ncf_reason_format); - reason_item = proto_tree_add_item(rf_tree, hf_lbtrm_ncf_reason_format_reason, tvb, offset + O_LBTRM_NCF_HDR_T_REASON_FORMAT, L_LBTRM_NCF_HDR_T_REASON_FORMAT, ENC_BIG_ENDIAN); - proto_tree_add_item(rf_tree, hf_lbtrm_ncf_reason_format_format, tvb, offset + O_LBTRM_NCF_HDR_T_REASON_FORMAT, L_LBTRM_NCF_HDR_T_REASON_FORMAT, ENC_BIG_ENDIAN); + proto_tree_add_item(ncf_tree, hf_lbtrm_ncf_reason, tvb, offset + O_LBTRM_NCF_HDR_T_REASON_FORMAT, L_LBTRM_NCF_HDR_T_REASON_FORMAT, ENC_BIG_ENDIAN); + proto_tree_add_item(ncf_tree, hf_lbtrm_ncf_format, tvb, offset + O_LBTRM_NCF_HDR_T_REASON_FORMAT, L_LBTRM_NCF_HDR_T_REASON_FORMAT, ENC_BIG_ENDIAN); len = L_LBTRM_NCF_HDR_T; if (!lbtrm_expert_separate_ncfs) { @@ -1020,10 +1010,12 @@ static int dissect_lbtrm_sm(tvbuff_t * tvb, int offset, packet_info * pinfo, pro { proto_tree * sm_tree = NULL; proto_item * sm_item = NULL; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbtrm_sm_flags_fec_type_ucast_naks, + NULL + }; proto_item * sm_sqn_item = NULL; - guint8 flags; guint32 sqn; sm_item = proto_tree_add_item(tree, hf_lbtrm_sm, tvb, offset, L_LBTRM_SM_HDR_T, ENC_NA); @@ -1031,11 +1023,7 @@ static int dissect_lbtrm_sm(tvbuff_t * tvb, int offset, packet_info * pinfo, pro sm_sqn_item = proto_tree_add_item(sm_tree, hf_lbtrm_sm_sm_sqn, tvb, offset + O_LBTRM_SM_HDR_T_SM_SQN, L_LBTRM_SM_HDR_T_SM_SQN, ENC_BIG_ENDIAN); proto_tree_add_item(sm_tree, hf_lbtrm_sm_lead_sqn, tvb, offset + O_LBTRM_SM_HDR_T_LEAD_SQN, L_LBTRM_SM_HDR_T_LEAD_SQN, ENC_BIG_ENDIAN); proto_tree_add_item(sm_tree, hf_lbtrm_sm_trail_sqn, tvb, offset + O_LBTRM_SM_HDR_T_TRAIL_SQN, L_LBTRM_SM_HDR_T_TRAIL_SQN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBTRM_SM_HDR_T_FLAGS_FEC_TYPE); - flags_item = proto_tree_add_none_format(sm_tree, hf_lbtrm_sm_flags_fec_type, tvb, offset + O_LBTRM_SM_HDR_T_FLAGS_FEC_TYPE, L_LBTRM_SM_HDR_T_FLAGS_FEC_TYPE, - "FEC Flags: 0x%02x", flags); - flags_tree = proto_item_add_subtree(flags_item, ett_lbtrm_sm_flags_fec_type); - proto_tree_add_item(flags_tree, hf_lbtrm_sm_flags_fec_type_ucast_naks, tvb, offset + O_LBTRM_SM_HDR_T_FLAGS_FEC_TYPE, L_LBTRM_SM_HDR_T_FLAGS_FEC_TYPE, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(sm_tree, tvb, offset + O_LBTRM_SM_HDR_T_FLAGS_FEC_TYPE, hf_lbtrm_sm_flags_fec_type, ett_lbtrm_sm_flags_fec_type, flags, ENC_BIG_ENDIAN); proto_tree_add_item(sm_tree, hf_lbtrm_sm_flags_tgsz, tvb, offset + O_LBTRM_SM_HDR_T_FLAGS_TGSZ, L_LBTRM_SM_HDR_T_FLAGS_TGSZ, ENC_BIG_ENDIAN); proto_tree_add_item(sm_tree, hf_lbtrm_sm_reserved, tvb, offset + O_LBTRM_SM_HDR_T_RESERVED, L_LBTRM_SM_HDR_T_RESERVED, ENC_BIG_ENDIAN); sqn = tvb_get_ntohl(tvb, offset + O_LBTRM_SM_HDR_T_SM_SQN); @@ -1055,10 +1043,14 @@ static int dissect_lbtrm_data(tvbuff_t * tvb, int offset, packet_info * pinfo, p { proto_tree * data_tree = NULL; proto_item * data_item = NULL; - proto_tree * flags_tree = NULL; - proto_item * flags_item = NULL; + static const int * flags[] = + { + &hf_lbtrm_data_flags_fec_type_ucast_naks, + &hf_lbtrm_data_flags_fec_type_rx, + NULL + }; proto_item * sqn_item = NULL; - guint8 flags; + guint8 flags_val; guint32 sqn; gboolean is_retransmission = FALSE; @@ -1066,12 +1058,8 @@ static int dissect_lbtrm_data(tvbuff_t * tvb, int offset, packet_info * pinfo, p data_tree = proto_item_add_subtree(data_item, ett_lbtrm_data); sqn_item = proto_tree_add_item(data_tree, hf_lbtrm_data_sqn, tvb, offset + O_LBTRM_DATA_HDR_T_SQN, L_LBTRM_DATA_HDR_T_SQN, ENC_BIG_ENDIAN); proto_tree_add_item(data_tree, hf_lbtrm_data_trail_sqn, tvb, offset + O_LBTRM_DATA_HDR_T_TRAIL_SQN, L_LBTRM_DATA_HDR_T_TRAIL_SQN, ENC_BIG_ENDIAN); - flags = tvb_get_guint8(tvb, offset + O_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE); - flags_item = proto_tree_add_none_format(data_tree, hf_lbtrm_data_flags_fec_type, tvb, offset + O_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE, L_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE, - "FEC Flags: 0x%02x", LBTRM_DATA_FLAGS(flags)); - flags_tree = proto_item_add_subtree(flags_item, ett_lbtrm_data_flags_fec_type); - proto_tree_add_item(flags_tree, hf_lbtrm_data_flags_fec_type_ucast_naks, tvb, offset + O_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE, L_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE, ENC_BIG_ENDIAN); - proto_tree_add_item(flags_tree, hf_lbtrm_data_flags_fec_type_rx, tvb, offset + O_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE, L_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE, ENC_BIG_ENDIAN); + flags_val = tvb_get_guint8(tvb, offset + O_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE); + proto_tree_add_bitmask(data_tree, tvb, offset + O_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE, hf_lbtrm_data_flags_fec_type, ett_lbtrm_data_flags_fec_type, flags, ENC_BIG_ENDIAN); proto_tree_add_item(data_tree, hf_lbtrm_data_flags_tgsz, tvb, offset + O_LBTRM_DATA_HDR_T_FLAGS_TGSZ, L_LBTRM_DATA_HDR_T_FLAGS_TGSZ, ENC_BIG_ENDIAN); proto_tree_add_item(data_tree, hf_lbtrm_data_fec_symbol, tvb, offset + O_LBTRM_DATA_HDR_T_FEC_SYMBOL, L_LBTRM_DATA_HDR_T_FEC_SYMBOL, ENC_BIG_ENDIAN); sqn = tvb_get_ntohl(tvb, offset + O_LBTRM_DATA_HDR_T_SQN); @@ -1079,7 +1067,7 @@ static int dissect_lbtrm_data(tvbuff_t * tvb, int offset, packet_info * pinfo, p { *sequence = sqn; } - if ((flags & LBTRM_DATA_RETRANSMISSION_FLAG) != 0) + if ((flags_val & LBTRM_DATA_RETRANSMISSION_FLAG) != 0) { is_retransmission = TRUE; expert_add_info_format(pinfo, sqn_item, &ei_lbtrm_analysis_rx, "RX 0x%08x", sqn); @@ -1135,8 +1123,6 @@ static int dissect_lbtrm(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, int total_dissected_len = 0; proto_tree * hdr_tree = NULL; proto_item * hdr_item = NULL; - proto_tree * ver_type_tree = NULL; - proto_item * ver_type_item = NULL; guint16 src_port = 0; guint32 session_id = 0; guint16 dest_port = 0; @@ -1236,11 +1222,8 @@ static int dissect_lbtrm(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, hdr_item = proto_tree_add_item(lbtrm_tree, hf_lbtrm_hdr, tvb, O_LBTRM_HDR_T_VER_TYPE, L_LBTRM_HDR_T, ENC_NA); hdr_tree = proto_item_add_subtree(hdr_item, ett_lbtrm_hdr); - ver_type_item = proto_tree_add_none_format(hdr_tree, hf_lbtrm_hdr_ver_type, tvb, O_LBTRM_HDR_T_VER_TYPE, L_LBTRM_HDR_T_VER_TYPE, "Version/Type: Version %u, Type %s", - LBTRM_HDR_VER(ver_type), val_to_str(packet_type, lbtrm_packet_type, "Unknown (0x%02x)")); - ver_type_tree = proto_item_add_subtree(ver_type_item, ett_lbtrm_hdr_ver_type); - proto_tree_add_item(ver_type_tree, hf_lbtrm_hdr_ver_type_ver, tvb, O_LBTRM_HDR_T_VER_TYPE, L_LBTRM_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); - header_type_item = proto_tree_add_item(ver_type_tree, hf_lbtrm_hdr_ver_type_type, tvb, O_LBTRM_HDR_T_VER_TYPE, L_LBTRM_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); + proto_tree_add_item(hdr_tree, hf_lbtrm_hdr_ver, tvb, O_LBTRM_HDR_T_VER_TYPE, L_LBTRM_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); + header_type_item = proto_tree_add_item(hdr_tree, hf_lbtrm_hdr_type, tvb, O_LBTRM_HDR_T_VER_TYPE, L_LBTRM_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); /* Setup the INFO column for this packet. */ switch (packet_type) { @@ -1482,6 +1465,7 @@ static int dissect_lbtrm(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, } } } + proto_item_set_len(lbtrm_item, total_dissected_len); if ((packet_type == LBTRM_PACKET_TYPE_DATA) && (next_hdr == LBTRM_NHDR_DATA)) { total_dissected_len += dissect_lbtrm_data_contents(tvb, offset, pinfo, tree, tag_name, channel); @@ -1601,12 +1585,10 @@ void proto_register_lbtrm(void) { "Tag", "lbtrm.tag", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbtrm_hdr, { "Header", "lbtrm.hdr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbtrm_hdr_ver_type, - { "Version/Type", "lbtrm.hdr.ver_type", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbtrm_hdr_ver_type_ver, - { "Version", "lbtrm.hdr.ver_type.ver", FT_UINT8, BASE_DEC, NULL, LBTRM_HDR_VER_MASK, NULL, HFILL } }, - { &hf_lbtrm_hdr_ver_type_type, - { "Type", "lbtrm.hdr.ver_type.type", FT_UINT8, BASE_HEX, VALS(lbtrm_packet_type), LBTRM_HDR_TYPE_MASK, NULL, HFILL } }, + { &hf_lbtrm_hdr_ver, + { "Version", "lbtrm.hdr.ver", FT_UINT8, BASE_HEX, NULL, LBTRM_HDR_VER_MASK, NULL, HFILL } }, + { &hf_lbtrm_hdr_type, + { "Type", "lbtrm.hdr.type", FT_UINT8, BASE_HEX, VALS(lbtrm_packet_type), LBTRM_HDR_TYPE_MASK, NULL, HFILL } }, { &hf_lbtrm_hdr_next_hdr, { "Next Header", "lbtrm.hdr.next_hdr", FT_UINT8, BASE_HEX, VALS(lbtrm_next_header), 0x0, NULL, HFILL } }, { &hf_lbtrm_hdr_ucast_port, @@ -1620,7 +1602,7 @@ void proto_register_lbtrm(void) { &hf_lbtrm_data_trail_sqn, { "Trailing Edge Sequence Number", "lbtrm.data.trail_sqn", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbtrm_data_flags_fec_type, - { "FEC Flags", "lbtrm.data.flags_fec_type", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "FEC Flags", "lbtrm.data.flags_fec_type", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbtrm_data_flags_fec_type_ucast_naks, { "Unicast NAKs", "lbtrm.data.flags_fec_type.ucast_naks", FT_BOOLEAN, L_LBTRM_DATA_HDR_T_FLAGS_FEC_TYPE * 8, TFS(&tfs_set_notset), LBTRM_DATA_UNICAST_NAKS_FLAG, "Set if NAKs are sent via unicast", HFILL } }, { &hf_lbtrm_data_flags_fec_type_rx, @@ -1638,7 +1620,7 @@ void proto_register_lbtrm(void) { &hf_lbtrm_sm_trail_sqn, { "Trail Sequence Number", "lbtrm.sm.trail_sqn", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbtrm_sm_flags_fec_type, - { "FEC Flags", "lbtrm.sm.flags_fec_type", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "FEC Flags", "lbtrm.sm.flags_fec_type", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbtrm_sm_flags_fec_type_ucast_naks, { "Unicast NAKs", "lbtrm.sm.flags_fec_type.ucast_naks", FT_BOOLEAN, 8, TFS(&tfs_present_not_present), LBTRM_SM_UNICAST_NAKS_FLAG, "Set if NAKs are sent via unicast", HFILL } }, { &hf_lbtrm_sm_flags_tgsz, @@ -1663,11 +1645,9 @@ void proto_register_lbtrm(void) { "Number of Individual NCFs", "lbtrm.ncf.num_ncfs", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbtrm_ncf_reserved, { "Reserved", "lbtrm.ncf.reserved", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL } }, - { &hf_lbtrm_ncf_reason_format, - { "Reason/Format", "lbtrm.ncf.reason_format", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbtrm_ncf_reason_format_reason, + { &hf_lbtrm_ncf_reason, { "Reason", "lbtrm.ncf.reason", FT_UINT8, BASE_HEX, VALS(lbtrm_ncf_reason), LBTRM_NCF_HDR_REASON_MASK, NULL, HFILL } }, - { &hf_lbtrm_ncf_reason_format_format, + { &hf_lbtrm_ncf_format, { "Format", "lbtrm.ncf.format", FT_UINT8, BASE_HEX, VALS(lbtrm_ncf_format), LBTRM_NCF_HDR_FORMAT_MASK, NULL, HFILL } }, { &hf_lbtrm_ncf_list, { "NCF List", "lbtrm.ncf.list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, @@ -1718,7 +1698,6 @@ void proto_register_lbtrm(void) { &ett_lbtrm, &ett_lbtrm_hdr, - &ett_lbtrm_hdr_ver_type, &ett_lbtrm_data, &ett_lbtrm_data_flags_fec_type, &ett_lbtrm_sm, @@ -1726,7 +1705,6 @@ void proto_register_lbtrm(void) &ett_lbtrm_nak, &ett_lbtrm_nak_list, &ett_lbtrm_ncf, - &ett_lbtrm_ncf_reason_format, &ett_lbtrm_ncf_list, &ett_lbtrm_transport, &ett_lbtrm_transport_sqn diff --git a/epan/dissectors/packet-lbtru.c b/epan/dissectors/packet-lbtru.c index 448bd39638..151d81191a 100644 --- a/epan/dissectors/packet-lbtru.c +++ b/epan/dissectors/packet-lbtru.c @@ -776,15 +776,12 @@ static char * lbtru_tag_find(packet_info * pinfo) static gint ett_lbtru = -1; static gint ett_lbtru_channel = -1; static gint ett_lbtru_hdr = -1; -static gint ett_lbtru_hdr_ver_type = -1; static gint ett_lbtru_hdr_flags = -1; static gint ett_lbtru_data = -1; static gint ett_lbtru_sm = -1; static gint ett_lbtru_nak = -1; -static gint ett_lbtru_nak_format = -1; static gint ett_lbtru_nak_list = -1; static gint ett_lbtru_ncf = -1; -static gint ett_lbtru_ncf_reason_format = -1; static gint ett_lbtru_ncf_list = -1; static gint ett_lbtru_ack = -1; static gint ett_lbtru_opt = -1; @@ -799,9 +796,8 @@ static int hf_lbtru_channel_id = -1; static int hf_lbtru_channel_client = -1; static int hf_lbtru_tag = -1; static int hf_lbtru_hdr = -1; -static int hf_lbtru_hdr_ver_type = -1; -static int hf_lbtru_hdr_ver_type_ver = -1; -static int hf_lbtru_hdr_ver_type_type = -1; +static int hf_lbtru_hdr_ver = -1; +static int hf_lbtru_hdr_type = -1; static int hf_lbtru_hdr_next_hdr = -1; static int hf_lbtru_hdr_res = -1; static int hf_lbtru_hdr_flags = -1; @@ -819,14 +815,12 @@ static int hf_lbtru_sm_trail_sqn = -1; static int hf_lbtru_nak = -1; static int hf_lbtru_nak_num = -1; static int hf_lbtru_nak_format = -1; -static int hf_lbtru_nak_format_format = -1; static int hf_lbtru_nak_list = -1; static int hf_lbtru_nak_list_nak = -1; static int hf_lbtru_ncf = -1; static int hf_lbtru_ncf_trail_sqn = -1; static int hf_lbtru_ncf_num = -1; static int hf_lbtru_ncf_reserved = -1; -static int hf_lbtru_ncf_reason_format = -1; static int hf_lbtru_ncf_reason = -1; static int hf_lbtru_ncf_format = -1; static int hf_lbtru_ncf_list = -1; @@ -961,8 +955,6 @@ static int dissect_lbtru_ncf(tvbuff_t * tvb, int offset, packet_info * pinfo, pr guint8 reason_format; proto_tree * ncf_tree = NULL; proto_item * ncf_item = NULL; - proto_tree * rf_tree = NULL; - proto_item * rf_item = NULL; guint16 num_ncfs = 0; ncf_item = proto_tree_add_item(tree, hf_lbtru_ncf, tvb, offset, -1, ENC_NA); @@ -972,10 +964,8 @@ static int dissect_lbtru_ncf(tvbuff_t * tvb, int offset, packet_info * pinfo, pr proto_tree_add_item(ncf_tree, hf_lbtru_ncf_trail_sqn, tvb, offset + O_LBTRU_NCF_HDR_T_TRAIL_SQN, L_LBTRU_NCF_HDR_T_TRAIL_SQN, ENC_BIG_ENDIAN); proto_tree_add_item(ncf_tree, hf_lbtru_ncf_num, tvb, offset + O_LBTRU_NCF_HDR_T_NUM_NCFS, L_LBTRU_NCF_HDR_T_NUM_NCFS, ENC_BIG_ENDIAN); proto_tree_add_item(ncf_tree, hf_lbtru_ncf_reserved, tvb, offset + O_LBTRU_NCF_HDR_T_RESERVED, L_LBTRU_NCF_HDR_T_RESERVED, ENC_BIG_ENDIAN); - rf_item = proto_tree_add_item(ncf_tree, hf_lbtru_ncf_reason_format, tvb, offset + O_LBTRU_NCF_HDR_T_REASON_FORMAT, L_LBTRU_NCF_HDR_T_REASON_FORMAT, ENC_NA); - rf_tree = proto_item_add_subtree(rf_item, ett_lbtru_ncf_reason_format); - proto_tree_add_item(rf_tree, hf_lbtru_ncf_reason, tvb, offset + O_LBTRU_NCF_HDR_T_REASON_FORMAT, L_LBTRU_NCF_HDR_T_REASON_FORMAT, ENC_BIG_ENDIAN); - proto_tree_add_item(rf_tree, hf_lbtru_ncf_format, tvb, offset + O_LBTRU_NCF_HDR_T_REASON_FORMAT, L_LBTRU_NCF_HDR_T_REASON_FORMAT, ENC_BIG_ENDIAN); + proto_tree_add_item(ncf_tree, hf_lbtru_ncf_reason, tvb, offset + O_LBTRU_NCF_HDR_T_REASON_FORMAT, L_LBTRU_NCF_HDR_T_REASON_FORMAT, ENC_BIG_ENDIAN); + proto_tree_add_item(ncf_tree, hf_lbtru_ncf_format, tvb, offset + O_LBTRU_NCF_HDR_T_REASON_FORMAT, L_LBTRU_NCF_HDR_T_REASON_FORMAT, ENC_BIG_ENDIAN); len_dissected = L_LBTRU_NCF_HDR_T; if (!lbtru_expert_separate_ncfs) { @@ -1025,17 +1015,13 @@ static int dissect_lbtru_nak(tvbuff_t * tvb, int offset, packet_info * pinfo, pr int len_dissected; proto_tree * nak_tree = NULL; proto_item * nak_item = NULL; - proto_tree * format_tree = NULL; - proto_item * format_item = NULL; guint16 num_naks = 0; nak_item = proto_tree_add_item(tree, hf_lbtru_nak, tvb, offset, -1, ENC_NA); nak_tree = proto_item_add_subtree(nak_item, ett_lbtru_nak); num_naks = tvb_get_ntohs(tvb, offset + O_LBTRU_NAK_HDR_T_NUM_NAKS); proto_tree_add_item(nak_tree, hf_lbtru_nak_num, tvb, offset + O_LBTRU_NAK_HDR_T_NUM_NAKS, L_LBTRU_NAK_HDR_T_NUM_NAKS, ENC_BIG_ENDIAN); - format_item = proto_tree_add_item(nak_tree, hf_lbtru_nak_format, tvb, offset + O_LBTRU_NAK_HDR_T_FORMAT, L_LBTRU_NAK_HDR_T_FORMAT, ENC_NA); - format_tree = proto_item_add_subtree(format_item, ett_lbtru_nak_format); - proto_tree_add_item(format_tree, hf_lbtru_nak_format_format, tvb, offset + O_LBTRU_NAK_HDR_T_FORMAT, L_LBTRU_NAK_HDR_T_FORMAT, ENC_BIG_ENDIAN); + proto_tree_add_item(nak_tree, hf_lbtru_nak_format, tvb, offset + O_LBTRU_NAK_HDR_T_FORMAT, L_LBTRU_NAK_HDR_T_FORMAT, ENC_BIG_ENDIAN); len_dissected = L_LBTRU_NAK_HDR_T; if (!lbtru_expert_separate_naks) { @@ -1125,15 +1111,21 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, { proto_tree * lbtru_tree = NULL; proto_item * lbtru_item = NULL; - proto_tree * flags_tree = NULL; - proto_item * flags_item; + static const int * flags_data[] = + { + &hf_lbtru_hdr_flags_rx, + NULL + }; + static const int * flags_sm[] = + { + &hf_lbtru_hdr_flags_syn, + NULL + }; int ofs = 0; guint32 session_id = 0; char * tag_name = NULL; int dissected_len; int total_dissected_len = 0; - proto_tree * ver_type_tree = NULL; - proto_item * ver_type_item = NULL; proto_tree * header_tree = NULL; proto_item * header_item = NULL; proto_tree * transport_tree = NULL; @@ -1204,11 +1196,8 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, header_item = proto_tree_add_item(lbtru_tree, hf_lbtru_hdr, tvb, 0, -1, ENC_NA); header_tree = proto_item_add_subtree(header_item, ett_lbtru_hdr); - ver_type_item = proto_tree_add_none_format(header_tree, hf_lbtru_hdr_ver_type, tvb, O_LBTRU_HDR_T_VER_TYPE, L_LBTRU_HDR_T_VER_TYPE, "Version/Type: Version %u, Type %s", - LBTRU_HDR_VER(ver_type), val_to_str(LBTRU_HDR_TYPE(ver_type), lbtru_packet_type, "Unknown (0x%02x)")); - ver_type_tree = proto_item_add_subtree(ver_type_item, ett_lbtru_hdr_ver_type); - proto_tree_add_item(ver_type_tree, hf_lbtru_hdr_ver_type_ver, tvb, O_LBTRU_HDR_T_VER_TYPE, L_LBTRU_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); - type_item = proto_tree_add_item(ver_type_tree, hf_lbtru_hdr_ver_type_type, tvb, O_LBTRU_HDR_T_VER_TYPE, L_LBTRU_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); + proto_tree_add_item(header_tree, hf_lbtru_hdr_ver, tvb, O_LBTRU_HDR_T_VER_TYPE, L_LBTRU_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); + type_item = proto_tree_add_item(header_tree, hf_lbtru_hdr_type, tvb, O_LBTRU_HDR_T_VER_TYPE, L_LBTRU_HDR_T_VER_TYPE, ENC_BIG_ENDIAN); next_hdr_item = proto_tree_add_item(header_tree, hf_lbtru_hdr_next_hdr, tvb, O_LBTRU_HDR_T_NEXT_HDR, L_LBTRU_HDR_T_NEXT_HDR, ENC_BIG_ENDIAN); total_dissected_len = L_LBTRU_HDR_T_VER_TYPE + L_LBTRU_HDR_T_NEXT_HDR; ofs = L_LBTRU_HDR_T_VER_TYPE + L_LBTRU_HDR_T_NEXT_HDR; @@ -1278,9 +1267,7 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, switch (packet_type) { case LBTRU_PACKET_TYPE_DATA: - flags_item = proto_tree_add_none_format(header_tree, hf_lbtru_hdr_flags, tvb, O_LBTRU_HDR_T_FLAGS_OR_RES, L_LBTRU_HDR_T_FLAGS_OR_RES, "Flags: 0x%04x", flags_or_res); - flags_tree = proto_item_add_subtree(flags_item, ett_lbtru_hdr_flags); - proto_tree_add_item(flags_tree, hf_lbtru_hdr_flags_rx, tvb, O_LBTRU_HDR_T_FLAGS_OR_RES, L_LBTRU_HDR_T_FLAGS_OR_RES, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(header_tree, tvb, O_LBTRU_HDR_T_FLAGS_OR_RES, hf_lbtru_hdr_flags, ett_lbtru_hdr_flags, flags_data, ENC_BIG_ENDIAN); total_dissected_len += L_LBTRU_HDR_T_FLAGS_OR_RES; ofs += L_LBTRU_HDR_T_FLAGS_OR_RES; break; @@ -1292,9 +1279,7 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, ofs += L_LBTRU_HDR_T_FLAGS_OR_RES; break; case LBTRU_PACKET_TYPE_SM: - flags_item = proto_tree_add_none_format(header_tree, hf_lbtru_hdr_flags, tvb, O_LBTRU_HDR_T_FLAGS_OR_RES, L_LBTRU_HDR_T_FLAGS_OR_RES, "Flags: 0x%04x", flags_or_res); - flags_tree = proto_item_add_subtree(flags_item, ett_lbtru_hdr_flags); - proto_tree_add_item(flags_tree, hf_lbtru_hdr_flags_syn, tvb, O_LBTRU_HDR_T_FLAGS_OR_RES, L_LBTRU_HDR_T_FLAGS_OR_RES, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(header_tree, tvb, O_LBTRU_HDR_T_FLAGS_OR_RES, hf_lbtru_hdr_flags, ett_lbtru_hdr_flags, flags_sm, ENC_BIG_ENDIAN); total_dissected_len += L_LBTRU_HDR_T_FLAGS_OR_RES; ofs += L_LBTRU_HDR_T_FLAGS_OR_RES; break; @@ -1355,8 +1340,16 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, { proto_item * hdr_length_item; proto_tree * opt_tree = NULL; - proto_item * opt_flags_item = NULL; - proto_tree * opt_flags_tree = NULL; + static const int * sid_flags[] = + { + &hf_lbtru_opt_sid_flags_ignore, + NULL + }; + static const int * cid_flags[] = + { + &hf_lbtru_opt_cid_flags_ignore, + NULL + }; int hdrlen; guint8 cur_next_hdr; @@ -1374,9 +1367,7 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, expert_add_info(pinfo, hdr_length_item, &ei_lbtru_analysis_zero_length_header); return (total_dissected_len); } - opt_flags_item = proto_tree_add_item(opt_tree, hf_lbtru_opt_sid_flags, tvb, ofs + O_LBTRU_BASIC_OPT_T_RES, L_LBTRU_BASIC_OPT_T_RES, ENC_NA); - opt_flags_tree = proto_item_add_subtree(opt_flags_item, ett_lbtru_opt_sid_flags); - proto_tree_add_item(opt_flags_tree, hf_lbtru_opt_sid_flags_ignore, tvb, ofs + O_LBTRU_BASIC_OPT_T_RES, L_LBTRU_BASIC_OPT_T_RES, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, ofs + O_LBTRU_BASIC_OPT_T_RES, hf_lbtru_opt_sid_flags, ett_lbtru_opt_sid_flags, sid_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbtru_opt_sid_session_id, tvb, ofs + L_LBTRU_BASIC_OPT_T + O_LBTRU_SID_OPT_T_SESSION_ID, L_LBTRU_SID_OPT_T_SESSION_ID, ENC_BIG_ENDIAN); session_id = tvb_get_ntohl(tvb, ofs + L_LBTRU_BASIC_OPT_T + O_LBTRU_SID_OPT_T_SESSION_ID); break; @@ -1390,9 +1381,7 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, expert_add_info(pinfo, hdr_length_item, &ei_lbtru_analysis_zero_length_header); return (total_dissected_len); } - opt_flags_item = proto_tree_add_item(opt_tree, hf_lbtru_opt_cid_flags, tvb, ofs + O_LBTRU_BASIC_OPT_T_RES, L_LBTRU_BASIC_OPT_T_RES, ENC_NA); - opt_flags_tree = proto_item_add_subtree(opt_flags_item, ett_lbtru_opt_cid_flags); - proto_tree_add_item(opt_flags_tree, hf_lbtru_opt_cid_flags_ignore, tvb, ofs + O_LBTRU_BASIC_OPT_T_RES, L_LBTRU_BASIC_OPT_T_RES, ENC_BIG_ENDIAN); + proto_tree_add_bitmask(opt_tree, tvb, ofs + O_LBTRU_BASIC_OPT_T_RES, hf_lbtru_opt_cid_flags, ett_lbtru_opt_cid_flags, cid_flags, ENC_BIG_ENDIAN); proto_tree_add_item(opt_tree, hf_lbtru_opt_cid_client_id, tvb, ofs + L_LBTRU_BASIC_OPT_T + O_LBTRU_CID_OPT_T_CLIENT_SID, L_LBTRU_CID_OPT_T_CLIENT_SID, ENC_BIG_ENDIAN); break; default: @@ -1463,7 +1452,7 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, PROTO_ITEM_SET_GENERATED(fld_item); } } - + proto_item_set_len(lbtru_item, total_dissected_len); if ((packet_type == LBTRU_PACKET_TYPE_DATA) && (next_hdr == LBTRU_NHDR_DATA)) { total_dissected_len += dissect_lbtru_data_contents(tvb, ofs, pinfo, tree, tag_name, channel); @@ -1734,18 +1723,16 @@ void proto_register_lbtru(void) { "Tag", "lbtru.tag", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_hdr, { "Header", "lbtru.hdr", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbtru_hdr_ver_type, - { "Version/Type", "lbtru.hdr.ver_type", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbtru_hdr_ver_type_ver, - { "Version", "lbtru.hdr.ver_type.ver", FT_UINT8, BASE_DEC, NULL, LBTRU_HDR_VER_VER_MASK, NULL, HFILL } }, - { &hf_lbtru_hdr_ver_type_type, - { "Type", "lbtru.hdr.ver_type.type", FT_UINT8, BASE_HEX, VALS(lbtru_packet_type), LBTRU_HDR_VER_TYPE_MASK, NULL, HFILL } }, + { &hf_lbtru_hdr_ver, + { "Version", "lbtru.hdr.ver", FT_UINT8, BASE_DEC, NULL, LBTRU_HDR_VER_VER_MASK, NULL, HFILL } }, + { &hf_lbtru_hdr_type, + { "Type", "lbtru.hdr.type", FT_UINT8, BASE_HEX, VALS(lbtru_packet_type), LBTRU_HDR_VER_TYPE_MASK, NULL, HFILL } }, { &hf_lbtru_hdr_next_hdr, { "Next Header", "lbtru.hdr.next_hdr", FT_UINT8, BASE_HEX, VALS(lbtru_next_header), 0x0, NULL, HFILL } }, { &hf_lbtru_hdr_res, { "Reserved", "lbtru.hdr.res", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_hdr_flags, - { "Flags", "lbtru.hdr.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbtru.hdr.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_hdr_flags_rx, { "Retransmission", "lbtru.hdr.flags.rx", FT_BOOLEAN, L_LBTRU_HDR_T_FLAGS_OR_RES * 8, TFS(&tfs_set_notset), LBTRU_RETRANSMISSION_FLAG, NULL, HFILL } }, { &hf_lbtru_hdr_flags_syn, @@ -1773,9 +1760,7 @@ void proto_register_lbtru(void) { &hf_lbtru_nak_num, { "Number of NAKs", "lbtru.nak.num", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_nak_format, - { "Format", "lbtru.nak.format", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_lbtru_nak_format_format, - { "Format", "lbtru.nak.format.format", FT_UINT16, BASE_DEC, VALS(lbtru_nak_format), LBTRU_NAK_HDR_FORMAT_MASK, NULL, HFILL } }, + { "Format", "lbtru.nak.format", FT_UINT16, BASE_DEC, VALS(lbtru_nak_format), LBTRU_NAK_HDR_FORMAT_MASK, NULL, HFILL } }, { &hf_lbtru_nak_list, { "NAK List", "lbtru.nak.list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_nak_list_nak, @@ -1788,12 +1773,10 @@ void proto_register_lbtru(void) { "Number of Individual NCFs", "lbtru.ncf.num", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_ncf_reserved, { "Reserved", "lbtru.ncf.reserved", FT_UINT8, BASE_HEX_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_lbtru_ncf_reason_format, - { "Reason/Format", "lbtru.ncf.reason_format", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_ncf_reason, - { "Reason", "lbtru.ncf.reason_format.reason", FT_UINT8, BASE_HEX, VALS(lbtru_ncf_reason), LBTRU_NCF_HDR_REASON_MASK, NULL, HFILL } }, + { "Reason", "lbtru.ncf.reason", FT_UINT8, BASE_HEX, VALS(lbtru_ncf_reason), LBTRU_NCF_HDR_REASON_MASK, NULL, HFILL } }, { &hf_lbtru_ncf_format, - { "Format", "lbtru.ncf.reason_format.format", FT_UINT8, BASE_HEX, VALS(lbtru_ncf_format), LBTRU_NCF_HDR_FORMAT_MASK, NULL, HFILL } }, + { "Format", "lbtru.ncf.format", FT_UINT8, BASE_HEX, VALS(lbtru_ncf_format), LBTRU_NCF_HDR_FORMAT_MASK, NULL, HFILL } }, { &hf_lbtru_ncf_list, { "NCF List", "lbtru.ncf.list", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_ncf_list_ncf, @@ -1809,7 +1792,7 @@ void proto_register_lbtru(void) { &hf_lbtru_opt_sid_hdr_len, { "Header Length", "lbtru.opt_sid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_opt_sid_flags, - { "Flags", "lbtru.opt_sid.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbtru.opt_sid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_opt_sid_flags_ignore, { "Ignore", "lbtru.opt_sid.flags.ignore", FT_BOOLEAN, L_LBTRU_BASIC_OPT_T_RES * 8, &(tfs_set_notset), LBTRU_OPT_IGNORE, NULL, HFILL } }, { &hf_lbtru_opt_sid_session_id, @@ -1821,7 +1804,7 @@ void proto_register_lbtru(void) { &hf_lbtru_opt_cid_hdr_len, { "Header Length", "lbtru.opt_cid.hdr_len", FT_UINT8, BASE_DEC_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_opt_cid_flags, - { "Flags", "lbtru.opt_cid.flags", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { "Flags", "lbtru.opt_cid.flags", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL } }, { &hf_lbtru_opt_cid_flags_ignore, { "Ignore", "lbtru.opt_cid.flags.ignore", FT_BOOLEAN, L_LBTRU_BASIC_OPT_T_RES * 8, &(tfs_set_notset), LBTRU_OPT_IGNORE, NULL, HFILL } }, { &hf_lbtru_opt_cid_client_id, @@ -1890,15 +1873,12 @@ void proto_register_lbtru(void) &ett_lbtru, &ett_lbtru_channel, &ett_lbtru_hdr, - &ett_lbtru_hdr_ver_type, &ett_lbtru_hdr_flags, &ett_lbtru_data, &ett_lbtru_sm, &ett_lbtru_nak, - &ett_lbtru_nak_format, &ett_lbtru_nak_list, &ett_lbtru_ncf, - &ett_lbtru_ncf_reason_format, &ett_lbtru_ncf_list, &ett_lbtru_ack, &ett_lbtru_opt, |