[NAS-5GS] Dissect more IEs

Change-Id: I3670acb0c84a03a82036829ded018735722b6519
Reviewed-on: https://code.wireshark.org/review/26339
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
AndersBroman 2018-03-06 09:25:35 +01:00 committed by Anders Broman
parent 3132a50448
commit 7dd7a05d48
1 changed files with 392 additions and 7 deletions

View File

@ -17,6 +17,8 @@
#include <epan/packet.h>
#include <epan/expert.h>
#include <wsutil/pow2.h>
#include "packet-gsm_a_common.h"
void proto_register_nas_5gs(void);
@ -117,6 +119,42 @@ static int hf_nas_5gs_mm_eia6 = -1;
static int hf_nas_5gs_mm_eia7 = -1;
static int hf_nas_5gs_mm_s1_mode_reg_b0 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_7_b7 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_6_b6 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_5_b5 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_4_b4 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_3_b3 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_2_b2 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_1_b1 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_0_b0 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_15_b7 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_14_b6 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_13_b5 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_12_b4 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_11_b3 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_10_b2 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_9_b1 = -1;
static int hf_nas_5gs_pdu_ses_sts_psi_8_b0 = -1;
static int hf_nas_5gs_ul_data_sts_psi_7_b7 = -1;
static int hf_nas_5gs_ul_data_sts_psi_6_b6 = -1;
static int hf_nas_5gs_ul_data_sts_psi_5_b5 = -1;
static int hf_nas_5gs_ul_data_sts_psi_4_b4 = -1;
static int hf_nas_5gs_ul_data_sts_psi_3_b3 = -1;
static int hf_nas_5gs_ul_data_sts_psi_2_b2 = -1;
static int hf_nas_5gs_ul_data_sts_psi_1_b1 = -1;
static int hf_nas_5gs_ul_data_sts_psi_0_b0 = -1;
static int hf_nas_5gs_ul_data_sts_psi_15_b7 = -1;
static int hf_nas_5gs_ul_data_sts_psi_14_b6 = -1;
static int hf_nas_5gs_ul_data_sts_psi_13_b5 = -1;
static int hf_nas_5gs_ul_data_sts_psi_12_b4 = -1;
static int hf_nas_5gs_ul_data_sts_psi_11_b3 = -1;
static int hf_nas_5gs_ul_data_sts_psi_10_b2 = -1;
static int hf_nas_5gs_ul_data_sts_psi_9_b1 = -1;
static int hf_nas_5gs_ul_data_sts_psi_8_b0 = -1;
static int hf_nas_5gs_sm_pdu_session_type = -1;
static int hf_nas_5gs_sm_sc_mode = -1;
static int hf_nas_5gs_sm_rqos_b0 = -1;
@ -134,6 +172,11 @@ static int hf_nas_5gs_sm_pkt_flt_dir = -1;
static int hf_nas_5gs_sm_pf_len = -1;
static int hf_nas_5gs_sm_pf_type = -1;
static int nas_5gs_sm_unit_for_session_ambr_dl = -1;
static int hf_nas_5gs_sm_session_ambr_dl = -1;
static int nas_5gs_sm_unit_for_session_ambr_ul = -1;
static int hf_nas_5gs_sm_session_ambr_ul = -1;
static int ett_nas_5gs = -1;
static int ett_nas_5gs_mm_nssai = -1;
static int ett_nas_5gs_mm_pdu_ses_id = -1;
@ -209,25 +252,105 @@ de_nas_5gs_cmn_add_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
/*
* 9.8.2.2 PDU session status
*/
static true_false_string tfs_nas_5gs_pdu_ses_sts_psi = {
"Not PDU SESSION INACTIVE",
"PDU SESSION INACTIVE"
};
static guint16
de_nas_5gs_pdu_ses_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
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);
int curr_offset;
static const int * psi_0_7_flags[] = {
&hf_nas_5gs_pdu_ses_sts_psi_7_b7,
&hf_nas_5gs_pdu_ses_sts_psi_6_b6,
&hf_nas_5gs_pdu_ses_sts_psi_5_b5,
&hf_nas_5gs_pdu_ses_sts_psi_4_b4,
&hf_nas_5gs_pdu_ses_sts_psi_3_b3,
&hf_nas_5gs_pdu_ses_sts_psi_2_b2,
&hf_nas_5gs_pdu_ses_sts_psi_1_b1,
&hf_nas_5gs_pdu_ses_sts_psi_0_b0,
NULL
};
static const int * psi_8_15_flags[] = {
&hf_nas_5gs_pdu_ses_sts_psi_15_b7,
&hf_nas_5gs_pdu_ses_sts_psi_14_b6,
&hf_nas_5gs_pdu_ses_sts_psi_13_b5,
&hf_nas_5gs_pdu_ses_sts_psi_12_b4,
&hf_nas_5gs_pdu_ses_sts_psi_11_b3,
&hf_nas_5gs_pdu_ses_sts_psi_10_b2,
&hf_nas_5gs_pdu_ses_sts_psi_9_b1,
&hf_nas_5gs_pdu_ses_sts_psi_8_b0,
NULL
};
curr_offset = offset;
proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_0_7_flags, ENC_BIG_ENDIAN);
curr_offset++;
proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_8_15_flags, ENC_BIG_ENDIAN);
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_nas_5gs_extraneous_data);
return (curr_offset - offset);
return len;
}
/*
* 9.8.2.3 Uplink data status
*/
static true_false_string tfs_nas_5gs_ul_data_sts_psi = {
"uplink data are pending ",
"no uplink data are pending"
};
static guint16
de_nas_5gs_ul_data_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
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);
int curr_offset;
static const int * psi_0_7_flags[] = {
&hf_nas_5gs_ul_data_sts_psi_7_b7,
&hf_nas_5gs_ul_data_sts_psi_6_b6,
&hf_nas_5gs_ul_data_sts_psi_5_b5,
&hf_nas_5gs_ul_data_sts_psi_4_b4,
&hf_nas_5gs_ul_data_sts_psi_3_b3,
&hf_nas_5gs_ul_data_sts_psi_2_b2,
&hf_nas_5gs_ul_data_sts_psi_1_b1,
&hf_nas_5gs_ul_data_sts_psi_0_b0,
NULL
};
static const int * psi_8_15_flags[] = {
&hf_nas_5gs_ul_data_sts_psi_15_b7,
&hf_nas_5gs_ul_data_sts_psi_14_b6,
&hf_nas_5gs_ul_data_sts_psi_13_b5,
&hf_nas_5gs_ul_data_sts_psi_12_b4,
&hf_nas_5gs_ul_data_sts_psi_11_b3,
&hf_nas_5gs_ul_data_sts_psi_10_b2,
&hf_nas_5gs_ul_data_sts_psi_9_b1,
&hf_nas_5gs_ul_data_sts_psi_8_b0,
NULL
};
curr_offset = offset;
proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_0_7_flags, ENC_BIG_ENDIAN);
curr_offset++;
proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_8_15_flags, ENC_BIG_ENDIAN);
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_nas_5gs_extraneous_data);
return (curr_offset - offset);
return len;
}
@ -327,7 +450,7 @@ de_nas_5gs_mm_5gs_mobile_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
{
/*guint32 type_id;*/
/*proto_tree_add_item_ret_uint(tree, hf_nas_5gs_mm_5gmm_cause, tvb, offset, 1, ENC_BIG_ENDIAN, &type_id);*/
/*proto_tree_add_item_ret_uint(tree, hf_nas_5gs_mm_type_id, tvb, offset, 1, ENC_BIG_ENDIAN, &type_id);*/
proto_tree_add_item(tree, hf_nas_5gs_mm_type_id, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_nas_5gs_mm_odd_even, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
@ -345,6 +468,7 @@ de_nas_5gs_mm_5gs_nw_feat_sup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
/* The definition of 5GS network feature support is FFS, but should include a dual-registration supported indication.*/
proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
return len;
@ -1507,12 +1631,91 @@ de_nas_5gs_sm_qos_rules(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
* 9.8.4.7 Session-AMBR
*/
static const value_string nas_5gs_sm_unit_for_session_ambr_values[] = {
{ 0x00, "value is not used" },
{ 0x01, "value is incremented in multiples of 1 Kbps" },
{ 0x02, "value is incremented in multiples of 4 Kbps" },
{ 0x03, "value is incremented in multiples of 16 Kbps" },
{ 0x04, "value is incremented in multiples of 64 Kbps" },
{ 0x05, "value is incremented in multiples of 256 kbps" },
{ 0x06, "value is incremented in multiples of 1 Mbps" },
{ 0x07, "value is incremented in multiples of 4 Mbps" },
{ 0x08, "value is incremented in multiples of 16 Mbps" },
{ 0x09, "value is incremented in multiples of 64 Mbps" },
{ 0x0a, "value is incremented in multiples of 256 Mbps" },
{ 0x0b, "value is incremented in multiples of 1 Gbps" },
{ 0x0c, "value is incremented in multiples of 4 Gbps" },
{ 0x0d, "value is incremented in multiples of 16 Gbps" },
{ 0x0e, "value is incremented in multiples of 64 Gbps" },
{ 0x0f, "value is incremented in multiples of 256 Gbps" },
{ 0x10, "value is incremented in multiples of 1 Tbps" },
{ 0x11, "value is incremented in multiples of 4 Tbps" },
{ 0x12, "value is incremented in multiples of 16 Tbps" },
{ 0x13, "value is incremented in multiples of 64 Tbps" },
{ 0x14, "value is incremented in multiples of 256 Tbps" },
{ 0x15, "value is incremented in multiples of 1 Pbps" },
{ 0x16, "value is incremented in multiples of 4 Pbps" },
{ 0x17, "value is incremented in multiples of 16 Pbps" },
{ 0x18, "value is incremented in multiples of 64 Pbps" },
{ 0x19, "value is incremented in multiples of 256 Pbps" },
{ 0, NULL }
};
static guint32
get_ext_ambr_unit(guint32 unit, const char **unit_str)
{
guint32 mult;
if (unit <= 0x05) {
mult = pow4(guint32, unit);
*unit_str = "Kbps";
}
else if (unit <= 0x0a) {
mult = pow4(guint32, unit - 0x05);
*unit_str = "Mbps";
}
else if (unit <= 0x0e) {
mult = pow4(guint32, unit - 0x07);
*unit_str = "Gbps";
}
else if (unit <= 0x14) {
mult = pow4(guint32, unit - 0x0c);
*unit_str = "Tbps";
}
else if (unit <= 0x19) {
mult = pow4(guint32, unit - 0x11);
*unit_str = "Pbps";
}
else {
mult = 256;
*unit_str = "Pbps";
}
return mult;
}
static guint16
de_nas_5gs_sm_session_ambr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
de_nas_5gs_sm_session_ambr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
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);
guint32 unit, mult, ambr_val;
const char *unit_str;
/* Unit for Session-AMBR for downlink */
proto_tree_add_item_ret_uint(tree, nas_5gs_sm_unit_for_session_ambr_dl, tvb, offset, 1, ENC_BIG_ENDIAN, &unit);
/* Session-AMBR for downlink (octets 4 and 5) */
mult = get_ext_ambr_unit(unit, &unit_str);
ambr_val = tvb_get_ntohs(tvb, offset);
proto_tree_add_uint_format_value(tree, hf_nas_5gs_sm_session_ambr_dl, tvb, offset, 2,
ambr_val, "%u %s (%u)", ambr_val * mult, unit_str, ambr_val);
offset += 2;
proto_tree_add_item_ret_uint(tree, nas_5gs_sm_unit_for_session_ambr_ul, tvb, offset, 1, ENC_NA, &unit);
offset++;
mult = get_ext_ambr_unit(unit, &unit_str);
ambr_val = tvb_get_ntohs(tvb, offset);
proto_tree_add_uint_format_value(tree, hf_nas_5gs_sm_session_ambr_ul, tvb, offset, 2,
ambr_val, "%u %s (%u)", ambr_val * mult, unit_str, ambr_val);
return len;
}
@ -1520,7 +1723,7 @@ de_nas_5gs_sm_session_ambr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
/*
* 9.8.4.8 SM PDU DN request container
*/
/* The SM PDU DN request container contains a DN-specific identity of the UE in the network access identifier (NAI) format */
static guint16
de_nas_5gs_sm_pdu_dn_req_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
@ -3730,6 +3933,168 @@ proto_register_nas_5gs(void)
FT_UINT8, BASE_DEC, VALS(nas_5gs_pdu_session_type_values), 0x0f,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_0_b0,
{ "Spare","nas_5gs.pdu_ses_sts_psi_0_b0",
FT_BOOLEAN, 8, NULL, 0x01,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_1_b1,
{ "Spare","nas_5gs.pdu_ses_sts_psi_1_b1",
FT_BOOLEAN, 8, NULL, 0x02,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_2_b2,
{ "Spare","nas_5gs.pdu_ses_sts_psi_2_b2",
FT_BOOLEAN, 8, NULL, 0x04,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_3_b3,
{ "PSI(3)","nas_5gs.pdu_ses_sts_psi_3_b3",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x08,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_4_b4,
{ "PSI(4)","nas_5gs.pdu_ses_sts_psi_4_b4",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x10,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_5_b5,
{ "PSI(5)","nas_5gs.pdu_ses_sts_psi_5_b5",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x20,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_6_b6,
{ "PSI(6)","nas_5gs.pdu_ses_sts_psi_6_b6",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x40,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_7_b7,
{ "PSI(7)","nas_5gs.pdu_ses_sts_psi_7_b7",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x80,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_8_b0,
{ "PSI(8)","nas_5gs.pdu_ses_sts_psi_8_b0",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x01,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_9_b1,
{ "PSI(9)","nas_5gs.pdu_ses_sts_psi_9_b1",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x02,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_10_b2,
{ "PSI(10)","nas_5gs.pdu_ses_sts_psi_10_b2",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x04,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_11_b3,
{ "PSI(11)","nas_5gs.pdu_ses_sts_psi_11_b3",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x08,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_12_b4,
{ "PSI(12)","nas_5gs.pdu_ses_sts_psi_12_b4",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x10,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_13_b5,
{ "PSI(13)","nas_5gs.pdu_ses_sts_psi_13_b5",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x20,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_14_b6,
{ "PSI(14)","nas_5gs.pdu_ses_sts_psi_14_b6",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x40,
NULL, HFILL }
},
{ &hf_nas_5gs_pdu_ses_sts_psi_15_b7,
{ "PSI(15)","nas_5gs.pdu_ses_sts_psi_15_b7",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_pdu_ses_sts_psi), 0x80,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_0_b0,
{ "Spare","nas_5gs.ul_data_sts_psi_0_b0",
FT_BOOLEAN, 8, NULL, 0x01,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_1_b1,
{ "Spare","nas_5gs.ul_data_sts_psi_1_b1",
FT_BOOLEAN, 8, NULL, 0x02,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_2_b2,
{ "Spare","nas_5gs.ul_data_sts_psi_2_b2",
FT_BOOLEAN, 8, NULL, 0x04,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_3_b3,
{ "PSI(3)","nas_5gs.ul_data_sts_psi_3_b3",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x08,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_4_b4,
{ "PSI(4)","nas_5gs.ul_data_sts_psi_4_b4",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x10,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_5_b5,
{ "PSI(5)","nas_5gs.ul_data_sts_psi_5_b5",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x20,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_6_b6,
{ "PSI(6)","nas_5gs.ul_data_sts_psi_6_b6",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x40,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_7_b7,
{ "PSI(7)","nas_5gs.ul_data_sts_psi_7_b7",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x80,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_8_b0,
{ "PSI(8)","nas_5gs.ul_data_sts_psi_8_b0",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x01,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_9_b1,
{ "PSI(9)","nas_5gs.ul_data_sts_psi_9_b1",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x02,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_10_b2,
{ "PSI(10)","nas_5gs.ul_data_sts_psi_10_b2",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x04,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_11_b3,
{ "PSI(11)","nas_5gs.ul_data_sts_psi_11_b3",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x08,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_12_b4,
{ "PSI(12)","nas_5gs.ul_data_sts_psi_12_b4",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x10,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_13_b5,
{ "PSI(13)","nas_5gs.ul_data_sts_psi_13_b5",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x20,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_14_b6,
{ "PSI(14)","nas_5gs.ul_data_sts_psi_14_b6",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x40,
NULL, HFILL }
},
{ &hf_nas_5gs_ul_data_sts_psi_15_b7,
{ "PSI(15)","nas_5gs.ul_data_sts_psi_15_b7",
FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_ul_data_sts_psi), 0x80,
NULL, HFILL }
},
{ &hf_nas_5gs_sm_sc_mode,
{ "SSC mode", "nas_5gs.sm.sc_mode",
FT_UINT8, BASE_DEC, VALS(nas_5gs_sc_mode_values), 0x0f,
@ -3805,6 +4170,26 @@ proto_register_nas_5gs(void)
FT_UINT8, BASE_DEC, VALS(nas_5gs_sm_pf_type_values), 0x0,
NULL, HFILL }
},
{ &nas_5gs_sm_unit_for_session_ambr_dl,
{ "Unit for Session-AMBR for downlink", "nas_5gs.sm.unit_for_session_ambr_dl",
FT_UINT8, BASE_DEC, VALS(nas_5gs_sm_unit_for_session_ambr_values), 0x0,
NULL, HFILL }
},
{ &hf_nas_5gs_sm_session_ambr_dl,
{ "Session-AMBR for downlink", "nas_5gs.sm.session_ambr_dl",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &nas_5gs_sm_unit_for_session_ambr_ul,
{ "Unit for Session-AMBR for uplink", "nas_5gs.sm.unit_for_session_ambr_ul",
FT_UINT8, BASE_DEC, VALS(nas_5gs_sm_unit_for_session_ambr_values), 0x0,
NULL, HFILL }
},
{ &hf_nas_5gs_sm_session_ambr_ul,
{ "Session-AMBR for uplink", "nas_5gs.sm.session_ambr_ul",
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
};
guint i;