- Remove check_col.

- Make x2ap work.

svn path=/trunk/; revision=30746
This commit is contained in:
Anders Broman 2009-10-28 06:18:05 +00:00
parent 191f468caf
commit d5cfd0edc9
8 changed files with 190 additions and 170 deletions

View File

@ -76,10 +76,9 @@ ProtocolIE-ContainerPairList
#.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
@ -344,41 +343,41 @@ RL-InformationResponse-RL-AdditionRspTDD N nbap.ies id-RL-InformationResponse-RL
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

View File

@ -80,10 +80,9 @@ ProtocolIE-Field/value ie_field_value
#.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
@ -555,11 +554,11 @@ ConcurrentWarningMessageIndicator N s1ap.ies id-ConcurrentWarningMessageIndicat
#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

View File

@ -42,6 +42,7 @@
#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" */
@ -98,20 +99,17 @@ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_in
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
@ -158,9 +156,9 @@ void proto_register_x2ap(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);
}

View File

@ -15,11 +15,9 @@ ALIGNED
#.PDU
X2AP-PDU
#.MAKE_DEFINES
ProcedureCode
#.MAKE_ENUM
ProtocolIE-ID
ProcedureCode
#.TYPE_RENAME
@ -48,6 +46,11 @@ ProtocolIE-ContainerPairList
#.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
@ -55,10 +58,9 @@ ProtocolIE-ContainerPairList
#.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
@ -72,9 +74,21 @@ ProtocolIE-ContainerPairList
#.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, &parameter_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
@ -188,36 +202,36 @@ Number-of-Antennaports N x2ap.extension id-Number-of-Antennaports
# 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

View File

@ -5866,10 +5866,9 @@ dissect_nbap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
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;
}
@ -5900,7 +5899,7 @@ static const per_sequence_t ProcedureID_sequence[] = {
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;
@ -5908,7 +5907,7 @@ dissect_nbap_ProcedureID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
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)"));
@ -8942,7 +8941,7 @@ dissect_nbap_TransportBearerRequestIndicator(tvbuff_t *tvb _U_, int offset _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;

View File

@ -1010,10 +1010,9 @@ dissect_s1ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
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;
}
@ -1245,7 +1244,7 @@ static const per_sequence_t ProtocolIE_ContainerList_sequence_of[1] = {
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 },
@ -1508,7 +1507,7 @@ dissect_s1ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
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,
@ -2654,7 +2653,7 @@ dissect_s1ap_ENB_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
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;
@ -2687,7 +2686,7 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
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;
@ -3255,7 +3254,7 @@ dissect_s1ap_MSClassmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
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;
@ -4134,7 +4133,7 @@ dissect_s1ap_WarningMessageContents(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
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);
@ -4968,7 +4967,7 @@ static const per_sequence_t DownlinkNASTransport_sequence[] = {
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;
@ -4987,7 +4986,7 @@ static const per_sequence_t InitialUEMessage_sequence[] = {
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;
@ -5006,7 +5005,7 @@ static const per_sequence_t UplinkNASTransport_sequence[] = {
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;

View File

@ -3528,7 +3528,7 @@ dissect_sctp_chunk(tvbuff_t *chunk_tvb,
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) {
@ -3646,7 +3646,7 @@ dissect_sctp_chunk(tvbuff_t *chunk_tvb,
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;
@ -3863,8 +3863,7 @@ dissect_sctp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
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));

View File

@ -50,6 +50,7 @@
#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" */
@ -84,19 +85,20 @@
#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,
@ -143,7 +145,7 @@ typedef enum _ProtocolIE_ID_enum {
} 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;
@ -377,7 +379,7 @@ static int hf_x2ap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */
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;
@ -487,7 +489,7 @@ static gint ett_x2ap_SuccessfulOutcome = -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;
@ -570,35 +572,34 @@ dissect_x2ap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
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;
}
@ -655,6 +656,11 @@ dissect_x2ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
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;
}
@ -918,8 +924,18 @@ dissect_x2ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
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, &parameter_tvb);
if(tvb_length(tvb)==0)
return offset;
if (!parameter_tvb)
return offset;
dissect_e212_mcc_mnc(parameter_tvb, tree, 0);
return offset;
}
@ -3738,7 +3754,7 @@ static void dissect_X2AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
/*--- 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)
{
@ -3752,20 +3768,17 @@ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_in
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
@ -4691,7 +4704,7 @@ void proto_register_x2ap(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 */
@ -4802,7 +4815,7 @@ void proto_register_x2ap(void) {
&ett_x2ap_UnsuccessfulOutcome,
/*--- End of included file: packet-x2ap-ettarr.c ---*/
#line 146 "packet-x2ap-template.c"
#line 144 "packet-x2ap-template.c"
};
@ -4818,9 +4831,9 @@ void proto_register_x2ap(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);
}
@ -4878,31 +4891,31 @@ proto_reg_handoff_x2ap(void)
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"
}