#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
#.FN_FTR ProcedureCode
- if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(ProcedureCode, nbap_ProcedureCode_vals,
- "unknown message"));
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, nbap_ProcedureCode_vals,
+ "unknown message"));
#.END
#.FN_PARS ProcedureID/ddMode VAL_PTR = &ddMode
CauseLevel-RL-AdditionFailureFDD N nbap.ies id-CauseLevel-RL-AdditionFailureFDD
Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD N nbap.ies id-Unsuccessful-RL-InformationRespItem-RL-AdditionFailureFDD
Successful-RL-InformationRespItem-RL-AdditionFailureFDD N nbap.ies id-Successful-RL-InformationRespItem-RL-AdditionFailureFDD
-CauseLevel-RL-AdditionFailureTDD N nbap.ies id-CauseLevel-RL-AdditionFailureTDD
+CauseLevel-RL-AdditionFailureTDD N nbap.ies id-CauseLevel-RL-AdditionFailureTDD
Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD N nbap.ies id-Unsuccessful-RL-InformationResp-RL-AdditionFailureTDD
-UL-DPCH-Information-RL-ReconfPrepFDD N nbap.ies id-UL-DPCH-Information-RL-ReconfPrepFDD
-DL-DPCH-Information-RL-ReconfPrepFDD N nbap.ies id-DL-DPCH-Information-RL-ReconfPrepFDD
-FDD-DCHs-to-Modify N nbap.ies id-FDD-DCHs-to-Modify
-DCH-FDD-Information N nbap.ies id-DCHs-to-Add-FDD
-DCH-DeleteList-RL-ReconfPrepFDD N nbap.ies id-DCH-DeleteList-RL-ReconfPrepFDD
-RL-InformationList-RL-ReconfPrepFDD N nbap.ies id-RL-InformationList-RL-ReconfPrepFDD
-RL-InformationItem-RL-ReconfPrepFDD N nbap.ies id-RL-InformationItem-RL-ReconfPrepFDD
-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD N nbap.ies id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD
-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD N nbap.ies id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD
-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD N nbap.ies id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD
-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD N nbap.ies id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD
-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD N nbap.ies id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD
-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD N nbap.ies id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD
-TDD-DCHs-to-Modify N nbap.ies id-TDD-DCHs-to-Modify
-DCH-TDD-Information N nbap.ies id-DCHs-to-Add-TDD
-DCH-DeleteList-RL-ReconfPrepTDD N nbap.ies id-DCH-DeleteList-RL-ReconfPrepTDD
-DSCH-Information-ModifyList-RL-ReconfPrepTDD N nbap.ies id-DSCH-Information-ModifyList-RL-ReconfPrepTDD
-DSCH-TDD-Information N nbap.ies id-DSCHs-to-Add-TDD
-DSCH-Information-DeleteList-RL-ReconfPrepTDD N nbap.ies id-DSCH-Information-DeleteList-RL-ReconfPrepTDD
-USCH-Information-ModifyList-RL-ReconfPrepTDD N nbap.ies id-USCH-Information-ModifyList-RL-ReconfPrepTDD
-USCH-Information N nbap.ies id-USCH-Information-Add
-USCH-Information-DeleteList-RL-ReconfPrepTDD N nbap.ies id-USCH-Information-DeleteList-RL-ReconfPrepTDD
-RL-Information-RL-ReconfPrepTDD N nbap.ies id-RL-Information-RL-ReconfPrepTDD
-UL-DPCH-InformationAddItem-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
-UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD
+UL-DPCH-Information-RL-ReconfPrepFDD N nbap.ies id-UL-DPCH-Information-RL-ReconfPrepFDD
+DL-DPCH-Information-RL-ReconfPrepFDD N nbap.ies id-DL-DPCH-Information-RL-ReconfPrepFDD
+FDD-DCHs-to-Modify N nbap.ies id-FDD-DCHs-to-Modify
+DCH-FDD-Information N nbap.ies id-DCHs-to-Add-FDD
+DCH-DeleteList-RL-ReconfPrepFDD N nbap.ies id-DCH-DeleteList-RL-ReconfPrepFDD
+RL-InformationList-RL-ReconfPrepFDD N nbap.ies id-RL-InformationList-RL-ReconfPrepFDD
+RL-InformationItem-RL-ReconfPrepFDD N nbap.ies id-RL-InformationItem-RL-ReconfPrepFDD
+UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD N nbap.ies id-UL-CCTrCH-InformationAddList-RL-ReconfPrepTDD
+UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD N nbap.ies id-UL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD
+UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD N nbap.ies id-UL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD
+DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD N nbap.ies id-DL-CCTrCH-InformationAddList-RL-ReconfPrepTDD
+DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD N nbap.ies id-DL-CCTrCH-InformationModifyList-RL-ReconfPrepTDD
+DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD N nbap.ies id-DL-CCTrCH-InformationDeleteList-RL-ReconfPrepTDD
+TDD-DCHs-to-Modify N nbap.ies id-TDD-DCHs-to-Modify
+DCH-TDD-Information N nbap.ies id-DCHs-to-Add-TDD
+DCH-DeleteList-RL-ReconfPrepTDD N nbap.ies id-DCH-DeleteList-RL-ReconfPrepTDD
+DSCH-Information-ModifyList-RL-ReconfPrepTDD N nbap.ies id-DSCH-Information-ModifyList-RL-ReconfPrepTDD
+DSCH-TDD-Information N nbap.ies id-DSCHs-to-Add-TDD
+DSCH-Information-DeleteList-RL-ReconfPrepTDD N nbap.ies id-DSCH-Information-DeleteList-RL-ReconfPrepTDD
+USCH-Information-ModifyList-RL-ReconfPrepTDD N nbap.ies id-USCH-Information-ModifyList-RL-ReconfPrepTDD
+USCH-Information N nbap.ies id-USCH-Information-Add
+USCH-Information-DeleteList-RL-ReconfPrepTDD N nbap.ies id-USCH-Information-DeleteList-RL-ReconfPrepTDD
+RL-Information-RL-ReconfPrepTDD N nbap.ies id-RL-Information-RL-ReconfPrepTDD
+UL-DPCH-InformationAddItem-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+UL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD
UL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD
UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD N nbap.ies id-UL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD
-DL-DPCH-InformationAddItem-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
-DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD
+DL-DPCH-InformationAddItem-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationAddListIE-RL-ReconfPrepTDD
+DL-DPCH-InformationModify-AddItem-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationModify-AddListIE-RL-ReconfPrepTDD
DL-DPCH-InformationModify-ModifyItem-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationModify-ModifyListIE-RL-ReconfPrepTDD
DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD N nbap.ies id-DL-DPCH-InformationModify-DeleteListIE-RL-ReconfPrepTDD
-RL-InformationResponseList-RL-ReconfReady N nbap.ies id-RL-InformationResponseList-RL-ReconfReady
-RL-InformationResponseItem-RL-ReconfReady N nbap.ies id-RL-InformationResponseItem-RL-ReconfReady
+RL-InformationResponseList-RL-ReconfReady N nbap.ies id-RL-InformationResponseList-RL-ReconfReady
+RL-InformationResponseItem-RL-ReconfReady N nbap.ies id-RL-InformationResponseItem-RL-ReconfReady
CauseLevel-RL-ReconfFailure N nbap.ies id-CauseLevel-RL-ReconfFailure
RL-ReconfigurationFailureItem-RL-ReconfFailure N nbap.ies id-RL-ReconfigurationFailureItem-RL-ReconfFailure
CFN N nbap.ies id-CFN
#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
#.FN_FTR ProcedureCode
- if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(ProcedureCode, s1ap_ProcedureCode_vals,
- "unknown message"));
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, s1ap_ProcedureCode_vals,
+ "unknown message"));
#.END
#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
#RAB-SetupOrModifyItemFirst N s1ap.ies.pair.first id-RAB-SetupOrModifyItem
#RAB-SetupOrModifyItemSecond N s1ap.ies.pair.second id-RAB-SetupOrModifyItem
-#NBAP-PROTOCOL-EXTENSION
+#S1AP-PROTOCOL-EXTENSION
#RAB-Parameters N s1ap.extension id-AlternativeRABConfiguration
#Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf N s1ap.extension id-Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf
-#NBAP-ELEMENTARY-PROCEDURE
+#S1AP-ELEMENTARY-PROCEDURE
HandoverRequired N s1ap.proc.imsg id-HandoverPreparation
HandoverCommand N s1ap.proc.sout id-HandoverPreparation
HandoverPreparationFailure N s1ap.proc.uout id-HandoverPreparation
#include <epan/sctpppids.h>
#include "packet-per.h"
+#include "packet-e212.h"
#ifdef _MSC_VER
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- if (!ProcedureID) return 0;
- return (dissector_try_string(x2ap_proc_imsg_dissector_table, ProcedureID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+ return (dissector_try_port(x2ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
}
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- if (!ProcedureID) return 0;
- return (dissector_try_string(x2ap_proc_sout_dissector_table, ProcedureID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+ return (dissector_try_port(x2ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
}
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- if (!ProcedureID) return 0;
- return (dissector_try_string(x2ap_proc_uout_dissector_table, ProcedureID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+ return (dissector_try_port(x2ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
}
static void
/* Register dissector tables */
x2ap_ies_dissector_table = register_dissector_table("x2ap.ies", "X2AP-PROTOCOL-IES", FT_UINT32, BASE_DEC);
x2ap_extension_dissector_table = register_dissector_table("x2ap.extension", "X2AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC);
- x2ap_proc_imsg_dissector_table = register_dissector_table("x2ap.proc.imsg", "X2AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_STRING, BASE_NONE);
- x2ap_proc_sout_dissector_table = register_dissector_table("x2ap.proc.sout", "X2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_STRING, BASE_NONE);
- x2ap_proc_uout_dissector_table = register_dissector_table("x2ap.proc.uout", "X2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_STRING, BASE_NONE);
+ x2ap_proc_imsg_dissector_table = register_dissector_table("x2ap.proc.imsg", "X2AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC);
+ x2ap_proc_sout_dissector_table = register_dissector_table("x2ap.proc.sout", "X2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC);
+ x2ap_proc_uout_dissector_table = register_dissector_table("x2ap.proc.uout", "X2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC);
}
#.PDU
X2AP-PDU
-#.MAKE_DEFINES
-ProcedureCode
-
#.MAKE_ENUM
ProtocolIE-ID
+ProcedureCode
#.TYPE_RENAME
#.END
#.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
+#.FN_FTR ProtocolIE-ID
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(x2ap_ProtocolIE_ID_vals), "unknown (%d)"));
+ }
+#.END
#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
#.FN_FTR ProcedureCode
- if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(ProcedureCode, x2ap_ProcedureCode_vals,
- "unknown message"));
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, x2ap_ProcedureCode_vals,
+ "unknown message"));
#.END
#.FN_HDR ProcedureCode
#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
-
+#.FN_BODY PLMN-Identity VAL_PTR = parameter_tvb
+ tvbuff_t *parameter_tvb=NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, ¶meter_tvb);
+ if(tvb_length(tvb)==0)
+ return offset;
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, tree, 0);
+#.END
#.TYPE_ATTR
+ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(x2ap_ProtocolIE_ID_vals)
#.END
# Handle 64 bit constraint
# X2AP-PDU-Descriptions.asn Interface Elementary Procedures
#X2AP-ELEMENTARY-PROCEDURE
-HandoverRequest S x2ap.proc.imsg "id-handoverPreparation"
-HandoverRequestAcknowledge S x2ap.proc.sout "id-handoverPreparation"
-HandoverPreparationFailure S x2ap.proc.uout "id-handoverPreparation"
+HandoverRequest N x2ap.proc.imsg id-handoverPreparation
+HandoverRequestAcknowledge N x2ap.proc.sout id-handoverPreparation
+HandoverPreparationFailure N x2ap.proc.uout id-handoverPreparation
-SNStatusTransfer S x2ap.proc.imsg "id-snStatusTransfer"
+SNStatusTransfer N x2ap.proc.imsg id-snStatusTransfer
-UEContextRelease S x2ap.proc.imsg "id-uEContextRelease"
+UEContextRelease N x2ap.proc.imsg id-uEContextRelease
-HandoverCancel S x2ap.proc.imsg "id-handoverCancel"
+HandoverCancel N x2ap.proc.imsg id-handoverCancel
-ErrorIndication S x2ap.proc.imsg "id-errorIndication"
+ErrorIndication N x2ap.proc.imsg id-errorIndication
-ResetRequest S x2ap.proc.imsg "id-reset"
-ResetResponse S x2ap.proc.sout "id-reset"
+ResetRequest N x2ap.proc.imsg id-reset
+ResetResponse N x2ap.proc.sout id-reset
-X2SetupRequest S x2ap.proc.imsg "id-x2Setup"
-X2SetupResponse S x2ap.proc.sout "id-x2Setup"
-X2SetupFailure S x2ap.proc.uout "id-x2Setup"
+X2SetupRequest N x2ap.proc.imsg id-x2Setup
+X2SetupResponse N x2ap.proc.sout id-x2Setup
+X2SetupFailure N x2ap.proc.uout id-x2Setup
-LoadInformation S x2ap.proc.imsg "id-loadIndication"
+LoadInformation N x2ap.proc.imsg id-loadIndication
-ENBConfigurationUpdate S x2ap.proc.imsg "id-eNBConfigurationUpdate"
-ENBConfigurationUpdateAcknowledge S x2ap.proc.sout "id-eNBConfigurationUpdate"
-ENBConfigurationUpdateFailure S x2ap.proc.uout "id-eNBConfigurationUpdate"
+ENBConfigurationUpdate N x2ap.proc.imsg id-eNBConfigurationUpdate
+ENBConfigurationUpdateAcknowledge N x2ap.proc.sout id-eNBConfigurationUpdate
+ENBConfigurationUpdateFailure N x2ap.proc.uout id-eNBConfigurationUpdate
-ResourceStatusRequest S x2ap.proc.imsg "id-resourceStatusReportingInitiation"
-ResourceStatusResponse S x2ap.proc.sout "id-resourceStatusReportingInitiation"
-ResourceStatusFailure S x2ap.proc.uout "id-resourceStatusReportingInitiation"
+ResourceStatusRequest N x2ap.proc.imsg id-resourceStatusReportingInitiation
+ResourceStatusResponse N x2ap.proc.sout id-resourceStatusReportingInitiation
+ResourceStatusFailure N x2ap.proc.uout id-resourceStatusReportingInitiation
-ResourceStatusUpdate S x2ap.proc.imsg "id-resourceStatusReporting"
+ResourceStatusUpdate N x2ap.proc.imsg id-resourceStatusReporting
-PrivateMessage S x2ap.proc.imsg "id-privateMessage"
+PrivateMessage N x2ap.proc.imsg id-privateMessage
#.END
0U, 255U, &ProcedureCode, FALSE);
#line 79 "nbap.cnf"
- if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(ProcedureCode, nbap_ProcedureCode_vals,
- "unknown message"));
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, nbap_ProcedureCode_vals,
+ "unknown message"));
return offset;
}
static int
dissect_nbap_ProcedureID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 87 "nbap.cnf"
+#line 86 "nbap.cnf"
ProcedureCode = 0xFFFF;
ddMode = 0xFFFF;
ProcedureID = NULL;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_ProcedureID, ProcedureID_sequence);
-#line 93 "nbap.cnf"
+#line 92 "nbap.cnf"
ProcedureID = ep_strdup_printf("%s/%s",
val_to_str(ProcedureCode, VALS(nbap_ProcedureCode_vals), "unknown(%u)"),
val_to_str(ddMode, VALS(nbap_DdMode_vals), "unknown(%u)"));
static int
dissect_nbap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 105 "nbap.cnf"
+#line 104 "nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
gint tvb_len;
0U, 255U, &ProcedureCode, FALSE);
#line 83 "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,
- "unknown message"));
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, s1ap_ProcedureCode_vals,
+ "unknown message"));
return offset;
}
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 105 "s1ap.cnf"
+#line 104 "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 167 "s1ap.cnf"
+#line 166 "s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
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 179 "s1ap.cnf"
+#line 178 "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 214 "s1ap.cnf"
+#line 213 "s1ap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
gint tvb_len;
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 205 "s1ap.cnf"
+#line 204 "s1ap.cnf"
tvbuff_t *parameter_tvb=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 132 "s1ap.cnf"
+#line 131 "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 241 "s1ap.cnf"
+#line 240 "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 237 "s1ap.cnf"
+#line 236 "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 245 "s1ap.cnf"
+#line 244 "s1ap.cnf"
/* Set the direction of the message */
actx->pinfo->link_dir=P2P_DIR_UL;
length = tvb_get_ntohs(chunk_tvb, CHUNK_LENGTH_OFFSET);
padding_length = tvb_length(chunk_tvb) - length;
- if (useinfo && (check_col(pinfo->cinfo, COL_INFO)))
+ if (useinfo)
col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str(type, chunk_type_values, "RESERVED"));
if (tree) {
if (padding_length > 0)
proto_tree_add_item(chunk_tree, hf_chunk_padding, chunk_tvb, CHUNK_HEADER_OFFSET + length, padding_length, NETWORK_BYTE_ORDER);
- if (useinfo && ((type == SCTP_DATA_CHUNK_ID) || show_always_control_chunks) && check_col(pinfo->cinfo, COL_INFO))
+ if (useinfo && ((type == SCTP_DATA_CHUNK_ID) || show_always_control_chunks))
col_set_fence(pinfo->cinfo, COL_INFO);
return result;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "SCTP");
/* Clear entries in Info column on summary display */
- if (check_col(pinfo->cinfo, COL_INFO))
- col_set_str(pinfo->cinfo, COL_INFO, "");
+ col_set_str(pinfo->cinfo, COL_INFO, "");
memset(&pinfo->ppids, 0, sizeof(pinfo->ppids));
#include <epan/sctpppids.h>
#include "packet-per.h"
+#include "packet-e212.h"
#ifdef _MSC_VER
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
#define maxPools 16
#define maxnoofCells 16
-/* enumerated values for ProcedureCode */
-#define X2AP_ID_HANDOVERPREPARATION 0
-#define X2AP_ID_HANDOVERCANCEL 1
-#define X2AP_ID_LOADINDICATION 2
-#define X2AP_ID_ERRORINDICATION 3
-#define X2AP_ID_SNSTATUSTRANSFER 4
-#define X2AP_ID_UECONTEXTRELEASE 5
-#define X2AP_ID_X2SETUP 6
-#define X2AP_ID_RESET 7
-#define X2AP_ID_ENBCONFIGURATIONUPDATE 8
-#define X2AP_ID_RESOURCESTATUSREPORTINGINITIATION 9
-#define X2AP_ID_RESOURCESTATUSREPORTING 10
-#define X2AP_ID_PRIVATEMESSAGE 11
+typedef enum _ProcedureCode_enum {
+ id_handoverPreparation = 0,
+ id_handoverCancel = 1,
+ id_loadIndication = 2,
+ id_errorIndication = 3,
+ id_snStatusTransfer = 4,
+ id_uEContextRelease = 5,
+ id_x2Setup = 6,
+ id_reset = 7,
+ id_eNBConfigurationUpdate = 8,
+ id_resourceStatusReportingInitiation = 9,
+ id_resourceStatusReporting = 10,
+ id_privateMessage = 11
+} ProcedureCode_enum;
typedef enum _ProtocolIE_ID_enum {
id_E_RABs_Admitted_Item = 0,
} ProtocolIE_ID_enum;
/*--- End of included file: packet-x2ap-val.h ---*/
-#line 58 "packet-x2ap-template.c"
+#line 59 "packet-x2ap-template.c"
/* Initialize the protocol and registered fields */
static int proto_x2ap = -1;
static int hf_x2ap_value = -1; /* UnsuccessfulOutcome_value */
/*--- End of included file: packet-x2ap-hf.c ---*/
-#line 63 "packet-x2ap-template.c"
+#line 64 "packet-x2ap-template.c"
/* Initialize the subtree pointers */
static int ett_x2ap = -1;
static gint ett_x2ap_UnsuccessfulOutcome = -1;
/*--- End of included file: packet-x2ap-ett.c ---*/
-#line 68 "packet-x2ap-template.c"
+#line 69 "packet-x2ap-template.c"
/* Global variables */
static guint32 ProcedureCode;
static const value_string x2ap_ProcedureCode_vals[] = {
- { X2AP_ID_HANDOVERPREPARATION, "id-handoverPreparation" },
- { X2AP_ID_HANDOVERCANCEL, "id-handoverCancel" },
- { X2AP_ID_LOADINDICATION, "id-loadIndication" },
- { X2AP_ID_ERRORINDICATION, "id-errorIndication" },
- { X2AP_ID_SNSTATUSTRANSFER, "id-snStatusTransfer" },
- { X2AP_ID_UECONTEXTRELEASE, "id-uEContextRelease" },
- { X2AP_ID_X2SETUP, "id-x2Setup" },
- { X2AP_ID_RESET, "id-reset" },
- { X2AP_ID_ENBCONFIGURATIONUPDATE, "id-eNBConfigurationUpdate" },
- { X2AP_ID_RESOURCESTATUSREPORTINGINITIATION, "id-resourceStatusReportingInitiation" },
- { X2AP_ID_RESOURCESTATUSREPORTING, "id-resourceStatusReporting" },
- { X2AP_ID_PRIVATEMESSAGE, "id-privateMessage" },
+ { id_handoverPreparation, "id-handoverPreparation" },
+ { id_handoverCancel, "id-handoverCancel" },
+ { id_loadIndication, "id-loadIndication" },
+ { id_errorIndication, "id-errorIndication" },
+ { id_snStatusTransfer, "id-snStatusTransfer" },
+ { id_uEContextRelease, "id-uEContextRelease" },
+ { id_x2Setup, "id-x2Setup" },
+ { id_reset, "id-reset" },
+ { id_eNBConfigurationUpdate, "id-eNBConfigurationUpdate" },
+ { id_resourceStatusReportingInitiation, "id-resourceStatusReportingInitiation" },
+ { id_resourceStatusReporting, "id-resourceStatusReporting" },
+ { id_privateMessage, "id-privateMessage" },
{ 0, NULL }
};
static int
dissect_x2ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 65 "x2ap.cnf"
+#line 67 "x2ap.cnf"
ProcedureCode = 0xFFFF;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 58 "x2ap.cnf"
- if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(ProcedureCode, x2ap_ProcedureCode_vals,
- "unknown message"));
+#line 61 "x2ap.cnf"
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, x2ap_ProcedureCode_vals,
+ "unknown message"));
return offset;
}
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
+#line 50 "x2ap.cnf"
+ if (tree) {
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(x2ap_ProtocolIE_ID_vals), "unknown (%d)"));
+ }
+
return offset;
}
static int
dissect_x2ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 78 "x2ap.cnf"
+ tvbuff_t *parameter_tvb=NULL;
+
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 3, 3, FALSE, NULL);
+ 3, 3, FALSE, ¶meter_tvb);
+ if(tvb_length(tvb)==0)
+ return offset;
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, tree, 0);
+
return offset;
}
/*--- End of included file: packet-x2ap-fn.c ---*/
-#line 88 "packet-x2ap-template.c"
+#line 89 "packet-x2ap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- if (!ProcedureID) return 0;
- return (dissector_try_string(x2ap_proc_imsg_dissector_table, ProcedureID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+ return (dissector_try_port(x2ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
}
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- if (!ProcedureID) return 0;
- return (dissector_try_string(x2ap_proc_sout_dissector_table, ProcedureID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+ return (dissector_try_port(x2ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
}
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- if (!ProcedureID) return 0;
- return (dissector_try_string(x2ap_proc_uout_dissector_table, ProcedureID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
+ return (dissector_try_port(x2ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
}
static void
"x2ap.UnsuccessfulOutcome_value", HFILL }},
/*--- End of included file: packet-x2ap-hfarr.c ---*/
-#line 140 "packet-x2ap-template.c"
+#line 138 "packet-x2ap-template.c"
};
/* List of subtrees */
&ett_x2ap_UnsuccessfulOutcome,
/*--- End of included file: packet-x2ap-ettarr.c ---*/
-#line 146 "packet-x2ap-template.c"
+#line 144 "packet-x2ap-template.c"
};
/* Register dissector tables */
x2ap_ies_dissector_table = register_dissector_table("x2ap.ies", "X2AP-PROTOCOL-IES", FT_UINT32, BASE_DEC);
x2ap_extension_dissector_table = register_dissector_table("x2ap.extension", "X2AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC);
- x2ap_proc_imsg_dissector_table = register_dissector_table("x2ap.proc.imsg", "X2AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_STRING, BASE_NONE);
- x2ap_proc_sout_dissector_table = register_dissector_table("x2ap.proc.sout", "X2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_STRING, BASE_NONE);
- x2ap_proc_uout_dissector_table = register_dissector_table("x2ap.proc.uout", "X2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_STRING, BASE_NONE);
+ x2ap_proc_imsg_dissector_table = register_dissector_table("x2ap.proc.imsg", "X2AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC);
+ x2ap_proc_sout_dissector_table = register_dissector_table("x2ap.proc.sout", "X2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC);
+ x2ap_proc_uout_dissector_table = register_dissector_table("x2ap.proc.uout", "X2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC);
}
dissector_add("x2ap.ies", id_ENB1_Measurement_ID, new_create_dissector_handle(dissect_Measurement_ID_PDU, proto_x2ap));
dissector_add("x2ap.ies", id_ENB2_Measurement_ID, new_create_dissector_handle(dissect_Measurement_ID_PDU, proto_x2ap));
dissector_add("x2ap.extension", id_Number_of_Antennaports, new_create_dissector_handle(dissect_Number_of_Antennaports_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-handoverPreparation", new_create_dissector_handle(dissect_HandoverRequest_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.sout", "id-handoverPreparation", new_create_dissector_handle(dissect_HandoverRequestAcknowledge_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.uout", "id-handoverPreparation", new_create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-snStatusTransfer", new_create_dissector_handle(dissect_SNStatusTransfer_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-uEContextRelease", new_create_dissector_handle(dissect_UEContextRelease_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-handoverCancel", new_create_dissector_handle(dissect_HandoverCancel_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-errorIndication", new_create_dissector_handle(dissect_ErrorIndication_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-reset", new_create_dissector_handle(dissect_ResetRequest_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.sout", "id-reset", new_create_dissector_handle(dissect_ResetResponse_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-x2Setup", new_create_dissector_handle(dissect_X2SetupRequest_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.sout", "id-x2Setup", new_create_dissector_handle(dissect_X2SetupResponse_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.uout", "id-x2Setup", new_create_dissector_handle(dissect_X2SetupFailure_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-loadIndication", new_create_dissector_handle(dissect_LoadInformation_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-eNBConfigurationUpdate", new_create_dissector_handle(dissect_ENBConfigurationUpdate_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.sout", "id-eNBConfigurationUpdate", new_create_dissector_handle(dissect_ENBConfigurationUpdateAcknowledge_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.uout", "id-eNBConfigurationUpdate", new_create_dissector_handle(dissect_ENBConfigurationUpdateFailure_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-resourceStatusReportingInitiation", new_create_dissector_handle(dissect_ResourceStatusRequest_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.sout", "id-resourceStatusReportingInitiation", new_create_dissector_handle(dissect_ResourceStatusResponse_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.uout", "id-resourceStatusReportingInitiation", new_create_dissector_handle(dissect_ResourceStatusFailure_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-resourceStatusReporting", new_create_dissector_handle(dissect_ResourceStatusUpdate_PDU, proto_x2ap));
- dissector_add_string("x2ap.proc.imsg", "id-privateMessage", new_create_dissector_handle(dissect_PrivateMessage_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_handoverPreparation, new_create_dissector_handle(dissect_HandoverRequest_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.sout", id_handoverPreparation, new_create_dissector_handle(dissect_HandoverRequestAcknowledge_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.uout", id_handoverPreparation, new_create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_snStatusTransfer, new_create_dissector_handle(dissect_SNStatusTransfer_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_uEContextRelease, new_create_dissector_handle(dissect_UEContextRelease_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_handoverCancel, new_create_dissector_handle(dissect_HandoverCancel_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_errorIndication, new_create_dissector_handle(dissect_ErrorIndication_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_reset, new_create_dissector_handle(dissect_ResetRequest_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.sout", id_reset, new_create_dissector_handle(dissect_ResetResponse_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_x2Setup, new_create_dissector_handle(dissect_X2SetupRequest_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.sout", id_x2Setup, new_create_dissector_handle(dissect_X2SetupResponse_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.uout", id_x2Setup, new_create_dissector_handle(dissect_X2SetupFailure_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_loadIndication, new_create_dissector_handle(dissect_LoadInformation_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_eNBConfigurationUpdate, new_create_dissector_handle(dissect_ENBConfigurationUpdate_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.sout", id_eNBConfigurationUpdate, new_create_dissector_handle(dissect_ENBConfigurationUpdateAcknowledge_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.uout", id_eNBConfigurationUpdate, new_create_dissector_handle(dissect_ENBConfigurationUpdateFailure_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_resourceStatusReportingInitiation, new_create_dissector_handle(dissect_ResourceStatusRequest_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.sout", id_resourceStatusReportingInitiation, new_create_dissector_handle(dissect_ResourceStatusResponse_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.uout", id_resourceStatusReportingInitiation, new_create_dissector_handle(dissect_ResourceStatusFailure_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_resourceStatusReporting, new_create_dissector_handle(dissect_ResourceStatusUpdate_PDU, proto_x2ap));
+ dissector_add("x2ap.proc.imsg", id_privateMessage, new_create_dissector_handle(dissect_PrivateMessage_PDU, proto_x2ap));
/*--- End of included file: packet-x2ap-dis-tab.c ---*/
-#line 179 "packet-x2ap-template.c"
+#line 177 "packet-x2ap-template.c"
}