1. Remove PITEM_FINFO from add_tlv_subtree and add_protocol_subtree (as well as some...
[metze/wireshark/wip.git] / plugins / wimax / msg_rng_req.c
index 6f93bc5fc80d9b3227e5fc83ab09f430382d5459..394691154e88bc55c3d23a32750347ad22ece61f 100644 (file)
@@ -56,10 +56,10 @@ static gint hf_rng_req_ranging_purpose_ho_indication         = -1;
 static gint hf_rng_req_ranging_purpose_location_update_request = -1;
 static gint hf_rng_req_ranging_purpose_reserved              = -1;
 static gint hf_rng_req_ho_id                                 = -1;
-static gint hf_rng_req_power_down_indicator                 = -1;
-static gint hf_rng_req_repetition_coding_level              = -1;
+static gint hf_rng_req_power_down_indicator                  = -1;
+static gint hf_rng_req_repetition_coding_level               = -1;
 static gint hf_rng_req_requested_downlink_repetition_coding_level_reserved     = -1;
-static gint hf_rng_req_cmac_key_count                       = -1;
+static gint hf_rng_req_cmac_key_count                        = -1;
 static gint hf_rng_definition_of_power_saving_class_present  = -1;
 static gint hf_rng_activation_of_power_saving_class          = -1;
 static gint hf_rng_trf_ind_required                          = -1;
@@ -76,6 +76,11 @@ static gint hf_rng_power_saving_included_cid                 = -1;
 static gint hf_rng_power_saving_mgmt_connection_direction    = -1;
 static gint hf_tlv_type                                      = -1;
 static gint hf_rng_invalid_tlv                               = -1;
+static gint hf_rng_power_saving_class_flags                  = -1;
+static gint hf_rng_req_dl_burst_profile                      = -1;
+static gint hf_rng_req_ranging_anomalies                     = -1;
+static gint hf_rng_req_ranging_purpose_indication            = -1;
+static gint hf_rng_req_requested_rep_coding_level            = -1;
 
 /* STRING RESOURCES */
 
@@ -120,8 +125,8 @@ static const true_false_string tfs_rng_timing_adj = {
 /* Decode RNG Power Saving Class parameters (Sub TLV's). */
 void dissect_power_saving_class(proto_tree *rng_req_tree, gint tlv_type, tvbuff_t *tvb, guint compound_tlv_len, packet_info *pinfo, guint offset)
 {
-       proto_item *tlv_item = NULL;
-       proto_tree *tlv_tree = NULL;
+       proto_item *tlv_item;
+       proto_tree *tlv_tree;
        proto_tree *power_saving_class_tree = NULL;
        guint tlv_len;
        guint tlv_offset;
@@ -155,55 +160,45 @@ void dissect_power_saving_class(proto_tree *rng_req_tree, gint tlv_type, tvbuff_
                        case RNG_POWER_SAVING_CLASS_FLAGS:
                                /* display Power Saving Class Flags */
                                /* add subtree */
-                               tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, proto_mac_mgmt_msg_rng_req_decoder, tvb, tlv_offset, tlv_len, "Power Saving Class (%u byte)", tlv_len);
+                               tlv_item = add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_class_flags, tvb, offset, ENC_BIG_ENDIAN);
+                               tlv_tree = proto_item_add_subtree(tlv_item, ett_mac_mgmt_msg_rng_req_decoder);
                                proto_tree_add_item(tlv_tree, hf_rng_definition_of_power_saving_class_present, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                proto_tree_add_item(tlv_tree, hf_rng_activation_of_power_saving_class, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                proto_tree_add_item(tlv_tree, hf_rng_trf_ind_required, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                proto_tree_add_item(tlv_tree, hf_rng_power_saving_class_reserved, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                break;
                        case RNG_POWER_SAVING_CLASS_ID:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_class_id, tvb, tlv_offset, 1, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_class_id, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_class_id, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        case RNG_POWER_SAVING_CLASS_TYPE:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_class_type, tvb, tlv_offset, 1, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_class_type, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_class_type, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        case RNG_START_FRAME_NUMBER:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_first_sleep_window_frame, tvb, tlv_offset, 1, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_first_sleep_window_frame, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_first_sleep_window_frame, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        case RNG_INITIAL_SLEEP_WINDOW:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_initial_sleep_window, tvb, tlv_offset, 1, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_initial_sleep_window, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_initial_sleep_window, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        case RNG_LISTENING_WINDOW:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_listening_window, tvb, tlv_offset, 1, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_listening_window, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_listening_window, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        case RNG_FINAL_SLEEP_WINDOW_BASE:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_final_sleep_window_base, tvb, tlv_offset, 1, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_final_sleep_window_base, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_final_sleep_window_base, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        case RNG_FINAL_SLEEP_WINDOW_EXPONENT:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_final_sleep_window_exp, tvb, tlv_offset, 1, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_final_sleep_window_exp, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_final_sleep_window_exp, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        case RNG_SLPID:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_slpid, tvb, tlv_offset, 1, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_slpid, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_slpid, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        case RNG_CID:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_included_cid, tvb, tlv_offset, 2, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_included_cid, tvb, tlv_offset, 2, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_included_cid, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        case RNG_DIRECTION:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_rng_power_saving_mgmt_connection_direction, tvb, tlv_offset, 1, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_rng_power_saving_mgmt_connection_direction, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_rng_power_saving_mgmt_connection_direction, tvb, offset, ENC_BIG_ENDIAN);
                                break;
                        default:
-                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, power_saving_class_tree, hf_tlv_type, tvb, tlv_offset, tlv_len, FALSE);
-                               proto_tree_add_item(tlv_tree, hf_tlv_type, tvb, tlv_offset, tlv_len, ENC_NA);
+                               add_tlv_subtree(&tlv_info, power_saving_class_tree, hf_tlv_type, tvb, offset, ENC_NA);
                                break;
                }
                /* update the offset */
@@ -218,9 +213,8 @@ static void dissect_mac_mgmt_msg_rng_req_decoder(tvbuff_t *tvb, packet_info *pin
        guint offset = 0;
        guint tlv_offset;
        guint tvb_len;
-       proto_item *rng_req_item;
-       proto_tree *rng_req_tree;
-       proto_tree *tlv_tree = NULL;
+       proto_item *rng_req_item, *tlv_item;
+       proto_tree *rng_req_tree, *tlv_tree;
        tlv_info_t tlv_info;
        gint tlv_type;
        gint tlv_len;
@@ -257,59 +251,53 @@ static void dissect_mac_mgmt_msg_rng_req_decoder(tvbuff_t *tvb, packet_info *pin
                        switch (tlv_type) {
                                case RNG_REQ_DL_BURST_PROFILE:
                                        /* add TLV subtree */
-                                       tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, proto_mac_mgmt_msg_rng_req_decoder, tvb, tlv_offset, tlv_len, "Requested Downlink Burst Profile 0x%02x", tvb_get_guint8(tvb, tlv_offset));
+                                       tlv_item = add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_dl_burst_profile, tvb, offset, ENC_BIG_ENDIAN);
+                                       tlv_tree = proto_item_add_subtree(tlv_item, ett_mac_mgmt_msg_rng_req_decoder);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_dl_burst_profile_diuc, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_dl_burst_profile_lsb_ccc, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        break;
                                case RNG_REQ_SS_MAC_ADDRESS:
-                                       tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, hf_rng_req_ss_mac_address, tvb, tlv_offset, 6, FALSE);
-                                       proto_tree_add_item(tlv_tree, hf_rng_req_ss_mac_address, tvb, tlv_offset, 6, ENC_NA);
+                                       add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_ss_mac_address, tvb, offset, ENC_NA);
                                        break;
                                case RNG_REQ_RANGING_ANOMALIES:
-                                       /* add TLV subtree */
-                                       tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, proto_mac_mgmt_msg_rng_req_decoder, tvb, tlv_offset, tlv_len, "Ranging Anomalies %d", tvb_get_guint8(tvb, tlv_offset));
+                                       tlv_item = add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_ranging_anomalies, tvb, offset, ENC_BIG_ENDIAN);
+                                       tlv_tree = proto_item_add_subtree(tlv_item, ett_mac_mgmt_msg_rng_req_decoder);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_ranging_anomalies_max_power, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_ranging_anomalies_min_power, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_ranging_anomalies_timing_adj, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        break;
                                case RNG_REQ_AAS_BROADCAST:
-                                       tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, hf_rng_req_aas_broadcast, tvb, tlv_offset, 1, FALSE);
-                                       proto_tree_add_item(tlv_tree, hf_rng_req_aas_broadcast, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                                       add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_aas_broadcast, tvb, offset, ENC_BIG_ENDIAN);
                                        break;
                                case RNG_REQ_SERVING_BS_ID:
-                                       tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, hf_rng_req_serving_bs_id, tvb, tlv_offset, 6, FALSE);
-                                       proto_tree_add_item(tlv_tree, hf_rng_req_serving_bs_id, tvb, tlv_offset, 6, ENC_NA);
+                                       add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_serving_bs_id, tvb, offset, ENC_NA);
                                        break;
                                case RNG_REQ_RANGING_PURPOSE_INDICATION:
                                        /* display the Ranging Purpose Flags */
-                                       /* add subtree */
-                                       tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, proto_mac_mgmt_msg_rng_req_decoder, tvb, tlv_offset, tlv_len, "Ranging Purpose Flags (%u byte(s))", tlv_len);
+                                       tlv_item = add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_ranging_purpose_indication, tvb, offset, ENC_BIG_ENDIAN);
+                                       tlv_tree = proto_item_add_subtree(tlv_item, ett_mac_mgmt_msg_rng_req_decoder);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_ranging_purpose_ho_indication, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_ranging_purpose_location_update_request, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_ranging_purpose_reserved, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        break;
                                case RNG_REQ_HO_ID:
-                                       tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, hf_rng_req_ho_id, tvb, tlv_offset, 1, FALSE);
-                                       proto_tree_add_item(tlv_tree, hf_rng_req_ho_id, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                                       add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_ho_id, tvb, offset, ENC_BIG_ENDIAN);
                                        break;
                                case RNG_REQ_POWER_DOWN_INDICATOR:
-                                       tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, hf_rng_req_power_down_indicator, tvb, tlv_offset, 1, FALSE);
-                                       proto_tree_add_item(tlv_tree, hf_rng_req_power_down_indicator, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
+                                       add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_power_down_indicator, tvb, offset, ENC_BIG_ENDIAN);
                                        break;
                                case RNG_REQ_REQUESTED_DNLK_REP_CODING_LEVEL:
-                                       /* add subtree */
-                                       tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, proto_mac_mgmt_msg_rng_req_decoder, tvb, tlv_offset, tlv_len, "Requested downlink repetition coding level (%u byte(s))", tlv_len);
+                                       tlv_tree = add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_requested_rep_coding_level, tvb, offset, ENC_BIG_ENDIAN);
+                                       tlv_tree = proto_item_add_subtree(tlv_item, ett_mac_mgmt_msg_rng_req_decoder);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_repetition_coding_level, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        proto_tree_add_item(tlv_tree, hf_rng_req_requested_downlink_repetition_coding_level_reserved, tvb, tlv_offset, 1, ENC_BIG_ENDIAN);
                                        break;
                                case RNG_REQ_CMAC_KEY_COUNT:
                                        if (include_cor2_changes) {
-                                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, hf_rng_req_cmac_key_count, tvb, tlv_offset, tlv_len, FALSE);
-                                               proto_tree_add_item(tlv_tree, hf_rng_req_cmac_key_count, tvb, tlv_offset, 2, ENC_BIG_ENDIAN);
+                                               add_tlv_subtree(&tlv_info, rng_req_tree, hf_rng_req_cmac_key_count, tvb, offset, ENC_BIG_ENDIAN);
                                        } else {
                                                /* Unknown TLV type */
-                                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, hf_tlv_type, tvb, tlv_offset, tlv_len, FALSE);
-                                               proto_tree_add_item(tlv_tree, hf_tlv_type, tvb, tlv_offset, tlv_len, ENC_NA);
+                                               add_tlv_subtree(&tlv_info, rng_req_tree, hf_tlv_type, tvb, offset, ENC_NA);
                                        }
                                        break;
                                case SHORT_HMAC_TUPLE:
@@ -317,12 +305,11 @@ static void dissect_mac_mgmt_msg_rng_req_decoder(tvbuff_t *tvb, packet_info *pin
                                        if ((!include_cor2_changes && (tlv_type == SHORT_HMAC_TUPLE)) ||
                                                (include_cor2_changes && (tlv_type == SHORT_HMAC_TUPLE_COR2))) {
                                                /* decode and display the Short HMAC Tuple */
-                                               tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, proto_mac_mgmt_msg_rng_req_decoder, tvb, tlv_offset, tlv_len, "Short HMAC Tuple (%u byte(s))", tlv_len);
+                                               tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, proto_mac_mgmt_msg_rng_req_decoder, tvb, offset, tlv_len, "Short HMAC Tuple");
                                                wimax_short_hmac_tuple_decoder(tlv_tree, tvb, tlv_offset, tvb_len - offset);
                                        } else {
                                                /* Unknown TLV Type */
-                                               tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, hf_tlv_type, tvb, tlv_offset, tlv_len, FALSE);
-                                               proto_tree_add_item(tlv_tree, hf_tlv_type, tvb, tlv_offset, tlv_len, ENC_NA);
+                                               add_tlv_subtree(&tlv_info, rng_req_tree, hf_tlv_type, tvb, offset, ENC_NA);
                                        }
                                        break;
                                case MAC_VERSION_ENCODING:
@@ -330,12 +317,11 @@ static void dissect_mac_mgmt_msg_rng_req_decoder(tvbuff_t *tvb, packet_info *pin
                                        continue;
                                        break;
                                case RNG_REQ_POWER_SAVING_CLASS_PARAMETERS:
-                                       tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, proto_mac_mgmt_msg_rng_req_decoder, tvb, tlv_offset, tlv_len, "Power Saving Class Parameters (%u byte(s))", tlv_len);
+                                       tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, proto_mac_mgmt_msg_rng_req_decoder, tvb, offset, tlv_len, "Power Saving Class Parameters");
                                        dissect_power_saving_class(tlv_tree, tlv_type, tvb, tlv_len, pinfo, tlv_offset);
                                        break;
                                default:
-                                       tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_rng_req_decoder, rng_req_tree, hf_tlv_type, tvb, tlv_offset, tlv_len, FALSE);
-                                       proto_tree_add_item(tlv_tree, hf_tlv_type, tvb, tlv_offset, tlv_len, ENC_NA);
+                                       add_tlv_subtree(&tlv_info, rng_req_tree, hf_tlv_type, tvb, offset, ENC_NA);
                                        break;
                        }
                        /* update the offset */
@@ -580,7 +566,42 @@ void proto_register_mac_mgmt_msg_rng_req(void)
                                "SS MAC Address", "wmx.rng_req.ss_mac_address",
                                FT_ETHER, BASE_NONE, NULL, 0x00, NULL, HFILL
                        }
-               }
+               },
+               {
+                       &hf_rng_power_saving_class_flags,
+                       {
+                               "Power Saving Class", "wmx.rng.power_save.flags",
+                               FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL
+                       }
+               },
+               {
+                       &hf_rng_req_dl_burst_profile,
+                       {
+                               "Requested Downlink Burst Profile", "wmx.rng_req.dl_burst_profile",
+                               FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL
+                       }
+               },
+               {
+                       &hf_rng_req_ranging_anomalies,
+                       {
+                               "Ranging Anomalies", "wmx.rng_req.anomalies",
+                               FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL
+                       }
+               },
+               {
+                       &hf_rng_req_ranging_purpose_indication,
+                       {
+                               "Ranging Purpose Flags", "wmx.rng_req.ranging_purpose.indication",
+                               FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL
+                       }
+               },
+               {
+                       &hf_rng_req_requested_rep_coding_level,
+                       {
+                               "Requested downlink repetition coding level", "wmx.rng_req.requested_rep_coding_level",
+                               FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL
+                       }
+               },
        };
 
        /* Setup protocol subtree array */