NAS 5GS: D.6.3 UE policy section management result

This commit is contained in:
Joakim Karlsson 2021-08-04 12:51:15 +02:00 committed by Wireshark GitLab Utility
parent 008536ae74
commit 9f54ae73f1
1 changed files with 52 additions and 2 deletions

View File

@ -609,8 +609,10 @@ static int hf_nas_5gs_vlan_tag_pcp = -1;
static int hf_nas_5gs_vlan_tag_dei = -1;
static int hf_nas_5gs_ethertype = -1;
static int hf_nas_5gs_updp_ue_pol_sect_sublst_len = -1;
static int hf_nas_5gs_updp_ue_pol_sect_subresult_len = -1;
static int hf_nas_5gs_updp_instr_len = -1;
static int hf_nas_5gs_updp_upsc = -1;
static int hf_nas_5gs_updp_failed_instruction_order = -1;
static int hf_nas_5gs_updp_policy_len = -1;
static int hf_nas_5gs_updp_ue_policy_part_type = -1;
static int hf_nas_5gs_updp_ue_policy_part_cont = -1;
@ -7770,8 +7772,8 @@ de_nas_5gs_updp_ue_policy_section_mgm_lst(tvbuff_t* tvb, proto_tree* tree, packe
guint32 sub_list_len, instr_len, policy_len;
/* UE policy section management list contents Octet 4 - Octet z*/
int i = 0;
while ((curr_offset - offset) < len) {
int i = 0;
/* UE policy section management sublist (PLMN X) */
i++;
sub_tree = proto_tree_add_subtree_format(tree, tvb, curr_offset, -1, ett_nas_5gs_updp_ue_policy_section_mgm_lst, &item,
@ -7840,7 +7842,45 @@ de_nas_5gs_updp_ue_policy_section_mgm_res(tvbuff_t* tvb, proto_tree* tree, packe
guint32 offset, guint len,
gchar* add_string _U_, int string_len _U_)
{
proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
proto_tree *sub_tree, *sub_tree2;
proto_item* item;
guint32 curr_offset = offset;
guint32 number_of_result;
/* UE policy section management result contents Octet 4 - Octet z*/
int i = 0;
while ((curr_offset - offset) < len) {
/* UE policy section management subresult (PLMN X) */
i++;
sub_tree = proto_tree_add_subtree_format(tree, tvb, curr_offset, -1, ett_nas_5gs_updp_ue_policy_section_mgm_lst, &item,
"UE policy section management subresult (PLMN %u)", i);
/* Number of result */
proto_tree_add_item_ret_uint(sub_tree, hf_nas_5gs_updp_ue_pol_sect_subresult_len, tvb, curr_offset, 1, ENC_BIG_ENDIAN, &number_of_result);
curr_offset += 1;
/* MCC digit 2 MCC digit 1
* MNC digit 3 MCC digit 3
* MNC digit 2 MNC digit 1
*/
curr_offset = dissect_e212_mcc_mnc(tvb, pinfo, sub_tree, curr_offset, E212_NONE, TRUE);
/* UE policy section management subresult contents*/
/* Result X */
int j = 1;
while (number_of_result > 0){
sub_tree2 = proto_tree_add_subtree_format(sub_tree, tvb, curr_offset, -1, ett_nas_5gs_updp_ue_policy_section_mgm_sublst, &item,
"Result %u", j);
/* UPSC */
proto_tree_add_item(sub_tree2, hf_nas_5gs_updp_upsc, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset += 2;
/* Failed instruction order */
proto_tree_add_item(sub_tree2, hf_nas_5gs_updp_failed_instruction_order, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset += 2;
/* Cause */
proto_tree_add_item(sub_tree2, hf_nas_5gs_upds_cause, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset += 1;
j++;
number_of_result--;
}
}
return len;
}
@ -11288,6 +11328,11 @@ proto_register_nas_5gs(void)
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_nas_5gs_updp_ue_pol_sect_subresult_len,
{ "Number of results", "nas_5gs.updp.ue_pol_sect_sublst_len",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_nas_5gs_updp_instr_len,
{ "Length", "nas_5gs.updp.instr_len",
FT_UINT16, BASE_DEC, NULL, 0x0,
@ -11298,6 +11343,11 @@ proto_register_nas_5gs(void)
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_nas_5gs_updp_failed_instruction_order,
{ "Failed instruction order", "nas_5gs.updp.failed_instruction_order",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_nas_5gs_updp_policy_len,
{ "Length", "nas_5gs.updp.policy_len",
FT_UINT16, BASE_DEC, NULL, 0x0,