aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-xnap.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-xnap.c')
-rw-r--r--epan/dissectors/packet-xnap.c89
1 files changed, 77 insertions, 12 deletions
diff --git a/epan/dissectors/packet-xnap.c b/epan/dissectors/packet-xnap.c
index a3465a9338..44e36689af 100644
--- a/epan/dissectors/packet-xnap.c
+++ b/epan/dissectors/packet-xnap.c
@@ -18,7 +18,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*
* Ref:
- * 3GPP TS 38.423 V15.4.0 (2019-07)
+ * 3GPP TS 38.423 V15.5.0 (2019-09)
*/
#include "config.h"
@@ -257,7 +257,9 @@ typedef enum _ProtocolIE_ID_enum {
id_PDUSessionCommonNetworkInstance = 127,
id_BPLMN_ID_Info_EUTRA = 128,
id_BPLMN_ID_Info_NR = 129,
- id_InterfaceInstanceIndication = 130
+ id_InterfaceInstanceIndication = 130,
+ id_S_NG_RANnode_Addition_Trigger_Ind = 131,
+ id_DefaultDRB_Allowed = 132
} ProtocolIE_ID_enum;
typedef enum _GlobalNG_RANNode_ID_enum {
@@ -290,6 +292,7 @@ static int hf_xnap_CellAssistanceInfo_NR_PDU = -1; /* CellAssistanceInfo_NR */
static int hf_xnap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */
static int hf_xnap_XnUAddressInfoperPDUSession_List_PDU = -1; /* XnUAddressInfoperPDUSession_List */
static int hf_xnap_DesiredActNotificationLevel_PDU = -1; /* DesiredActNotificationLevel */
+static int hf_xnap_DefaultDRB_Allowed_PDU = -1; /* DefaultDRB_Allowed */
static int hf_xnap_DRB_List_PDU = -1; /* DRB_List */
static int hf_xnap_DRB_List_withCause_PDU = -1; /* DRB_List_withCause */
static int hf_xnap_DRB_Number_PDU = -1; /* DRB_Number */
@@ -334,6 +337,7 @@ static int hf_xnap_ServedCellsToUpdate_E_UTRA_PDU = -1; /* ServedCellsToUpdate_
static int hf_xnap_ServedCells_NR_PDU = -1; /* ServedCells_NR */
static int hf_xnap_ServedCellsToUpdate_NR_PDU = -1; /* ServedCellsToUpdate_NR */
static int hf_xnap_S_NG_RANnode_SecurityKey_PDU = -1; /* S_NG_RANnode_SecurityKey */
+static int hf_xnap_S_NG_RANnode_Addition_Trigger_Ind_PDU = -1; /* S_NG_RANnode_Addition_Trigger_Ind */
static int hf_xnap_S_NSSAI_PDU = -1; /* S_NSSAI */
static int hf_xnap_SplitSRBsTypes_PDU = -1; /* SplitSRBsTypes */
static int hf_xnap_TAISupport_List_PDU = -1; /* TAISupport_List */
@@ -752,8 +756,8 @@ static int hf_xnap_drbsToBeModifiedList = -1; /* DRBsToBeModified_List_Modif
static int hf_xnap_dRBsToBeReleased = -1; /* DRB_List_withCause */
static int hf_xnap_QoSFlowsToBeSetup_List_Modified_SNterminated_item = -1; /* QoSFlowsToBeSetup_List_Modified_SNterminated_Item */
static int hf_xnap_DRBsToBeModified_List_Modified_SNterminated_item = -1; /* DRBsToBeModified_List_Modified_SNterminated_Item */
-static int hf_xnap_mN_DL_PDCP_UP_TNLInfo = -1; /* UPTransportParameters */
-static int hf_xnap_secondary_MN_DL_PDCP_UP_TNLInfo = -1; /* UPTransportParameters */
+static int hf_xnap_mN_DL_SCG_UP_TNLInfo = -1; /* UPTransportParameters */
+static int hf_xnap_secondary_MN_DL_SCG_UP_TNLInfo = -1; /* UPTransportParameters */
static int hf_xnap_rlc_status = -1; /* RLC_Status */
static int hf_xnap_dRBsToBeModified = -1; /* DRBsToBeModifiedList_ModificationResponse_SNterminated */
static int hf_xnap_qosFlowsNotAdmittedTBAdded = -1; /* QoSFlows_List_withCause */
@@ -1866,6 +1870,8 @@ static const value_string xnap_ProtocolIE_ID_vals[] = {
{ id_BPLMN_ID_Info_EUTRA, "id-BPLMN-ID-Info-EUTRA" },
{ id_BPLMN_ID_Info_NR, "id-BPLMN-ID-Info-NR" },
{ id_InterfaceInstanceIndication, "id-InterfaceInstanceIndication" },
+ { id_S_NG_RANnode_Addition_Trigger_Ind, "id-S-NG-RANnode-Addition-Trigger-Ind" },
+ { id_DefaultDRB_Allowed, "id-DefaultDRB-Allowed" },
{ 0, NULL }
};
@@ -4027,6 +4033,22 @@ dissect_xnap_DesiredActNotificationLevel(tvbuff_t *tvb _U_, int offset _U_, asn1
}
+static const value_string xnap_DefaultDRB_Allowed_vals[] = {
+ { 0, "true" },
+ { 1, "false" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_xnap_DefaultDRB_Allowed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
static const per_sequence_t DRB_List_sequence_of[1] = {
{ &hf_xnap_DRB_List_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_DRB_ID },
};
@@ -5228,8 +5250,8 @@ dissect_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC(tvbuff_t *tvb _U_, int o
static const per_sequence_t ServiceAreaItem_sequence[] = {
{ &hf_xnap_plmn_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity },
- { &hf_xnap_allowed_TACs_ServiceArea, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC },
- { &hf_xnap_not_allowed_TACs_ServiceArea, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC },
+ { &hf_xnap_allowed_TACs_ServiceArea, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC },
+ { &hf_xnap_not_allowed_TACs_ServiceArea, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC },
{ &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer },
{ NULL, 0, 0, NULL }
};
@@ -7029,8 +7051,8 @@ dissect_xnap_RLC_Status(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static const per_sequence_t DRBsToBeModified_List_Modified_SNterminated_Item_sequence[] = {
{ &hf_xnap_drb_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_DRB_ID },
- { &hf_xnap_mN_DL_PDCP_UP_TNLInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_UPTransportParameters },
- { &hf_xnap_secondary_MN_DL_PDCP_UP_TNLInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_UPTransportParameters },
+ { &hf_xnap_mN_DL_SCG_UP_TNLInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_UPTransportParameters },
+ { &hf_xnap_secondary_MN_DL_SCG_UP_TNLInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_UPTransportParameters },
{ &hf_xnap_lCID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_LCID },
{ &hf_xnap_rlc_status , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_RLC_Status },
{ &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer },
@@ -8764,6 +8786,23 @@ dissect_xnap_S_NG_RANnode_SecurityKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
}
+static const value_string xnap_S_NG_RANnode_Addition_Trigger_Ind_vals[] = {
+ { 0, "sn-change" },
+ { 1, "inter-MN-HO" },
+ { 2, "intra-MN-HO" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_xnap_S_NG_RANnode_Addition_Trigger_Ind(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 3, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
static int
dissect_xnap_SpectrumSharingGroupID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -11832,6 +11871,14 @@ static int dissect_DesiredActNotificationLevel_PDU(tvbuff_t *tvb _U_, packet_inf
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_DefaultDRB_Allowed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_xnap_DefaultDRB_Allowed(tvb, offset, &asn1_ctx, tree, hf_xnap_DefaultDRB_Allowed_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_DRB_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -12184,6 +12231,14 @@ static int dissect_S_NG_RANnode_SecurityKey_PDU(tvbuff_t *tvb _U_, packet_info *
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_S_NG_RANnode_Addition_Trigger_Ind_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_xnap_S_NG_RANnode_Addition_Trigger_Ind(tvb, offset, &asn1_ctx, tree, hf_xnap_S_NG_RANnode_Addition_Trigger_Ind_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_S_NSSAI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -13208,6 +13263,10 @@ void proto_register_xnap(void) {
{ "DesiredActNotificationLevel", "xnap.DesiredActNotificationLevel",
FT_UINT32, BASE_DEC, VALS(xnap_DesiredActNotificationLevel_vals), 0,
NULL, HFILL }},
+ { &hf_xnap_DefaultDRB_Allowed_PDU,
+ { "DefaultDRB-Allowed", "xnap.DefaultDRB_Allowed",
+ FT_UINT32, BASE_DEC, VALS(xnap_DefaultDRB_Allowed_vals), 0,
+ NULL, HFILL }},
{ &hf_xnap_DRB_List_PDU,
{ "DRB-List", "xnap.DRB_List",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -13384,6 +13443,10 @@ void proto_register_xnap(void) {
{ "S-NG-RANnode-SecurityKey", "xnap.S_NG_RANnode_SecurityKey",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_xnap_S_NG_RANnode_Addition_Trigger_Ind_PDU,
+ { "S-NG-RANnode-Addition-Trigger-Ind", "xnap.S_NG_RANnode_Addition_Trigger_Ind",
+ FT_UINT32, BASE_DEC, VALS(xnap_S_NG_RANnode_Addition_Trigger_Ind_vals), 0,
+ NULL, HFILL }},
{ &hf_xnap_S_NSSAI_PDU,
{ "S-NSSAI", "xnap.S_NSSAI_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -15056,12 +15119,12 @@ void proto_register_xnap(void) {
{ "DRBsToBeModified-List-Modified-SNterminated-Item", "xnap.DRBsToBeModified_List_Modified_SNterminated_Item_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
- { &hf_xnap_mN_DL_PDCP_UP_TNLInfo,
- { "mN-DL-PDCP-UP-TNLInfo", "xnap.mN_DL_PDCP_UP_TNLInfo",
+ { &hf_xnap_mN_DL_SCG_UP_TNLInfo,
+ { "mN-DL-SCG-UP-TNLInfo", "xnap.mN_DL_SCG_UP_TNLInfo",
FT_UINT32, BASE_DEC, NULL, 0,
"UPTransportParameters", HFILL }},
- { &hf_xnap_secondary_MN_DL_PDCP_UP_TNLInfo,
- { "secondary-MN-DL-PDCP-UP-TNLInfo", "xnap.secondary_MN_DL_PDCP_UP_TNLInfo",
+ { &hf_xnap_secondary_MN_DL_SCG_UP_TNLInfo,
+ { "secondary-MN-DL-SCG-UP-TNLInfo", "xnap.secondary_MN_DL_SCG_UP_TNLInfo",
FT_UINT32, BASE_DEC, NULL, 0,
"UPTransportParameters", HFILL }},
{ &hf_xnap_rlc_status,
@@ -16994,6 +17057,7 @@ proto_reg_handoff_xnap(void)
dissector_add_uint("xnap.ies", id_PDUSessionDataForwarding_SNModResponse, create_dissector_handle(dissect_PDUSessionDataForwarding_SNModResponse_PDU, proto_xnap));
dissector_add_uint("xnap.ies", id_NE_DC_TDM_Pattern, create_dissector_handle(dissect_NE_DC_TDM_Pattern_PDU, proto_xnap));
dissector_add_uint("xnap.ies", id_InterfaceInstanceIndication, create_dissector_handle(dissect_InterfaceInstanceIndication_PDU, proto_xnap));
+ dissector_add_uint("xnap.ies", id_S_NG_RANnode_Addition_Trigger_Ind, create_dissector_handle(dissect_S_NG_RANnode_Addition_Trigger_Ind_PDU, proto_xnap));
dissector_add_uint("xnap.extension", id_Additional_UL_NG_U_TNLatUPF_List, create_dissector_handle(dissect_Additional_UL_NG_U_TNLatUPF_List_PDU, proto_xnap));
dissector_add_uint("xnap.extension", id_SecondarydataForwardingInfoFromTarget_List, create_dissector_handle(dissect_SecondarydataForwardingInfoFromTarget_List_PDU, proto_xnap));
dissector_add_uint("xnap.extension", id_LastE_UTRANPLMNIdentity, create_dissector_handle(dissect_PLMN_Identity_PDU, proto_xnap));
@@ -17006,6 +17070,7 @@ proto_reg_handoff_xnap(void)
dissector_add_uint("xnap.extension", id_PDUSessionCommonNetworkInstance, create_dissector_handle(dissect_PDUSessionCommonNetworkInstance_PDU, proto_xnap));
dissector_add_uint("xnap.extension", id_BPLMN_ID_Info_EUTRA, create_dissector_handle(dissect_BPLMN_ID_Info_EUTRA_PDU, proto_xnap));
dissector_add_uint("xnap.extension", id_BPLMN_ID_Info_NR, create_dissector_handle(dissect_BPLMN_ID_Info_NR_PDU, proto_xnap));
+ dissector_add_uint("xnap.extension", id_DefaultDRB_Allowed, create_dissector_handle(dissect_DefaultDRB_Allowed_PDU, proto_xnap));
dissector_add_uint("xnap.proc.imsg", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequest_PDU, proto_xnap));
dissector_add_uint("xnap.proc.sout", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequestAcknowledge_PDU, proto_xnap));
dissector_add_uint("xnap.proc.uout", id_handoverPreparation, create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_xnap));