(/home/sate/Testcases/c/cve/wireshark-1.2.0/plugins/wimax/msg_reg_req.c) |
| |
| 963 | | | void dissect_extended_tlv(proto_tree *reg_req_tree, gint tlv_type, tvbuff_t *tvb, guint tlv_offset, guint tlv_len, packet_info *pinfo, guint offset, gint proto_registry) |
| 964 | | | { |
| 965 | | | proto_item *tlv_item = NULL; |
| 966 | | | proto_tree *tlv_tree = NULL; |
| 967 | | | proto_tree *sub_tree = NULL; |
| 968 | | | guint tvb_len; |
| 969 | | | tlv_info_t tlv_info; |
| 970 | | | guint tlv_end; |
| 971 | | | guint length; |
| 972 | | | guint nblocks; |
| 973 | | | |
| 974 | | | |
| 975 | | | tvb_len = tvb_reported_length(tvb); |
| 976 | | | |
| 977 | | | |
| 978 | | | init_tlv_info(&tlv_info, tvb, offset); |
| 979 | | | |
| 980 | | | #ifdef WIMAX_16E_2005 |
| 981 | | | switch (tlv_type) { |
| 982 | | | case REG_ARQ_PARAMETERS: |
| 983 | | | |
| 984 | | | |
| 985 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "ARQ Service Flow Encodings (%u byte(s))", tlv_len); |
| 986 | | | |
| 987 | | | wimax_service_flow_encodings_decoder(tvb_new_subset(tvb, tlv_offset, tlv_len, tlv_len), pinfo, tlv_tree); |
| 988 | | | break; |
| 989 | | | case REG_SS_MGMT_SUPPORT: |
| 990 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_ss_mgmt_support, tvb, tlv_offset, tlv_len, FALSE); |
| 991 | | | proto_tree_add_item(tlv_tree, hf_reg_ss_mgmt_support, tvb, tlv_offset, 1, FALSE); |
| 992 | | | break; |
| 993 | | | case REG_IP_MGMT_MODE: |
| 994 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_ip_mgmt_mode, tvb, tlv_offset, tlv_len, FALSE); |
| 995 | | | proto_tree_add_item(tlv_tree, hf_reg_ip_mgmt_mode, tvb, tlv_offset, 1, FALSE); |
| 996 | | | break; |
| 997 | | | case REG_IP_VERSION: |
| 998 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_ip_version, tvb, tlv_offset, tlv_len, FALSE); |
| 999 | | | proto_tree_add_item(tlv_tree, hf_reg_ip_version, tvb, tlv_offset, 1, FALSE); |
| 1000 | | | break; |
| 1001 | | | case REG_UL_TRANSPORT_CIDS_SUPPORTED: |
| 1002 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_ul_cids, tvb, tlv_offset, tlv_len, FALSE); |
| 1003 | | | proto_tree_add_item(tlv_tree, hf_reg_ul_cids, tvb, tlv_offset, tlv_len, FALSE); |
| 1004 | | | break; |
| 1005 | | | |
| 1006 | | | case REG_POWER_SAVING_CLASS_CAPABILITY: |
| 1007 | | | |
| 1008 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "Power saving class capability (%d)", tvb_get_ntohs(tvb, tlv_offset)); |
| 1009 | | | proto_tree_add_item(tlv_tree, hf_reg_power_saving_class_type_i, tvb, tlv_offset, 2, FALSE); |
| 1010 | | | proto_tree_add_item(tlv_tree, hf_reg_power_saving_class_type_ii, tvb, tlv_offset, 2, FALSE); |
| 1011 | | | proto_tree_add_item(tlv_tree, hf_reg_power_saving_class_type_iii, tvb, tlv_offset, 2, FALSE); |
| 1012 | | | proto_tree_add_item(tlv_tree, hf_reg_multi_active_power_saving_classes, tvb, tlv_offset, 2, FALSE); |
| 1013 | | | proto_tree_add_item(tlv_tree, hf_reg_total_power_saving_class_instances, tvb, tlv_offset, 2, FALSE); |
| 1014 | | | proto_tree_add_item(tlv_tree, hf_reg_power_saving_class_reserved, tvb, tlv_offset, 2, FALSE); |
| 1015 | | | break; |
| 1016 | | | case REG_IP_PHS_SDU_ENCAP: |
| 1017 | | | |
| 1018 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "Classification/PHS options and SDU encapsulation support 0x%04x", tvb_get_ntohs(tvb, tlv_offset)); |
Ignored Return Value
The return value of add_protocol_subtree() is never checked in the highlighted execution scenario. - If the return value can indicate an error, the error will be ignored if the highlighted code executes.
- The return value of add_protocol_subtree() is checked 98% of the time in this project. CodeSonar is configured to enforce Ignored Return Value checks for any function whose return value is checked at least 96% of the time, unless the function is used fewer than 20 times. (To modify these thresholds, use configuration file parameters RETURN_CHECKER_SAMPLE_SIZE and RETURN_CHECKER_RATIO. To exempt add_protocol_subtree() from the Ignored Return Value check, use configuration file parameter RETURN_CHECKER_IGNORED_FUNCS).
Show: All events | Only primary events |
|
| 1019 | | | |
| 1020 | | | #ifdef WIMAX_16E_2005 |
| 1021 | | | if (tlv_len == 2){ |
Event 2:
Taking false branch. tlv_len == 2 evaluates to false.
hide
|
|
| 1022 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_atm_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1023 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv4_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1024 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv6_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1025 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_802_3_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1026 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_802_1q_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1027 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv4_802_3_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1028 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv6_802_3_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1029 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv4_802_1q_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1030 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv6_802_1q_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1031 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_packet_8023_ethernet_and_rohc_header_compression_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1032 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_packet_8023_ethernet_and_ecrtp_header_compression_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1033 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, tlv_len, FALSE); |
| 1034 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, tlv_len, FALSE); |
| 1035 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_rsvd_2, tvb, tlv_offset, tlv_len, FALSE); |
| 1036 | | | } else if(tlv_len == 4){ |
Event 3:
Skipping " if". tlv_len == 4 evaluates to false.
hide
|
|
| 1037 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_atm_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1038 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv4_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1039 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv6_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1040 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_802_3_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1041 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_802_1q_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1042 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv4_802_3_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1043 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv6_802_3_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1044 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv4_802_1q_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1045 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_ipv6_802_1q_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1046 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_packet_8023_ethernet_and_rohc_header_compression_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1047 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_packet_8023_ethernet_and_ecrtp_header_compression_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1048 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, tlv_len, FALSE); |
| 1049 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, tlv_len, FALSE); |
| 1050 | | | proto_tree_add_item(tlv_tree, hf_reg_encap_rsvd_4, tvb, tlv_offset, tlv_len, FALSE); |
| 1051 | | | } |
| 1052 | | | #endif |
| 1053 | | | break; |
| 1054 | | | case REG_MAX_CLASSIFIERS_SUPPORTED: |
| 1055 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_max_classifiers, tvb, tlv_offset, tlv_len, FALSE); |
| 1056 | | | proto_tree_add_item(tlv_tree, hf_reg_max_classifiers, tvb, tlv_offset, 2, FALSE); |
| 1057 | | | break; |
| 1058 | | | case REG_PHS_SUPPORT: |
| 1059 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_phs, tvb, tlv_offset, tlv_len, FALSE); |
| 1060 | | | proto_tree_add_item(tlv_tree, hf_reg_phs, tvb, tlv_offset, 1, FALSE); |
| 1061 | | | break; |
| 1062 | | | case REG_ARQ_SUPPORT: |
| 1063 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_arq, tvb, tlv_offset, tlv_len, FALSE); |
| 1064 | | | proto_tree_add_item(tlv_tree, hf_reg_arq, tvb, tlv_offset, 1, FALSE); |
| 1065 | | | break; |
| 1066 | | | case REG_DSX_FLOW_CONTROL: |
| 1067 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_dsx_flow_control, tvb, tlv_offset, tlv_len, FALSE); |
| 1068 | | | tlv_item = proto_tree_add_item(tlv_tree, hf_reg_dsx_flow_control, tvb, tlv_offset, 1, FALSE); |
| 1069 | | | if (tvb_get_guint8(tvb, tlv_offset) == 0) { |
| 1070 | | | proto_item_append_text(tlv_item, " (no limit)"); |
| 1071 | | | } |
| 1072 | | | break; |
| 1073 | | | case REG_MAC_CRC_SUPPORT: |
| 1074 | | | if (!include_cor2_changes) { |
| 1075 | | | proto_tree_add_item(reg_req_tree, hf_reg_mac_crc_support, tvb, tlv_offset, 1, FALSE); |
| 1076 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_mac_crc_support, tvb, tlv_offset, tlv_len, FALSE); |
| 1077 | | | proto_tree_add_item(tlv_tree, hf_reg_mac_crc_support, tvb, tlv_offset, 1, FALSE); |
| 1078 | | | } else { |
| 1079 | | | |
| 1080 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, (tvb_len - tlv_offset), FALSE); |
| 1081 | | | proto_tree_add_item(tlv_tree, hf_tlv_type, tvb, tlv_offset, (tvb_len - tlv_offset), FALSE); |
| 1082 | | | } |
| 1083 | | | break; |
| 1084 | | | case REG_MCA_FLOW_CONTROL: |
| 1085 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_mca_flow_control, tvb, tlv_offset, tlv_len, FALSE); |
| 1086 | | | tlv_item = proto_tree_add_item(tlv_tree, hf_reg_mca_flow_control, tvb, tlv_offset, 1, FALSE); |
| 1087 | | | if (tvb_get_guint8(tvb, tlv_offset) == 0) { |
| 1088 | | | proto_item_append_text(tlv_item, " (no limit)"); |
| 1089 | | | } |
| 1090 | | | break; |
| 1091 | | | case REG_MCAST_POLLING_CIDS: |
| 1092 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_mcast_polling_cids, tvb, tlv_offset, tlv_len, FALSE); |
| 1093 | | | proto_tree_add_item(tlv_tree, hf_reg_mcast_polling_cids, tvb, tlv_offset, 1, FALSE); |
| 1094 | | | break; |
| 1095 | | | case REG_NUM_DL_TRANS_CID: |
| 1096 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_num_dl_trans_cid, tvb, tlv_offset, tlv_len, FALSE); |
| 1097 | | | proto_tree_add_item(tlv_tree, hf_reg_num_dl_trans_cid, tvb, tlv_offset, 2, FALSE); |
| 1098 | | | break; |
| 1099 | | | case REG_MAC_ADDRESS: |
| 1100 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_mac_address, tvb, tlv_offset, tlv_len, FALSE); |
| 1101 | | | proto_tree_add_item(tlv_tree, hf_reg_mac_address, tvb, tlv_offset, 6, FALSE); |
| 1102 | | | break; |
| 1103 | | | case REG_TLV_T_20_MAX_MAC_DATA_PER_FRAME_SUPPORT: |
| 1104 | | | |
| 1105 | | | |
| 1106 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "Maximum MAC level data per frame (%u byte(s))", tlv_len); |
| 1107 | | | |
| 1108 | | | |
| 1109 | | | tlv_end = tlv_offset + tlv_len; |
| 1110 | | | |
| 1111 | | | while ( tlv_offset < tlv_end ) |
| 1112 | | | { |
| 1113 | | | init_tlv_info(&tlv_info, tvb, tlv_offset); |
| 1114 | | | |
| 1115 | | | tlv_type = get_tlv_type(&tlv_info); |
| 1116 | | | |
| 1117 | | | length = get_tlv_length(&tlv_info); |
| 1118 | | | if(tlv_type == -1 || length > MAX_TLV_LEN || length < 1) |
| 1119 | | | { |
| 1120 | | | if (check_col(pinfo->cinfo, COL_INFO)) |
| 1121 | | | { |
| 1122 | | | col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "REG-REQ TLV error"); |
| 1123 | | | } |
| 1124 | | | proto_tree_add_item(reg_req_tree, hf_reg_invalid_tlv, tvb, offset, (tvb_len - offset), FALSE); |
| 1125 | | | break; |
| 1126 | | | } |
| 1127 | | | |
| 1128 | | | tlv_offset += get_tlv_value_offset(&tlv_info); |
| 1129 | | | nblocks = tvb_get_ntohs(tvb, tlv_offset); |
| 1130 | | | switch (tlv_type) |
| 1131 | | | { |
| 1132 | | | case REG_TLV_T_20_1_MAX_MAC_LEVEL_DATA_PER_DL_FRAME: |
| 1133 | | | sub_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, tlv_tree, hf_reg_tlv_t_20_1_max_mac_level_data_per_dl_frame, tvb, tlv_offset, length, FALSE); |
| 1134 | | | tlv_item = proto_tree_add_item(sub_tree, hf_reg_tlv_t_20_1_max_mac_level_data_per_dl_frame, tvb, tlv_offset, 2, FALSE); |
| 1135 | | | if ( nblocks == 0 ) |
| 1136 | | | { |
| 1137 | | | proto_item_append_text(tlv_item, " (Unlimited bytes)"); |
| 1138 | | | } else { |
| 1139 | | | proto_item_append_text(tlv_item, " (%d bytes)", 256 * nblocks); |
| 1140 | | | } |
| 1141 | | | break; |
| 1142 | | | case REG_TLV_T_20_2_MAX_MAC_LEVEL_DATA_PER_UL_FRAME: |
| 1143 | | | sub_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, tlv_tree, hf_reg_tlv_t_20_2_max_mac_level_data_per_ul_frame, tvb, tlv_offset, length, FALSE); |
| 1144 | | | tlv_item = proto_tree_add_item(sub_tree, hf_reg_tlv_t_20_2_max_mac_level_data_per_ul_frame, tvb, tlv_offset, 2, FALSE); |
| 1145 | | | if ( nblocks == 0 ) |
| 1146 | | | { |
| 1147 | | | proto_item_append_text(tlv_item, " (Unlimited bytes)"); |
| 1148 | | | } else { |
| 1149 | | | proto_item_append_text(tlv_item, " (%d bytes)", 256 * nblocks); |
| 1150 | | | } |
| 1151 | | | break; |
| 1152 | | | default: |
| 1153 | | | sub_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, tlv_tree, hf_reg_invalid_tlv, tvb, tlv_offset, (tlv_end - tlv_offset), FALSE); |
| 1154 | | | proto_tree_add_item(sub_tree, hf_reg_invalid_tlv, tvb, tlv_offset, (tlv_end - tlv_offset), FALSE); |
| 1155 | | | break; |
| 1156 | | | } |
| 1157 | | | tlv_offset += length; |
| 1158 | | | } |
| 1159 | | | break; |
| 1160 | | | |
| 1161 | | | case REG_TLV_T_21_PACKING_SUPPORT: |
| 1162 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_tlv_t_21_packing_support, tvb, tlv_offset, tlv_len, FALSE); |
| 1163 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_21_packing_support, tvb, tlv_offset, 1, FALSE); |
| 1164 | | | break; |
| 1165 | | | case REG_TLV_T_22_MAC_EXTENDED_RTPS_SUPPORT: |
| 1166 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_tlv_t_22_mac_extended_rtps_support, tvb, tlv_offset, tlv_len, FALSE); |
| 1167 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_22_mac_extended_rtps_support, tvb, tlv_offset, 1, FALSE); |
| 1168 | | | break; |
| 1169 | | | case REG_TLV_T_23_MAX_NUM_BURSTS_TRANSMITTED_CONCURRENTLY_TO_THE_MS:
x /home/sate/Testcases/c/cve/wireshark-1.2.0/plugins/wimax/wimax_mac.h |
| |
466 | #define REG_TLV_T_23_MAX_NUM_BURSTS_TRANSMITTED_CONCURRENTLY_TO_THE_MS 23 |
| |
|
| 1170 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_tlv_t_23_max_num_bursts_concurrently_to_the_ms, tvb, tlv_offset, tlv_len, FALSE); |
| 1171 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_23_max_num_bursts_concurrently_to_the_ms, tvb, tlv_offset, 1, FALSE); |
| 1172 | | | break; |
| 1173 | | | case REG_TLV_T_26_METHOD_FOR_ALLOCATING_IP_ADDR_SECONDARY_MGMNT_CONNECTION:
x /home/sate/Testcases/c/cve/wireshark-1.2.0/plugins/wimax/wimax_mac.h |
| |
472 | #define REG_TLV_T_26_METHOD_FOR_ALLOCATING_IP_ADDR_SECONDARY_MGMNT_CONNECTION 26 |
| |
|
| 1174 | | | |
| 1175 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "Method for allocating IP address for the secondary management connection (%d)", tvb_get_guint8(tvb, tlv_offset)); |
| 1176 | | | proto_tree_add_item(tlv_tree, hf_reg_method_for_allocating_ip_addr_sec_mgmt_conn_dhcp, tvb, tlv_offset, 1, FALSE); |
| 1177 | | | proto_tree_add_item(tlv_tree, hf_reg_method_for_allocating_ip_addr_sec_mgmt_conn_mobile_ipv4, tvb, tlv_offset, 1, FALSE); |
| 1178 | | | proto_tree_add_item(tlv_tree, hf_reg_method_for_allocating_ip_addr_sec_mgmt_conn_dhcpv6, tvb, tlv_offset, 1, FALSE); |
| 1179 | | | proto_tree_add_item(tlv_tree, hf_reg_method_for_allocating_ip_addr_sec_mgmt_conn_ipv6, tvb, tlv_offset, 1, FALSE); |
| 1180 | | | proto_tree_add_item(tlv_tree, hf_reg_method_for_allocating_ip_addr_sec_mgmt_conn_rsvd, tvb, tlv_offset, 1, FALSE); |
| 1181 | | | break; |
| 1182 | | | case REG_TLV_T_27_HANDOVER_SUPPORTED: |
| 1183 | | | |
| 1184 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "Handover Support (%d)", tvb_get_guint8(tvb, tlv_offset)); |
| 1185 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_27_handover_fbss_mdho_ho_disable, tvb, tlv_offset, 1, FALSE); |
| 1186 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_27_handover_fbss_mdho_dl_rf_monitoring_maps, tvb, tlv_offset, 1, FALSE); |
| 1187 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_27_handover_mdho_dl_monitoring_single_map, tvb, tlv_offset, 1, FALSE); |
| 1188 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_27_handover_mdho_dl_monitoring_maps, tvb, tlv_offset, 1, FALSE); |
| 1189 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_27_handover_mdho_ul_multiple, tvb, tlv_offset, 1, FALSE); |
| 1190 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_27_handover_reserved, tvb, tlv_offset, 1, FALSE); |
| 1191 | | | break; |
| 1192 | | | case REG_TLV_T_29_HO_PROCESS_OPTIMIZATION_MS_TIMER: |
| 1193 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_tlv_t_29_ho_process_opt_ms_timer, tvb, tlv_offset, tlv_len, FALSE); |
| 1194 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_29_ho_process_opt_ms_timer, tvb, tlv_offset, 1, FALSE); |
| 1195 | | | break; |
| 1196 | | | case REG_TLV_T_31_MOBILITY_FEATURES_SUPPORTED: |
| 1197 | | | |
| 1198 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "Mobility Features Supported (%d)", tvb_get_guint8(tvb, tlv_offset)); |
| 1199 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_31_mobility_handover, tvb, tlv_offset, 1, FALSE); |
| 1200 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_31_mobility_sleep_mode, tvb, tlv_offset, 1, FALSE); |
| 1201 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_31_mobility_idle_mode, tvb, tlv_offset, 1, FALSE); |
| 1202 | | | break; |
| 1203 | | | case REG_TLV_T_40_ARQ_ACK_TYPE: |
| 1204 | | | |
| 1205 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "ARQ ACK Type 0x%02x", tvb_get_guint8(tvb, tlv_offset)); |
| 1206 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_40_arq_ack_type_selective_ack_entry, tvb, tlv_offset, 1, FALSE); |
| 1207 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_40_arq_ack_type_cumulative_ack_entry, tvb, tlv_offset, 1, FALSE); |
| 1208 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_40_arq_ack_type_cumulative_with_selective_ack_entry, tvb, tlv_offset, 1, FALSE); |
| 1209 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_40_arq_ack_type_cumulative_ack_with_block_sequence_ack, tvb, tlv_offset, 1, FALSE); |
| 1210 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_40_arq_ack_type_reserved, tvb, tlv_offset, 1, FALSE); |
| 1211 | | | break; |
| 1212 | | | case REG_TLV_T_41_MS_HO_CONNECTIONS_PARAM_PROCESSING_TIME: |
| 1213 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_tlv_t_41_ho_connections_param_processing_time, tvb, tlv_offset, tlv_len, FALSE); |
| 1214 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_41_ho_connections_param_processing_time, tvb, tlv_offset, 1, FALSE); |
| 1215 | | | break; |
| 1216 | | | case REG_TLV_T_42_MS_HO_TEK_PROCESSING_TIME: |
| 1217 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, hf_reg_tlv_t_42_ho_tek_processing_time, tvb, tlv_offset, tlv_len, FALSE); |
| 1218 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_42_ho_tek_processing_time, tvb, tlv_offset, 1, FALSE); |
| 1219 | | | break; |
| 1220 | | | case REG_TLV_T_43_MAC_HEADER_AND_EXTENDED_SUBHEADER_SUPPORT: |
| 1221 | | | |
| 1222 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "MAC and extended support %d", tvb_get_ntoh24(tvb, tlv_offset)); |
| 1223 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_43_bandwidth_request_ul_tx_power_report_header_support, tvb, tlv_offset, 3, FALSE); |
| 1224 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_43_bandwidth_request_cinr_report_header_support, tvb, tlv_offset, 3, FALSE); |
| 1225 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1226 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1227 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_43_bandwidth_request_ul_sleep_control_header_support, tvb, tlv_offset, 3, FALSE); |
| 1228 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1229 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1230 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_43_sdu_sn_extended_subheader_support_and_parameter, tvb, tlv_offset, 3, FALSE); |
| 1231 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_43_sdu_sn_parameter, tvb, tlv_offset, 3, FALSE); |
| 1232 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1233 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1234 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1235 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1236 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1237 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1238 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1239 | | | proto_tree_add_item(tlv_tree, , tvb, tlv_offset, 3, FALSE); |
| 1240 | | | proto_tree_add_item(tlv_tree, hf_reg_tlv_t_43_reserved, tvb, tlv_offset, 3, FALSE); |
| 1241 | | | break; |
| 1242 | | | case REG_REQ_BS_SWITCHING_TIMER: |
| 1243 | | | |
| 1244 | | | tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, tlv_len, "BS switching timer (%d)", tvb_get_guint8(tvb, tlv_offset)); |
| 1245 | | | proto_tree_add_item(tlv_tree, hf_reg_req_min_time_for_intra_fa, tvb, tlv_offset, 1, FALSE); |
| 1246 | | | proto_tree_add_item(tlv_tree, hf_reg_req_min_time_for_inter_fa, tvb, tlv_offset, 1, FALSE); |
| 1247 | | | break; |
| 1248 | | | case VENDOR_SPECIFIC_INFO: |
| 1249 | | | case VENDOR_ID_ENCODING: |
| 1250 | | | case CURRENT_TX_POWER: |
| 1251 | | | case MAC_VERSION_ENCODING: |
| 1252 | | | case CMAC_TUPLE: |
| 1253 | | | wimax_common_tlv_encoding_decoder(tvb_new_subset(tvb, offset, (tvb_len - offset), (tvb_len - offset)), pinfo, reg_req_tree); |
| 1254 | | | break; |
| 1255 | | | default: |
| 1256 | | | tlv_tree = add_tlv_subtree(&tlv_info, ett_mac_mgmt_msg_reg_req_decoder, reg_req_tree, proto_registry, tvb, tlv_offset, (tvb_len - tlv_offset), FALSE); |
| 1257 | | | proto_tree_add_item(tlv_tree, hf_tlv_type, tvb, tlv_offset, (tvb_len - tlv_offset), FALSE); |
| 1258 | | | break; |
| 1259 | | | } |
| 1260 | | | #endif |
| 1261 | | | } |
| |