/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-s1ap.c */
-/* ../../tools/asn2wrs.py -p s1ap -c s1ap.cnf -s packet-s1ap-template S1AP-CommonDataTypes.asn S1AP-Constants.asn S1AP-Containers.asn S1AP-IEs.asn S1AP-PDU-Contents.asn S1AP-PDU-Descriptions.asn */
+/* ../../tools/asn2wrs.py -p s1ap -c ./s1ap.cnf -s ./packet-s1ap-template -D . S1AP-CommonDataTypes.asn S1AP-Constants.asn S1AP-Containers.asn S1AP-IEs.asn S1AP-PDU-Contents.asn S1AP-PDU-Descriptions.asn */
/* Input file: packet-s1ap-template.c */
#define maxProtocolIEs 65535
#define maxNrOfCSGs 256
#define maxNrOfE_RABs 256
-#define maxNrOfInterfaces 3
#define maxnoofTAIs 256
#define maxnoofTACs 256
#define maxNrOfErrors 256
#define maxnoofForbLACs 4096
#define maxnoofForbTACs 4096
#define maxNrOfIndividualS1ConnectionsToReset 256
-#define maxnoofGUMMEIs 256
#define maxnoofCells 16
#define maxnoofTAIforWarning 65535
#define maxnoofCellID 65535
id_RRC_Establishment_Cause = 134,
id_NASSecurityParametersfromE_UTRAN = 135,
id_NASSecurityParameterstoE_UTRAN = 136,
- id_DefaultPagingDRX = 137
+ id_DefaultPagingDRX = 137,
+ id_Source_ToTarget_TransparentContainer_Secondary = 138,
+ id_Target_ToSource_TransparentContainer_Secondary = 139
} ProtocolIE_ID_enum;
/*--- End of included file: packet-s1ap-val.h ---*/
static int hf_s1ap_ENB_StatusTransfer_TransparentContainer_PDU = -1; /* ENB_StatusTransfer_TransparentContainer */
static int hf_s1ap_ENB_UE_S1AP_ID_PDU = -1; /* ENB_UE_S1AP_ID */
static int hf_s1ap_ENBname_PDU = -1; /* ENBname */
+static int hf_s1ap_E_RABInformationListItem_PDU = -1; /* E_RABInformationListItem */
+static int hf_s1ap_E_RABList_PDU = -1; /* E_RABList */
+static int hf_s1ap_E_RABItem_PDU = -1; /* E_RABItem */
static int hf_s1ap_EUTRAN_CGI_PDU = -1; /* EUTRAN_CGI */
static int hf_s1ap_GUMMEI_PDU = -1; /* GUMMEI */
static int hf_s1ap_HandoverRestrictionList_PDU = -1; /* HandoverRestrictionList */
static int hf_s1ap_RequestType_PDU = -1; /* RequestType */
static int hf_s1ap_RepetitionPeriod_PDU = -1; /* RepetitionPeriod */
static int hf_s1ap_RRC_Establishment_Cause_PDU = -1; /* RRC_Establishment_Cause */
-static int hf_s1ap_E_RABInformationListItem_PDU = -1; /* E_RABInformationListItem */
-static int hf_s1ap_E_RABList_PDU = -1; /* E_RABList */
-static int hf_s1ap_E_RABItem_PDU = -1; /* E_RABItem */
static int hf_s1ap_SecurityKey_PDU = -1; /* SecurityKey */
static int hf_s1ap_SecurityContext_PDU = -1; /* SecurityContext */
static int hf_s1ap_SerialNumber_PDU = -1; /* SerialNumber */
static int hf_s1ap_bearers_SubjectToStatusTransferList = -1; /* Bearers_SubjectToStatusTransferList */
static int hf_s1ap_ENBX2TLAs_item = -1; /* TransportLayerAddress */
static int hf_s1ap_EPLMNs_item = -1; /* PLMNidentity */
+static int hf_s1ap_dL_Forwarding = -1; /* DL_Forwarding */
+static int hf_s1ap_E_RABList_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_s1ap_cause = -1; /* Cause */
+static int hf_s1ap_qCI = -1; /* QCI */
+static int hf_s1ap_allocationRetentionPriority = -1; /* AllocationAndRetentionPriority */
+static int hf_s1ap_gbrQosInformation = -1; /* GBR_QosInformation */
static int hf_s1ap_cell_ID = -1; /* CellIdentity */
static int hf_s1ap_ForbiddenTAs_item = -1; /* ForbiddenTAs_Item */
static int hf_s1ap_pLMN_Identity = -1; /* PLMNidentity */
static int hf_s1ap_rIMInformation = -1; /* RIMInformation */
static int hf_s1ap_rIMRoutingAddress = -1; /* RIMRoutingAddress */
static int hf_s1ap_gERAN_Cell_ID = -1; /* GERAN_Cell_ID */
-static int hf_s1ap_dL_Forwarding = -1; /* DL_Forwarding */
-static int hf_s1ap_E_RABList_item = -1; /* ProtocolIE_SingleContainer */
-static int hf_s1ap_cause = -1; /* Cause */
-static int hf_s1ap_qCI = -1; /* QCI */
-static int hf_s1ap_allocationRetentionPriority = -1; /* AllocationAndRetentionPriority */
-static int hf_s1ap_gbrQosInformation = -1; /* GBR_QosInformation */
-static int hf_s1ap_nextHopParameter = -1; /* INTEGER_0_7 */
-static int hf_s1ap_nextHopChainingCount = -1; /* SecurityKey */
+static int hf_s1ap_nextHopChainingCount = -1; /* INTEGER_0_7 */
+static int hf_s1ap_nextHopParameter = -1; /* SecurityKey */
static int hf_s1ap_sONInformationRequest = -1; /* SONInformationRequest */
static int hf_s1ap_sONInformationReply = -1; /* SONInformationReply */
static int hf_s1ap_x2TNLConfigurationInfo = -1; /* X2TNLConfigurationInfo */
static int hf_s1ap_tAC = -1; /* TAC */
static int hf_s1ap_broadcastPLMNs = -1; /* BPLMNs */
static int hf_s1ap_mMEC = -1; /* MME_Code */
+static int hf_s1ap_m_TMSI = -1; /* M_TMSI */
static int hf_s1ap_TAIListforWarning_item = -1; /* TAI */
static int hf_s1ap_TAI_Broadcast_item = -1; /* TAI_Broadcast_Item */
static int hf_s1ap_tAI = -1; /* TAI */
static gint ett_s1ap_ENB_StatusTransfer_TransparentContainer = -1;
static gint ett_s1ap_ENBX2TLAs = -1;
static gint ett_s1ap_EPLMNs = -1;
+static gint ett_s1ap_E_RABInformationListItem = -1;
+static gint ett_s1ap_E_RABList = -1;
+static gint ett_s1ap_E_RABItem = -1;
+static gint ett_s1ap_E_RABLevelQoSParameters = -1;
static gint ett_s1ap_EUTRAN_CGI = -1;
static gint ett_s1ap_ForbiddenTAs = -1;
static gint ett_s1ap_ForbiddenTAs_Item = -1;
static gint ett_s1ap_RequestType = -1;
static gint ett_s1ap_RIMTransfer = -1;
static gint ett_s1ap_RIMRoutingAddress = -1;
-static gint ett_s1ap_E_RABInformationListItem = -1;
-static gint ett_s1ap_E_RABList = -1;
-static gint ett_s1ap_E_RABItem = -1;
-static gint ett_s1ap_E_RABLevelQoSParameters = -1;
static gint ett_s1ap_SecurityContext = -1;
static gint ett_s1ap_SONInformation = -1;
static gint ett_s1ap_SONInformationReply = -1;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 85 "s1ap.cnf"
+#line 84 "s1ap.cnf"
if (check_col(actx->pinfo->cinfo, COL_INFO))
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
val_to_str(ProcedureCode, s1ap_ProcedureCode_vals,
{ id_NASSecurityParametersfromE_UTRAN, "id-NASSecurityParametersfromE-UTRAN" },
{ id_NASSecurityParameterstoE_UTRAN, "id-NASSecurityParameterstoE-UTRAN" },
{ id_DefaultPagingDRX, "id-DefaultPagingDRX" },
+ { id_Source_ToTarget_TransparentContainer_Secondary, "id-Source-ToTarget-TransparentContainer-Secondary" },
+ { id_Target_ToSource_TransparentContainer_Secondary, "id-Target-ToSource-TransparentContainer-Secondary" },
{ 0, NULL }
};
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &ProtocolIE_ID, FALSE);
-#line 68 "s1ap.cnf"
+#line 67 "s1ap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(s1ap_ProtocolIE_ID_vals), "unknown (%d)"));
}
static int
dissect_s1ap_ProtocolIE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 107 "s1ap.cnf"
+#line 106 "s1ap.cnf"
static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
{ "lowerBound", ASN1_PAR_INTEGER },
{ "upperBound", ASN1_PAR_INTEGER },
static int
dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 169 "s1ap.cnf"
+#line 168 "s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
}
-static const per_sequence_t BroadcastCompletedAreaList_sequence[] = {
- { &hf_s1ap_cellID_Broadcast, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CellID_Broadcast },
- { &hf_s1ap_tAI_Broadcast , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI_Broadcast },
- { &hf_s1ap_emergencyAreaID_Broadcast, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EmergencyAreaID_Broadcast },
- { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
- { NULL, 0, 0, NULL }
+static const value_string s1ap_BroadcastCompletedAreaList_vals[] = {
+ { 0, "cellID-Broadcast" },
+ { 1, "tAI-Broadcast" },
+ { 2, "emergencyAreaID-Broadcast" },
+ { 0, NULL }
+};
+
+static const per_choice_t BroadcastCompletedAreaList_choice[] = {
+ { 0, &hf_s1ap_cellID_Broadcast, ASN1_EXTENSION_ROOT , dissect_s1ap_CellID_Broadcast },
+ { 1, &hf_s1ap_tAI_Broadcast , ASN1_EXTENSION_ROOT , dissect_s1ap_TAI_Broadcast },
+ { 2, &hf_s1ap_emergencyAreaID_Broadcast, ASN1_EXTENSION_ROOT , dissect_s1ap_EmergencyAreaID_Broadcast },
+ { 0, NULL, 0, NULL }
};
static int
dissect_s1ap_BroadcastCompletedAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_s1ap_BroadcastCompletedAreaList, BroadcastCompletedAreaList_sequence);
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_s1ap_BroadcastCompletedAreaList, BroadcastCompletedAreaList_choice,
+ NULL);
return offset;
}
{ 33, "s1-intra-system-handover-triggered" },
{ 34, "s1-inter-system-handover-triggered" },
{ 35, "x2-handover-triggered" },
+ { 36, "redirection-towards-1xRTT" },
{ 0, NULL }
};
static int
dissect_s1ap_CauseRadioNetwork(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,
- 36, NULL, TRUE, 0, NULL);
+ 36, NULL, TRUE, 1, NULL);
return offset;
}
static const value_string s1ap_CSFallbackIndicator_vals[] = {
{ 0, "cs-fallback-required" },
+ { 1, "cs-fallback-high-priority" },
+ { 2, "cs-fallback-high-priority" },
{ 0, NULL }
};
static int
dissect_s1ap_CSFallbackIndicator(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,
- 1, NULL, TRUE, 0, NULL);
+ 2, NULL, TRUE, 1, NULL);
return offset;
}
static int
dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 182 "s1ap.cnf"
+#line 181 "s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
int length;
int p_offset;
static int
dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 217 "s1ap.cnf"
+#line 216 "s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
gint tvb_len;
}
+static const per_sequence_t E_RABInformationListItem_sequence[] = {
+ { &hf_s1ap_e_RAB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_E_RAB_ID },
+ { &hf_s1ap_dL_Forwarding , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_DL_Forwarding },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_E_RABInformationListItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_s1ap_E_RABInformationListItem, E_RABInformationListItem_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t E_RABList_sequence_of[1] = {
+ { &hf_s1ap_E_RABList_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_s1ap_E_RABList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_s1ap_E_RABList, E_RABList_sequence_of,
+ 1, maxNrOfE_RABs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t E_RABItem_sequence[] = {
+ { &hf_s1ap_e_RAB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_E_RAB_ID },
+ { &hf_s1ap_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Cause },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_E_RABItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_s1ap_E_RABItem, E_RABItem_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_s1ap_QCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 255U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GBR_QosInformation_sequence[] = {
+ { &hf_s1ap_e_RAB_MaximumBitrateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate },
+ { &hf_s1ap_e_RAB_MaximumBitrateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate },
+ { &hf_s1ap_e_RAB_GuaranteedBitrateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate },
+ { &hf_s1ap_e_RAB_GuaranteedBitrateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_GBR_QosInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_s1ap_GBR_QosInformation, GBR_QosInformation_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t E_RABLevelQoSParameters_sequence[] = {
+ { &hf_s1ap_qCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_QCI },
+ { &hf_s1ap_allocationRetentionPriority, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_AllocationAndRetentionPriority },
+ { &hf_s1ap_gbrQosInformation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_GBR_QosInformation },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_E_RABLevelQoSParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_s1ap_E_RABLevelQoSParameters, E_RABLevelQoSParameters_sequence);
+
+ return offset;
+}
+
+
static int
dissect_s1ap_ExtendedRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
}
-static const per_sequence_t GBR_QosInformation_sequence[] = {
- { &hf_s1ap_e_RAB_MaximumBitrateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate },
- { &hf_s1ap_e_RAB_MaximumBitrateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate },
- { &hf_s1ap_e_RAB_GuaranteedBitrateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate },
- { &hf_s1ap_e_RAB_GuaranteedBitrateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate },
- { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
- { NULL, 0, 0, NULL }
-};
-
-static int
-dissect_s1ap_GBR_QosInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_s1ap_GBR_QosInformation, GBR_QosInformation_sequence);
-
- return offset;
-}
-
-
static int
dissect_s1ap_GTP_TEID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+static int
+dissect_s1ap_M_TMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 4, FALSE, NULL);
+
+ return offset;
+}
+
+
+
static int
dissect_s1ap_MSClassmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
static int
dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 208 "s1ap.cnf"
+#line 207 "s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
-static int
-dissect_s1ap_QCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 255U, NULL, FALSE);
-
- return offset;
-}
-
-
-
static int
dissect_s1ap_RelativeMMECapacity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
static int
dissect_s1ap_RepetitionPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 1U, 4096U, NULL, FALSE);
+ 0U, 4096U, NULL, FALSE);
return offset;
}
}
-static const per_sequence_t E_RABInformationListItem_sequence[] = {
- { &hf_s1ap_e_RAB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_E_RAB_ID },
- { &hf_s1ap_dL_Forwarding , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_DL_Forwarding },
- { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
- { NULL, 0, 0, NULL }
-};
-
-static int
-dissect_s1ap_E_RABInformationListItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_s1ap_E_RABInformationListItem, E_RABInformationListItem_sequence);
-
- return offset;
-}
-
-
-static const per_sequence_t E_RABList_sequence_of[1] = {
- { &hf_s1ap_E_RABList_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_SingleContainer },
-};
-
-static int
-dissect_s1ap_E_RABList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
- ett_s1ap_E_RABList, E_RABList_sequence_of,
- 1, maxNrOfE_RABs, FALSE);
-
- return offset;
-}
-
-
-static const per_sequence_t E_RABItem_sequence[] = {
- { &hf_s1ap_e_RAB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_E_RAB_ID },
- { &hf_s1ap_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Cause },
- { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
- { NULL, 0, 0, NULL }
-};
-
-static int
-dissect_s1ap_E_RABItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_s1ap_E_RABItem, E_RABItem_sequence);
-
- return offset;
-}
-
-
-static const per_sequence_t E_RABLevelQoSParameters_sequence[] = {
- { &hf_s1ap_qCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_QCI },
- { &hf_s1ap_allocationRetentionPriority, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_AllocationAndRetentionPriority },
- { &hf_s1ap_gbrQosInformation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_GBR_QosInformation },
- { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
- { NULL, 0, 0, NULL }
-};
-
-static int
-dissect_s1ap_E_RABLevelQoSParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_s1ap_E_RABLevelQoSParameters, E_RABLevelQoSParameters_sequence);
-
- return offset;
-}
-
-
static int
dissect_s1ap_SecurityKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
static const per_sequence_t SecurityContext_sequence[] = {
- { &hf_s1ap_nextHopParameter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_INTEGER_0_7 },
- { &hf_s1ap_nextHopChainingCount, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_SecurityKey },
+ { &hf_s1ap_nextHopChainingCount, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_INTEGER_0_7 },
+ { &hf_s1ap_nextHopParameter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_SecurityKey },
{ &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
{ NULL, 0, 0, NULL }
};
static const per_sequence_t S_TMSI_sequence[] = {
{ &hf_s1ap_mMEC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_MME_Code },
+ { &hf_s1ap_m_TMSI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_M_TMSI },
{ &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
{ NULL, 0, 0, NULL }
};
static int
dissect_s1ap_E_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 134 "s1ap.cnf"
+#line 133 "s1ap.cnf"
asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
asn1_param_push_integer(actx, 1);
asn1_param_push_integer(actx, maxNrOfE_RABs);
static int
dissect_s1ap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 244 "s1ap.cnf"
+#line 243 "s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_DL;
static int
dissect_s1ap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 240 "s1ap.cnf"
+#line 239 "s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_UL;
static int
dissect_s1ap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 248 "s1ap.cnf"
+#line 247 "s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_UL;
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_E_RABInformationListItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_s1ap_E_RABInformationListItem(tvb, offset, &asn1_ctx, tree, hf_s1ap_E_RABInformationListItem_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_E_RABList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_s1ap_E_RABList(tvb, offset, &asn1_ctx, tree, hf_s1ap_E_RABList_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_E_RABItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_s1ap_E_RABItem(tvb, offset, &asn1_ctx, tree, hf_s1ap_E_RABItem_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_EUTRAN_CGI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
offset += 7; offset >>= 3;
return offset;
}
-static int dissect_E_RABInformationListItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
- int offset = 0;
- asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
- offset = dissect_s1ap_E_RABInformationListItem(tvb, offset, &asn1_ctx, tree, hf_s1ap_E_RABInformationListItem_PDU);
- offset += 7; offset >>= 3;
- return offset;
-}
-static int dissect_E_RABList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
- int offset = 0;
- asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
- offset = dissect_s1ap_E_RABList(tvb, offset, &asn1_ctx, tree, hf_s1ap_E_RABList_PDU);
- offset += 7; offset >>= 3;
- return offset;
-}
-static int dissect_E_RABItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
- int offset = 0;
- asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
- offset = dissect_s1ap_E_RABItem(tvb, offset, &asn1_ctx, tree, hf_s1ap_E_RABItem_PDU);
- offset += 7; offset >>= 3;
- return offset;
-}
static int dissect_SecurityKey_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
dissector_add("s1ap.ies", id_NASSecurityParametersfromE_UTRAN, new_create_dissector_handle(dissect_NASSecurityParametersfromE_UTRAN_PDU, proto_s1ap));
dissector_add("s1ap.ies", id_NASSecurityParameterstoE_UTRAN, new_create_dissector_handle(dissect_NASSecurityParameterstoE_UTRAN_PDU, proto_s1ap));
dissector_add("s1ap.ies", id_DefaultPagingDRX, new_create_dissector_handle(dissect_PagingDRX_PDU, proto_s1ap));
+ dissector_add("s1ap.ies", id_Source_ToTarget_TransparentContainer_Secondary, new_create_dissector_handle(dissect_Source_ToTarget_TransparentContainer_PDU, proto_s1ap));
+ dissector_add("s1ap.ies", id_Target_ToSource_TransparentContainer_Secondary, new_create_dissector_handle(dissect_Target_ToSource_TransparentContainer_PDU, proto_s1ap));
dissector_add("s1ap.proc.imsg", id_HandoverPreparation, new_create_dissector_handle(dissect_HandoverRequired_PDU, proto_s1ap));
dissector_add("s1ap.proc.sout", id_HandoverPreparation, new_create_dissector_handle(dissect_HandoverCommand_PDU, proto_s1ap));
dissector_add("s1ap.proc.uout", id_HandoverPreparation, new_create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_s1ap));
"s1ap.Bearers_SubjectToStatusTransfer_Item", HFILL }},
{ &hf_s1ap_BroadcastCompletedAreaList_PDU,
{ "BroadcastCompletedAreaList", "s1ap.BroadcastCompletedAreaList",
- FT_NONE, BASE_NONE, NULL, 0,
+ FT_UINT32, BASE_DEC, VALS(s1ap_BroadcastCompletedAreaList_vals), 0,
"s1ap.BroadcastCompletedAreaList", HFILL }},
{ &hf_s1ap_Cause_PDU,
{ "Cause", "s1ap.Cause",
{ "ENBname", "s1ap.ENBname",
FT_STRING, BASE_NONE, NULL, 0,
"s1ap.ENBname", HFILL }},
+ { &hf_s1ap_E_RABInformationListItem_PDU,
+ { "E-RABInformationListItem", "s1ap.E_RABInformationListItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "s1ap.E_RABInformationListItem", HFILL }},
+ { &hf_s1ap_E_RABList_PDU,
+ { "E-RABList", "s1ap.E_RABList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "s1ap.E_RABList", HFILL }},
+ { &hf_s1ap_E_RABItem_PDU,
+ { "E-RABItem", "s1ap.E_RABItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "s1ap.E_RABItem", HFILL }},
{ &hf_s1ap_EUTRAN_CGI_PDU,
{ "EUTRAN-CGI", "s1ap.EUTRAN_CGI",
FT_NONE, BASE_NONE, NULL, 0,
{ "RRC-Establishment-Cause", "s1ap.RRC_Establishment_Cause",
FT_UINT32, BASE_DEC, VALS(s1ap_RRC_Establishment_Cause_vals), 0,
"s1ap.RRC_Establishment_Cause", HFILL }},
- { &hf_s1ap_E_RABInformationListItem_PDU,
- { "E-RABInformationListItem", "s1ap.E_RABInformationListItem",
- FT_NONE, BASE_NONE, NULL, 0,
- "s1ap.E_RABInformationListItem", HFILL }},
- { &hf_s1ap_E_RABList_PDU,
- { "E-RABList", "s1ap.E_RABList",
- FT_UINT32, BASE_DEC, NULL, 0,
- "s1ap.E_RABList", HFILL }},
- { &hf_s1ap_E_RABItem_PDU,
- { "E-RABItem", "s1ap.E_RABItem",
- FT_NONE, BASE_NONE, NULL, 0,
- "s1ap.E_RABItem", HFILL }},
{ &hf_s1ap_SecurityKey_PDU,
{ "SecurityKey", "s1ap.SecurityKey",
FT_BYTES, BASE_HEX, NULL, 0,
{ "PLMNidentity", "s1ap.PLMNidentity",
FT_BYTES, BASE_HEX, NULL, 0,
"s1ap.PLMNidentity", HFILL }},
+ { &hf_s1ap_dL_Forwarding,
+ { "dL-Forwarding", "s1ap.dL_Forwarding",
+ FT_UINT32, BASE_DEC, VALS(s1ap_DL_Forwarding_vals), 0,
+ "s1ap.DL_Forwarding", HFILL }},
+ { &hf_s1ap_E_RABList_item,
+ { "ProtocolIE-SingleContainer", "s1ap.ProtocolIE_SingleContainer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "s1ap.ProtocolIE_SingleContainer", HFILL }},
+ { &hf_s1ap_cause,
+ { "cause", "s1ap.cause",
+ FT_UINT32, BASE_DEC, VALS(s1ap_Cause_vals), 0,
+ "s1ap.Cause", HFILL }},
+ { &hf_s1ap_qCI,
+ { "qCI", "s1ap.qCI",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "s1ap.QCI", HFILL }},
+ { &hf_s1ap_allocationRetentionPriority,
+ { "allocationRetentionPriority", "s1ap.allocationRetentionPriority",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "s1ap.AllocationAndRetentionPriority", HFILL }},
+ { &hf_s1ap_gbrQosInformation,
+ { "gbrQosInformation", "s1ap.gbrQosInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "s1ap.GBR_QosInformation", HFILL }},
{ &hf_s1ap_cell_ID,
{ "cell-ID", "s1ap.cell_ID",
FT_BYTES, BASE_HEX, NULL, 0,
{ "gERAN-Cell-ID", "s1ap.gERAN_Cell_ID",
FT_NONE, BASE_NONE, NULL, 0,
"s1ap.GERAN_Cell_ID", HFILL }},
- { &hf_s1ap_dL_Forwarding,
- { "dL-Forwarding", "s1ap.dL_Forwarding",
- FT_UINT32, BASE_DEC, VALS(s1ap_DL_Forwarding_vals), 0,
- "s1ap.DL_Forwarding", HFILL }},
- { &hf_s1ap_E_RABList_item,
- { "ProtocolIE-SingleContainer", "s1ap.ProtocolIE_SingleContainer",
- FT_NONE, BASE_NONE, NULL, 0,
- "s1ap.ProtocolIE_SingleContainer", HFILL }},
- { &hf_s1ap_cause,
- { "cause", "s1ap.cause",
- FT_UINT32, BASE_DEC, VALS(s1ap_Cause_vals), 0,
- "s1ap.Cause", HFILL }},
- { &hf_s1ap_qCI,
- { "qCI", "s1ap.qCI",
+ { &hf_s1ap_nextHopChainingCount,
+ { "nextHopChainingCount", "s1ap.nextHopChainingCount",
FT_UINT32, BASE_DEC, NULL, 0,
- "s1ap.QCI", HFILL }},
- { &hf_s1ap_allocationRetentionPriority,
- { "allocationRetentionPriority", "s1ap.allocationRetentionPriority",
- FT_NONE, BASE_NONE, NULL, 0,
- "s1ap.AllocationAndRetentionPriority", HFILL }},
- { &hf_s1ap_gbrQosInformation,
- { "gbrQosInformation", "s1ap.gbrQosInformation",
- FT_NONE, BASE_NONE, NULL, 0,
- "s1ap.GBR_QosInformation", HFILL }},
+ "s1ap.INTEGER_0_7", HFILL }},
{ &hf_s1ap_nextHopParameter,
{ "nextHopParameter", "s1ap.nextHopParameter",
- FT_UINT32, BASE_DEC, NULL, 0,
- "s1ap.INTEGER_0_7", HFILL }},
- { &hf_s1ap_nextHopChainingCount,
- { "nextHopChainingCount", "s1ap.nextHopChainingCount",
FT_BYTES, BASE_HEX, NULL, 0,
"s1ap.SecurityKey", HFILL }},
{ &hf_s1ap_sONInformationRequest,
{ "mMEC", "s1ap.mMEC",
FT_BYTES, BASE_HEX, NULL, 0,
"s1ap.MME_Code", HFILL }},
+ { &hf_s1ap_m_TMSI,
+ { "m-TMSI", "s1ap.m_TMSI",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "s1ap.M_TMSI", HFILL }},
{ &hf_s1ap_TAIListforWarning_item,
{ "TAI", "s1ap.TAI",
FT_NONE, BASE_NONE, NULL, 0,
&ett_s1ap_ENB_StatusTransfer_TransparentContainer,
&ett_s1ap_ENBX2TLAs,
&ett_s1ap_EPLMNs,
+ &ett_s1ap_E_RABInformationListItem,
+ &ett_s1ap_E_RABList,
+ &ett_s1ap_E_RABItem,
+ &ett_s1ap_E_RABLevelQoSParameters,
&ett_s1ap_EUTRAN_CGI,
&ett_s1ap_ForbiddenTAs,
&ett_s1ap_ForbiddenTAs_Item,
&ett_s1ap_RequestType,
&ett_s1ap_RIMTransfer,
&ett_s1ap_RIMRoutingAddress,
- &ett_s1ap_E_RABInformationListItem,
- &ett_s1ap_E_RABList,
- &ett_s1ap_E_RABItem,
- &ett_s1ap_E_RABLevelQoSParameters,
&ett_s1ap_SecurityContext,
&ett_s1ap_SONInformation,
&ett_s1ap_SONInformationReply,