Merge remote-tracking branch 'origin/develop' into enhancement-ltem
Conflicts: openair1/PHY/INIT/lte_init.c openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c openair1/PHY/LTE_TRANSPORT/dci.c openair1/PHY/LTE_TRANSPORT/dci_tools.c openair1/PHY/LTE_TRANSPORT/dlsch_coding.c openair1/PHY/LTE_TRANSPORT/edci.c openair1/PHY/LTE_TRANSPORT/if4_tools.c openair1/PHY/LTE_TRANSPORT/prach.c openair1/PHY/LTE_TRANSPORT/print_stats.c openair1/PHY/LTE_TRANSPORT/pucch.c openair1/PHY/LTE_TRANSPORT/transport_eNB.h openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h openair1/PHY/impl_defs_lte.h openair1/SCHED/fapi_l1.c openair1/SCHED/phy_procedures_lte_eNb.c openair2/COMMON/rrc_messages_types.h openair2/ENB_APP/enb_config.c openair2/ENB_APP/enb_paramdef.h openair2/LAYER2/MAC/config.c openair2/LAYER2/MAC/defs.h openair2/LAYER2/MAC/eNB_scheduler.c openair2/LAYER2/MAC/eNB_scheduler_RA.c openair2/LAYER2/MAC/eNB_scheduler_bch.c openair2/LAYER2/MAC/eNB_scheduler_dlsch.c openair2/LAYER2/MAC/eNB_scheduler_primitives.c openair2/LAYER2/MAC/eNB_scheduler_ulsch.c openair2/LAYER2/MAC/pre_processor.c openair2/LAYER2/MAC/rar_tools.c openair2/LAYER2/MAC/ue_procedures.c openair2/PHY_INTERFACE/IF_Module.c openair2/RRC/LITE/rrc_common.c openair2/RRC/LTE/L2_interface_ue.c openair2/RRC/LTE/MESSAGES/asn1_msg.c openair2/RRC/LTE/rrc_eNB.c targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp targets/RT/USER/lte-enb.c targets/RT/USER/lte-ru.c
This commit is contained in:
@@ -1,81 +0,0 @@
|
||||
include Makefile.inc
|
||||
OBJS=$(addprefix MESSAGES/,${ASN_MODULE_SOURCES:.c=.o})
|
||||
|
||||
CFLAGS += -DEMIT_ASN_DEBUG=1
|
||||
CFLAGS += -Wall
|
||||
CFLAGS += -g
|
||||
|
||||
|
||||
OBJS += x2ap_decoder.o
|
||||
OBJS += x2ap_encoder.o
|
||||
OBJS += x2ap_common.o
|
||||
|
||||
#X2AP_SERVER_SRC = sctp_primitives_server.c
|
||||
#X2AP_SERVER_SRC += x2ap_server_main.c
|
||||
#X2AP_SERVER_OBJS = $(X2AP_SERVER_SRC:.c=.o)
|
||||
|
||||
X2AP_CLIENT_SRC = sctp_primitives_client.c
|
||||
X2AP_CLIENT_SRC += x2ap_client_main.c
|
||||
X2AP_CLIENT_OBJS = $(X2AP_CLIENT_SRC:.c=.o)
|
||||
|
||||
|
||||
libx2ap_messages.a:$(OBJS)
|
||||
$(AR) rcsv libx2ap_messages.a $(OBJS)
|
||||
|
||||
asn1fromtool:
|
||||
asn1c -gen-PER -fnative-types -fskeletons-copy X2AP-CommonDataTypes.asn X2AP-Constants.asn X2AP-IEs.asn \
|
||||
X2AP-PDU.asn
|
||||
|
||||
|
||||
asn1fromscript:
|
||||
python ../asn1tostruct.py -f X2AP-PDU-Contents.asn -d
|
||||
|
||||
all: server x2ap_client_main
|
||||
|
||||
server: server.o libx2ap_messages.a generating_messages.o sctp_primitives_client.o x2ap_pdu_decoder.o
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o $@ $^ -lsctp -lpthread libx2ap_messages.a
|
||||
|
||||
|
||||
$(OBJS): %.o : %.c
|
||||
$(CC) $(CFLAGS) -I. -o $@ -c $<
|
||||
|
||||
|
||||
$(X2AP_SERVER_OBJS): %.o : %.c
|
||||
$(CC) -c $(CFLAGS) -I. $< -o $@
|
||||
|
||||
$(X2AP_CLIENT_OBJS): %.o : %.c
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
x2ap_server_main.o: x2ap_server_main.c
|
||||
$(CC) $(CFLAGS) -I. $^ -o $@ -lsctp \
|
||||
-lpthread
|
||||
|
||||
x2ap_client_main: $(X2AP_CLIENT_OBJS)
|
||||
$(CC) $(CFLAGS) $^ -o $@ -lsctp \
|
||||
-lpthread
|
||||
|
||||
server.o: server.c
|
||||
$(CC) $(CFLAGS) -I. $^ -o $@ -lsctp \
|
||||
-lpthread
|
||||
|
||||
|
||||
|
||||
x2ap_pdu_decoder.o: x2ap_pdu_decoder.c
|
||||
$(CC) $(CFLAGS) -I. -o $@ -c $<
|
||||
|
||||
x2ap_pdu_encoder.o: x2ap_pdu_encoder.c
|
||||
$(CC) $(CFLAGS) -I. -o $@ -c $<
|
||||
|
||||
sctp_primitives_server.o: sctp_primitives_server.c
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
|
||||
generating_messages.o: generating_messages.c
|
||||
$(CC) $(CFLAGS) -I. -o $@ -c $<
|
||||
|
||||
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS)
|
||||
|
||||
|
||||
@@ -1,462 +0,0 @@
|
||||
ASN_MODULE_SOURCES= \
|
||||
Criticality.c \
|
||||
Presence.c \
|
||||
PrivateIE-ID.c \
|
||||
ProcedureCode.c \
|
||||
ProtocolIE-ID.c \
|
||||
TriggeringMessage.c \
|
||||
IE-Extensions.c \
|
||||
AS-SecurityInformation.c \
|
||||
AllocationAndRetentionPriority.c \
|
||||
ActivatedCellList.c \
|
||||
ActivatedCellList-Item.c \
|
||||
BitRate.c \
|
||||
BroadcastPLMNs-Item.c \
|
||||
CapacityValue.c \
|
||||
CellCapacityClassValue.c \
|
||||
CellToReport-List.c \
|
||||
CellToReport-Item.c \
|
||||
CellMeasurementResult-List.c \
|
||||
CellMeasurementResult-Item.c \
|
||||
ReportingPeriodicity.c \
|
||||
Cause.c \
|
||||
CauseMisc.c \
|
||||
CauseProtocol.c \
|
||||
CauseRadioNetwork.c \
|
||||
CauseTransport.c \
|
||||
Cell-Size.c \
|
||||
CellInformation-List.c \
|
||||
CellInformation-Item.c \
|
||||
CellType.c \
|
||||
CompositeAvailableCapacityGroup.c \
|
||||
CompositeAvailableCapacity.c \
|
||||
COUNTvalue.c \
|
||||
CriticalityDiagnostics.c \
|
||||
CriticalityDiagnostics-IE-List.c \
|
||||
CriticalityDiagnostics-IE-Elm.c \
|
||||
CRNTI.c \
|
||||
CyclicPrefixDL.c \
|
||||
CyclicPrefixUL.c \
|
||||
DeactivationIndication.c \
|
||||
DL-Forwarding.c \
|
||||
E-RABs-Admitted-List.c \
|
||||
E-RABs-Admitted-Item.c \
|
||||
E-RABs-ToBeSetup-List.c \
|
||||
E-RABs-ToBeSetup-Item.c \
|
||||
E-RABs-SubjectToStatusTransfer-List.c \
|
||||
E-RABs-SubjectToStatusTransfer-Item.c \
|
||||
EARFCN.c \
|
||||
FDD-Info.c \
|
||||
TDD-Info.c \
|
||||
EUTRA-Mode-Info.c \
|
||||
ECGI.c \
|
||||
ENB-ID.c \
|
||||
EncryptionAlgorithms.c \
|
||||
EPLMNs.c \
|
||||
E-RAB-ID.c \
|
||||
E-RAB-Level-QoS-Parameters.c \
|
||||
E-RAB-List.c \
|
||||
E-RAB-Item.c \
|
||||
EUTRANCellIdentifier.c \
|
||||
EUTRANTraceID.c \
|
||||
EventType.c \
|
||||
ForbiddenInterRATs.c \
|
||||
ForbiddenTAs.c \
|
||||
ForbiddenTAs-Item.c \
|
||||
ForbiddenTACs.c \
|
||||
ForbiddenLAs.c \
|
||||
ForbiddenLAs-Item.c \
|
||||
ForbiddenLACs.c \
|
||||
Fourframes.c \
|
||||
GBR-QosInformation.c \
|
||||
GlobalENB-ID.c \
|
||||
GTPtunnelEndpoint.c \
|
||||
GTP-TEI.c \
|
||||
GUGroupIDList.c \
|
||||
GU-Group-ID.c \
|
||||
GUMMEI.c \
|
||||
HandoverReportType.c \
|
||||
HandoverRestrictionList.c \
|
||||
HFN.c \
|
||||
HWLoadIndicator.c \
|
||||
IntegrityProtectionAlgorithms.c \
|
||||
InterfacesToTrace.c \
|
||||
Key-eNodeB-Star.c \
|
||||
LAC.c \
|
||||
LastVisitedCell-Item.c \
|
||||
LastVisitedEUTRANCellInformation.c \
|
||||
LastVisitedUTRANCellInformation.c \
|
||||
LastVisitedGERANCellInformation.c \
|
||||
LoadIndicator.c \
|
||||
LocationReportingInformation.c \
|
||||
MME-Group-ID.c \
|
||||
MME-Code.c \
|
||||
Measurement-ID.c \
|
||||
MBSFN-Subframe-Infolist.c \
|
||||
MBSFN-Subframe-Info.c \
|
||||
MobilityParametersModificationRange.c \
|
||||
MobilityParametersInformation.c \
|
||||
Neighbour-Information.c \
|
||||
Neighbour-Information-Elm.c \
|
||||
NextHopChainingCount.c \
|
||||
Number-of-Antennaports.c \
|
||||
Oneframe.c \
|
||||
PDCP-SN.c \
|
||||
PCI.c \
|
||||
PLMN-Identity.c \
|
||||
PRACH-Configuration.c \
|
||||
Pre-emptionCapability.c \
|
||||
Pre-emptionVulnerability.c \
|
||||
PriorityLevel.c \
|
||||
QCI.c \
|
||||
ReceiveStatusofULPDCPSDUs.c \
|
||||
Registration-Request.c \
|
||||
RelativeNarrowbandTxPower.c \
|
||||
ReportArea.c \
|
||||
ReportCharacteristics.c \
|
||||
RNTP-Threshold.c \
|
||||
RRC-Context.c \
|
||||
RadioResourceStatus.c \
|
||||
DL-GBR-PRB-usage.c \
|
||||
UL-GBR-PRB-usage.c \
|
||||
DL-non-GBR-PRB-usage.c \
|
||||
UL-non-GBR-PRB-usage.c \
|
||||
DL-Total-PRB-usage.c \
|
||||
UL-Total-PRB-usage.c \
|
||||
RadioframeAllocationPeriod.c \
|
||||
RadioframeAllocationOffset.c \
|
||||
S1TNLLoadIndicator.c \
|
||||
ServedCellsToActivate.c \
|
||||
ServedCellsToActivate-Item.c \
|
||||
ServedCellsToModify.c \
|
||||
ServedCellsToModify-Item.c \
|
||||
Old-ECGIs.c \
|
||||
ServedCells.c \
|
||||
ServedCellItem.c \
|
||||
ServedCell-Information.c \
|
||||
ShortMAC-I.c \
|
||||
SRVCCOperationPossible.c \
|
||||
SubframeAssignment.c \
|
||||
SpecialSubframe-Info.c \
|
||||
SpecialSubframePatterns.c \
|
||||
SubscriberProfileIDforRFP.c \
|
||||
SubframeAllocation.c \
|
||||
TAC.c \
|
||||
TargeteNBtoSource-eNBTransparentContainer.c \
|
||||
TimeToWait.c \
|
||||
Time-UE-StayedInCell.c \
|
||||
TraceActivation.c \
|
||||
TraceCollectionEntityIPAddress.c \
|
||||
TraceDepth.c \
|
||||
Transmission-Bandwidth.c \
|
||||
TransportLayerAddress.c \
|
||||
TypeOfError.c \
|
||||
UE-HistoryInformation.c \
|
||||
UE-S1AP-ID.c \
|
||||
UE-ID.c \
|
||||
UEAggregateMaximumBitRate.c \
|
||||
UESecurityCapabilities.c \
|
||||
UE-ContextInformation.c \
|
||||
UL-InterferenceOverloadIndication.c \
|
||||
UL-InterferenceOverloadIndication-Item.c \
|
||||
UL-HighInterferenceIndicationInfo.c \
|
||||
UL-HighInterferenceIndicationInfo-Item.c \
|
||||
UL-HighInterferenceIndication.c \
|
||||
UE-RLF-Report-Container.c \
|
||||
IE.c \
|
||||
PDU.c \
|
||||
InitiatingMessage.c \
|
||||
SuccessfulOutcome.c \
|
||||
UnsuccessfulOutcome.c \
|
||||
HandoverRequest.c \
|
||||
HandoverRequestAcknowledge.c \
|
||||
HandoverPreparationFailure.c \
|
||||
SNStatusTransfer.c \
|
||||
UEContextRelease.c \
|
||||
HandoverCancel.c \
|
||||
HandoverReport.c \
|
||||
ErrorIndication.c \
|
||||
ResetRequest.c \
|
||||
ResetResponse.c \
|
||||
X2SetupRequest.c \
|
||||
X2SetupResponse.c \
|
||||
X2SetupFailure.c \
|
||||
LoadInformation.c \
|
||||
ENBConfigurationUpdate.c \
|
||||
ENBConfigurationUpdateAcknowledge.c \
|
||||
ENBConfigurationUpdateFailure.c \
|
||||
ResourceStatusRequest.c \
|
||||
ResourceStatusResponse.c \
|
||||
ResourceStatusFailure.c \
|
||||
ResourceStatusUpdate.c \
|
||||
RLFIndication.c \
|
||||
PrivateMessage.c \
|
||||
MobilityChangeRequest.c \
|
||||
MobilityChangeAcknowledge.c \
|
||||
MobilityChangeFailure.c \
|
||||
CellActivationRequest.c \
|
||||
CellActivationResponse.c \
|
||||
CellActivationFailure.c
|
||||
|
||||
ASN_MODULE_HEADERS= \
|
||||
Criticality.h \
|
||||
Presence.h \
|
||||
PrivateIE-ID.h \
|
||||
ProcedureCode.h \
|
||||
ProtocolIE-ID.h \
|
||||
TriggeringMessage.h \
|
||||
IE-Extensions.h \
|
||||
AS-SecurityInformation.h \
|
||||
AllocationAndRetentionPriority.h \
|
||||
ActivatedCellList.h \
|
||||
ActivatedCellList-Item.h \
|
||||
BitRate.h \
|
||||
BroadcastPLMNs-Item.h \
|
||||
CapacityValue.h \
|
||||
CellCapacityClassValue.h \
|
||||
CellToReport-List.h \
|
||||
CellToReport-Item.h \
|
||||
CellMeasurementResult-List.h \
|
||||
CellMeasurementResult-Item.h \
|
||||
ReportingPeriodicity.h \
|
||||
Cause.h \
|
||||
CauseMisc.h \
|
||||
CauseProtocol.h \
|
||||
CauseRadioNetwork.h \
|
||||
CauseTransport.h \
|
||||
Cell-Size.h \
|
||||
CellInformation-List.h \
|
||||
CellInformation-Item.h \
|
||||
CellType.h \
|
||||
CompositeAvailableCapacityGroup.h \
|
||||
CompositeAvailableCapacity.h \
|
||||
COUNTvalue.h \
|
||||
CriticalityDiagnostics.h \
|
||||
CriticalityDiagnostics-IE-List.h \
|
||||
CriticalityDiagnostics-IE-Elm.h \
|
||||
CRNTI.h \
|
||||
CyclicPrefixDL.h \
|
||||
CyclicPrefixUL.h \
|
||||
DeactivationIndication.h \
|
||||
DL-Forwarding.h \
|
||||
E-RABs-Admitted-List.h \
|
||||
E-RABs-Admitted-Item.h \
|
||||
E-RABs-ToBeSetup-List.h \
|
||||
E-RABs-ToBeSetup-Item.h \
|
||||
E-RABs-SubjectToStatusTransfer-List.h \
|
||||
E-RABs-SubjectToStatusTransfer-Item.h \
|
||||
EARFCN.h \
|
||||
FDD-Info.h \
|
||||
TDD-Info.h \
|
||||
EUTRA-Mode-Info.h \
|
||||
ECGI.h \
|
||||
ENB-ID.h \
|
||||
EncryptionAlgorithms.h \
|
||||
EPLMNs.h \
|
||||
E-RAB-ID.h \
|
||||
E-RAB-Level-QoS-Parameters.h \
|
||||
E-RAB-List.h \
|
||||
E-RAB-Item.h \
|
||||
EUTRANCellIdentifier.h \
|
||||
EUTRANTraceID.h \
|
||||
EventType.h \
|
||||
ForbiddenInterRATs.h \
|
||||
ForbiddenTAs.h \
|
||||
ForbiddenTAs-Item.h \
|
||||
ForbiddenTACs.h \
|
||||
ForbiddenLAs.h \
|
||||
ForbiddenLAs-Item.h \
|
||||
ForbiddenLACs.h \
|
||||
Fourframes.h \
|
||||
GBR-QosInformation.h \
|
||||
GlobalENB-ID.h \
|
||||
GTPtunnelEndpoint.h \
|
||||
GTP-TEI.h \
|
||||
GUGroupIDList.h \
|
||||
GU-Group-ID.h \
|
||||
GUMMEI.h \
|
||||
HandoverReportType.h \
|
||||
HandoverRestrictionList.h \
|
||||
HFN.h \
|
||||
HWLoadIndicator.h \
|
||||
IntegrityProtectionAlgorithms.h \
|
||||
InterfacesToTrace.h \
|
||||
Key-eNodeB-Star.h \
|
||||
LAC.h \
|
||||
LastVisitedCell-Item.h \
|
||||
LastVisitedEUTRANCellInformation.h \
|
||||
LastVisitedUTRANCellInformation.h \
|
||||
LastVisitedGERANCellInformation.h \
|
||||
LoadIndicator.h \
|
||||
LocationReportingInformation.h \
|
||||
MME-Group-ID.h \
|
||||
MME-Code.h \
|
||||
Measurement-ID.h \
|
||||
MBSFN-Subframe-Infolist.h \
|
||||
MBSFN-Subframe-Info.h \
|
||||
MobilityParametersModificationRange.h \
|
||||
MobilityParametersInformation.h \
|
||||
Neighbour-Information.h \
|
||||
Neighbour-Information-Elm.h \
|
||||
NextHopChainingCount.h \
|
||||
Number-of-Antennaports.h \
|
||||
Oneframe.h \
|
||||
PDCP-SN.h \
|
||||
PCI.h \
|
||||
PLMN-Identity.h \
|
||||
PRACH-Configuration.h \
|
||||
Pre-emptionCapability.h \
|
||||
Pre-emptionVulnerability.h \
|
||||
PriorityLevel.h \
|
||||
QCI.h \
|
||||
ReceiveStatusofULPDCPSDUs.h \
|
||||
Registration-Request.h \
|
||||
RelativeNarrowbandTxPower.h \
|
||||
ReportArea.h \
|
||||
ReportCharacteristics.h \
|
||||
RNTP-Threshold.h \
|
||||
RRC-Context.h \
|
||||
RadioResourceStatus.h \
|
||||
DL-GBR-PRB-usage.h \
|
||||
UL-GBR-PRB-usage.h \
|
||||
DL-non-GBR-PRB-usage.h \
|
||||
UL-non-GBR-PRB-usage.h \
|
||||
DL-Total-PRB-usage.h \
|
||||
vUL-Total-PRB-usage.h \
|
||||
RadioframeAllocationPeriod.h \
|
||||
RadioframeAllocationOffset.h \
|
||||
S1TNLLoadIndicator.h \
|
||||
ServedCellsToActivate.h \
|
||||
ServedCellsToActivate-Item.h \
|
||||
ServedCellsToModify.h \
|
||||
ServedCellsToModify-Item.h \
|
||||
Old-ECGIs.h \
|
||||
ServedCells.h \
|
||||
ServedCellItem.h \
|
||||
ServedCell-Information.h \
|
||||
ShortMAC-I.h \
|
||||
SRVCCOperationPossible.h \
|
||||
SubframeAssignment.h \
|
||||
SpecialSubframe-Info.h \
|
||||
SpecialSubframePatterns.h \
|
||||
SubscriberProfileIDforRFP.h \
|
||||
SubframeAllocation.h \
|
||||
TAC.h \
|
||||
TargeteNBtoSource-eNBTransparentContainer.h \
|
||||
TimeToWait.h \
|
||||
Time-UE-StayedInCell.h \
|
||||
TraceActivation.h \
|
||||
TraceCollectionEntityIPAddress.h \
|
||||
TraceDepth.h \
|
||||
Transmission-Bandwidth.h \
|
||||
TransportLayerAddress.h \
|
||||
TypeOfError.h \
|
||||
UE-HistoryInformation.h \
|
||||
UE-S1AP-ID.h \
|
||||
UE-ID.h \
|
||||
UEAggregateMaximumBitRate.h \
|
||||
UESecurityCapabilities.h \
|
||||
UE-ContextInformation.h \
|
||||
UL-InterferenceOverloadIndication.h \
|
||||
UL-InterferenceOverloadIndication-Item.h \
|
||||
UL-HighInterferenceIndicationInfo.h \
|
||||
UL-HighInterferenceIndicationInfo-Item.h \
|
||||
UL-HighInterferenceIndication.h \
|
||||
UE-RLF-Report-Container.h \
|
||||
IE.h \
|
||||
PDU.h \
|
||||
InitiatingMessage.h \
|
||||
SuccessfulOutcome.h \
|
||||
UnsuccessfulOutcome.h \
|
||||
HandoverRequest.h \
|
||||
HandoverRequestAcknowledge.h \
|
||||
HandoverPreparationFailure.h \
|
||||
SNStatusTransfer.h \
|
||||
UEContextRelease.h \
|
||||
HandoverCancel.h \
|
||||
HandoverReport.h \
|
||||
ErrorIndication.h \
|
||||
ResetRequest.h \
|
||||
ResetResponse.h \
|
||||
X2SetupRequest.h \
|
||||
X2SetupResponse.h \
|
||||
X2SetupFailure.h \
|
||||
LoadInformation.h \
|
||||
ENBConfigurationUpdate.h \
|
||||
ENBConfigurationUpdateAcknowledge.h \
|
||||
ENBConfigurationUpdateFailure.h \
|
||||
ResourceStatusRequest.h \
|
||||
ResourceStatusResponse.h \
|
||||
ResourceStatusFailure.h \
|
||||
ResourceStatusUpdate.h \
|
||||
RLFIndication.h \
|
||||
PrivateMessage.h \
|
||||
MobilityChangeRequest.h \
|
||||
MobilityChangeAcknowledge.h \
|
||||
MobilityChangeFailure.h \
|
||||
CellActivationRequest.h \
|
||||
CellActivationResponse.h \
|
||||
CellActivationFailure.h
|
||||
|
||||
ASN_MODULE_HEADERS+=ANY.h
|
||||
ASN_MODULE_SOURCES+=ANY.c
|
||||
ASN_MODULE_HEADERS+=BOOLEAN.h
|
||||
ASN_MODULE_SOURCES+=BOOLEAN.c
|
||||
ASN_MODULE_HEADERS+=INTEGER.h
|
||||
ASN_MODULE_HEADERS+=NativeEnumerated.h
|
||||
ASN_MODULE_SOURCES+=INTEGER.c
|
||||
ASN_MODULE_HEADERS+=NULL.h
|
||||
ASN_MODULE_SOURCES+=NULL.c
|
||||
ASN_MODULE_SOURCES+=NativeEnumerated.c
|
||||
ASN_MODULE_HEADERS+=NativeInteger.h
|
||||
ASN_MODULE_SOURCES+=NativeInteger.c
|
||||
ASN_MODULE_HEADERS+=OBJECT_IDENTIFIER.h
|
||||
ASN_MODULE_SOURCES+=OBJECT_IDENTIFIER.c
|
||||
ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h
|
||||
ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.c
|
||||
ASN_MODULE_HEADERS+=asn_SET_OF.h
|
||||
ASN_MODULE_SOURCES+=asn_SET_OF.c
|
||||
ASN_MODULE_HEADERS+=constr_CHOICE.h
|
||||
ASN_MODULE_SOURCES+=constr_CHOICE.c
|
||||
ASN_MODULE_HEADERS+=constr_SEQUENCE.h
|
||||
ASN_MODULE_SOURCES+=constr_SEQUENCE.c
|
||||
ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h
|
||||
ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.c
|
||||
ASN_MODULE_HEADERS+=constr_SET_OF.h
|
||||
ASN_MODULE_SOURCES+=constr_SET_OF.c
|
||||
ASN_MODULE_HEADERS+=asn_application.h
|
||||
ASN_MODULE_HEADERS+=asn_system.h
|
||||
ASN_MODULE_HEADERS+=asn_codecs.h
|
||||
ASN_MODULE_HEADERS+=asn_internal.h
|
||||
ASN_MODULE_HEADERS+=OCTET_STRING.h
|
||||
ASN_MODULE_SOURCES+=OCTET_STRING.c
|
||||
ASN_MODULE_HEADERS+=BIT_STRING.h
|
||||
ASN_MODULE_SOURCES+=BIT_STRING.c
|
||||
ASN_MODULE_SOURCES+=asn_codecs_prim.c
|
||||
ASN_MODULE_HEADERS+=asn_codecs_prim.h
|
||||
ASN_MODULE_HEADERS+=ber_tlv_length.h
|
||||
ASN_MODULE_SOURCES+=ber_tlv_length.c
|
||||
ASN_MODULE_HEADERS+=ber_tlv_tag.h
|
||||
ASN_MODULE_SOURCES+=ber_tlv_tag.c
|
||||
ASN_MODULE_HEADERS+=ber_decoder.h
|
||||
ASN_MODULE_SOURCES+=ber_decoder.c
|
||||
ASN_MODULE_HEADERS+=der_encoder.h
|
||||
ASN_MODULE_SOURCES+=der_encoder.c
|
||||
ASN_MODULE_HEADERS+=constr_TYPE.h
|
||||
ASN_MODULE_SOURCES+=constr_TYPE.c
|
||||
ASN_MODULE_HEADERS+=constraints.h
|
||||
ASN_MODULE_SOURCES+=constraints.c
|
||||
ASN_MODULE_HEADERS+=xer_support.h
|
||||
ASN_MODULE_SOURCES+=xer_support.c
|
||||
ASN_MODULE_HEADERS+=xer_decoder.h
|
||||
ASN_MODULE_SOURCES+=xer_decoder.c
|
||||
ASN_MODULE_HEADERS+=xer_encoder.h
|
||||
ASN_MODULE_SOURCES+=xer_encoder.c
|
||||
ASN_MODULE_HEADERS+=per_support.h
|
||||
ASN_MODULE_SOURCES+=per_support.c
|
||||
ASN_MODULE_HEADERS+=per_decoder.h
|
||||
ASN_MODULE_SOURCES+=per_decoder.c
|
||||
ASN_MODULE_HEADERS+=per_encoder.h
|
||||
ASN_MODULE_SOURCES+=per_encoder.c
|
||||
ASN_MODULE_HEADERS+=per_opentype.h
|
||||
ASN_MODULE_SOURCES+=per_opentype.c
|
||||
@@ -1,126 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Common definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-CommonDataTypes {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Extension constants
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
maxPrivateIEs INTEGER ::= 65535
|
||||
maxProtocolExtensions INTEGER ::= 65535
|
||||
maxProtocolIEs INTEGER ::= 65535
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Common Data Types
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Criticality ::= ENUMERATED { reject, ignore, notify }
|
||||
|
||||
Presence ::= ENUMERATED { optional, conditional, mandatory }
|
||||
|
||||
PrivateIE-ID ::= CHOICE {
|
||||
local INTEGER (0.. maxPrivateIEs),
|
||||
global OBJECT IDENTIFIER
|
||||
}
|
||||
|
||||
ProcedureCode ::= INTEGER {
|
||||
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),
|
||||
id-mobilitySettingsChange (12),
|
||||
id-rLFIndication (13),
|
||||
id-handoverReport (14),
|
||||
id-cellActivation (15)
|
||||
} (0..255)
|
||||
|
||||
|
||||
ProtocolIE-ID ::= INTEGER {
|
||||
id-E-RABs-Admitted-Item (0),
|
||||
id-E-RABs-Admitted-List (1),
|
||||
id-E-RAB-Item (2),
|
||||
id-E-RABs-NotAdmitted-List (3),
|
||||
id-E-RABs-ToBeSetup-Item (4),
|
||||
id-Cause (5),
|
||||
id-CellInformation (6),
|
||||
id-CellInformation-Item (7),
|
||||
id-New-eNB-UE-X2AP-ID (9),
|
||||
id-Old-eNB-UE-X2AP-ID (10),
|
||||
id-TargetCell-ID (11),
|
||||
id-TargeteNBtoSource-eNBTransparentContainer (12),
|
||||
id-TraceActivation (13),
|
||||
id-UE-ContextInformation (14),
|
||||
id-UE-HistoryInformation (15),
|
||||
id-UE-X2AP-ID (16),
|
||||
id-CriticalityDiagnostics (17),
|
||||
id-E-RABs-SubjectToStatusTransfer-List (18),
|
||||
id-E-RABs-SubjectToStatusTransfer-Item (19),
|
||||
id-ServedCells (20),
|
||||
id-GlobalENB-ID (21),
|
||||
id-TimeToWait (22),
|
||||
id-GUMMEI-ID (23),
|
||||
id-GUGroupIDList (24),
|
||||
id-ServedCellsToAdd (25),
|
||||
id-ServedCellsToModify (26),
|
||||
id-ServedCellsToDelete (27),
|
||||
id-Registration-Request (28),
|
||||
id-CellToReport (29),
|
||||
id-ReportingPeriodicity (30),
|
||||
id-CellToReport-Item (31),
|
||||
id-CellMeasurementResult (32),
|
||||
id-CellMeasurementResult-Item (33),
|
||||
id-GUGroupIDToAddList (34),
|
||||
id-GUGroupIDToDeleteList (35),
|
||||
id-SRVCCOperationPossible (36),
|
||||
id-Measurement-ID (37),
|
||||
id-ReportCharacteristics (38),
|
||||
id-ENB1-Measurement-ID (39),
|
||||
id-ENB2-Measurement-ID (40),
|
||||
id-Number-of-Antennaports (41),
|
||||
id-CompositeAvailableCapacityGroup (42),
|
||||
id-ENB1-Cell-ID (43),
|
||||
id-ENB2-Cell-ID (44),
|
||||
id-ENB2-Proposed-Mobility-Parameters (45),
|
||||
id-ENB1-Mobility-Parameters (46),
|
||||
id-ENB2-Mobility-Parameters-Modification-Range (47),
|
||||
id-FailureCellPCI (48),
|
||||
id-Re-establishmentCellECGI (49),
|
||||
id-FailureCellCRNTI (50),
|
||||
id-ShortMAC-I (51),
|
||||
id-SourceCellECGI (52),
|
||||
id-FailureCellECGI (53),
|
||||
id-HandoverReportType (54),
|
||||
id-PRACH-Configuration (55),
|
||||
id-MBSFN-Subframe-Info (56),
|
||||
id-ServedCellsToActivate (57),
|
||||
id-ActivatedCellList (58),
|
||||
id-DeactivationIndication (59),
|
||||
id-UE-RLF-Report-Container (60)
|
||||
} (0..maxProtocolIEs)
|
||||
|
||||
|
||||
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
|
||||
|
||||
END
|
||||
@@ -1,138 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Constant definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-Constants {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID
|
||||
FROM X2AP-CommonDataTypes;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-handoverPreparation ProcedureCode ::= 0
|
||||
id-handoverCancel ProcedureCode ::= 1
|
||||
id-loadIndication ProcedureCode ::= 2
|
||||
id-errorIndication ProcedureCode ::= 3
|
||||
id-snStatusTransfer ProcedureCode ::= 4
|
||||
id-uEContextRelease ProcedureCode ::= 5
|
||||
id-x2Setup ProcedureCode ::= 6
|
||||
id-reset ProcedureCode ::= 7
|
||||
id-eNBConfigurationUpdate ProcedureCode ::= 8
|
||||
id-resourceStatusReportingInitiation ProcedureCode ::= 9
|
||||
id-resourceStatusReporting ProcedureCode ::= 10
|
||||
id-privateMessage ProcedureCode ::= 11
|
||||
id-mobilitySettingsChange ProcedureCode ::= 12
|
||||
id-rLFIndication ProcedureCode ::= 13
|
||||
id-handoverReport ProcedureCode ::= 14
|
||||
id-cellActivation ProcedureCode ::= 15
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Lists
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
maxEARFCN INTEGER ::= 65535
|
||||
maxInterfaces INTEGER ::= 16
|
||||
maxCellineNB INTEGER ::= 256
|
||||
maxnoofBearers INTEGER ::= 256
|
||||
maxNrOfErrors INTEGER ::= 256
|
||||
maxnoofPDCP-SN INTEGER ::= 16 -- FFS Value to be checked
|
||||
maxnoofEPLMNs INTEGER ::= 15
|
||||
maxnoofEPLMNsPlusOne INTEGER ::= 16
|
||||
maxnoofForbLACs INTEGER ::= 4096
|
||||
maxnoofForbTACs INTEGER ::= 4096
|
||||
maxnoofBPLMNs INTEGER ::= 6
|
||||
maxnoofNeighbours INTEGER ::= 512
|
||||
maxnoofPRBs INTEGER ::= 110
|
||||
maxPools INTEGER ::= 16
|
||||
maxnoofCells INTEGER ::= 16
|
||||
maxnoofMBSFN INTEGER ::= 8
|
||||
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0
|
||||
id-E-RABs-Admitted-List ProtocolIE-ID ::= 1
|
||||
id-E-RAB-Item ProtocolIE-ID ::= 2
|
||||
id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3
|
||||
id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4
|
||||
id-Cause ProtocolIE-ID ::= 5
|
||||
id-CellInformation ProtocolIE-ID ::= 6
|
||||
id-CellInformation-Item ProtocolIE-ID ::= 7
|
||||
id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9
|
||||
id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10
|
||||
id-TargetCell-ID ProtocolIE-ID ::= 11
|
||||
id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12
|
||||
id-TraceActivation ProtocolIE-ID ::= 13
|
||||
id-UE-ContextInformation ProtocolIE-ID ::= 14
|
||||
id-UE-HistoryInformation ProtocolIE-ID ::= 15
|
||||
id-UE-X2AP-ID ProtocolIE-ID ::= 16
|
||||
id-CriticalityDiagnostics ProtocolIE-ID ::= 17
|
||||
id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18
|
||||
id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19
|
||||
id-ServedCells ProtocolIE-ID ::= 20
|
||||
id-GlobalENB-ID ProtocolIE-ID ::= 21
|
||||
id-TimeToWait ProtocolIE-ID ::= 22
|
||||
id-GUMMEI-ID ProtocolIE-ID ::= 23
|
||||
id-GUGroupIDList ProtocolIE-ID ::= 24
|
||||
id-ServedCellsToAdd ProtocolIE-ID ::= 25
|
||||
id-ServedCellsToModify ProtocolIE-ID ::= 26
|
||||
id-ServedCellsToDelete ProtocolIE-ID ::= 27
|
||||
id-Registration-Request ProtocolIE-ID ::= 28
|
||||
id-CellToReport ProtocolIE-ID ::= 29
|
||||
id-ReportingPeriodicity ProtocolIE-ID ::= 30
|
||||
id-CellToReport-Item ProtocolIE-ID ::= 31
|
||||
id-CellMeasurementResult ProtocolIE-ID ::= 32
|
||||
id-CellMeasurementResult-Item ProtocolIE-ID ::= 33
|
||||
id-GUGroupIDToAddList ProtocolIE-ID ::= 34
|
||||
id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35
|
||||
id-SRVCCOperationPossible ProtocolIE-ID ::= 36
|
||||
id-Measurement-ID ProtocolIE-ID ::= 37
|
||||
id-ReportCharacteristics ProtocolIE-ID ::= 38
|
||||
id-ENB1-Measurement-ID ProtocolIE-ID ::= 39
|
||||
id-ENB2-Measurement-ID ProtocolIE-ID ::= 40
|
||||
id-Number-of-Antennaports ProtocolIE-ID ::= 41
|
||||
id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42
|
||||
id-ENB1-Cell-ID ProtocolIE-ID ::= 43
|
||||
id-ENB2-Cell-ID ProtocolIE-ID ::= 44
|
||||
id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45
|
||||
id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46
|
||||
id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47
|
||||
id-FailureCellPCI ProtocolIE-ID ::= 48
|
||||
id-Re-establishmentCellECGI ProtocolIE-ID ::= 49
|
||||
id-FailureCellCRNTI ProtocolIE-ID ::= 50
|
||||
id-ShortMAC-I ProtocolIE-ID ::= 51
|
||||
id-SourceCellECGI ProtocolIE-ID ::= 52
|
||||
id-FailureCellECGI ProtocolIE-ID ::= 53
|
||||
id-HandoverReportType ProtocolIE-ID ::= 54
|
||||
id-PRACH-Configuration ProtocolIE-ID ::= 55
|
||||
id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56
|
||||
id-ServedCellsToActivate ProtocolIE-ID ::= 57
|
||||
id-ActivatedCellList ProtocolIE-ID ::= 58
|
||||
id-DeactivationIndication ProtocolIE-ID ::= 59
|
||||
id-UE-RLF-Report-Container ProtocolIE-ID ::= 60
|
||||
|
||||
END
|
||||
@@ -1,194 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-Containers {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
maxPrivateIEs,
|
||||
maxProtocolExtensions,
|
||||
maxProtocolIEs,
|
||||
Criticality,
|
||||
Presence,
|
||||
PrivateIE-ID,
|
||||
ProtocolIE-ID
|
||||
FROM X2AP-CommonDataTypes;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PROTOCOL-IES ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&criticality Criticality,
|
||||
&Value,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PROTOCOL-IES-PAIR ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&firstCriticality Criticality,
|
||||
&FirstValue,
|
||||
&secondCriticality Criticality,
|
||||
&SecondValue,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
FIRST CRITICALITY &firstCriticality
|
||||
FIRST TYPE &FirstValue
|
||||
SECOND CRITICALITY &secondCriticality
|
||||
SECOND TYPE &SecondValue
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PROTOCOL-EXTENSION ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&criticality Criticality,
|
||||
&Extension,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
EXTENSION &Extension
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PRIVATE-IES ::= CLASS {
|
||||
&id PrivateIE-ID,
|
||||
&criticality Criticality,
|
||||
&Value,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id X2AP-PROTOCOL-IES.&id ({IEsSetParam}),
|
||||
criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IE Pairs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||
ProtocolIE-FieldPair {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
|
||||
id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
|
||||
firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
|
||||
firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
|
||||
secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
|
||||
secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container Lists for Protocol IE Containers
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||
ProtocolIE-Container {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||
ProtocolIE-ContainerPair {{IEsSetParam}}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
|
||||
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
|
||||
ProtocolExtensionField {{ExtensionSetParam}}
|
||||
|
||||
ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
|
||||
id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
|
||||
criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
|
||||
extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (1..maxPrivateIEs)) OF
|
||||
PrivateIE-Field {{IEsSetParam}}
|
||||
|
||||
PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id X2AP-PRIVATE-IES.&id ({IEsSetParam}),
|
||||
criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
END
|
||||
@@ -1,989 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Information Element Definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-IEs {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
|
||||
id-E-RAB-Item,
|
||||
id-Number-of-Antennaports,
|
||||
id-MBSFN-Subframe-Info,
|
||||
id-PRACH-Configuration,
|
||||
|
||||
maxnoofBearers,
|
||||
maxCellineNB,
|
||||
maxEARFCN,
|
||||
maxInterfaces,
|
||||
|
||||
maxnoofBPLMNs,
|
||||
maxnoofCells,
|
||||
maxnoofEPLMNs,
|
||||
maxnoofEPLMNsPlusOne,
|
||||
maxnoofForbLACs,
|
||||
maxnoofForbTACs,
|
||||
maxnoofNeighbours,
|
||||
maxnoofPRBs,
|
||||
maxNrOfErrors,
|
||||
maxPools,
|
||||
maxnoofMBSFN
|
||||
|
||||
FROM X2AP-Constants
|
||||
|
||||
Criticality,
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID,
|
||||
TriggeringMessage,
|
||||
maxProtocolExtensions
|
||||
|
||||
FROM X2AP-CommonDataTypes
|
||||
|
||||
IE
|
||||
FROM X2AP-PDU;
|
||||
|
||||
IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE
|
||||
|
||||
-- A
|
||||
|
||||
AS-SecurityInformation ::= SEQUENCE {
|
||||
key-eNodeB-star Key-eNodeB-Star,
|
||||
nextHopChainingCount NextHopChainingCount,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
AllocationAndRetentionPriority ::= SEQUENCE {
|
||||
priorityLevel PriorityLevel,
|
||||
pre-emptionCapability Pre-emptionCapability,
|
||||
pre-emptionVulnerability Pre-emptionVulnerability,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item
|
||||
|
||||
ActivatedCellList-Item::= SEQUENCE {
|
||||
ecgi ECGI,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
-- B
|
||||
|
||||
|
||||
BitRate ::= INTEGER (0..10000000000)
|
||||
BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
|
||||
|
||||
|
||||
-- C
|
||||
|
||||
CapacityValue ::= INTEGER (0..100)
|
||||
|
||||
CellCapacityClassValue ::= INTEGER (1..100, ...)
|
||||
|
||||
CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE
|
||||
|
||||
CellToReport-Item ::= SEQUENCE {
|
||||
cell-ID ECGI,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE
|
||||
|
||||
CellMeasurementResult-Item ::= SEQUENCE {
|
||||
cell-ID ECGI,
|
||||
hWOverLoadIndicator HWLoadIndicator OPTIONAL,
|
||||
s1TNLOverLoadIndicator S1TNLLoadIndicator OPTIONAL,
|
||||
radioResourceStatus RadioResourceStatus OPTIONAL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ReportingPeriodicity ::= ENUMERATED {
|
||||
one-thousand-ms,
|
||||
two-thousand-ms,
|
||||
five-thousand-ms,
|
||||
ten-thousand-ms,
|
||||
...
|
||||
}
|
||||
|
||||
Cause ::= CHOICE {
|
||||
radioNetwork CauseRadioNetwork,
|
||||
transport CauseTransport,
|
||||
protocol CauseProtocol,
|
||||
misc CauseMisc,
|
||||
...
|
||||
}
|
||||
|
||||
CauseMisc ::= ENUMERATED {
|
||||
control-processing-overload,
|
||||
hardware-failure,
|
||||
om-intervention,
|
||||
not-enough-user-plane-processing-resources,
|
||||
unspecified,
|
||||
...
|
||||
}
|
||||
|
||||
CauseProtocol ::= ENUMERATED {
|
||||
transfer-syntax-error,
|
||||
abstract-syntax-error-reject,
|
||||
abstract-syntax-error-ignore-and-notify,
|
||||
message-not-compatible-with-receiver-state,
|
||||
semantic-error,
|
||||
unspecified,
|
||||
abstract-syntax-error-falsely-constructed-message,
|
||||
...
|
||||
}
|
||||
|
||||
CauseRadioNetwork ::= ENUMERATED {
|
||||
handover-desirable-for-radio-reasons,
|
||||
time-critical-handover,
|
||||
resource-optimisation-handover,
|
||||
reduce-load-in-serving-cell,
|
||||
partial-handover,
|
||||
unknown-new-eNB-UE-X2AP-ID,
|
||||
unknown-old-eNB-UE-X2AP-ID,
|
||||
unknown-pair-of-UE-X2AP-ID,
|
||||
ho-target-not-allowed,
|
||||
tx2relocoverall-expiry,
|
||||
trelocprep-expiry,
|
||||
cell-not-available,
|
||||
no-radio-resources-available-in-target-cell,
|
||||
invalid-MME-GroupID,
|
||||
unknown-MME-Code,
|
||||
encryption-and-or-integrity-protection-algorithms-not-supported,
|
||||
reportCharacteristicsEmpty,
|
||||
noReportPeriodicity,
|
||||
existingMeasurementID,
|
||||
unknown-eNB-Measurement-ID,
|
||||
measurement-temporarily-not-available,
|
||||
unspecified,
|
||||
...,
|
||||
load-balancing,
|
||||
handover-optimisation,
|
||||
value-out-of-allowed-range,
|
||||
multiple-E-RAB-ID-instances,
|
||||
switch-off-ongoing,
|
||||
not-supported-QCI-value
|
||||
|
||||
}
|
||||
|
||||
CauseTransport ::= ENUMERATED {
|
||||
transport-resource-unavailable,
|
||||
unspecified,
|
||||
...
|
||||
}
|
||||
|
||||
Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... }
|
||||
|
||||
CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE
|
||||
|
||||
CellInformation-Item ::= SEQUENCE {
|
||||
cell-ID ECGI,
|
||||
ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL,
|
||||
ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL,
|
||||
relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CellType ::= SEQUENCE {
|
||||
cell-Size Cell-Size,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CompositeAvailableCapacityGroup ::= SEQUENCE {
|
||||
dL-CompositeAvailableCapacity CompositeAvailableCapacity,
|
||||
uL-CompositeAvailableCapacity CompositeAvailableCapacity,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CompositeAvailableCapacity ::= SEQUENCE {
|
||||
cellCapacityClassValue CellCapacityClassValue OPTIONAL,
|
||||
capacityValue CapacityValue,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
COUNTvalue ::= SEQUENCE {
|
||||
pDCP-SN PDCP-SN,
|
||||
hFN HFN,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics ::= SEQUENCE {
|
||||
procedureCode ProcedureCode OPTIONAL,
|
||||
triggeringMessage TriggeringMessage OPTIONAL,
|
||||
procedureCriticality Criticality OPTIONAL,
|
||||
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-Elm
|
||||
|
||||
CriticalityDiagnostics-IE-Elm ::= SEQUENCE {
|
||||
iECriticality Criticality,
|
||||
iE-ID ProtocolIE-ID,
|
||||
typeOfError TypeOfError,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CRNTI ::= BIT STRING (SIZE (16))
|
||||
|
||||
CyclicPrefixDL ::= ENUMERATED {
|
||||
normal,
|
||||
extended,
|
||||
...
|
||||
}
|
||||
|
||||
CyclicPrefixUL ::= ENUMERATED {
|
||||
normal,
|
||||
extended,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- D
|
||||
|
||||
DeactivationIndication::= ENUMERATED {
|
||||
deactivated,
|
||||
...
|
||||
}
|
||||
|
||||
DL-Forwarding ::= ENUMERATED {
|
||||
dL-forwardingProposed,
|
||||
...
|
||||
}
|
||||
|
||||
-- E
|
||||
|
||||
E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF IE
|
||||
|
||||
E-RABs-Admitted-Item ::= SEQUENCE {
|
||||
e-RAB-ID E-RAB-ID,
|
||||
uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
|
||||
dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF IE
|
||||
|
||||
E-RABs-ToBeSetup-Item ::= SEQUENCE {
|
||||
e-RAB-ID E-RAB-ID,
|
||||
e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
|
||||
dL-Forwarding DL-Forwarding OPTIONAL,
|
||||
uL-GTPtunnelEndpoint GTPtunnelEndpoint,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF IE
|
||||
|
||||
E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE {
|
||||
e-RAB-ID E-RAB-ID,
|
||||
receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
|
||||
uL-COUNTvalue COUNTvalue,
|
||||
dL-COUNTvalue COUNTvalue,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
EARFCN ::= INTEGER (0..maxEARFCN)
|
||||
|
||||
FDD-Info ::= SEQUENCE {
|
||||
uL-EARFCN EARFCN,
|
||||
dL-EARFCN EARFCN,
|
||||
uL-Transmission-Bandwidth Transmission-Bandwidth,
|
||||
dL-Transmission-Bandwidth Transmission-Bandwidth,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
TDD-Info ::= SEQUENCE {
|
||||
eARFCN EARFCN,
|
||||
transmission-Bandwidth Transmission-Bandwidth,
|
||||
subframeAssignment SubframeAssignment,
|
||||
specialSubframe-Info SpecialSubframe-Info,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
EUTRA-Mode-Info ::= CHOICE {
|
||||
fDD FDD-Info,
|
||||
tDD TDD-Info,
|
||||
...
|
||||
}
|
||||
|
||||
ECGI ::= SEQUENCE {
|
||||
pLMN-Identity PLMN-Identity,
|
||||
eUTRANcellIdentifier EUTRANCellIdentifier,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ENB-ID ::= CHOICE {
|
||||
macro-eNB-ID BIT STRING (SIZE (20)),
|
||||
home-eNB-ID BIT STRING (SIZE (28)),
|
||||
...
|
||||
}
|
||||
|
||||
EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...))
|
||||
|
||||
EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity
|
||||
|
||||
E-RAB-ID ::= INTEGER (0..15, ...)
|
||||
|
||||
E-RAB-Level-QoS-Parameters ::= SEQUENCE {
|
||||
qCI QCI,
|
||||
allocationAndRetentionPriority AllocationAndRetentionPriority,
|
||||
gbrQosInformation GBR-QosInformation OPTIONAL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF IE
|
||||
|
||||
E-RAB-Item ::= SEQUENCE {
|
||||
e-RAB-ID E-RAB-ID,
|
||||
cause Cause,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
|
||||
|
||||
EUTRANTraceID ::= OCTET STRING (SIZE (8))
|
||||
|
||||
|
||||
EventType ::= ENUMERATED{
|
||||
change-of-serving-cell,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- F
|
||||
|
||||
ForbiddenInterRATs ::= ENUMERATED {
|
||||
all,
|
||||
geran,
|
||||
utran,
|
||||
cdma2000,
|
||||
...,
|
||||
geranandutran,
|
||||
cdma2000andutran
|
||||
|
||||
}
|
||||
|
||||
ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
|
||||
|
||||
ForbiddenTAs-Item ::= SEQUENCE {
|
||||
pLMN-Identity PLMN-Identity,
|
||||
forbiddenTACs ForbiddenTACs,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
|
||||
|
||||
ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
|
||||
|
||||
ForbiddenLAs-Item ::= SEQUENCE {
|
||||
pLMN-Identity PLMN-Identity,
|
||||
forbiddenLACs ForbiddenLACs,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
|
||||
|
||||
Fourframes ::= BIT STRING (SIZE (24))
|
||||
|
||||
-- G
|
||||
|
||||
GBR-QosInformation ::= SEQUENCE {
|
||||
e-RAB-MaximumBitrateDL BitRate,
|
||||
e-RAB-MaximumBitrateUL BitRate,
|
||||
e-RAB-GuaranteedBitrateDL BitRate,
|
||||
e-RAB-GuaranteedBitrateUL BitRate,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
GlobalENB-ID ::= SEQUENCE {
|
||||
pLMN-Identity PLMN-Identity,
|
||||
eNB-ID ENB-ID,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
GTPtunnelEndpoint ::= SEQUENCE {
|
||||
transportLayerAddress TransportLayerAddress,
|
||||
gTP-TEID GTP-TEI,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
GTP-TEI ::= OCTET STRING (SIZE (4))
|
||||
|
||||
GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID
|
||||
|
||||
|
||||
GU-Group-ID ::= SEQUENCE {
|
||||
pLMN-Identity PLMN-Identity,
|
||||
mME-Group-ID MME-Group-ID,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
GUMMEI ::= SEQUENCE {
|
||||
|
||||
gU-Group-ID GU-Group-ID,
|
||||
mME-Code MME-Code,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
-- H
|
||||
|
||||
HandoverReportType ::= ENUMERATED {
|
||||
hoTooEarly,
|
||||
hoToWrongCell,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRestrictionList ::= SEQUENCE {
|
||||
servingPLMN PLMN-Identity,
|
||||
equivalentPLMNs EPLMNs OPTIONAL,
|
||||
forbiddenTAs ForbiddenTAs OPTIONAL,
|
||||
forbiddenLAs ForbiddenLAs OPTIONAL,
|
||||
forbiddenInterRATs ForbiddenInterRATs OPTIONAL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
HFN ::= INTEGER (0..1048575)
|
||||
|
||||
HWLoadIndicator ::= SEQUENCE {
|
||||
dLHWLoadIndicator LoadIndicator,
|
||||
uLHWLoadIndicator LoadIndicator,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
-- I
|
||||
|
||||
IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...))
|
||||
|
||||
InterfacesToTrace ::= BIT STRING (SIZE (8))
|
||||
-- J
|
||||
-- K
|
||||
|
||||
|
||||
Key-eNodeB-Star ::= BIT STRING (SIZE(256))
|
||||
|
||||
-- L
|
||||
|
||||
|
||||
LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H))
|
||||
|
||||
LastVisitedCell-Item ::= CHOICE {
|
||||
e-UTRAN-Cell LastVisitedEUTRANCellInformation,
|
||||
uTRAN-Cell LastVisitedUTRANCellInformation,
|
||||
gERAN-Cell LastVisitedGERANCellInformation,
|
||||
...
|
||||
}
|
||||
|
||||
LastVisitedEUTRANCellInformation ::= SEQUENCE {
|
||||
global-Cell-ID ECGI,
|
||||
cellType CellType,
|
||||
time-UE-StayedInCell Time-UE-StayedInCell,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
LastVisitedUTRANCellInformation ::= OCTET STRING
|
||||
|
||||
LastVisitedGERANCellInformation ::= CHOICE {
|
||||
undefined NULL,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
LoadIndicator ::= ENUMERATED {
|
||||
lowLoad,
|
||||
mediumLoad,
|
||||
highLoad,
|
||||
overLoad,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
LocationReportingInformation ::= SEQUENCE {
|
||||
eventType EventType,
|
||||
reportArea ReportArea,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
-- M
|
||||
|
||||
|
||||
MME-Group-ID ::= OCTET STRING (SIZE (2))
|
||||
|
||||
MME-Code ::= OCTET STRING (SIZE (1))
|
||||
|
||||
Measurement-ID ::= INTEGER (1..4095, ...)
|
||||
|
||||
MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info
|
||||
|
||||
MBSFN-Subframe-Info ::= SEQUENCE {
|
||||
radioframeAllocationPeriod RadioframeAllocationPeriod,
|
||||
radioframeAllocationOffset RadioframeAllocationOffset,
|
||||
subframeAllocation SubframeAllocation,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
MobilityParametersModificationRange ::= SEQUENCE {
|
||||
handoverTriggerChangeLowerLimit INTEGER (-20..20),
|
||||
handoverTriggerChangeUpperLimit INTEGER (-20..20),
|
||||
...
|
||||
}
|
||||
|
||||
MobilityParametersInformation ::= SEQUENCE {
|
||||
handoverTriggerChange INTEGER (-20..20),
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- N
|
||||
|
||||
Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF Neighbour-Information-Elm
|
||||
|
||||
Neighbour-Information-Elm ::= SEQUENCE {
|
||||
eCGI ECGI,
|
||||
pCI PCI,
|
||||
eARFCN EARFCN,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
NextHopChainingCount ::= INTEGER (0..7)
|
||||
|
||||
Number-of-Antennaports ::= ENUMERATED {
|
||||
an1,
|
||||
an2,
|
||||
an4,
|
||||
...
|
||||
}
|
||||
|
||||
-- O
|
||||
|
||||
Oneframe ::= BIT STRING (SIZE (6))
|
||||
|
||||
-- P
|
||||
|
||||
PDCP-SN ::= INTEGER (0..4095)
|
||||
|
||||
PCI ::= INTEGER (0..503, ...)
|
||||
|
||||
|
||||
PLMN-Identity ::= OCTET STRING (SIZE(3))
|
||||
|
||||
PRACH-Configuration ::= SEQUENCE {
|
||||
rootSequenceIndex INTEGER (0..837),
|
||||
zeroCorrelationIndex INTEGER (0..15),
|
||||
highSpeedFlag BOOLEAN,
|
||||
prach-FreqOffset INTEGER (0..94),
|
||||
prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD --
|
||||
-- iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Pre-emptionCapability ::= ENUMERATED {
|
||||
shall-not-trigger-pre-emption,
|
||||
may-trigger-pre-emption
|
||||
}
|
||||
|
||||
Pre-emptionVulnerability ::= ENUMERATED {
|
||||
not-pre-emptable,
|
||||
pre-emptable
|
||||
}
|
||||
|
||||
PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
|
||||
|
||||
-- Q
|
||||
|
||||
QCI ::= INTEGER (0..255)
|
||||
|
||||
-- R
|
||||
|
||||
|
||||
ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
|
||||
|
||||
Registration-Request ::= ENUMERATED {
|
||||
start,
|
||||
stop,
|
||||
...
|
||||
}
|
||||
|
||||
RelativeNarrowbandTxPower ::= SEQUENCE {
|
||||
|
||||
rNTP-PerPRB BIT STRING (SIZE(6..110, ...)),
|
||||
rNTP-Threshold RNTP-Threshold,
|
||||
numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...},
|
||||
p-B INTEGER (0..3,...),
|
||||
pDCCH-InterferenceImpact INTEGER (0..4,...),
|
||||
-- iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ReportArea ::= ENUMERATED{
|
||||
ecgi,
|
||||
...
|
||||
}
|
||||
|
||||
ReportCharacteristics ::= BIT STRING (SIZE (32))
|
||||
|
||||
RNTP-Threshold ::= ENUMERATED {
|
||||
minusInfinity,
|
||||
minusEleven,
|
||||
minusTen,
|
||||
minusNine,
|
||||
minusEight,
|
||||
minusSeven,
|
||||
minusSix,
|
||||
minusFive,
|
||||
minusFour,
|
||||
minusThree,
|
||||
minusTwo,
|
||||
minusOne,
|
||||
zero,
|
||||
one,
|
||||
two,
|
||||
three,
|
||||
...
|
||||
}
|
||||
|
||||
RRC-Context ::= OCTET STRING
|
||||
|
||||
|
||||
RadioResourceStatus ::= SEQUENCE {
|
||||
dL-GBR-PRB-usage DL-GBR-PRB-usage,
|
||||
uL-GBR-PRB-usage UL-GBR-PRB-usage,
|
||||
dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage,
|
||||
uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage,
|
||||
dL-Total-PRB-usage DL-Total-PRB-usage,
|
||||
uL-Total-PRB-usage UL-Total-PRB-usage,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
DL-GBR-PRB-usage::= INTEGER (0..100)
|
||||
|
||||
UL-GBR-PRB-usage::= INTEGER (0..100)
|
||||
|
||||
DL-non-GBR-PRB-usage::= INTEGER (0..100)
|
||||
|
||||
UL-non-GBR-PRB-usage::= INTEGER (0..100)
|
||||
|
||||
DL-Total-PRB-usage::= INTEGER (0..100)
|
||||
|
||||
UL-Total-PRB-usage::= INTEGER (0..100)
|
||||
|
||||
RadioframeAllocationPeriod ::= ENUMERATED{
|
||||
n1,
|
||||
n2,
|
||||
n4,
|
||||
n8,
|
||||
n16,
|
||||
n32,
|
||||
...
|
||||
}
|
||||
|
||||
RadioframeAllocationOffset ::= INTEGER (0..7, ...)
|
||||
|
||||
-- S
|
||||
|
||||
S1TNLLoadIndicator ::= SEQUENCE {
|
||||
dLS1TNLLoadIndicator LoadIndicator,
|
||||
uLS1TNLLoadIndicator LoadIndicator,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item
|
||||
|
||||
ServedCellsToActivate-Item::= SEQUENCE {
|
||||
ecgi ECGI,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE
|
||||
|
||||
ServedCellsToModify-Item::= SEQUENCE {
|
||||
old-ecgi ECGI,
|
||||
servedCellInfo ServedCell-Information,
|
||||
neighbour-Info Neighbour-Information OPTIONAL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI
|
||||
|
||||
ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF ServedCellItem
|
||||
|
||||
ServedCellItem ::= SEQUENCE {
|
||||
servedCellInfo ServedCell-Information,
|
||||
neighbour-Info Neighbour-Information OPTIONAL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ServedCell-Information ::= SEQUENCE {
|
||||
pCI PCI,
|
||||
cellId ECGI,
|
||||
tAC TAC,
|
||||
broadcastPLMNs BroadcastPLMNs-Item,
|
||||
eUTRA-Mode-Info EUTRA-Mode-Info,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ShortMAC-I ::= BIT STRING (SIZE(16))
|
||||
|
||||
SRVCCOperationPossible ::= ENUMERATED {
|
||||
possible,
|
||||
...
|
||||
}
|
||||
|
||||
SubframeAssignment ::= ENUMERATED {
|
||||
sa0,
|
||||
sa1,
|
||||
sa2,
|
||||
sa3,
|
||||
sa4,
|
||||
sa5,
|
||||
sa6,
|
||||
...
|
||||
}
|
||||
|
||||
SpecialSubframe-Info ::= SEQUENCE {
|
||||
specialSubframePatterns SpecialSubframePatterns,
|
||||
cyclicPrefixDL CyclicPrefixDL,
|
||||
cyclicPrefixUL CyclicPrefixUL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
SpecialSubframePatterns ::= ENUMERATED {
|
||||
ssp0,
|
||||
ssp1,
|
||||
ssp2,
|
||||
ssp3,
|
||||
ssp4,
|
||||
ssp5,
|
||||
ssp6,
|
||||
ssp7,
|
||||
ssp8,
|
||||
...
|
||||
}
|
||||
|
||||
SubscriberProfileIDforRFP ::= INTEGER (1..256)
|
||||
|
||||
SubframeAllocation ::= CHOICE {
|
||||
oneframe Oneframe,
|
||||
fourframes Fourframes,
|
||||
...
|
||||
}
|
||||
|
||||
-- T
|
||||
|
||||
TAC ::= OCTET STRING (SIZE (2))
|
||||
|
||||
TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING
|
||||
|
||||
|
||||
TimeToWait ::= ENUMERATED {
|
||||
v1s,
|
||||
v2s,
|
||||
v5s,
|
||||
v10s,
|
||||
v20s,
|
||||
v60s,
|
||||
...
|
||||
}
|
||||
|
||||
Time-UE-StayedInCell ::= INTEGER (0..4095)
|
||||
|
||||
|
||||
TraceActivation ::= SEQUENCE {
|
||||
eUTRANTraceID EUTRANTraceID,
|
||||
interfacesToTrace InterfacesToTrace,
|
||||
traceDepth TraceDepth,
|
||||
traceCollectionEntityIPAddress TraceCollectionEntityIPAddress,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...))
|
||||
|
||||
TraceDepth ::= ENUMERATED {
|
||||
minimum,
|
||||
medium,
|
||||
maximum,
|
||||
minimumWithoutVendorSpecificExtension,
|
||||
mediumWithoutVendorSpecificExtension,
|
||||
maximumWithoutVendorSpecificExtension,
|
||||
...
|
||||
}
|
||||
|
||||
Transmission-Bandwidth ::= ENUMERATED {
|
||||
bw6,
|
||||
bw15,
|
||||
bw25,
|
||||
bw50,
|
||||
bw75,
|
||||
bw100,
|
||||
...
|
||||
}
|
||||
|
||||
TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
|
||||
|
||||
TypeOfError ::= ENUMERATED {
|
||||
not-understood,
|
||||
missing,
|
||||
...
|
||||
}
|
||||
|
||||
-- U
|
||||
|
||||
UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
|
||||
|
||||
|
||||
UE-S1AP-ID ::= INTEGER (0.. 4294967295)
|
||||
|
||||
UE-X2AP-ID ::= INTEGER (0..4095) -- Value FFS
|
||||
|
||||
UEAggregateMaximumBitRate ::= SEQUENCE {
|
||||
uEaggregateMaximumBitRateDownlink BitRate,
|
||||
uEaggregateMaximumBitRateUplink BitRate,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UESecurityCapabilities ::= SEQUENCE {
|
||||
encryptionAlgorithms EncryptionAlgorithms,
|
||||
integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UE-ContextInformation ::= SEQUENCE {
|
||||
mME-UE-S1AP-ID UE-S1AP-ID,
|
||||
uESecurityCapabilities UESecurityCapabilities,
|
||||
aS-SecurityInformation AS-SecurityInformation,
|
||||
uEaggregateMaximumBitRate UEAggregateMaximumBitRate,
|
||||
subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
|
||||
e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List,
|
||||
rRC-Context RRC-Context,
|
||||
handoverRestrictionList HandoverRestrictionList OPTIONAL,
|
||||
locationReportingInformation LocationReportingInformation OPTIONAL,
|
||||
-- iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item
|
||||
|
||||
UL-InterferenceOverloadIndication-Item ::= ENUMERATED {
|
||||
high-interference,
|
||||
medium-interference,
|
||||
low-interference,
|
||||
...
|
||||
}
|
||||
|
||||
UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item
|
||||
|
||||
UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE {
|
||||
target-Cell-ID ECGI,
|
||||
ul-interferenceindication UL-HighInterferenceIndication,
|
||||
-- iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL,
|
||||
iE-Extensions IE-Extensions OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...))
|
||||
|
||||
UE-RLF-Report-Container::= OCTET STRING
|
||||
-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9]
|
||||
|
||||
-- V
|
||||
-- W
|
||||
-- X
|
||||
-- Y
|
||||
-- Z
|
||||
|
||||
END
|
||||
@@ -1,951 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PDU definitions for X2AP.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PDU-Contents {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
|
||||
AS-SecurityInformation,
|
||||
Cause,
|
||||
CompositeAvailableCapacityGroup,
|
||||
COUNTvalue,
|
||||
CriticalityDiagnostics,
|
||||
CRNTI,
|
||||
DeactivationIndication,
|
||||
DL-Forwarding,
|
||||
ECGI,
|
||||
E-RAB-ID,
|
||||
E-RAB-Level-QoS-Parameters,
|
||||
E-RAB-List,
|
||||
EUTRANTraceID,
|
||||
GlobalENB-ID,
|
||||
GTPtunnelEndpoint,
|
||||
GUGroupIDList,
|
||||
GUMMEI,
|
||||
HandoverReportType,
|
||||
HandoverRestrictionList,
|
||||
LocationReportingInformation,
|
||||
Neighbour-Information,
|
||||
PCI,
|
||||
PDCP-SN,
|
||||
PLMN-Identity,
|
||||
ReceiveStatusofULPDCPSDUs,
|
||||
Registration-Request,
|
||||
RelativeNarrowbandTxPower,
|
||||
RadioResourceStatus,
|
||||
UE-RLF-Report-Container,
|
||||
RRC-Context,
|
||||
ServedCell-Information,
|
||||
ServedCells,
|
||||
ShortMAC-I,
|
||||
SRVCCOperationPossible,
|
||||
SubscriberProfileIDforRFP,
|
||||
TargeteNBtoSource-eNBTransparentContainer,
|
||||
TimeToWait,
|
||||
TraceActivation,
|
||||
TraceDepth,
|
||||
|
||||
TransportLayerAddress,
|
||||
UEAggregateMaximumBitRate,
|
||||
UE-HistoryInformation,
|
||||
UE-S1AP-ID,
|
||||
UESecurityCapabilities,
|
||||
UE-X2AP-ID,
|
||||
UL-HighInterferenceIndicationInfo,
|
||||
UL-InterferenceOverloadIndication,
|
||||
HWLoadIndicator,
|
||||
S1TNLLoadIndicator,
|
||||
Measurement-ID,
|
||||
ReportCharacteristics,
|
||||
MobilityParametersInformation,
|
||||
MobilityParametersModificationRange
|
||||
|
||||
|
||||
|
||||
|
||||
FROM X2AP-IEs
|
||||
|
||||
PrivateIE-Container{},
|
||||
ProtocolExtensionContainer{},
|
||||
ProtocolIE-Container{},
|
||||
ProtocolIE-ContainerList{},
|
||||
ProtocolIE-ContainerPair{},
|
||||
ProtocolIE-ContainerPairList{},
|
||||
ProtocolIE-Single-Container{},
|
||||
X2AP-PRIVATE-IES,
|
||||
X2AP-PROTOCOL-EXTENSION,
|
||||
X2AP-PROTOCOL-IES,
|
||||
X2AP-PROTOCOL-IES-PAIR
|
||||
FROM X2AP-Containers
|
||||
|
||||
|
||||
id-ActivatedCellList,
|
||||
id-Cause,
|
||||
id-CellInformation,
|
||||
id-CellInformation-Item,
|
||||
id-CellMeasurementResult,
|
||||
id-CellMeasurementResult-Item,
|
||||
id-CellToReport,
|
||||
id-CellToReport-Item,
|
||||
id-CompositeAvailableCapacityGroup,
|
||||
id-CriticalityDiagnostics,
|
||||
id-DeactivationIndication,
|
||||
id-E-RABs-Admitted-Item,
|
||||
id-E-RABs-Admitted-List,
|
||||
id-E-RABs-NotAdmitted-List,
|
||||
id-E-RABs-SubjectToStatusTransfer-List,
|
||||
id-E-RABs-SubjectToStatusTransfer-Item,
|
||||
id-E-RABs-ToBeSetup-Item,
|
||||
id-GlobalENB-ID,
|
||||
id-GUGroupIDList,
|
||||
id-GUGroupIDToAddList,
|
||||
id-GUGroupIDToDeleteList,
|
||||
id-GUMMEI-ID,
|
||||
id-New-eNB-UE-X2AP-ID,
|
||||
id-Old-eNB-UE-X2AP-ID,
|
||||
id-Registration-Request,
|
||||
id-ReportingPeriodicity,
|
||||
id-ServedCells,
|
||||
id-ServedCellsToActivate,
|
||||
id-ServedCellsToAdd,
|
||||
id-ServedCellsToModify,
|
||||
id-ServedCellsToDelete,
|
||||
id-SRVCCOperationPossible,
|
||||
id-TargetCell-ID,
|
||||
id-TargeteNBtoSource-eNBTransparentContainer,
|
||||
id-TimeToWait,
|
||||
id-TraceActivation,
|
||||
id-UE-ContextInformation,
|
||||
id-UE-HistoryInformation,
|
||||
id-UE-X2AP-ID,
|
||||
id-Measurement-ID,
|
||||
id-ReportCharacteristics,
|
||||
id-ENB1-Measurement-ID,
|
||||
id-ENB2-Measurement-ID,
|
||||
id-ENB1-Cell-ID,
|
||||
id-ENB2-Cell-ID,
|
||||
id-ENB2-Proposed-Mobility-Parameters,
|
||||
id-ENB1-Mobility-Parameters,
|
||||
id-ENB2-Mobility-Parameters-Modification-Range,
|
||||
id-FailureCellPCI,
|
||||
id-Re-establishmentCellECGI,
|
||||
id-FailureCellCRNTI,
|
||||
id-ShortMAC-I,
|
||||
id-SourceCellECGI,
|
||||
id-FailureCellECGI,
|
||||
id-HandoverReportType,
|
||||
id-UE-RLF-Report-Container,
|
||||
|
||||
|
||||
maxCellineNB,
|
||||
maxnoofBearers,
|
||||
maxnoofPDCP-SN
|
||||
|
||||
FROM X2AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HandoverRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory } |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
|
||||
{ ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory } |
|
||||
{ ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory } |
|
||||
{ ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory } |
|
||||
{ ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory } |
|
||||
{ ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional } |
|
||||
{ ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} }
|
||||
|
||||
E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER REQUEST ACKNOWLEDGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HandoverRequestAcknowledge ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory} |
|
||||
{ ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional} |
|
||||
{ ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} }
|
||||
|
||||
E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} }
|
||||
|
||||
E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER PREPARATION FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HandoverPreparationFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Handover Report
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HandoverReport ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{HandoverReport-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
HandoverReport-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
|
||||
{ ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
|
||||
{ ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory} |
|
||||
{ ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- ,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- SN Status Transfer
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SNStatusTransfer ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} }
|
||||
|
||||
E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- UE Context Release
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
UEContextRelease ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
UEContextRelease-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER CANCEL
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HandoverCancel ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
HandoverCancel-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ERROR INDICATION
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ErrorIndication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ErrorIndication-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} ,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Reset Request
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ResetRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ResetRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ResetRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Reset Response
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ResetResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ResetResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ResetResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- X2 SETUP REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2SetupRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} |
|
||||
{ ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} |
|
||||
{ ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- X2 SETUP RESPONSE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2SetupResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} |
|
||||
{ ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} |
|
||||
{ ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- X2 SETUP FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2SetupFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
|
||||
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- LOAD INFORMATION
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
LoadInformation ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{LoadInformation-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
LoadInformation-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} }
|
||||
|
||||
CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ENB CONFIGURATION UPDATE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ENBConfigurationUpdate ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional} |
|
||||
{ ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional} |
|
||||
{ ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional} |
|
||||
{ ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional} |
|
||||
{ ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item
|
||||
|
||||
ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ENB CONFIGURATION UPDATE ACKNOWLEDGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ENB CONFIGURATION UPDATE FAIURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ENBConfigurationUpdateFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Resource Status Request
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ResourceStatusRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”--
|
||||
{ ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory} |
|
||||
{ ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional} |
|
||||
{ ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory} |
|
||||
{ ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional} ,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} }
|
||||
|
||||
CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Resource Status Response
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ResourceStatusResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Resource Status Failure
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ResourceStatusFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Resource Status Update
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ResourceStatusUpdate ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory},
|
||||
...
|
||||
}
|
||||
|
||||
CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} }
|
||||
|
||||
CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
{
|
||||
ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PRIVATE MESSAGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateMessage ::= SEQUENCE {
|
||||
privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
PrivateMessage-IEs X2AP-PRIVATE-IES ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- MOBILITY CHANGE REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
MobilityChangeRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
|
||||
{ ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
|
||||
{ ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional }|
|
||||
{ ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- MOBILITY CHANGE ACKNOWLEDGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
MobilityChangeAcknowledge ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
|
||||
{ ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- MOBILITY CHANGE FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
MobilityChangeFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }|
|
||||
{ ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
{ ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Radio Link Failure Indication
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RLFIndication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{RLFIndication-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
RLFIndication-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}|
|
||||
{ ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
|
||||
{ ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}|
|
||||
{ ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}|
|
||||
{ ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Cell Activation Request
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
CellActivationRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item
|
||||
|
||||
ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Cell Activation Response
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
CellActivationResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
--**************************************************************
|
||||
--
|
||||
-- CELL ACTIVATION FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
CellActivationFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={
|
||||
...
|
||||
}
|
||||
|
||||
MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional }|
|
||||
{ ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional }|
|
||||
{ ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
END
|
||||
@@ -1,240 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedure definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-PDU-Descriptions {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) }
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
BEGIN
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
IMPORTS
|
||||
Criticality,
|
||||
ProcedureCode
|
||||
FROM X2AP-CommonDataTypes
|
||||
CellActivationRequest,
|
||||
CellActivationResponse,
|
||||
CellActivationFailure,
|
||||
ENBConfigurationUpdate,
|
||||
ENBConfigurationUpdateAcknowledge,
|
||||
ENBConfigurationUpdateFailure,
|
||||
ErrorIndication,
|
||||
HandoverCancel,
|
||||
HandoverReport,
|
||||
HandoverPreparationFailure,
|
||||
HandoverRequest,
|
||||
HandoverRequestAcknowledge,
|
||||
LoadInformation,
|
||||
PrivateMessage,
|
||||
ResetRequest,
|
||||
ResetResponse,
|
||||
ResourceStatusFailure,
|
||||
ResourceStatusRequest,
|
||||
ResourceStatusResponse,
|
||||
ResourceStatusUpdate,
|
||||
RLFIndication,
|
||||
SNStatusTransfer,
|
||||
UEContextRelease,
|
||||
X2SetupFailure, X2SetupRequest,
|
||||
X2SetupResponse,
|
||||
MobilityChangeRequest,
|
||||
MobilityChangeAcknowledge,
|
||||
MobilityChangeFailure
|
||||
FROM X2AP-PDU-Contents
|
||||
id-cellActivation,
|
||||
id-eNBConfigurationUpdate,
|
||||
id-errorIndication,
|
||||
id-handoverCancel,
|
||||
id-handoverReport,
|
||||
id-handoverPreparation,
|
||||
id-loadIndication,
|
||||
id-privateMessage,
|
||||
id-reset,
|
||||
id-resourceStatusReporting,
|
||||
id-resourceStatusReportingInitiation,
|
||||
id-rLFIndication,
|
||||
id-snStatusTransfer,
|
||||
id-uEContextRelease,
|
||||
id-x2Setup,
|
||||
id-mobilitySettingsChange
|
||||
FROM X2AP-Constants;
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure Class
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-ELEMENTARY-PROCEDURE ::= CLASS {
|
||||
&InitiatingMessage ,
|
||||
&SuccessfulOutcome OPTIONAL,
|
||||
&UnsuccessfulOutcome OPTIONAL,
|
||||
&procedureCode ProcedureCode UNIQUE,
|
||||
&criticality Criticality DEFAULT ignore
|
||||
}
|
||||
WITH SYNTAX {
|
||||
INITIATING MESSAGE &InitiatingMessage
|
||||
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
||||
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
||||
PROCEDURE CODE &procedureCode
|
||||
[CRITICALITY &criticality]
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface PDU Definition
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure List
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
|
||||
...
|
||||
}
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
handoverPreparation |
|
||||
reset |
|
||||
x2Setup |
|
||||
resourceStatusReportingInitiation |
|
||||
eNBConfigurationUpdate |
|
||||
mobilitySettingsChange |
|
||||
cellActivation ,
|
||||
...
|
||||
}
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
snStatusTransfer |
|
||||
uEContextRelease |
|
||||
handoverCancel |
|
||||
errorIndication |
|
||||
resourceStatusReporting |
|
||||
loadIndication |
|
||||
privateMessage |
|
||||
rLFIndication | handoverReport,
|
||||
...
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverRequest
|
||||
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
|
||||
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
|
||||
PROCEDURE CODE id-handoverPreparation
|
||||
CRITICALITY reject
|
||||
}
|
||||
snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE SNStatusTransfer
|
||||
PROCEDURE CODE id-snStatusTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextRelease
|
||||
PROCEDURE CODE id-uEContextRelease
|
||||
CRITICALITY ignore
|
||||
}
|
||||
handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverCancel
|
||||
PROCEDURE CODE id-handoverCancel
|
||||
CRITICALITY ignore
|
||||
}
|
||||
handoverReport X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverReport
|
||||
PROCEDURE CODE id-handoverReport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
errorIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ErrorIndication
|
||||
PROCEDURE CODE id-errorIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
reset X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResetRequest
|
||||
SUCCESSFUL OUTCOME ResetResponse
|
||||
PROCEDURE CODE id-reset
|
||||
CRITICALITY reject
|
||||
}
|
||||
x2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE X2SetupRequest
|
||||
SUCCESSFUL OUTCOME X2SetupResponse
|
||||
UNSUCCESSFUL OUTCOME X2SetupFailure
|
||||
PROCEDURE CODE id-x2Setup
|
||||
CRITICALITY reject
|
||||
}
|
||||
loadIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE LoadInformation
|
||||
PROCEDURE CODE id-loadIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ENBConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-eNBConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResourceStatusRequest
|
||||
SUCCESSFUL OUTCOME ResourceStatusResponse
|
||||
UNSUCCESSFUL OUTCOME ResourceStatusFailure
|
||||
PROCEDURE CODE id-resourceStatusReportingInitiation
|
||||
CRITICALITY reject
|
||||
}
|
||||
resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResourceStatusUpdate
|
||||
PROCEDURE CODE id-resourceStatusReporting
|
||||
CRITICALITY ignore
|
||||
}
|
||||
rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE RLFIndication
|
||||
PROCEDURE CODE id-rLFIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
privateMessage X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PrivateMessage
|
||||
PROCEDURE CODE id-privateMessage
|
||||
CRITICALITY ignore
|
||||
}
|
||||
mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE MobilityChangeRequest
|
||||
SUCCESSFUL OUTCOME MobilityChangeAcknowledge
|
||||
UNSUCCESSFUL OUTCOME MobilityChangeFailure
|
||||
PROCEDURE CODE id-mobilitySettingsChange
|
||||
CRITICALITY reject
|
||||
}
|
||||
cellActivation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE CellActivationRequest
|
||||
SUCCESSFUL OUTCOME CellActivationResponse
|
||||
UNSUCCESSFUL OUTCOME CellActivationFailure
|
||||
PROCEDURE CODE id-cellActivation
|
||||
CRITICALITY reject
|
||||
}
|
||||
END
|
||||
@@ -1,241 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedure definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-PDU-Descriptions {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) }
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
BEGIN
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
IMPORTS
|
||||
Criticality,
|
||||
ProcedureCode
|
||||
FROM X2AP-CommonDataTypes
|
||||
CellActivationRequest,
|
||||
CellActivationResponse,
|
||||
CellActivationFailure,
|
||||
ENBConfigurationUpdate,
|
||||
ENBConfigurationUpdateAcknowledge,
|
||||
ENBConfigurationUpdateFailure,
|
||||
ErrorIndication,
|
||||
HandoverCancel,
|
||||
HandoverReport,
|
||||
HandoverPreparationFailure,
|
||||
HandoverRequest,
|
||||
HandoverRequestAcknowledge,
|
||||
LoadInformation,
|
||||
PrivateMessage,
|
||||
ResetRequest,
|
||||
ResetResponse,
|
||||
ResourceStatusFailure,
|
||||
ResourceStatusRequest,
|
||||
ResourceStatusResponse,
|
||||
ResourceStatusUpdate,
|
||||
RLFIndication,
|
||||
SNStatusTransfer,
|
||||
UEContextRelease,
|
||||
X2SetupFailure, X2SetupRequest,
|
||||
X2SetupResponse,
|
||||
MobilityChangeRequest,
|
||||
MobilityChangeAcknowledge,
|
||||
MobilityChangeFailure
|
||||
FROM X2AP-PDU-Contents
|
||||
id-cellActivation,
|
||||
id-eNBConfigurationUpdate,
|
||||
id-errorIndication,
|
||||
id-handoverCancel,
|
||||
id-handoverReport,
|
||||
id-handoverPreparation,
|
||||
id-loadIndication,
|
||||
id-privateMessage,
|
||||
id-reset,
|
||||
id-resourceStatusReporting,
|
||||
id-resourceStatusReportingInitiation,
|
||||
id-rLFIndication,
|
||||
id-snStatusTransfer,
|
||||
id-uEContextRelease,
|
||||
id-x2Setup,
|
||||
id-mobilitySettingsChange
|
||||
FROM X2AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure Class
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-ELEMENTARY-PROCEDURE ::= CLASS {
|
||||
&InitiatingMessage ,
|
||||
&SuccessfulOutcome OPTIONAL,
|
||||
&UnsuccessfulOutcome OPTIONAL,
|
||||
&procedureCode ProcedureCode UNIQUE,
|
||||
&criticality Criticality DEFAULT ignore
|
||||
}
|
||||
WITH SYNTAX {
|
||||
INITIATING MESSAGE &InitiatingMessage
|
||||
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
||||
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
||||
PROCEDURE CODE &procedureCode
|
||||
[CRITICALITY &criticality]
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface PDU Definition
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure List
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
|
||||
...
|
||||
}
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
handoverPreparation |
|
||||
reset |
|
||||
x2Setup |
|
||||
resourceStatusReportingInitiation |
|
||||
eNBConfigurationUpdate |
|
||||
mobilitySettingsChange |
|
||||
cellActivation ,
|
||||
...
|
||||
}
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
snStatusTransfer |
|
||||
uEContextRelease |
|
||||
handoverCancel |
|
||||
errorIndication |
|
||||
resourceStatusReporting |
|
||||
loadIndication |
|
||||
privateMessage |
|
||||
rLFIndication | handoverReport,
|
||||
...
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverRequest
|
||||
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
|
||||
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
|
||||
PROCEDURE CODE id-handoverPreparation
|
||||
CRITICALITY reject
|
||||
}
|
||||
snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE SNStatusTransfer
|
||||
PROCEDURE CODE id-snStatusTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextRelease
|
||||
PROCEDURE CODE id-uEContextRelease
|
||||
CRITICALITY ignore
|
||||
}
|
||||
handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverCancel
|
||||
PROCEDURE CODE id-handoverCancel
|
||||
CRITICALITY ignore
|
||||
}
|
||||
handoverReport X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverReport
|
||||
PROCEDURE CODE id-handoverReport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
errorIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ErrorIndication
|
||||
PROCEDURE CODE id-errorIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
reset X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResetRequest
|
||||
SUCCESSFUL OUTCOME ResetResponse
|
||||
PROCEDURE CODE id-reset
|
||||
CRITICALITY reject
|
||||
}
|
||||
x2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE X2SetupRequest
|
||||
SUCCESSFUL OUTCOME X2SetupResponse
|
||||
UNSUCCESSFUL OUTCOME X2SetupFailure
|
||||
PROCEDURE CODE id-x2Setup
|
||||
CRITICALITY reject
|
||||
}
|
||||
loadIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE LoadInformation
|
||||
PROCEDURE CODE id-loadIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ENBConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-eNBConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResourceStatusRequest
|
||||
SUCCESSFUL OUTCOME ResourceStatusResponse
|
||||
UNSUCCESSFUL OUTCOME ResourceStatusFailure
|
||||
PROCEDURE CODE id-resourceStatusReportingInitiation
|
||||
CRITICALITY reject
|
||||
}
|
||||
resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResourceStatusUpdate
|
||||
PROCEDURE CODE id-resourceStatusReporting
|
||||
CRITICALITY ignore
|
||||
}
|
||||
rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE RLFIndication
|
||||
PROCEDURE CODE id-rLFIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
privateMessage X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PrivateMessage
|
||||
PROCEDURE CODE id-privateMessage
|
||||
CRITICALITY ignore
|
||||
}
|
||||
mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE MobilityChangeRequest
|
||||
SUCCESSFUL OUTCOME MobilityChangeAcknowledge
|
||||
UNSUCCESSFUL OUTCOME MobilityChangeFailure
|
||||
PROCEDURE CODE id-mobilitySettingsChange
|
||||
CRITICALITY reject
|
||||
}
|
||||
cellActivation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE CellActivationRequest
|
||||
SUCCESSFUL OUTCOME CellActivationResponse
|
||||
UNSUCCESSFUL OUTCOME CellActivationFailure
|
||||
PROCEDURE CODE id-cellActivation
|
||||
CRITICALITY reject
|
||||
}
|
||||
END
|
||||
@@ -1,199 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PDU definitions for X2AP.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PDU {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU (1) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
|
||||
maxProtocolIEs,
|
||||
Criticality,
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID
|
||||
FROM X2AP-CommonDataTypes;
|
||||
|
||||
IE ::= SEQUENCE {
|
||||
id ProtocolIE-ID,
|
||||
criticality Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
X2AP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode ProcedureCode,
|
||||
criticality Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode ProcedureCode,
|
||||
criticality Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode ProcedureCode,
|
||||
criticality Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
HandoverRequest ::= SEQUENCE {
|
||||
handoverRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRequestAcknowledge ::= SEQUENCE {
|
||||
handoverRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverPreparationFailure ::= SEQUENCE {
|
||||
handoverPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
SNStatusTransfer ::= SEQUENCE {
|
||||
snStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
UEContextRelease ::= SEQUENCE {
|
||||
ueContextRelease-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverCancel ::= SEQUENCE {
|
||||
handoverCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverReport ::= SEQUENCE {
|
||||
handoverReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ErrorIndication ::= SEQUENCE {
|
||||
errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ResetRequest ::= SEQUENCE {
|
||||
resetRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ResetResponse ::= SEQUENCE {
|
||||
resetResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupRequest ::= SEQUENCE {
|
||||
x2SetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupResponse ::= SEQUENCE {
|
||||
x2SetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupFailure ::= SEQUENCE {
|
||||
x2SetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
LoadInformation ::= SEQUENCE {
|
||||
loadInformation-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationUpdate ::= SEQUENCE {
|
||||
eNBConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
|
||||
eNBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationUpdateFailure ::= SEQUENCE {
|
||||
eNBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ResourceStatusRequest ::= SEQUENCE {
|
||||
resourceStatusRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ResourceStatusResponse ::= SEQUENCE {
|
||||
resourceStatusResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ResourceStatusFailure ::= SEQUENCE {
|
||||
resourceStatusFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
ResourceStatusUpdate ::= SEQUENCE {
|
||||
resourceStatusUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
RLFIndication ::= SEQUENCE {
|
||||
rlfIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
PrivateMessage ::= SEQUENCE {
|
||||
privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
MobilityChangeRequest ::= SEQUENCE {
|
||||
mobilityChangeRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
MobilityChangeAcknowledge ::= SEQUENCE {
|
||||
mobilityChangeAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
MobilityChangeFailure ::= SEQUENCE {
|
||||
mobilityChangeFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
CellActivationRequest ::= SEQUENCE {
|
||||
cellActivationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
CellActivationResponse ::= SEQUENCE {
|
||||
cellActivationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
CellActivationFailure ::= SEQUENCE {
|
||||
cellActivationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
...
|
||||
}
|
||||
|
||||
END
|
||||
+2866
File diff suppressed because it is too large
Load Diff
@@ -1,462 +0,0 @@
|
||||
X2AP_ASN_MODULE_SOURCES= \
|
||||
X2ap-Criticality.c \
|
||||
X2ap-Presence.c \
|
||||
X2ap-PrivateIE-ID.c \
|
||||
X2ap-ProcedureCode.c \
|
||||
X2ap-ProtocolIE-ID.c \
|
||||
X2ap-TriggeringMessage.c \
|
||||
X2ap-IE-Extensions.c \
|
||||
X2ap-AS-SecurityInformation.c \
|
||||
X2ap-AllocationAndRetentionPriority.c \
|
||||
X2ap-ActivatedCellList.c \
|
||||
X2ap-ActivatedCellList-Item.c \
|
||||
X2ap-BitRate.c \
|
||||
X2ap-BroadcastPLMNs-Item.c \
|
||||
X2ap-CapacityValue.c \
|
||||
X2ap-CellCapacityClassValue.c \
|
||||
X2ap-CellToReport-List.c \
|
||||
X2ap-CellToReport-Item.c \
|
||||
X2ap-CellMeasurementResult-List.c \
|
||||
X2ap-CellMeasurementResult-Item.c \
|
||||
X2ap-ReportingPeriodicity.c \
|
||||
X2ap-Cause.c \
|
||||
X2ap-CauseMisc.c \
|
||||
X2ap-CauseProtocol.c \
|
||||
X2ap-CauseRadioNetwork.c \
|
||||
X2ap-CauseTransport.c \
|
||||
X2ap-Cell-Size.c \
|
||||
X2ap-CellInformation-List.c \
|
||||
X2ap-CellInformation-Item.c \
|
||||
X2ap-CellType.c \
|
||||
X2ap-CompositeAvailableCapacityGroup.c \
|
||||
X2ap-CompositeAvailableCapacity.c \
|
||||
X2ap-COUNTvalue.c \
|
||||
X2ap-CriticalityDiagnostics.c \
|
||||
X2ap-CriticalityDiagnostics-IE-List.c \
|
||||
X2ap-CriticalityDiagnostics-IE-Elm.c \
|
||||
X2ap-CRNTI.c \
|
||||
X2ap-CyclicPrefixDL.c \
|
||||
X2ap-CyclicPrefixUL.c \
|
||||
X2ap-DeactivationIndication.c \
|
||||
X2ap-DL-Forwarding.c \
|
||||
X2ap-E-RABs-Admitted-List.c \
|
||||
X2ap-E-RABs-Admitted-Item.c \
|
||||
X2ap-E-RABs-ToBeSetup-List.c \
|
||||
X2ap-E-RABs-ToBeSetup-Item.c \
|
||||
X2ap-E-RABs-SubjectToStatusTransfer-List.c \
|
||||
X2ap-E-RABs-SubjectToStatusTransfer-Item.c \
|
||||
X2ap-EARFCN.c \
|
||||
X2ap-FDD-Info.c \
|
||||
X2ap-TDD-Info.c \
|
||||
X2ap-EUTRA-Mode-Info.c \
|
||||
X2ap-ECGI.c \
|
||||
X2ap-ENB-ID.c \
|
||||
X2ap-EncryptionAlgorithms.c \
|
||||
X2ap-EPLMNs.c \
|
||||
X2ap-E-RAB-ID.c \
|
||||
X2ap-E-RAB-Level-QoS-Parameters.c \
|
||||
X2ap-E-RAB-List.c \
|
||||
X2ap-E-RAB-Item.c \
|
||||
X2ap-EUTRANCellIdentifier.c \
|
||||
X2ap-EUTRANTraceID.c \
|
||||
X2ap-EventType.c \
|
||||
X2ap-ForbiddenInterRATs.c \
|
||||
X2ap-ForbiddenTAs.c \
|
||||
X2ap-ForbiddenTAs-Item.c \
|
||||
X2ap-ForbiddenTACs.c \
|
||||
X2ap-ForbiddenLAs.c \
|
||||
X2ap-ForbiddenLAs-Item.c \
|
||||
X2ap-ForbiddenLACs.c \
|
||||
X2ap-Fourframes.c \
|
||||
X2ap-GBR-QosInformation.c \
|
||||
X2ap-GlobalENB-ID.c \
|
||||
X2ap-GTPtunnelEndpoint.c \
|
||||
X2ap-GTP-TEI.c \
|
||||
X2ap-GUGroupIDList.c \
|
||||
X2ap-GU-Group-ID.c \
|
||||
X2ap-GUMMEI.c \
|
||||
X2ap-HandoverReportType.c \
|
||||
X2ap-HandoverRestrictionList.c \
|
||||
X2ap-HFN.c \
|
||||
X2ap-HWLoadIndicator.c \
|
||||
X2ap-IntegrityProtectionAlgorithms.c \
|
||||
X2ap-InterfacesToTrace.c \
|
||||
X2ap-Key-eNodeB-Star.c \
|
||||
X2ap-LAC.c \
|
||||
X2ap-LastVisitedCell-Item.c \
|
||||
X2ap-LastVisitedEUTRANCellInformation.c \
|
||||
X2ap-LastVisitedUTRANCellInformation.c \
|
||||
X2ap-LastVisitedGERANCellInformation.c \
|
||||
X2ap-LoadIndicator.c \
|
||||
X2ap-LocationReportingInformation.c \
|
||||
X2ap-MME-Group-ID.c \
|
||||
X2ap-MME-Code.c \
|
||||
X2ap-Measurement-ID.c \
|
||||
X2ap-MBSFN-Subframe-Infolist.c \
|
||||
X2ap-MBSFN-Subframe-Info.c \
|
||||
X2ap-MobilityParametersModificationRange.c \
|
||||
X2ap-MobilityParametersInformation.c \
|
||||
X2ap-Neighbour-Information.c \
|
||||
X2ap-Neighbour-Information-Elm.c \
|
||||
X2ap-NextHopChainingCount.c \
|
||||
X2ap-Number-of-Antennaports.c \
|
||||
X2ap-Oneframe.c \
|
||||
X2ap-PDCP-SN.c \
|
||||
X2ap-PCI.c \
|
||||
X2ap-PLMN-Identity.c \
|
||||
X2ap-PRACH-Configuration.c \
|
||||
X2ap-Pre-emptionCapability.c \
|
||||
X2ap-Pre-emptionVulnerability.c \
|
||||
X2ap-PriorityLevel.c \
|
||||
X2ap-QCI.c \
|
||||
X2ap-ReceiveStatusofULPDCPSDUs.c \
|
||||
X2ap-Registration-Request.c \
|
||||
X2ap-RelativeNarrowbandTxPower.c \
|
||||
X2ap-ReportArea.c \
|
||||
X2ap-ReportCharacteristics.c \
|
||||
X2ap-RNTP-Threshold.c \
|
||||
X2ap-RRC-Context.c \
|
||||
X2ap-RadioResourceStatus.c \
|
||||
X2ap-DL-GBR-PRB-usage.c \
|
||||
X2ap-UL-GBR-PRB-usage.c \
|
||||
X2ap-DL-non-GBR-PRB-usage.c \
|
||||
X2ap-UL-non-GBR-PRB-usage.c \
|
||||
X2ap-DL-Total-PRB-usage.c \
|
||||
X2ap-UL-Total-PRB-usage.c \
|
||||
X2ap-RadioframeAllocationPeriod.c \
|
||||
X2ap-RadioframeAllocationOffset.c \
|
||||
X2ap-S1TNLLoadIndicator.c \
|
||||
X2ap-ServedCellsToActivate.c \
|
||||
X2ap-ServedCellsToActivate-Item.c \
|
||||
X2ap-ServedCellsToModify.c \
|
||||
X2ap-ServedCellsToModify-Item.c \
|
||||
X2ap-Old-ECGIs.c \
|
||||
X2ap-ServedCells.c \
|
||||
X2ap-ServedCellItem.c \
|
||||
X2ap-ServedCell-Information.c \
|
||||
X2ap-ShortMAC-I.c \
|
||||
X2ap-SRVCCOperationPossible.c \
|
||||
X2ap-SubframeAssignment.c \
|
||||
X2ap-SpecialSubframe-Info.c \
|
||||
X2ap-SpecialSubframePatterns.c \
|
||||
X2ap-SubscriberProfileIDforRFP.c \
|
||||
X2ap-SubframeAllocation.c \
|
||||
X2ap-TAC.c \
|
||||
X2ap-TargeteNBtoSource-eNBTransparentContainer.c \
|
||||
X2ap-TimeToWait.c \
|
||||
X2ap-Time-UE-StayedInCell.c \
|
||||
X2ap-TraceActivation.c \
|
||||
X2ap-TraceCollectionEntityIPAddress.c \
|
||||
X2ap-TraceDepth.c \
|
||||
X2ap-Transmission-Bandwidth.c \
|
||||
X2ap-TransportLayerAddress.c \
|
||||
X2ap-TypeOfError.c \
|
||||
X2ap-UE-HistoryInformation.c \
|
||||
X2ap-UE-S1AP-ID.c \
|
||||
X2ap-UE-X2AP-ID.c \
|
||||
X2ap-UEAggregateMaximumBitRate.c \
|
||||
X2ap-UESecurityCapabilities.c \
|
||||
X2ap-UE-ContextInformation.c \
|
||||
X2ap-UL-InterferenceOverloadIndication.c \
|
||||
X2ap-UL-InterferenceOverloadIndication-Item.c \
|
||||
X2ap-UL-HighInterferenceIndicationInfo.c \
|
||||
X2ap-UL-HighInterferenceIndicationInfo-Item.c \
|
||||
X2ap-UL-HighInterferenceIndication.c \
|
||||
X2ap-UE-RLF-Report-Container.c \
|
||||
X2ap-IE.c \
|
||||
X2AP-PDU.c \
|
||||
X2ap-InitiatingMessage.c \
|
||||
X2ap-SuccessfulOutcome.c \
|
||||
X2ap-UnsuccessfulOutcome.c \
|
||||
X2ap-HandoverRequest.c \
|
||||
X2ap-HandoverRequestAcknowledge.c \
|
||||
X2ap-HandoverPreparationFailure.c \
|
||||
X2ap-SNStatusTransfer.c \
|
||||
X2ap-UEContextRelease.c \
|
||||
X2ap-HandoverCancel.c \
|
||||
X2ap-HandoverReport.c \
|
||||
X2ap-ErrorIndication.c \
|
||||
X2ap-ResetRequest.c \
|
||||
X2ap-ResetResponse.c \
|
||||
X2ap-X2SetupRequest.c \
|
||||
X2ap-X2SetupResponse.c \
|
||||
X2ap-X2SetupFailure.c \
|
||||
X2ap-LoadInformation.c \
|
||||
X2ap-ENBConfigurationUpdate.c \
|
||||
X2ap-ENBConfigurationUpdateAcknowledge.c \
|
||||
X2ap-ENBConfigurationUpdateFailure.c \
|
||||
X2ap-ResourceStatusRequest.c \
|
||||
X2ap-ResourceStatusResponse.c \
|
||||
X2ap-ResourceStatusFailure.c \
|
||||
X2ap-ResourceStatusUpdate.c \
|
||||
X2ap-RLFIndication.c \
|
||||
X2ap-PrivateMessage.c \
|
||||
X2ap-MobilityChangeRequest.c \
|
||||
X2ap-MobilityChangeAcknowledge.c \
|
||||
X2ap-MobilityChangeFailure.c \
|
||||
X2ap-CellActivationRequest.c \
|
||||
X2ap-CellActivationResponse.c \
|
||||
X2ap-CellActivationFailure.c
|
||||
|
||||
X2AP_ASN_MODULE_HEADERS= \
|
||||
X2ap-Criticality.h \
|
||||
X2ap-Presence.h \
|
||||
X2ap-PrivateIE-ID.h \
|
||||
X2ap-ProcedureCode.h \
|
||||
X2ap-ProtocolIE-ID.h \
|
||||
X2ap-TriggeringMessage.h \
|
||||
X2ap-IE-Extensions.h \
|
||||
X2ap-AS-SecurityInformation.h \
|
||||
X2ap-AllocationAndRetentionPriority.h \
|
||||
X2ap-ActivatedCellList.h \
|
||||
X2ap-ActivatedCellList-Item.h \
|
||||
X2ap-BitRate.h \
|
||||
X2ap-BroadcastPLMNs-Item.h \
|
||||
X2ap-CapacityValue.h \
|
||||
X2ap-CellCapacityClassValue.h \
|
||||
X2ap-CellToReport-List.h \
|
||||
X2ap-CellToReport-Item.h \
|
||||
X2ap-CellMeasurementResult-List.h \
|
||||
X2ap-CellMeasurementResult-Item.h \
|
||||
X2ap-ReportingPeriodicity.h \
|
||||
X2ap-Cause.h \
|
||||
X2ap-CauseMisc.h \
|
||||
X2ap-CauseProtocol.h \
|
||||
X2ap-CauseRadioNetwork.h \
|
||||
X2ap-CauseTransport.h \
|
||||
X2ap-Cell-Size.h \
|
||||
X2ap-CellInformation-List.h \
|
||||
X2ap-CellInformation-Item.h \
|
||||
X2ap-CellType.h \
|
||||
X2ap-CompositeAvailableCapacityGroup.h \
|
||||
X2ap-CompositeAvailableCapacity.h \
|
||||
X2ap-COUNTvalue.h \
|
||||
X2ap-CriticalityDiagnostics.h \
|
||||
X2ap-CriticalityDiagnostics-IE-List.h \
|
||||
X2ap-CriticalityDiagnostics-IE-Elm.h \
|
||||
X2ap-CRNTI.h \
|
||||
X2ap-CyclicPrefixDL.h \
|
||||
X2ap-CyclicPrefixUL.h \
|
||||
X2ap-DeactivationIndication.h \
|
||||
X2ap-DL-Forwarding.h \
|
||||
X2ap-E-RABs-Admitted-List.h \
|
||||
X2ap-E-RABs-Admitted-Item.h \
|
||||
X2ap-E-RABs-ToBeSetup-List.h \
|
||||
X2ap-E-RABs-ToBeSetup-Item.h \
|
||||
X2ap-E-RABs-SubjectToStatusTransfer-List.h \
|
||||
X2ap-E-RABs-SubjectToStatusTransfer-Item.h \
|
||||
X2ap-EARFCN.h \
|
||||
X2ap-FDD-Info.h \
|
||||
X2ap-TDD-Info.h \
|
||||
X2ap-EUTRA-Mode-Info.h \
|
||||
X2ap-ECGI.h \
|
||||
X2ap-ENB-ID.h \
|
||||
X2ap-EncryptionAlgorithms.h \
|
||||
X2ap-EPLMNs.h \
|
||||
X2ap-E-RAB-ID.h \
|
||||
X2ap-E-RAB-Level-QoS-Parameters.h \
|
||||
X2ap-E-RAB-List.h \
|
||||
X2ap-E-RAB-Item.h \
|
||||
X2ap-EUTRANCellIdentifier.h \
|
||||
X2ap-EUTRANTraceID.h \
|
||||
X2ap-EventType.h \
|
||||
X2ap-ForbiddenInterRATs.h \
|
||||
X2ap-ForbiddenTAs.h \
|
||||
X2ap-ForbiddenTAs-Item.h \
|
||||
X2ap-ForbiddenTACs.h \
|
||||
X2ap-ForbiddenLAs.h \
|
||||
X2ap-ForbiddenLAs-Item.h \
|
||||
X2ap-ForbiddenLACs.h \
|
||||
X2ap-Fourframes.h \
|
||||
X2ap-GBR-QosInformation.h \
|
||||
X2ap-GlobalENB-ID.h \
|
||||
X2ap-GTPtunnelEndpoint.h \
|
||||
X2ap-GTP-TEI.h \
|
||||
X2ap-GUGroupIDList.h \
|
||||
X2ap-GU-Group-ID.h \
|
||||
X2ap-GUMMEI.h \
|
||||
X2ap-HandoverReportType.h \
|
||||
X2ap-HandoverRestrictionList.h \
|
||||
X2ap-HFN.h \
|
||||
X2ap-HWLoadIndicator.h \
|
||||
X2ap-IntegrityProtectionAlgorithms.h \
|
||||
X2ap-InterfacesToTrace.h \
|
||||
X2ap-Key-eNodeB-Star.h \
|
||||
X2ap-LAC.h \
|
||||
X2ap-LastVisitedCell-Item.h \
|
||||
X2ap-LastVisitedEUTRANCellInformation.h \
|
||||
X2ap-LastVisitedUTRANCellInformation.h \
|
||||
X2ap-LastVisitedGERANCellInformation.h \
|
||||
X2ap-LoadIndicator.h \
|
||||
X2ap-LocationReportingInformation.h \
|
||||
X2ap-MME-Group-ID.h \
|
||||
X2ap-MME-Code.h \
|
||||
X2ap-Measurement-ID.h \
|
||||
X2ap-MBSFN-Subframe-Infolist.h \
|
||||
X2ap-MBSFN-Subframe-Info.h \
|
||||
X2ap-MobilityParametersModificationRange.h \
|
||||
X2ap-MobilityParametersInformation.h \
|
||||
X2ap-Neighbour-Information.h \
|
||||
X2ap-Neighbour-Information-Elm.h \
|
||||
X2ap-NextHopChainingCount.h \
|
||||
X2ap-Number-of-Antennaports.h \
|
||||
X2ap-Oneframe.h \
|
||||
X2ap-PDCP-SN.h \
|
||||
X2ap-PCI.h \
|
||||
X2ap-PLMN-Identity.h \
|
||||
X2ap-PRACH-Configuration.h \
|
||||
X2ap-Pre-emptionCapability.h \
|
||||
X2ap-Pre-emptionVulnerability.h \
|
||||
X2ap-PriorityLevel.h \
|
||||
X2ap-QCI.h \
|
||||
X2ap-ReceiveStatusofULPDCPSDUs.h \
|
||||
X2ap-Registration-Request.h \
|
||||
X2ap-RelativeNarrowbandTxPower.h \
|
||||
X2ap-ReportArea.h \
|
||||
X2ap-ReportCharacteristics.h \
|
||||
X2ap-RNTP-Threshold.h \
|
||||
X2ap-RRC-Context.h \
|
||||
X2ap-RadioResourceStatus.h \
|
||||
X2ap-DL-GBR-PRB-usage.h \
|
||||
X2ap-UL-GBR-PRB-usage.h \
|
||||
X2ap-DL-non-GBR-PRB-usage.h \
|
||||
X2ap-UL-non-GBR-PRB-usage.h \
|
||||
X2ap-DL-Total-PRB-usage.h \
|
||||
vUL-Total-PRB-usage.h \
|
||||
X2ap-RadioframeAllocationPeriod.h \
|
||||
X2ap-RadioframeAllocationOffset.h \
|
||||
X2ap-S1TNLLoadIndicator.h \
|
||||
X2ap-ServedCellsToActivate.h \
|
||||
X2ap-ServedCellsToActivate-Item.h \
|
||||
X2ap-ServedCellsToModify.h \
|
||||
X2ap-ServedCellsToModify-Item.h \
|
||||
X2ap-Old-ECGIs.h \
|
||||
X2ap-ServedCells.h \
|
||||
X2ap-ServedCellItem.h \
|
||||
X2ap-ServedCell-Information.h \
|
||||
X2ap-ShortMAC-I.h \
|
||||
X2ap-SRVCCOperationPossible.h \
|
||||
X2ap-SubframeAssignment.h \
|
||||
X2ap-SpecialSubframe-Info.h \
|
||||
X2ap-SpecialSubframePatterns.h \
|
||||
X2ap-SubscriberProfileIDforRFP.h \
|
||||
X2ap-SubframeAllocation.h \
|
||||
X2ap-TAC.h \
|
||||
X2ap-TargeteNBtoSource-eNBTransparentContainer.h \
|
||||
X2ap-TimeToWait.h \
|
||||
X2ap-Time-UE-StayedInCell.h \
|
||||
X2ap-TraceActivation.h \
|
||||
X2ap-TraceCollectionEntityIPAddress.h \
|
||||
X2ap-TraceDepth.h \
|
||||
X2ap-Transmission-Bandwidth.h \
|
||||
X2ap-TransportLayerAddress.h \
|
||||
X2ap-TypeOfError.h \
|
||||
X2ap-UE-HistoryInformation.h \
|
||||
X2ap-UE-S1AP-ID.h \
|
||||
X2ap-UE-X2AP-ID.h \
|
||||
X2ap-UEAggregateMaximumBitRate.h \
|
||||
X2ap-UESecurityCapabilities.h \
|
||||
X2ap-UE-ContextInformation.h \
|
||||
X2ap-UL-InterferenceOverloadIndication.h \
|
||||
X2ap-UL-InterferenceOverloadIndication-Item.h \
|
||||
X2ap-UL-HighInterferenceIndicationInfo.h \
|
||||
X2ap-UL-HighInterferenceIndicationInfo-Item.h \
|
||||
X2ap-UL-HighInterferenceIndication.h \
|
||||
X2ap-UE-RLF-Report-Container.h \
|
||||
X2ap-IE.h \
|
||||
X2ap-X2AP-PDU.h \
|
||||
X2ap-InitiatingMessage.h \
|
||||
X2ap-SuccessfulOutcome.h \
|
||||
X2ap-UnsuccessfulOutcome.h \
|
||||
X2ap-HandoverRequest.h \
|
||||
X2ap-HandoverRequestAcknowledge.h \
|
||||
X2ap-HandoverPreparationFailure.h \
|
||||
X2ap-SNStatusTransfer.h \
|
||||
X2ap-UEContextRelease.h \
|
||||
X2ap-HandoverCancel.h \
|
||||
X2ap-HandoverReport.h \
|
||||
X2ap-ErrorIndication.h \
|
||||
X2ap-ResetRequest.h \
|
||||
X2ap-ResetResponse.h \
|
||||
X2ap-X2SetupRequest.h \
|
||||
X2ap-X2SetupResponse.h \
|
||||
X2ap-X2SetupFailure.h \
|
||||
X2ap-LoadInformation.h \
|
||||
X2ap-ENBConfigurationUpdate.h \
|
||||
X2ap-ENBConfigurationUpdateAcknowledge.h \
|
||||
X2ap-ENBConfigurationUpdateFailure.h \
|
||||
X2ap-ResourceStatusRequest.h \
|
||||
X2ap-ResourceStatusResponse.h \
|
||||
X2ap-ResourceStatusFailure.h \
|
||||
X2ap-ResourceStatusUpdate.h \
|
||||
X2ap-RLFIndication.h \
|
||||
X2ap-PrivateMessage.h \
|
||||
X2ap-MobilityChangeRequest.h \
|
||||
X2ap-MobilityChangeAcknowledge.h \
|
||||
X2ap-MobilityChangeFailure.h \
|
||||
X2ap-CellActivationRequest.h \
|
||||
X2ap-CellActivationResponse.h \
|
||||
X2ap-CellActivationFailure.h
|
||||
|
||||
X2AP_ASN_MODULE_HEADERS+=ANY.h
|
||||
X2AP_ASN_MODULE_SOURCES+=ANY.o
|
||||
X2AP_ASN_MODULE_HEADERS+=BOOLEAN.h
|
||||
X2AP_ASN_MODULE_SOURCES+=BOOLEAN.o
|
||||
X2AP_ASN_MODULE_HEADERS+=INTEGER.h
|
||||
X2AP_ASN_MODULE_HEADERS+=NativeEnumerated.h
|
||||
X2AP_ASN_MODULE_SOURCES+=INTEGER.o
|
||||
X2AP_ASN_MODULE_HEADERS+=NULL.h
|
||||
X2AP_ASN_MODULE_SOURCES+=NULL.o
|
||||
X2AP_ASN_MODULE_SOURCES+=NativeEnumerated.o
|
||||
X2AP_ASN_MODULE_HEADERS+=NativeInteger.h
|
||||
X2AP_ASN_MODULE_SOURCES+=NativeInteger.o
|
||||
X2AP_ASN_MODULE_HEADERS+=OBJECT_IDENTIFIER.h
|
||||
X2AP_ASN_MODULE_SOURCES+=OBJECT_IDENTIFIER.o
|
||||
X2AP_ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h
|
||||
X2AP_ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.o
|
||||
X2AP_ASN_MODULE_HEADERS+=asn_SET_OF.h
|
||||
X2AP_ASN_MODULE_SOURCES+=asn_SET_OF.o
|
||||
X2AP_ASN_MODULE_HEADERS+=constr_CHOICE.h
|
||||
X2AP_ASN_MODULE_SOURCES+=constr_CHOICE.o
|
||||
X2AP_ASN_MODULE_HEADERS+=constr_SEQUENCE.h
|
||||
X2AP_ASN_MODULE_SOURCES+=constr_SEQUENCE.o
|
||||
X2AP_ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h
|
||||
X2AP_ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.o
|
||||
X2AP_ASN_MODULE_HEADERS+=constr_SET_OF.h
|
||||
X2AP_ASN_MODULE_SOURCES+=constr_SET_OF.o
|
||||
X2AP_ASN_MODULE_HEADERS+=asn_application.h
|
||||
X2AP_ASN_MODULE_HEADERS+=asn_system.h
|
||||
X2AP_ASN_MODULE_HEADERS+=asn_codecs.h
|
||||
X2AP_ASN_MODULE_HEADERS+=asn_internal.h
|
||||
X2AP_ASN_MODULE_HEADERS+=OCTET_STRING.h
|
||||
X2AP_ASN_MODULE_SOURCES+=OCTET_STRING.o
|
||||
X2AP_ASN_MODULE_HEADERS+=BIT_STRING.h
|
||||
X2AP_ASN_MODULE_SOURCES+=BIT_STRING.o
|
||||
X2AP_ASN_MODULE_SOURCES+=asn_codecs_prim.o
|
||||
X2AP_ASN_MODULE_HEADERS+=asn_codecs_prim.h
|
||||
X2AP_ASN_MODULE_HEADERS+=ber_tlv_length.h
|
||||
X2AP_ASN_MODULE_SOURCES+=ber_tlv_length.o
|
||||
X2AP_ASN_MODULE_HEADERS+=ber_tlv_tag.h
|
||||
X2AP_ASN_MODULE_SOURCES+=ber_tlv_tag.o
|
||||
X2AP_ASN_MODULE_HEADERS+=ber_decoder.h
|
||||
X2AP_ASN_MODULE_SOURCES+=ber_decoder.o
|
||||
X2AP_ASN_MODULE_HEADERS+=der_encoder.h
|
||||
X2AP_ASN_MODULE_SOURCES+=der_encoder.o
|
||||
X2AP_ASN_MODULE_HEADERS+=constr_TYPE.h
|
||||
X2AP_ASN_MODULE_SOURCES+=constr_TYPE.o
|
||||
X2AP_ASN_MODULE_HEADERS+=constraints.h
|
||||
X2AP_ASN_MODULE_SOURCES+=constraints.o
|
||||
X2AP_ASN_MODULE_HEADERS+=xer_support.h
|
||||
X2AP_ASN_MODULE_SOURCES+=xer_support.o
|
||||
X2AP_ASN_MODULE_HEADERS+=xer_decoder.h
|
||||
X2AP_ASN_MODULE_SOURCES+=xer_decoder.o
|
||||
X2AP_ASN_MODULE_HEADERS+=xer_encoder.h
|
||||
X2AP_ASN_MODULE_SOURCES+=xer_encoder.o
|
||||
X2AP_ASN_MODULE_HEADERS+=per_support.h
|
||||
X2AP_ASN_MODULE_SOURCES+=per_support.o
|
||||
X2AP_ASN_MODULE_HEADERS+=per_decoder.h
|
||||
X2AP_ASN_MODULE_SOURCES+=per_decoder.o
|
||||
X2AP_ASN_MODULE_HEADERS+=per_encoder.h
|
||||
X2AP_ASN_MODULE_SOURCES+=per_encoder.o
|
||||
X2AP_ASN_MODULE_HEADERS+=per_opentype.h
|
||||
X2AP_ASN_MODULE_SOURCES+=per_opentype.o
|
||||
@@ -1,142 +0,0 @@
|
||||
X2AP-CommonDataTypes {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Extension constants
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
x2ap-maxPrivateIEs INTEGER ::= 65535
|
||||
x2ap-maxProtocolExtensions INTEGER ::= 65535
|
||||
x2ap-maxProtocolIEs INTEGER ::= 65535
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Common Data Types
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-Criticality ::= ENUMERATED { reject, ignore, notify }
|
||||
|
||||
X2ap-Presence ::= ENUMERATED { optional, conditional, mandatory }
|
||||
|
||||
X2ap-PrivateIE-ID ::= CHOICE {
|
||||
local INTEGER (0.. x2ap-maxPrivateIEs),
|
||||
global OBJECT IDENTIFIER
|
||||
}
|
||||
|
||||
--X2ap-ProcedureCode ::= INTEGER (0..255)
|
||||
X2ap-ProcedureCode ::= INTEGER {
|
||||
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),
|
||||
id-mobilitySettingsChange (12),
|
||||
id-rLFIndication (13),
|
||||
id-handoverReport (14),
|
||||
id-cellActivation (15)
|
||||
} (0..255)
|
||||
|
||||
--X2ap-ProtocolIE-ID ::= INTEGER (0..x2ap-maxProtocolIEs)
|
||||
X2ap-ProtocolIE-ID ::= INTEGER {
|
||||
id-E-RABs-Admitted-Item (0),
|
||||
id-E-RABs-Admitted-List (1),
|
||||
id-E-RAB-Item (2),
|
||||
id-E-RABs-NotAdmitted-List (3),
|
||||
id-E-RABs-ToBeSetup-Item (4),
|
||||
id-Cause (5),
|
||||
id-CellInformation (6),
|
||||
id-CellInformation-Item (7),
|
||||
id-New-eNB-UE-X2AP-ID (9),
|
||||
id-Old-eNB-UE-X2AP-ID (10),
|
||||
id-TargetCell-ID (11),
|
||||
id-TargeteNBtoSource-eNBTransparentContainer (12),
|
||||
id-TraceActivation (13),
|
||||
id-UE-ContextInformation (14),
|
||||
id-UE-HistoryInformation (15),
|
||||
id-UE-X2AP-ID (16),
|
||||
id-CriticalityDiagnostics (17),
|
||||
id-E-RABs-SubjectToStatusTransfer-List (18),
|
||||
id-E-RABs-SubjectToStatusTransfer-Item (19),
|
||||
id-ServedCells (20),
|
||||
id-GlobalENB-ID (21),
|
||||
id-TimeToWait (22),
|
||||
id-GUMMEI-ID (23),
|
||||
id-GUGroupIDList (24),
|
||||
id-ServedCellsToAdd (25),
|
||||
id-ServedCellsToModify (26),
|
||||
id-ServedCellsToDelete (27),
|
||||
id-Registration-Request (28),
|
||||
id-CellToReport (29),
|
||||
id-ReportingPeriodicity (30),
|
||||
id-CellToReport-Item (31),
|
||||
id-CellMeasurementResult (32),
|
||||
id-CellMeasurementResult-Item (33),
|
||||
id-GUGroupIDToAddList (34),
|
||||
id-GUGroupIDToDeleteList (35),
|
||||
id-SRVCCOperationPossible (36),
|
||||
id-Measurement-ID (37),
|
||||
id-ReportCharacteristics (38),
|
||||
id-ENB1-Measurement-ID (39),
|
||||
id-ENB2-Measurement-ID (40),
|
||||
id-Number-of-Antennaports (41),
|
||||
id-CompositeAvailableCapacityGroup (42),
|
||||
id-ENB1-Cell-ID (43),
|
||||
id-ENB2-Cell-ID (44),
|
||||
id-ENB2-Proposed-Mobility-Parameters (45),
|
||||
id-ENB1-Mobility-Parameters (46),
|
||||
id-ENB2-Mobility-Parameters-Modification-Range (47),
|
||||
id-FailureCellPCI (48),
|
||||
id-Re-establishmentCellECGI (49),
|
||||
id-FailureCellCRNTI (50),
|
||||
id-ShortMAC-I (51),
|
||||
id-SourceCellECGI (52),
|
||||
id-FailureCellECGI (53),
|
||||
id-HandoverReportType (54),
|
||||
id-PRACH-Configuration (55),
|
||||
id-MBSFN-Subframe-Info (56),
|
||||
id-ServedCellsToActivate (57),
|
||||
id-ActivatedCellList (58),
|
||||
id-DeactivationIndication (59),
|
||||
id-UE-RLF-Report-Container (60),
|
||||
id-ABSInformation (61),
|
||||
id-InvokeIndication (62),
|
||||
id-ABS-Status (63),
|
||||
id-PartialSuccessIndicator (64),
|
||||
id-MeasurementInitiationResult-List (65),
|
||||
id-MeasurementInitiationResult-Item (66),
|
||||
id-MeasurementFailureCause-Item (67),
|
||||
id-CompleteFailureCauseInformation-List (68),
|
||||
id-CompleteFailureCauseInformation-Item (69),
|
||||
id-CSG-Id (70),
|
||||
id-CSGMembershipStatus (71),
|
||||
id-MDTConfiguration (72),
|
||||
id-ManagementBasedMDTallowed (74),
|
||||
id-RRCConnSetupIndicator (75),
|
||||
id-NeighbourTAC (76),
|
||||
id-Time-UE-StayedInCell-EnhancedGranularity (77),
|
||||
id-RRCConnReestabIndicator (78),
|
||||
id-MBMS-Service-Area-List (79),
|
||||
id-HO-cause (80),
|
||||
id-TargetCellInUTRAN (81),
|
||||
id-MultibandInfoList (84)
|
||||
} (0..x2ap-maxProtocolIEs)
|
||||
|
||||
|
||||
X2ap-TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
|
||||
|
||||
END
|
||||
@@ -1,162 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Constant definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-Constants {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
X2ap-ProcedureCode,
|
||||
X2ap-ProtocolIE-ID
|
||||
FROM X2AP-CommonDataTypes;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-handoverPreparation X2ap-ProcedureCode ::= 0
|
||||
id-handoverCancel X2ap-ProcedureCode ::= 1
|
||||
id-loadIndication X2ap-ProcedureCode ::= 2
|
||||
id-errorIndication X2ap-ProcedureCode ::= 3
|
||||
id-snStatusTransfer X2ap-ProcedureCode ::= 4
|
||||
id-uEContextRelease X2ap-ProcedureCode ::= 5
|
||||
id-x2Setup X2ap-ProcedureCode ::= 6
|
||||
id-reset X2ap-ProcedureCode ::= 7
|
||||
id-eNBConfigurationUpdate X2ap-ProcedureCode ::= 8
|
||||
id-resourceStatusReportingInitiation X2ap-ProcedureCode ::= 9
|
||||
id-resourceStatusReporting X2ap-ProcedureCode ::= 10
|
||||
id-privateMessage X2ap-ProcedureCode ::= 11
|
||||
id-mobilitySettingsChange X2ap-ProcedureCode ::= 12
|
||||
id-rLFIndication X2ap-ProcedureCode ::= 13
|
||||
id-handoverReport X2ap-ProcedureCode ::= 14
|
||||
id-cellActivation X2ap-ProcedureCode ::= 15
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Lists
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
x2ap-maxEARFCN INTEGER ::= 65535
|
||||
x2ap-maxInterfaces INTEGER ::= 16
|
||||
x2ap-maxCellineNB INTEGER ::= 256
|
||||
x2ap-maxnoofBands INTEGER ::= 16
|
||||
x2ap-maxnoofBearers INTEGER ::= 256
|
||||
x2ap-maxNrOfErrors INTEGER ::= 256
|
||||
x2ap-maxnoofPDCP-SN INTEGER ::= 16
|
||||
x2ap-maxnoofEPLMNs INTEGER ::= 15
|
||||
x2ap-maxnoofEPLMNsPlusOne INTEGER ::= 16
|
||||
x2ap-maxnoofForbLACs INTEGER ::= 4096
|
||||
x2ap-maxnoofForbTACs INTEGER ::= 4096
|
||||
x2ap-maxnoofBPLMNs INTEGER ::= 6
|
||||
x2ap-maxnoofNeighbours INTEGER ::= 512
|
||||
x2ap-maxnoofPRBs INTEGER ::= 110
|
||||
x2ap-maxPools INTEGER ::= 16
|
||||
x2ap-maxnoofCells INTEGER ::= 16
|
||||
x2ap-maxnoofMBSFN INTEGER ::= 8
|
||||
x2ap-maxFailedMeasObjects INTEGER ::= 32
|
||||
x2ap-maxnoofCellIDforMDT INTEGER ::= 32
|
||||
x2ap-maxnoofTAforMDT INTEGER ::= 8
|
||||
x2ap-maxnoofMBMSServiceAreaIdentities INTEGER ::= 256
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-E-RABs-Admitted-Item X2ap-ProtocolIE-ID ::= 0
|
||||
id-E-RABs-Admitted-List X2ap-ProtocolIE-ID ::= 1
|
||||
id-E-RAB-Item X2ap-ProtocolIE-ID ::= 2
|
||||
id-E-RABs-NotAdmitted-List X2ap-ProtocolIE-ID ::= 3
|
||||
id-E-RABs-ToBeSetup-Item X2ap-ProtocolIE-ID ::= 4
|
||||
id-Cause X2ap-ProtocolIE-ID ::= 5
|
||||
id-CellInformation X2ap-ProtocolIE-ID ::= 6
|
||||
id-CellInformation-Item X2ap-ProtocolIE-ID ::= 7
|
||||
id-New-eNB-UE-X2AP-ID X2ap-ProtocolIE-ID ::= 9
|
||||
id-Old-eNB-UE-X2AP-ID X2ap-ProtocolIE-ID ::= 10
|
||||
id-TargetCell-ID X2ap-ProtocolIE-ID ::= 11
|
||||
id-TargeteNBtoSource-eNBTransparentContainer X2ap-ProtocolIE-ID ::= 12
|
||||
id-TraceActivation X2ap-ProtocolIE-ID ::= 13
|
||||
id-UE-ContextInformation X2ap-ProtocolIE-ID ::= 14
|
||||
id-UE-HistoryInformation X2ap-ProtocolIE-ID ::= 15
|
||||
id-UE-X2AP-ID X2ap-ProtocolIE-ID ::= 16
|
||||
id-CriticalityDiagnostics X2ap-ProtocolIE-ID ::= 17
|
||||
id-E-RABs-SubjectToStatusTransfer-List X2ap-ProtocolIE-ID ::= 18
|
||||
id-E-RABs-SubjectToStatusTransfer-Item X2ap-ProtocolIE-ID ::= 19
|
||||
id-ServedCells X2ap-ProtocolIE-ID ::= 20
|
||||
id-GlobalENB-ID X2ap-ProtocolIE-ID ::= 21
|
||||
id-TimeToWait X2ap-ProtocolIE-ID ::= 22
|
||||
id-GUMMEI-ID X2ap-ProtocolIE-ID ::= 23
|
||||
id-GUGroupIDList X2ap-ProtocolIE-ID ::= 24
|
||||
id-ServedCellsToAdd X2ap-ProtocolIE-ID ::= 25
|
||||
id-ServedCellsToModify X2ap-ProtocolIE-ID ::= 26
|
||||
id-ServedCellsToDelete X2ap-ProtocolIE-ID ::= 27
|
||||
id-Registration-Request X2ap-ProtocolIE-ID ::= 28
|
||||
id-CellToReport X2ap-ProtocolIE-ID ::= 29
|
||||
id-ReportingPeriodicity X2ap-ProtocolIE-ID ::= 30
|
||||
id-CellToReport-Item X2ap-ProtocolIE-ID ::= 31
|
||||
id-CellMeasurementResult X2ap-ProtocolIE-ID ::= 32
|
||||
id-CellMeasurementResult-Item X2ap-ProtocolIE-ID ::= 33
|
||||
id-GUGroupIDToAddList X2ap-ProtocolIE-ID ::= 34
|
||||
id-GUGroupIDToDeleteList X2ap-ProtocolIE-ID ::= 35
|
||||
id-SRVCCOperationPossible X2ap-ProtocolIE-ID ::= 36
|
||||
id-Measurement-ID X2ap-ProtocolIE-ID ::= 37
|
||||
id-ReportCharacteristics X2ap-ProtocolIE-ID ::= 38
|
||||
id-ENB1-Measurement-ID X2ap-ProtocolIE-ID ::= 39
|
||||
id-ENB2-Measurement-ID X2ap-ProtocolIE-ID ::= 40
|
||||
id-Number-of-Antennaports X2ap-ProtocolIE-ID ::= 41
|
||||
id-CompositeAvailableCapacityGroup X2ap-ProtocolIE-ID ::= 42
|
||||
id-ENB1-Cell-ID X2ap-ProtocolIE-ID ::= 43
|
||||
id-ENB2-Cell-ID X2ap-ProtocolIE-ID ::= 44
|
||||
id-ENB2-Proposed-Mobility-Parameters X2ap-ProtocolIE-ID ::= 45
|
||||
id-ENB1-Mobility-Parameters X2ap-ProtocolIE-ID ::= 46
|
||||
id-ENB2-Mobility-Parameters-Modification-Range X2ap-ProtocolIE-ID ::= 47
|
||||
id-FailureCellPCI X2ap-ProtocolIE-ID ::= 48
|
||||
id-Re-establishmentCellECGI X2ap-ProtocolIE-ID ::= 49
|
||||
id-FailureCellCRNTI X2ap-ProtocolIE-ID ::= 50
|
||||
id-ShortMAC-I X2ap-ProtocolIE-ID ::= 51
|
||||
id-SourceCellECGI X2ap-ProtocolIE-ID ::= 52
|
||||
id-FailureCellECGI X2ap-ProtocolIE-ID ::= 53
|
||||
id-HandoverReportType X2ap-ProtocolIE-ID ::= 54
|
||||
id-PRACH-Configuration X2ap-ProtocolIE-ID ::= 55
|
||||
id-MBSFN-Subframe-Info X2ap-ProtocolIE-ID ::= 56
|
||||
id-ServedCellsToActivate X2ap-ProtocolIE-ID ::= 57
|
||||
id-ActivatedCellList X2ap-ProtocolIE-ID ::= 58
|
||||
id-DeactivationIndication X2ap-ProtocolIE-ID ::= 59
|
||||
id-UE-RLF-Report-Container X2ap-ProtocolIE-ID ::= 60
|
||||
id-ABSInformation X2ap-ProtocolIE-ID ::= 61
|
||||
id-InvokeIndication X2ap-ProtocolIE-ID ::= 62
|
||||
id-ABS-Status X2ap-ProtocolIE-ID ::= 63
|
||||
id-PartialSuccessIndicator X2ap-ProtocolIE-ID ::= 64
|
||||
id-MeasurementInitiationResult-List X2ap-ProtocolIE-ID ::= 65
|
||||
id-MeasurementInitiationResult-Item X2ap-ProtocolIE-ID ::= 66
|
||||
id-MeasurementFailureCause-Item X2ap-ProtocolIE-ID ::= 67
|
||||
id-CompleteFailureCauseInformation-List X2ap-ProtocolIE-ID ::= 68
|
||||
id-CompleteFailureCauseInformation-Item X2ap-ProtocolIE-ID ::= 69
|
||||
id-CSG-Id X2ap-ProtocolIE-ID ::= 70
|
||||
id-CSGMembershipStatus X2ap-ProtocolIE-ID ::= 71
|
||||
id-MDTConfiguration X2ap-ProtocolIE-ID ::= 72
|
||||
id-ManagementBasedMDTallowed X2ap-ProtocolIE-ID ::= 74
|
||||
id-RRCConnSetupIndicator X2ap-ProtocolIE-ID ::= 75
|
||||
id-NeighbourTAC X2ap-ProtocolIE-ID ::= 76
|
||||
id-Time-UE-StayedInCell-EnhancedGranularity X2ap-ProtocolIE-ID ::= 77
|
||||
id-RRCConnReestabIndicator X2ap-ProtocolIE-ID ::= 78
|
||||
id-MBMS-Service-Area-List X2ap-ProtocolIE-ID ::= 79
|
||||
id-HO-cause X2ap-ProtocolIE-ID ::= 80
|
||||
id-TargetCellInUTRAN X2ap-ProtocolIE-ID ::= 81
|
||||
id-MultibandInfoList X2ap-ProtocolIE-ID ::= 84
|
||||
|
||||
END
|
||||
@@ -1,195 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-Containers {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
x2ap-maxPrivateIEs,
|
||||
x2ap-maxProtocolExtensions,
|
||||
x2ap-maxProtocolIEs,
|
||||
X2ap-Criticality,
|
||||
X2ap-Presence,
|
||||
X2ap-PrivateIE-ID,
|
||||
X2ap-ProtocolIE-ID
|
||||
FROM X2AP-CommonDataTypes;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PROTOCOL-IES ::= CLASS {
|
||||
&id X2ap-ProtocolIE-ID UNIQUE,
|
||||
&criticality X2ap-Criticality,
|
||||
&Value,
|
||||
&presence X2ap-Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PROTOCOL-IES-PAIR ::= CLASS {
|
||||
&id X2ap-ProtocolIE-ID UNIQUE,
|
||||
&firstCriticality X2ap-Criticality,
|
||||
&FirstValue,
|
||||
&secondCriticality X2ap-Criticality,
|
||||
&SecondValue,
|
||||
&presence X2ap-Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
FIRST CRITICALITY &firstCriticality
|
||||
FIRST TYPE &FirstValue
|
||||
SECOND CRITICALITY &secondCriticality
|
||||
SECOND TYPE &SecondValue
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PROTOCOL-EXTENSION ::= CLASS {
|
||||
&id X2ap-ProtocolIE-ID UNIQUE,
|
||||
&criticality X2ap-Criticality,
|
||||
&Extension,
|
||||
&presence X2ap-Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
EXTENSION &Extension
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PRIVATE-IES ::= CLASS {
|
||||
&id X2ap-PrivateIE-ID,
|
||||
&criticality X2ap-Criticality,
|
||||
&Value,
|
||||
&presence X2ap-Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id X2AP-PROTOCOL-IES.&id ({IEsSetParam}),
|
||||
criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IE Pairs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF
|
||||
ProtocolIE-FieldPair {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
|
||||
id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
|
||||
firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
|
||||
firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
|
||||
secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
|
||||
secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container Lists for Protocol IE Containers
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||
ProtocolIE-Container {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||
ProtocolIE-ContainerPair {{IEsSetParam}}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
|
||||
SEQUENCE (SIZE (1..x2ap-maxProtocolExtensions)) OF
|
||||
ProtocolExtensionField {{ExtensionSetParam}}
|
||||
|
||||
ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
|
||||
id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
|
||||
criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
|
||||
extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (1..x2ap-maxPrivateIEs)) OF
|
||||
PrivateIE-Field {{IEsSetParam}}
|
||||
|
||||
PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id X2AP-PRIVATE-IES.&id ({IEsSetParam}),
|
||||
criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
END
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,892 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PDU definitions for X2AP.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PDU-Contents {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
X2ap-ABSInformation,
|
||||
X2ap-ABS-Status,
|
||||
X2ap-AS-SecurityInformation,
|
||||
X2ap-Cause,
|
||||
X2ap-CompositeAvailableCapacityGroup,
|
||||
X2ap-COUNTvalue,
|
||||
X2ap-CriticalityDiagnostics,
|
||||
X2ap-CRNTI,
|
||||
X2ap-CSGMembershipStatus,
|
||||
X2ap-CSG-Id,
|
||||
X2ap-DeactivationIndication,
|
||||
X2ap-DL-Forwarding,
|
||||
X2ap-ECGI,
|
||||
X2ap-E-RAB-ID,
|
||||
X2ap-E-RAB-Level-QoS-Parameters,
|
||||
X2ap-E-RAB-List,
|
||||
X2ap-EUTRANTraceID,
|
||||
X2ap-GlobalENB-ID,
|
||||
X2ap-GTPtunnelEndpoint,
|
||||
X2ap-GUGroupIDList,
|
||||
X2ap-GUMMEI,
|
||||
X2ap-HandoverReportType,
|
||||
X2ap-HandoverRestrictionList,
|
||||
X2ap-InvokeIndication,
|
||||
X2ap-LocationReportingInformation,
|
||||
X2ap-MDT-Configuration,
|
||||
X2ap-ManagementBasedMDTallowed,
|
||||
X2ap-Neighbour-Information,
|
||||
X2ap-PCI,
|
||||
X2ap-PDCP-SN,
|
||||
X2ap-PLMN-Identity,
|
||||
X2ap-ReceiveStatusofULPDCPSDUs,
|
||||
X2ap-Registration-Request,
|
||||
X2ap-RelativeNarrowbandTxPower,
|
||||
X2ap-RadioResourceStatus,
|
||||
X2ap-RRCConnReestabIndicator,
|
||||
X2ap-RRCConnSetupIndicator,
|
||||
X2ap-UE-RLF-Report-Container,
|
||||
X2ap-RRC-Context,
|
||||
X2ap-ServedCell-Information,
|
||||
X2ap-ServedCells,
|
||||
X2ap-ShortMAC-I,
|
||||
X2ap-SRVCCOperationPossible,
|
||||
X2ap-SubscriberProfileIDforRFP,
|
||||
X2ap-TargetCellInUTRAN,
|
||||
X2ap-TargeteNBtoSource-eNBTransparentContainer,
|
||||
X2ap-TimeToWait,
|
||||
X2ap-TraceActivation,
|
||||
X2ap-TraceDepth,
|
||||
|
||||
X2ap-TransportLayerAddress,
|
||||
X2ap-UEAggregateMaximumBitRate,
|
||||
X2ap-UE-HistoryInformation,
|
||||
X2ap-UE-S1AP-ID,
|
||||
X2ap-UESecurityCapabilities,
|
||||
X2ap-UE-X2AP-ID,
|
||||
X2ap-UL-HighInterferenceIndicationInfo,
|
||||
X2ap-UL-InterferenceOverloadIndication,
|
||||
X2ap-HWLoadIndicator,
|
||||
X2ap-S1TNLLoadIndicator,
|
||||
X2ap-Measurement-ID,
|
||||
X2ap-ReportCharacteristics,
|
||||
X2ap-MobilityParametersInformation,
|
||||
X2ap-MobilityParametersModificationRange
|
||||
|
||||
|
||||
|
||||
|
||||
FROM X2AP-IEs
|
||||
|
||||
PrivateIE-Container{},
|
||||
ProtocolExtensionContainer{},
|
||||
ProtocolIE-Container{},
|
||||
ProtocolIE-ContainerList{},
|
||||
ProtocolIE-ContainerPair{},
|
||||
ProtocolIE-ContainerPairList{},
|
||||
ProtocolIE-Single-Container{},
|
||||
X2AP-PRIVATE-IES,
|
||||
X2AP-PROTOCOL-EXTENSION,
|
||||
X2AP-PROTOCOL-IES,
|
||||
X2AP-PROTOCOL-IES-PAIR
|
||||
FROM X2AP-Containers
|
||||
|
||||
id-ABSInformation,
|
||||
id-ActivatedCellList,
|
||||
id-Cause,
|
||||
id-CellInformation,
|
||||
id-CellInformation-Item,
|
||||
id-CellMeasurementResult,
|
||||
id-CellMeasurementResult-Item,
|
||||
id-CellToReport,
|
||||
id-CellToReport-Item,
|
||||
id-CompositeAvailableCapacityGroup,
|
||||
id-CriticalityDiagnostics,
|
||||
id-DeactivationIndication,
|
||||
id-E-RABs-Admitted-Item,
|
||||
id-E-RABs-Admitted-List,
|
||||
id-E-RABs-NotAdmitted-List,
|
||||
id-E-RABs-SubjectToStatusTransfer-List,
|
||||
id-E-RABs-SubjectToStatusTransfer-Item,
|
||||
id-E-RABs-ToBeSetup-Item,
|
||||
id-GlobalENB-ID,
|
||||
id-GUGroupIDList,
|
||||
id-GUGroupIDToAddList,
|
||||
id-GUGroupIDToDeleteList,
|
||||
id-GUMMEI-ID,
|
||||
id-InvokeIndication,
|
||||
id-New-eNB-UE-X2AP-ID,
|
||||
id-Old-eNB-UE-X2AP-ID,
|
||||
id-Registration-Request,
|
||||
id-ReportingPeriodicity,
|
||||
id-ServedCells,
|
||||
id-ServedCellsToActivate,
|
||||
id-ServedCellsToAdd,
|
||||
id-ServedCellsToModify,
|
||||
id-ServedCellsToDelete,
|
||||
id-SRVCCOperationPossible,
|
||||
id-TargetCell-ID,
|
||||
id-TargeteNBtoSource-eNBTransparentContainer,
|
||||
id-TimeToWait,
|
||||
id-TraceActivation,
|
||||
id-UE-ContextInformation,
|
||||
id-UE-HistoryInformation,
|
||||
id-UE-X2AP-ID,
|
||||
id-Measurement-ID,
|
||||
id-ReportCharacteristics,
|
||||
id-ENB1-Measurement-ID,
|
||||
id-ENB2-Measurement-ID,
|
||||
id-ENB1-Cell-ID,
|
||||
id-ENB2-Cell-ID,
|
||||
id-ENB2-Proposed-Mobility-Parameters,
|
||||
id-ENB1-Mobility-Parameters,
|
||||
id-ENB2-Mobility-Parameters-Modification-Range,
|
||||
id-FailureCellPCI,
|
||||
id-Re-establishmentCellECGI,
|
||||
id-FailureCellCRNTI,
|
||||
id-ShortMAC-I,
|
||||
id-SourceCellECGI,
|
||||
id-FailureCellECGI,
|
||||
id-HandoverReportType,
|
||||
id-UE-RLF-Report-Container,
|
||||
id-PartialSuccessIndicator,
|
||||
id-MeasurementInitiationResult-List,
|
||||
id-MeasurementInitiationResult-Item,
|
||||
id-MeasurementFailureCause-Item,
|
||||
id-CompleteFailureCauseInformation-List,
|
||||
id-CompleteFailureCauseInformation-Item,
|
||||
id-CSGMembershipStatus,
|
||||
id-CSG-Id,
|
||||
id-MDTConfiguration,
|
||||
id-ManagementBasedMDTallowed,
|
||||
id-ABS-Status,
|
||||
id-RRCConnSetupIndicator,
|
||||
id-RRCConnReestabIndicator,
|
||||
id-TargetCellInUTRAN,
|
||||
|
||||
x2ap-maxCellineNB,
|
||||
x2ap-maxnoofBearers,
|
||||
x2ap-maxnoofPDCP-SN,
|
||||
x2ap-maxFailedMeasObjects,
|
||||
x2ap-maxnoofCellIDforMDT,
|
||||
x2ap-maxnoofTAforMDT
|
||||
|
||||
FROM X2AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-HandoverRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-HandoverRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-HandoverRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }|
|
||||
{ ID id-TargetCell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
|
||||
{ ID id-GUMMEI-ID CRITICALITY reject TYPE X2ap-GUMMEI PRESENCE mandatory }|
|
||||
{ ID id-UE-ContextInformation CRITICALITY reject TYPE X2ap-UE-ContextInformation PRESENCE mandatory }|
|
||||
{ ID id-UE-HistoryInformation CRITICALITY ignore TYPE X2ap-UE-HistoryInformation PRESENCE mandatory }|
|
||||
{ ID id-TraceActivation CRITICALITY ignore TYPE X2ap-TraceActivation PRESENCE optional}|
|
||||
{ ID id-SRVCCOperationPossible CRITICALITY ignore TYPE X2ap-SRVCCOperationPossible PRESENCE optional}|
|
||||
{ ID id-CSGMembershipStatus CRITICALITY reject TYPE X2ap-CSGMembershipStatus PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
X2ap-UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION X2ap-ManagementBasedMDTallowed PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { {X2ap-E-RABs-ToBeSetup-ItemIEs} }
|
||||
|
||||
X2ap-E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE X2ap-E-RABs-ToBeSetup-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER REQUEST ACKNOWLEDGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-HandoverRequestAcknowledge ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-HandoverRequestAcknowledge-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE X2ap-E-RABs-Admitted-List PRESENCE mandatory} |
|
||||
{ ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE X2ap-E-RAB-List PRESENCE optional} |
|
||||
{ ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE X2ap-TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { {X2ap-E-RABs-Admitted-ItemIEs} }
|
||||
|
||||
X2ap-E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE X2ap-E-RABs-Admitted-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
X2ap-E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER PREPARATION FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-HandoverPreparationFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-HandoverPreparationFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Handover Report
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-HandoverReport ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-HandoverReport-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-HandoverReport-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-HandoverReportType CRITICALITY ignore TYPE X2ap-HandoverReportTYPE X2ap-PRESENCE mandatory}|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} |
|
||||
{ ID id-SourceCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory}|
|
||||
{ ID id-FailureCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory} |
|
||||
{ ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report TYPE X2ap-IE is set to “HO to Wrong Cell” -- |
|
||||
{ ID id-TargetCellInUTRAN CRITICALITY ignore TYPE X2ap-TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report TYPE X2ap-IE is set to "InterRAT ping-pong" --,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- SN Status Transfer
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-SNStatusTransfer ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-SNStatusTransfer-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE X2ap-E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { { X2ap-E-RABs-SubjectToStatusTransfer-ItemIEs} }
|
||||
|
||||
X2ap-E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE X2ap-E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
X2ap-E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- UE Context Release
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-UEContextRelease ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-UEContextRelease-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-UEContextRelease-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER CANCEL
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-HandoverCancel ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-HandoverCancel-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-HandoverCancel-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE optional} |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ERROR INDICATION
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ErrorIndication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ErrorIndication-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ErrorIndication-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE optional} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE optional} |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE optional} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional} ,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Reset Request
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ResetRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ResetRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResetRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Reset Response
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ResetResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ResetResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResetResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- X2 SETUP REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2SetupRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-GlobalENB-ID CRITICALITY reject TYPE X2ap-GlobalENB-ID PRESENCE mandatory} |
|
||||
{ ID id-ServedCells CRITICALITY reject TYPE X2ap-ServedCells PRESENCE mandatory} |
|
||||
{ ID id-GUGroupIDList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- X2 SETUP RESPONSE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2SetupResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-GlobalENB-ID CRITICALITY reject TYPE X2ap-GlobalENB-ID PRESENCE mandatory} |
|
||||
{ ID id-ServedCells CRITICALITY reject TYPE X2ap-ServedCells PRESENCE mandatory} |
|
||||
{ ID id-GUGroupIDList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional}|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- X2 SETUP FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2SetupFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} |
|
||||
{ ID id-TimeToWait CRITICALITY ignore TYPE X2ap-TimeToWait PRESENCE optional} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- LOAD INFORMATION
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-LoadInformation ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-LoadInformation-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-LoadInformation-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellInformation CRITICALITY ignore TYPE X2ap-CellInformation-List PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-CellInformation-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CellInformation-ItemIEs} }
|
||||
|
||||
X2ap-CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellInformation-Item CRITICALITY ignore TYPE X2ap-CellInformation-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
|
||||
X2ap-CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-ABSInformation CRITICALITY ignore EXTENSION X2ap-ABSInformation PRESENCE optional }|
|
||||
{ ID id-InvokeIndication CRITICALITY ignore EXTENSION X2ap-InvokeIndication PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ENB CONFIGURATION UPDATE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ENBConfigurationUpdate ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ENBConfigurationUpdate-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ServedCellsToAdd CRITICALITY reject TYPE X2ap-ServedCells PRESENCE optional} |
|
||||
{ ID id-ServedCellsToModify CRITICALITY reject TYPE X2ap-ServedCellsToModify PRESENCE optional} |
|
||||
{ ID id-ServedCellsToDelete CRITICALITY reject TYPE X2ap-Old-ECGIs PRESENCE optional} |
|
||||
{ ID id-GUGroupIDToAddList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional} |
|
||||
{ ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ServedCellsToModify::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ServedCellsToModify-Item
|
||||
|
||||
|
||||
ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION X2ap-DeactivationIndication PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ENB CONFIGURATION UPDATE ACKNOWLEDGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ENBConfigurationUpdateAcknowledge-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ENB CONFIGURATION UPDATE FAIURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ENBConfigurationUpdateFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ENBConfigurationUpdateFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }|
|
||||
{ ID id-TimeToWait CRITICALITY ignore TYPE X2ap-TimeToWait PRESENCE optional }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Resource Status Request
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ResourceStatusRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE X2ap-Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”--
|
||||
{ ID id-Registration-Request CRITICALITY reject TYPE X2ap-Registration-Request PRESENCE mandatory}|
|
||||
{ ID id-ReportCharacteristics CRITICALITY reject TYPE X2ap-ReportCharacteristics PRESENCE optional}|
|
||||
{ ID id-CellToReport CRITICALITY ignore TYPE X2ap-CellToReport-List PRESENCE mandatory}|
|
||||
{ ID id-ReportingPeriodicity CRITICALITY ignore TYPE X2ap-ReportingPeriodicity PRESENCE optional}|
|
||||
{ ID id-PartialSuccessIndicator CRITICALITY ignore TYPE X2ap-PartialSuccessIndicator PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
X2ap-CellToReport-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CellToReport-ItemIEs} }
|
||||
|
||||
X2ap-CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellToReport-Item CRITICALITY ignore TYPE X2ap-CellToReport-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
|
||||
|
||||
X2ap-CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
X2ap-ReportingPeriodicity ::= ENUMERATED {
|
||||
one-thousand-ms,
|
||||
two-thousand-ms,
|
||||
five-thousand-ms,
|
||||
ten-thousand-ms,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-PartialSuccessIndicator ::= ENUMERATED {
|
||||
partial-success-allowed,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Resource Status Response
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ResourceStatusResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional}|
|
||||
{ ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE X2ap-MeasurementInitiationResult-List PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
X2ap-MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { { X2ap-MeasurementInitiationResult-ItemIEs} }
|
||||
|
||||
X2ap-MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE X2ap-MeasurementInitiationResult-Item PRESENCE mandatory}
|
||||
}
|
||||
|
||||
|
||||
|
||||
X2ap-MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..x2ap-maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { X2ap-MeasurementFailureCause-ItemIEs} }
|
||||
|
||||
X2ap-MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE X2ap-MeasurementFailureCause-Item PRESENCE mandatory}
|
||||
}
|
||||
|
||||
|
||||
X2ap-MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Resource Status Failure
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ResourceStatusFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory}|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional}|
|
||||
{ ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE X2ap-CompleteFailureCauseInformation-List PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CompleteFailureCauseInformation-ItemIEs} }
|
||||
|
||||
X2ap-CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE X2ap-CompleteFailureCauseInformation-Item PRESENCE mandatory}
|
||||
}
|
||||
|
||||
X2ap-CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Resource Status Update
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-ResourceStatusUpdate ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusUpdate-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
|
||||
{ ID id-CellMeasurementResult CRITICALITY ignore TYPE X2ap-CellMeasurementResult-List PRESENCE mandatory},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-CellMeasurementResult-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CellMeasurementResult-ItemIEs} }
|
||||
|
||||
X2ap-CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE X2ap-CellMeasurementResult-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
X2ap-CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION X2ap-CompositeAvailableCapacityGroup PRESENCE optional}|
|
||||
{ ID id-ABS-Status CRITICALITY ignore EXTENSION X2ap-ABS-Status PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PRIVATE MESSAGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-PrivateMessage ::= SEQUENCE {
|
||||
privateIEs PrivateIE-Container {{X2ap-PrivateMessage-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-PrivateMessage-IEs X2AP-PRIVATE-IES ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- MOBILITY CHANGE REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-MobilityChangeRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-MobilityChangeRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
|
||||
{ ID id-ENB2-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
|
||||
{ ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE X2ap-MobilityParametersInformation PRESENCE optional }|
|
||||
{ ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE X2ap-MobilityParametersInformation PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY reject TYPE X2ap-Cause PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- MOBILITY CHANGE ACKNOWLEDGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-MobilityChangeAcknowledge ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-MobilityChangeAcknowledge-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
|
||||
{ ID id-ENB2-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- MOBILITY CHANGE FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-MobilityChangeFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-MobilityChangeFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB1-Cell-ID CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory }|
|
||||
{ ID id-ENB2-Cell-ID CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }|
|
||||
{ ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE X2ap-MobilityParametersModificationRange PRESENCE optional }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Radio Link Failure Indication
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-RLFIndication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-RLFIndication-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-RLFIndication-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-FailureCellPCI CRITICALITY ignore TYPE X2ap-PCI PRESENCE mandatory}|
|
||||
{ ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory}|
|
||||
{ ID id-FailureCellCRNTI CRITICALITY ignore TYPE X2ap-CRNTI PRESENCE mandatory}|
|
||||
{ ID id-ShortMAC-I CRITICALITY ignore TYPE X2ap-ShortMAC-I PRESENCE optional}|
|
||||
{ ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE X2ap-UE-RLF-Report-Container PRESENCE optional}|
|
||||
{ ID id-RRCConnSetupIndicator CRITICALITY reject TYPE X2ap-RRCConnSetupIndicator PRESENCE optional}|
|
||||
{ ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE X2ap-RRCConnReestabIndicator PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Cell Activation Request
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-CellActivationRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-CellActivationRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ServedCellsToActivate CRITICALITY reject TYPE X2ap-ServedCellsToActivate PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ServedCellsToActivate::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ServedCellsToActivate-Item
|
||||
|
||||
|
||||
X2ap-ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Cell Activation Response
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-CellActivationResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-CellActivationResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ActivatedCellList CRITICALITY ignore TYPE X2ap-ActivatedCellList PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ActivatedCellList ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ActivatedCellList-Item
|
||||
|
||||
|
||||
|
||||
X2ap-ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
--**************************************************************
|
||||
--
|
||||
-- CELL ACTIVATION FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2ap-CellActivationFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2ap-CellActivationFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
END
|
||||
@@ -1,243 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedure definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-PDU-Descriptions {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) }
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
BEGIN
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
IMPORTS
|
||||
X2ap-Criticality,
|
||||
X2ap-ProcedureCode
|
||||
FROM X2AP-CommonDataTypes
|
||||
|
||||
X2ap-CellActivationRequest,
|
||||
X2ap-CellActivationResponse,
|
||||
X2ap-CellActivationFailure,
|
||||
X2ap-ENBConfigurationUpdate,
|
||||
X2ap-ENBConfigurationUpdateAcknowledge,
|
||||
X2ap-ENBConfigurationUpdateFailure,
|
||||
X2ap-ErrorIndication,
|
||||
X2ap-HandoverCancel,
|
||||
X2ap-HandoverReport,
|
||||
X2ap-HandoverPreparationFailure,
|
||||
X2ap-HandoverRequest,
|
||||
X2ap-HandoverRequestAcknowledge,
|
||||
X2ap-LoadInformation,
|
||||
X2ap-PrivateMessage,
|
||||
X2ap-ResetRequest,
|
||||
X2ap-ResetResponse,
|
||||
X2ap-ResourceStatusFailure,
|
||||
X2ap-ResourceStatusRequest,
|
||||
X2ap-ResourceStatusResponse,
|
||||
X2ap-ResourceStatusUpdate,
|
||||
X2ap-RLFIndication,
|
||||
X2ap-SNStatusTransfer,
|
||||
X2ap-UEContextRelease,
|
||||
X2SetupFailure, X2SetupRequest,
|
||||
X2SetupResponse,
|
||||
X2ap-MobilityChangeRequest,
|
||||
X2ap-MobilityChangeAcknowledge,
|
||||
X2ap-MobilityChangeFailure
|
||||
FROM X2AP-PDU-Contents
|
||||
|
||||
id-cellActivation,
|
||||
id-eNBConfigurationUpdate,
|
||||
id-errorIndication,
|
||||
id-handoverCancel,
|
||||
id-handoverReport,
|
||||
id-handoverPreparation,
|
||||
id-loadIndication,
|
||||
id-privateMessage,
|
||||
id-reset,
|
||||
id-resourceStatusReporting,
|
||||
id-resourceStatusReportingInitiation,
|
||||
id-rLFIndication,
|
||||
id-snStatusTransfer,
|
||||
id-uEContextRelease,
|
||||
id-x2Setup,
|
||||
id-mobilitySettingsChange
|
||||
FROM X2AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure Class
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-ELEMENTARY-PROCEDURE ::= CLASS {
|
||||
&InitiatingMessage ,
|
||||
&SuccessfulOutcome OPTIONAL,
|
||||
&UnsuccessfulOutcome OPTIONAL,
|
||||
&procedureCode ProcedureCode UNIQUE,
|
||||
&criticality Criticality DEFAULT ignore
|
||||
}
|
||||
WITH SYNTAX {
|
||||
INITIATING MESSAGE &InitiatingMessage
|
||||
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
||||
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
||||
PROCEDURE CODE &procedureCode
|
||||
[CRITICALITY &criticality]
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface PDU Definition
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure List
|
||||
--
|
||||
-- **************************************************************
|
||||
X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
|
||||
...
|
||||
}
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
handoverPreparation |
|
||||
reset |
|
||||
x2Setup |
|
||||
resourceStatusReportingInitiation |
|
||||
eNBConfigurationUpdate |
|
||||
mobilitySettingsChange |
|
||||
cellActivation ,
|
||||
...
|
||||
}
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
snStatusTransfer |
|
||||
uEContextRelease |
|
||||
handoverCancel |
|
||||
errorIndication |
|
||||
resourceStatusReporting |
|
||||
loadIndication |
|
||||
privateMessage |
|
||||
rLFIndication | handoverReport,
|
||||
...
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverRequest
|
||||
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
|
||||
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
|
||||
PROCEDURE CODE id-handoverPreparation
|
||||
CRITICALITY reject
|
||||
}
|
||||
snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE SNStatusTransfer
|
||||
PROCEDURE CODE id-snStatusTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextRelease
|
||||
PROCEDURE CODE id-uEContextRelease
|
||||
CRITICALITY ignore
|
||||
}
|
||||
handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverCancel
|
||||
PROCEDURE CODE id-handoverCancel
|
||||
CRITICALITY ignore
|
||||
}
|
||||
handoverReport X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverReport
|
||||
PROCEDURE CODE id-handoverReport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
errorIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ErrorIndication
|
||||
PROCEDURE CODE id-errorIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
reset X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResetRequest
|
||||
SUCCESSFUL OUTCOME ResetResponse
|
||||
PROCEDURE CODE id-reset
|
||||
CRITICALITY reject
|
||||
}
|
||||
x2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE X2SetupRequest
|
||||
SUCCESSFUL OUTCOME X2SetupResponse
|
||||
UNSUCCESSFUL OUTCOME X2SetupFailure
|
||||
PROCEDURE CODE id-x2Setup
|
||||
CRITICALITY reject
|
||||
}
|
||||
loadIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE LoadInformation
|
||||
PROCEDURE CODE id-loadIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ENBConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-eNBConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResourceStatusRequest
|
||||
SUCCESSFUL OUTCOME ResourceStatusResponse
|
||||
UNSUCCESSFUL OUTCOME ResourceStatusFailure
|
||||
PROCEDURE CODE id-resourceStatusReportingInitiation
|
||||
CRITICALITY reject
|
||||
}
|
||||
resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResourceStatusUpdate
|
||||
PROCEDURE CODE id-resourceStatusReporting
|
||||
CRITICALITY ignore
|
||||
}
|
||||
rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE RLFIndication
|
||||
PROCEDURE CODE id-rLFIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
privateMessage X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PrivateMessage
|
||||
PROCEDURE CODE id-privateMessage
|
||||
CRITICALITY ignore
|
||||
}
|
||||
mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE MobilityChangeRequest
|
||||
SUCCESSFUL OUTCOME MobilityChangeAcknowledge
|
||||
UNSUCCESSFUL OUTCOME MobilityChangeFailure
|
||||
PROCEDURE CODE id-mobilitySettingsChange
|
||||
CRITICALITY reject
|
||||
}
|
||||
cellActivation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE CellActivationRequest
|
||||
SUCCESSFUL OUTCOME CellActivationResponse
|
||||
UNSUCCESSFUL OUTCOME CellActivationFailure
|
||||
PROCEDURE CODE id-cellActivation
|
||||
CRITICALITY reject
|
||||
}
|
||||
END
|
||||
@@ -1,199 +0,0 @@
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PDU definitions for X2AP.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PDU {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU (1) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
|
||||
x2ap-maxProtocolIEs,
|
||||
X2ap-Criticality,
|
||||
X2ap-ProcedureCode,
|
||||
X2ap-ProtocolIE-ID
|
||||
FROM X2AP-CommonDataTypes;
|
||||
|
||||
X2ap-IE ::= SEQUENCE {
|
||||
id X2ap-ProtocolIE-ID,
|
||||
criticality X2ap-Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
X2AP-PDU ::= CHOICE {
|
||||
initiatingMessage X2ap-InitiatingMessage,
|
||||
successfulOutcome X2ap-SuccessfulOutcome,
|
||||
unsuccessfulOutcome X2ap-UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode X2ap-ProcedureCode,
|
||||
criticality X2ap-Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
X2ap-SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2ap-ProcedureCode,
|
||||
criticality X2ap-Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
X2ap-UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2ap-ProcedureCode,
|
||||
criticality X2ap-Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
X2ap-HandoverRequest ::= SEQUENCE {
|
||||
x2ap-HandoverRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-HandoverRequestAcknowledge ::= SEQUENCE {
|
||||
x2ap-HandoverRequestAcknowledge-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-HandoverPreparationFailure ::= SEQUENCE {
|
||||
x2ap-HandoverPreparationFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-SNStatusTransfer ::= SEQUENCE {
|
||||
x2ap-SNStatusTransfer-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-UEContextRelease ::= SEQUENCE {
|
||||
x2ap-UEContextRelease-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-HandoverCancel ::= SEQUENCE {
|
||||
x2ap-HandoverCancel-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-HandoverReport ::= SEQUENCE {
|
||||
x2ap-HandoverReport-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ErrorIndication ::= SEQUENCE {
|
||||
x2ap-ErrorIndication-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResetRequest ::= SEQUENCE {
|
||||
x2ap-ResetRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResetResponse ::= SEQUENCE {
|
||||
x2ap-ResetResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupRequest ::= SEQUENCE {
|
||||
x2SetupRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupResponse ::= SEQUENCE {
|
||||
x2SetupResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupFailure ::= SEQUENCE {
|
||||
x2SetupFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-LoadInformation ::= SEQUENCE {
|
||||
x2ap-LoadInformation-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ENBConfigurationUpdate ::= SEQUENCE {
|
||||
x2ap-ENBConfigurationUpdate-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
|
||||
x2ap-ENBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ENBConfigurationUpdateFailure ::= SEQUENCE {
|
||||
x2ap-ENBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResourceStatusRequest ::= SEQUENCE {
|
||||
x2ap-ResourceStatusRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResourceStatusResponse ::= SEQUENCE {
|
||||
x2ap-ResourceStatusResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResourceStatusFailure ::= SEQUENCE {
|
||||
x2ap-ResourceStatusFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-ResourceStatusUpdate ::= SEQUENCE {
|
||||
x2ap-ResourceStatusUpdate-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-RLFIndication ::= SEQUENCE {
|
||||
x2ap-RLFIndication-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-PrivateMessage ::= SEQUENCE {
|
||||
x2ap-PrivateMessage-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-MobilityChangeRequest ::= SEQUENCE {
|
||||
x2ap-MobilityChangeRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-MobilityChangeAcknowledge ::= SEQUENCE {
|
||||
x2ap-MobilityChangeAcknowledge-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-MobilityChangeFailure ::= SEQUENCE {
|
||||
x2ap-MobilityChangeFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-CellActivationRequest ::= SEQUENCE {
|
||||
x2ap-CellActivationRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-CellActivationResponse ::= SEQUENCE {
|
||||
x2ap-CellActivationResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
X2ap-CellActivationFailure ::= SEQUENCE {
|
||||
x2ap-CellActivationFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
END
|
||||
+3096
File diff suppressed because it is too large
Load Diff
+4358
File diff suppressed because it is too large
Load Diff
+4942
File diff suppressed because it is too large
Load Diff
+5064
File diff suppressed because it is too large
Load Diff
+7222
File diff suppressed because it is too large
Load Diff
+7862
File diff suppressed because it is too large
Load Diff
+2201
File diff suppressed because it is too large
Load Diff
+2579
File diff suppressed because it is too large
Load Diff
@@ -28,7 +28,6 @@ CFLAGS = \
|
||||
-Wall \
|
||||
-DENB_MODE \
|
||||
-DENABLE_USE_MME \
|
||||
-DUSER_MODE \
|
||||
-I. \
|
||||
-I$(ASN1MESSAGESDIR)/ASN1/$(ASN1RELDIR) \
|
||||
-I$(ASN1MESSAGESDIR) \
|
||||
|
||||
+26
-67
@@ -29,7 +29,7 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#include "x2ap_common.h"
|
||||
#include "X2AP-PDU.h"
|
||||
#include "X2AP_X2AP-PDU.h"
|
||||
|
||||
int asn_debug = 0;
|
||||
int asn1_xer_print = 0;
|
||||
@@ -55,29 +55,27 @@ inline void ASN_DEBUG(const char *fmt, ...)
|
||||
ssize_t x2ap_generate_initiating_message(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
X2ap_ProcedureCode_t procedureCode,
|
||||
X2ap_Criticality_t criticality,
|
||||
X2AP_ProcedureCode_t procedureCode,
|
||||
X2AP_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr)
|
||||
{
|
||||
X2AP_PDU_t pdu;
|
||||
X2AP_X2AP_PDU_t pdu;
|
||||
ssize_t encoded;
|
||||
|
||||
memset(&pdu, 0, sizeof(X2AP_PDU_t));
|
||||
|
||||
pdu.present = X2AP_PDU_PR_initiatingMessage;
|
||||
memset(&pdu, 0, sizeof(X2AP_X2AP_PDU_t));
|
||||
pdu.present = X2AP_X2AP_PDU_PR_initiatingMessage;
|
||||
pdu.choice.initiatingMessage.procedureCode = procedureCode;
|
||||
pdu.choice.initiatingMessage.criticality = criticality;
|
||||
ANY_fromType_aper(&pdu.choice.initiatingMessage.value, td, sptr);
|
||||
ANY_fromType_aper((ANY_t *)&pdu.choice.initiatingMessage.value, td, sptr);
|
||||
|
||||
if (asn1_xer_print) {
|
||||
xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)&pdu);
|
||||
xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu);
|
||||
}
|
||||
|
||||
/* We can safely free list of IE from sptr */
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr);
|
||||
|
||||
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, &pdu,
|
||||
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, &pdu,
|
||||
(void **)buffer)) < 0) {
|
||||
return -1;
|
||||
}
|
||||
@@ -89,107 +87,68 @@ ssize_t x2ap_generate_initiating_message(
|
||||
ssize_t x2ap_generate_successfull_outcome(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
X2ap_ProcedureCode_t procedureCode,
|
||||
X2ap_Criticality_t criticality,
|
||||
X2AP_ProcedureCode_t procedureCode,
|
||||
X2AP_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr)
|
||||
{
|
||||
X2AP_PDU_t pdu;
|
||||
X2AP_X2AP_PDU_t pdu;
|
||||
ssize_t encoded;
|
||||
|
||||
memset(&pdu, 0, sizeof(X2AP_PDU_t));
|
||||
|
||||
pdu.present = X2AP_PDU_PR_successfulOutcome;
|
||||
memset(&pdu, 0, sizeof(X2AP_X2AP_PDU_t));
|
||||
pdu.present = X2AP_X2AP_PDU_PR_successfulOutcome;
|
||||
pdu.choice.successfulOutcome.procedureCode = procedureCode;
|
||||
pdu.choice.successfulOutcome.criticality = criticality;
|
||||
ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr);
|
||||
ANY_fromType_aper((ANY_t *)&pdu.choice.successfulOutcome.value, td, sptr);
|
||||
|
||||
if (asn1_xer_print) {
|
||||
xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)&pdu);
|
||||
xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu);
|
||||
}
|
||||
|
||||
/* We can safely free list of IE from sptr */
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr);
|
||||
|
||||
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, &pdu,
|
||||
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, &pdu,
|
||||
(void **)buffer)) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
*length = encoded;
|
||||
|
||||
return encoded;
|
||||
}
|
||||
|
||||
ssize_t x2ap_generate_unsuccessfull_outcome(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
X2ap_ProcedureCode_t procedureCode,
|
||||
X2ap_Criticality_t criticality,
|
||||
X2AP_ProcedureCode_t procedureCode,
|
||||
X2AP_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr)
|
||||
{
|
||||
X2AP_PDU_t pdu;
|
||||
X2AP_X2AP_PDU_t pdu;
|
||||
ssize_t encoded;
|
||||
|
||||
memset(&pdu, 0, sizeof(X2AP_PDU_t));
|
||||
|
||||
pdu.present = X2AP_PDU_PR_unsuccessfulOutcome;
|
||||
memset(&pdu, 0, sizeof(X2AP_X2AP_PDU_t));
|
||||
pdu.present = X2AP_X2AP_PDU_PR_unsuccessfulOutcome;
|
||||
pdu.choice.successfulOutcome.procedureCode = procedureCode;
|
||||
pdu.choice.successfulOutcome.criticality = criticality;
|
||||
ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr);
|
||||
ANY_fromType_aper((ANY_t *)&pdu.choice.successfulOutcome.value, td, sptr);
|
||||
|
||||
if (asn1_xer_print) {
|
||||
xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)&pdu);
|
||||
xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu);
|
||||
}
|
||||
|
||||
/* We can safely free list of IE from sptr */
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr);
|
||||
|
||||
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, &pdu,
|
||||
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, &pdu,
|
||||
(void **)buffer)) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
*length = encoded;
|
||||
|
||||
return encoded;
|
||||
}
|
||||
|
||||
X2ap_IE_t *x2ap_new_ie(
|
||||
X2ap_ProtocolIE_ID_t id,
|
||||
X2ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *type,
|
||||
void *sptr)
|
||||
{
|
||||
X2ap_IE_t *buff;
|
||||
|
||||
if ((buff = malloc(sizeof(X2ap_IE_t))) == NULL) {
|
||||
// Possible error on malloc
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset((void *)buff, 0, sizeof(X2ap_IE_t));
|
||||
|
||||
buff->id = id;
|
||||
buff->criticality = criticality;
|
||||
|
||||
if (ANY_fromType_aper(&buff->value, type, sptr) < 0) {
|
||||
fprintf(stderr, "Encoding of %s failed\n", type->name);
|
||||
free(buff);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (asn1_xer_print)
|
||||
if (xer_fprint(stdout, &asn_DEF_X2ap_IE, buff) < 0) {
|
||||
free(buff);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return buff;
|
||||
}
|
||||
|
||||
void x2ap_handle_criticality(X2ap_Criticality_t criticality)
|
||||
void x2ap_handle_criticality(X2AP_Criticality_t criticality)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
+37
-266
@@ -23,247 +23,17 @@
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include "X2ap-ABSInformationFDD.h"
|
||||
#include "X2ap-ABSInformation.h"
|
||||
#include "X2ap-ABSInformationTDD.h"
|
||||
#include "X2ap-ABS-Status.h"
|
||||
#include "X2ap-ActivatedCellList.h"
|
||||
#include "X2ap-AllocationAndRetentionPriority.h"
|
||||
#include "X2ap-AreaScopeOfMDT.h"
|
||||
#include "X2ap-AS-SecurityInformation.h"
|
||||
#include "X2ap-BandInfo.h"
|
||||
#include "X2ap-BitRate.h"
|
||||
#include "X2ap-BroadcastPLMNs-Item.h"
|
||||
|
||||
#include "X2ap-CapacityValue.h"
|
||||
#include "X2ap-Cause.h"
|
||||
#include "X2ap-CauseMisc.h"
|
||||
#include "X2ap-CauseProtocol.h"
|
||||
#include "X2ap-CauseRadioNetwork.h"
|
||||
#include "X2ap-CauseTransport.h"
|
||||
#include "X2ap-CellActivationFailure.h"
|
||||
#include "X2ap-CellActivationRequest.h"
|
||||
#include "X2ap-CellActivationResponse.h"
|
||||
#include "X2ap-CellBasedMDT.h"
|
||||
#include "X2ap-CellCapacityClassValue.h"
|
||||
#include "X2ap-CellIdListforMDT.h"
|
||||
#include "X2ap-CellInformation-Item.h"
|
||||
#include "X2ap-CellInformation-List.h"
|
||||
#include "X2ap-Cell-Size.h"
|
||||
#include "X2ap-CellToReport-Item.h"
|
||||
#include "X2ap-CellToReport-List.h"
|
||||
#include "X2ap-CellType.h"
|
||||
#include "X2ap-CellMeasurementResult-Item.h"
|
||||
#include "X2ap-CellMeasurementResult-List.h"
|
||||
#include "X2ap-CompleteFailureCauseInformation-Item.h"
|
||||
#include "X2ap-CompleteFailureCauseInformation-List.h"
|
||||
#include "X2ap-CompositeAvailableCapacityGroup.h"
|
||||
#include "X2ap-CompositeAvailableCapacity.h"
|
||||
#include "X2ap-COUNTvalue.h"
|
||||
#include "X2ap-CriticalityDiagnostics.h"
|
||||
#include "X2ap-CriticalityDiagnostics-IE-List.h"
|
||||
#include "X2ap-Criticality.h"
|
||||
#include "X2ap-CRNTI.h"
|
||||
#include "X2ap-CSG-Id.h"
|
||||
#include "X2ap-CSGMembershipStatus.h"
|
||||
#include "X2ap-CyclicPrefixDL.h"
|
||||
#include "X2ap-CyclicPrefixUL.h"
|
||||
#include "X2ap-DeactivationIndication.h"
|
||||
#include "X2ap-DL-ABS-status.h"
|
||||
#include "X2ap-DL-Forwarding.h"
|
||||
#include "X2ap-DL-GBR-PRB-usage.h"
|
||||
#include "X2ap-DL-non-GBR-PRB-usage.h"
|
||||
#include "X2ap-DL-Total-PRB-usage.h"
|
||||
#include "X2ap-EARFCN.h"
|
||||
#include "X2ap-ECGI.h"
|
||||
#include "X2ap-ENB-ID.h"
|
||||
#include "X2ap-ENBConfigurationUpdateFailure.h"
|
||||
#include "X2ap-ENBConfigurationUpdateAcknowledge.h"
|
||||
#include "X2ap-ENBConfigurationUpdate.h"
|
||||
#include "X2ap-EncryptionAlgorithms.h"
|
||||
#include "X2ap-EPLMNs.h"
|
||||
#include "X2ap-E-RAB-ID.h"
|
||||
#include "X2ap-E-RAB-Item.h"
|
||||
#include "X2ap-E-RABs-Admitted-List.h"
|
||||
#include "X2ap-E-RAB-Level-QoS-Parameters.h"
|
||||
#include "X2ap-E-RAB-List.h"
|
||||
#include "X2ap-E-RABs-SubjectToStatusTransfer-Item.h"
|
||||
#include "X2ap-E-RABs-Admitted-Item.h"
|
||||
#include "X2ap-E-RABs-SubjectToStatusTransfer-List.h"
|
||||
#include "X2ap-ErrorIndication.h"
|
||||
#include "X2ap-EUTRA-Mode-Info.h"
|
||||
#include "X2ap-EUTRANCellIdentifier.h"
|
||||
#include "X2ap-EUTRANTraceID.h"
|
||||
#include "X2ap-EventType.h"
|
||||
|
||||
#include "X2ap-FDD-Info.h"
|
||||
#include "X2ap-ForbiddenInterRATs.h"
|
||||
#include "X2ap-ForbiddenLACs.h"
|
||||
#include "X2ap-ForbiddenLAs.h"
|
||||
#include "X2ap-ForbiddenLAs-Item.h"
|
||||
#include "X2ap-ForbiddenTACs.h"
|
||||
#include "X2ap-ForbiddenTAs.h"
|
||||
#include "X2ap-ForbiddenTAs-Item.h"
|
||||
#include "X2ap-Fourframes.h"
|
||||
#include "X2ap-FreqBandIndicator.h"
|
||||
#include "X2ap-GBR-QosInformation.h"
|
||||
#include "X2ap-GlobalENB-ID.h"
|
||||
#include "X2ap-GTP-TEI.h"
|
||||
#include "X2ap-GTPtunnelEndpoint.h"
|
||||
#include "X2ap-GU-Group-ID.h"
|
||||
#include "X2ap-GUGroupIDList.h"
|
||||
#include "X2ap-GUMMEI.h"
|
||||
#include "X2ap-HandoverCancel.h"
|
||||
#include "X2ap-HandoverReportType.h"
|
||||
#include "X2ap-HandoverRequest.h"
|
||||
#include "X2ap-HandoverReport.h"
|
||||
#include "X2ap-HandoverRestrictionList.h"
|
||||
#include "X2ap-HandoverPreparationFailure.h"
|
||||
#include "X2ap-HandoverRequestAcknowledge.h"
|
||||
|
||||
#include "X2ap-HFN.h"
|
||||
#include "X2ap-HWLoadIndicator.h"
|
||||
#include "X2ap-IE-Extensions.h"
|
||||
#include "X2ap-IE.h"
|
||||
#include "X2ap-IntegrityProtectionAlgorithms.h"
|
||||
#include "X2ap-InterfacesToTrace.h"
|
||||
#include "X2ap-InvokeIndication.h"
|
||||
#include "X2ap-Key-eNodeB-Star.h"
|
||||
#include "X2ap-LAC.h"
|
||||
#include "X2ap-LastVisitedCell-Item.h"
|
||||
#include "X2ap-LastVisitedEUTRANCellInformation.h"
|
||||
#include "X2ap-LastVisitedGERANCellInformation.h"
|
||||
#include "X2ap-LastVisitedUTRANCellInformation.h"
|
||||
#include "X2ap-LoadIndicator.h"
|
||||
#include "X2ap-LoadInformation.h"
|
||||
#include "X2ap-LocationReportingInformation.h"
|
||||
#include "X2ap-ManagementBasedMDTallowed.h"
|
||||
#include "X2ap-MBMS-Service-Area-Identity.h"
|
||||
#include "X2ap-MBMS-Service-Area-Identity-List.h"
|
||||
#include "X2ap-MBSFN-Subframe-Info.h"
|
||||
#include "X2ap-MBSFN-Subframe-Infolist.h"
|
||||
#include "X2ap-MDT-Activation.h"
|
||||
#include "X2ap-MDT-Configuration.h"
|
||||
#include "X2ap-Measurement-ID.h"
|
||||
#include "X2ap-MeasurementsToActivate.h"
|
||||
#include "X2ap-MeasurementThresholdA2.h"
|
||||
#include "X2ap-MeasurementInitiationResult-Item.h"
|
||||
#include "X2ap-MeasurementInitiationResult-List.h"
|
||||
|
||||
#include "X2ap-MeasurementFailureCause-Item.h"
|
||||
#include "X2ap-MME-Code.h"
|
||||
#include "X2ap-MME-Group-ID.h"
|
||||
#include "X2ap-MobilityChangeAcknowledge.h"
|
||||
#include "X2ap-MobilityChangeFailure.h"
|
||||
#include "X2ap-MobilityChangeRequest.h"
|
||||
#include "X2ap-MobilityParametersInformation.h"
|
||||
#include "X2ap-MobilityParametersModificationRange.h"
|
||||
#include "X2ap-MultibandInfoList.h"
|
||||
#include "X2ap-Neighbour-Information.h"
|
||||
#include "X2ap-NextHopChainingCount.h"
|
||||
#include "X2ap-Number-of-Antennaports.h"
|
||||
#include "X2ap-Oneframe.h"
|
||||
#include "X2ap-Old-ECGIs.h"
|
||||
#include "X2ap-PartialSuccessIndicator.h"
|
||||
#include "X2ap-PCI.h"
|
||||
#include "X2ap-PDCP-SN.h"
|
||||
#include "X2AP-PDU.h"
|
||||
#include "X2ap-PeriodicReportingMDT.h"
|
||||
#include "X2ap-PLMN-Identity.h"
|
||||
#include "X2ap-PRACH-Configuration.h"
|
||||
#include "X2ap-Pre-emptionCapability.h"
|
||||
#include "X2ap-Pre-emptionVulnerability.h"
|
||||
#include "X2ap-Presence.h"
|
||||
#include "X2ap-PriorityLevel.h"
|
||||
#include "X2ap-PrivateIE-ID.h"
|
||||
#include "X2ap-ProcedureCode.h"
|
||||
#include "X2ap-ProtocolIE-ID.h"
|
||||
#include "X2ap-QCI.h"
|
||||
#include "X2ap-RadioframeAllocationOffset.h"
|
||||
#include "X2ap-RadioframeAllocationPeriod.h"
|
||||
#include "X2ap-RadioResourceStatus.h"
|
||||
#include "X2ap-ReceiveStatusofULPDCPSDUs.h"
|
||||
#include "X2ap-Registration-Request.h"
|
||||
#include "X2ap-RelativeNarrowbandTxPower.h"
|
||||
#include "X2ap-ReportAmountMDT.h"
|
||||
#include "X2ap-ReportArea.h"
|
||||
#include "X2ap-ReportCharacteristics.h"
|
||||
#include "X2ap-ReportingTriggerMDT.h"
|
||||
#include "X2ap-ReportIntervalMDT.h"
|
||||
#include "X2ap-ReportingPeriodicity.h"
|
||||
#include "X2ap-ResourceStatusFailure.h"
|
||||
#include "X2ap-ResourceStatusResponse.h"
|
||||
#include "X2ap-ResourceStatusUpdate.h"
|
||||
|
||||
#include "X2ap-RNTP-Threshold.h"
|
||||
#include "X2ap-RRCConnReestabIndicator.h"
|
||||
#include "X2ap-RRCConnSetupIndicator.h"
|
||||
#include "X2ap-RRC-Context.h"
|
||||
#include "X2ap-RLFIndication.h"
|
||||
#include "X2ap-ResourceStatusRequest.h"
|
||||
#include "X2ap-S1TNLLoadIndicator.h"
|
||||
//nclude "X2ap-ServedCellInformation.h"
|
||||
#include "X2ap-ServedCells.h"
|
||||
#include "X2ap-ServedCellsToModify.h"
|
||||
#include "X2ap-ServedCellsToActivate.h"
|
||||
#include "X2ap-ShortMAC-I.h"
|
||||
#include "X2ap-SpecialSubframe-Info.h"
|
||||
#include "X2ap-SpecialSubframePatterns.h"
|
||||
#include "X2ap-SRVCCOperationPossible.h"
|
||||
#include "X2ap-SubframeAllocation.h"
|
||||
#include "X2ap-SubframeAssignment.h"
|
||||
#include "X2ap-SubscriberProfileIDforRFP.h"
|
||||
#include "X2ap-SNStatusTransfer.h"
|
||||
|
||||
#include "X2ap-TABasedMDT.h"
|
||||
#include "X2ap-TAC.h"
|
||||
#include "X2ap-TAListforMDT.h"
|
||||
#include "X2ap-TargetCellInUTRAN.h"
|
||||
#include "X2ap-TargeteNBtoSource-eNBTransparentContainer.h"
|
||||
#include "X2ap-TDD-Info.h"
|
||||
#include "X2ap-ThresholdEventA2.h"
|
||||
#include "X2ap-Threshold-RSRP.h"
|
||||
#include "X2ap-Threshold-RSRQ.h"
|
||||
#include "X2ap-TimeToWait.h"
|
||||
#include "X2ap-Time-UE-StayedInCell-EnhancedGranularity.h"
|
||||
#include "X2ap-Time-UE-StayedInCell.h"
|
||||
#include "X2ap-E-RABs-ToBeSetup-Item.h"
|
||||
#include "X2ap-TraceActivation.h"
|
||||
#include "X2ap-TraceCollectionEntityIPAddress.h"
|
||||
#include "X2ap-TraceDepth.h"
|
||||
#include "X2ap-Transmission-Bandwidth.h"
|
||||
#include "X2ap-TransportLayerAddress.h"
|
||||
#include "X2ap-TriggeringMessage.h"
|
||||
#include "X2ap-TypeOfError.h"
|
||||
#include "X2ap-UEAggregateMaximumBitRate.h"
|
||||
#include "X2ap-UE-ContextInformation.h"
|
||||
#include "X2ap-UE-HistoryInformation.h"
|
||||
#include "X2ap-UE-RLF-Report-Container.h"
|
||||
#include "X2ap-UE-S1AP-ID.h"
|
||||
#include "X2ap-UE-X2AP-ID.h"
|
||||
#include "X2ap-UEContextRelease.h"
|
||||
#include "X2ap-UESecurityCapabilities.h"
|
||||
#include "X2ap-UL-GBR-PRB-usage.h"
|
||||
#include "X2ap-UL-HighInterferenceIndication.h"
|
||||
#include "X2ap-UL-HighInterferenceIndicationInfo.h"
|
||||
#include "X2ap-UL-HighInterferenceIndicationInfo-Item.h"
|
||||
#include "X2ap-UL-InterferenceOverloadIndication.h"
|
||||
#include "X2ap-UL-InterferenceOverloadIndication-Item.h"
|
||||
#include "X2ap-UL-non-GBR-PRB-usage.h"
|
||||
#include "X2ap-UL-Total-PRB-usage.h"
|
||||
#include "X2ap-UsableABSInformationFDD.h"
|
||||
#include "X2ap-UsableABSInformation.h"
|
||||
#include "X2ap-UsableABSInformationTDD.h"
|
||||
|
||||
#include "X2ap-ResetResponse.h"
|
||||
#include "X2ap-ResetRequest.h"
|
||||
#include "X2SetupFailure.h"
|
||||
#include "X2SetupRequest.h"
|
||||
#include "X2SetupResponse.h"
|
||||
|
||||
#include "X2ap-Old-ECGIs.h"
|
||||
#include "X2ap-Criticality.h"
|
||||
#include "X2ap-ProcedureCode.h"
|
||||
#include "X2AP_ProtocolIE-Field.h"
|
||||
#include "X2AP_X2AP-PDU.h"
|
||||
#include "X2AP_InitiatingMessage.h"
|
||||
#include "X2AP_SuccessfulOutcome.h"
|
||||
#include "X2AP_UnsuccessfulOutcome.h"
|
||||
#include "X2AP_ProtocolIE-FieldPair.h"
|
||||
#include "X2AP_ProtocolIE-ContainerPair.h"
|
||||
#include "X2AP_ProtocolExtensionField.h"
|
||||
#include "X2AP_ProtocolExtensionContainer.h"
|
||||
#include "X2AP_asn_constant.h"
|
||||
#include "intertask_interface.h"
|
||||
|
||||
#ifndef X2AP_COMMON_H_
|
||||
#define X2AP_COMMON_H_
|
||||
@@ -287,29 +57,43 @@
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
extern int asn_debug;
|
||||
extern int asn1_xer_print;
|
||||
|
||||
#if defined(ENB_MODE)
|
||||
# include "log.h"
|
||||
# include "common/utils/LOG/log.h"
|
||||
# define X2AP_INFO(x, args...) LOG_I(X2AP, x, ##args)
|
||||
# define X2AP_ERROR(x, args...) LOG_E(X2AP, x, ##args)
|
||||
# define X2AP_WARN(x, args...) LOG_W(X2AP, x, ##args)
|
||||
# define X2AP_DEBUG(x, args...) LOG_D(X2AP, x, ##args)
|
||||
#else
|
||||
# define X2AP_INFO(x, args...) do { fprintf(stdout, "[X2AP][I]"x, ##args); } while(0)
|
||||
# define X2AP_ERROR(x, args...) do { fprintf(stdout, "[X2AP][E]"x, ##args); } while(0)
|
||||
# define X2AP_WARN(x, args...) do { fprintf(stdout, "[X2AP][W]"x, ##args); } while(0)
|
||||
# define X2AP_DEBUG(x, args...) do { fprintf(stdout, "[X2AP][D]"x, ##args); } while(0)
|
||||
#endif
|
||||
|
||||
//Forward declaration
|
||||
struct x2ap_message_s;
|
||||
#define X2AP_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID, mandatory) \
|
||||
do {\
|
||||
IE_TYPE **ptr; \
|
||||
ie = NULL; \
|
||||
for (ptr = container->protocolIEs.list.array; \
|
||||
ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \
|
||||
ptr++) { \
|
||||
if((*ptr)->id == IE_ID) { \
|
||||
ie = *ptr; \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
if (mandatory) DevAssert(ie != NULL); \
|
||||
} while(0)
|
||||
|
||||
/** \brief Function callback prototype.
|
||||
**/
|
||||
typedef int (*x2ap_message_decoded_callback)(
|
||||
instance_t instance,
|
||||
uint32_t assocId,
|
||||
uint32_t stream,
|
||||
struct x2ap_message_s *message);
|
||||
X2AP_X2AP_PDU_t *pdu);
|
||||
|
||||
/** \brief Encode a successfull outcome message
|
||||
\param buffer pointer to buffer in which data will be encoded
|
||||
@@ -323,8 +107,8 @@ typedef int (*x2ap_message_decoded_callback)(
|
||||
ssize_t x2ap_generate_successfull_outcome(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
X2ap_ProcedureCode_t procedureCode,
|
||||
X2ap_Criticality_t criticality,
|
||||
X2AP_ProcedureCode_t procedureCode,
|
||||
X2AP_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr);
|
||||
|
||||
@@ -340,8 +124,8 @@ ssize_t x2ap_generate_successfull_outcome(
|
||||
ssize_t x2ap_generate_initiating_message(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
X2ap_ProcedureCode_t procedureCode,
|
||||
X2ap_Criticality_t criticality,
|
||||
X2AP_ProcedureCode_t procedureCode,
|
||||
X2AP_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr);
|
||||
|
||||
@@ -357,28 +141,15 @@ ssize_t x2ap_generate_initiating_message(
|
||||
ssize_t x2ap_generate_unsuccessfull_outcome(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
X2ap_ProcedureCode_t procedureCode,
|
||||
X2ap_Criticality_t criticality,
|
||||
X2AP_ProcedureCode_t procedureCode,
|
||||
X2AP_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr);
|
||||
|
||||
/** \brief Generate a new IE
|
||||
\param id Protocol ie id of the IE
|
||||
\param criticality Criticality of the IE
|
||||
\param type ASN1 type descriptor of the IE value
|
||||
\param sptr Structure to be encoded in the value field
|
||||
@returns a pointer to the newly created IE structure or NULL in case of failure
|
||||
**/
|
||||
X2ap_IE_t *x2ap_new_ie(
|
||||
X2ap_ProtocolIE_ID_t id,
|
||||
X2ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *type,
|
||||
void *sptr);
|
||||
|
||||
/** \brief Handle criticality
|
||||
\param criticality Criticality of the IE
|
||||
@returns void
|
||||
**/
|
||||
void x2ap_handle_criticality(X2ap_Criticality_t criticality);
|
||||
void x2ap_handle_criticality(X2AP_Criticality_t criticality);
|
||||
|
||||
#endif /* X2AP_COMMON_H_ */
|
||||
|
||||
@@ -0,0 +1,467 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include "intertask_interface.h"
|
||||
|
||||
#include "x2ap_eNB.h"
|
||||
#include "x2ap_eNB_defs.h"
|
||||
#include "x2ap_eNB_management_procedures.h"
|
||||
#include "x2ap_eNB_handler.h"
|
||||
#include "x2ap_eNB_generate_messages.h"
|
||||
#include "x2ap_common.h"
|
||||
|
||||
#include "queue.h"
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
struct x2ap_enb_map;
|
||||
struct x2ap_eNB_data_s;
|
||||
|
||||
RB_PROTOTYPE(x2ap_enb_map, x2ap_eNB_data_s, entry, x2ap_eNB_compare_assoc_id);
|
||||
|
||||
static
|
||||
void x2ap_eNB_handle_sctp_data_ind(instance_t instance, sctp_data_ind_t *sctp_data_ind);
|
||||
|
||||
static
|
||||
void x2ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_association_resp_t *sctp_new_association_resp);
|
||||
|
||||
static
|
||||
void x2ap_eNB_handle_sctp_association_ind(instance_t instance, sctp_new_association_ind_t *sctp_new_association_ind);
|
||||
|
||||
static
|
||||
void x2ap_eNB_handle_register_eNB(instance_t instance,
|
||||
x2ap_register_enb_req_t *x2ap_register_eNB);
|
||||
static
|
||||
void x2ap_eNB_register_eNB(x2ap_eNB_instance_t *instance_p,
|
||||
net_ip_address_t *target_eNB_ip_addr,
|
||||
net_ip_address_t *local_ip_addr,
|
||||
uint16_t in_streams,
|
||||
uint16_t out_streams,
|
||||
uint32_t enb_port_for_X2C,
|
||||
int multi_sd);
|
||||
|
||||
|
||||
static
|
||||
void x2ap_eNB_handle_sctp_data_ind(instance_t instance, sctp_data_ind_t *sctp_data_ind) {
|
||||
|
||||
int result;
|
||||
|
||||
DevAssert(sctp_data_ind != NULL);
|
||||
|
||||
x2ap_eNB_handle_message(instance, sctp_data_ind->assoc_id, sctp_data_ind->stream,
|
||||
sctp_data_ind->buffer, sctp_data_ind->buffer_length);
|
||||
|
||||
result = itti_free(TASK_UNKNOWN, sctp_data_ind->buffer);
|
||||
AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
|
||||
|
||||
}
|
||||
|
||||
static
|
||||
void x2ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_association_resp_t *sctp_new_association_resp)
|
||||
{
|
||||
x2ap_eNB_instance_t *instance_p;
|
||||
x2ap_eNB_data_t *x2ap_enb_data_p;
|
||||
|
||||
DevAssert(sctp_new_association_resp != NULL);
|
||||
|
||||
printf("x2ap_eNB_handle_sctp_association_resp at 1\n");
|
||||
dump_trees();
|
||||
|
||||
instance_p = x2ap_eNB_get_instance(instance);
|
||||
DevAssert(instance_p != NULL);
|
||||
|
||||
/* if the assoc_id is already known, it is certainly because an IND was received
|
||||
* before. In this case, just update streams and return
|
||||
*/
|
||||
if (sctp_new_association_resp->assoc_id != -1) {
|
||||
x2ap_enb_data_p = x2ap_get_eNB(instance_p, sctp_new_association_resp->assoc_id,
|
||||
sctp_new_association_resp->ulp_cnx_id);
|
||||
if (x2ap_enb_data_p != NULL) {
|
||||
/* some sanity check - to be refined at some point */
|
||||
if (sctp_new_association_resp->sctp_state != SCTP_STATE_ESTABLISHED) {
|
||||
X2AP_ERROR("x2ap_enb_data_p not NULL and sctp state not SCTP_STATE_ESTABLISHED, what to do?\n");
|
||||
abort();
|
||||
}
|
||||
x2ap_enb_data_p->in_streams = sctp_new_association_resp->in_streams;
|
||||
x2ap_enb_data_p->out_streams = sctp_new_association_resp->out_streams;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
x2ap_enb_data_p = x2ap_get_eNB(instance_p, -1,
|
||||
sctp_new_association_resp->ulp_cnx_id);
|
||||
DevAssert(x2ap_enb_data_p != NULL);
|
||||
|
||||
printf("x2ap_eNB_handle_sctp_association_resp at 2\n");
|
||||
dump_trees();
|
||||
|
||||
if (sctp_new_association_resp->sctp_state != SCTP_STATE_ESTABLISHED) {
|
||||
X2AP_WARN("Received unsuccessful result for SCTP association (%u), instance %d, cnx_id %u\n",
|
||||
sctp_new_association_resp->sctp_state,
|
||||
instance,
|
||||
sctp_new_association_resp->ulp_cnx_id);
|
||||
|
||||
x2ap_handle_x2_setup_message(x2ap_enb_data_p,
|
||||
sctp_new_association_resp->sctp_state == SCTP_STATE_SHUTDOWN);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
printf("x2ap_eNB_handle_sctp_association_resp at 3\n");
|
||||
dump_trees();
|
||||
|
||||
/* Update parameters */
|
||||
x2ap_enb_data_p->assoc_id = sctp_new_association_resp->assoc_id;
|
||||
x2ap_enb_data_p->in_streams = sctp_new_association_resp->in_streams;
|
||||
x2ap_enb_data_p->out_streams = sctp_new_association_resp->out_streams;
|
||||
|
||||
printf("x2ap_eNB_handle_sctp_association_resp at 4\n");
|
||||
dump_trees();
|
||||
|
||||
/* Prepare new x2 Setup Request */
|
||||
x2ap_eNB_generate_x2_setup_request(instance_p, x2ap_enb_data_p);
|
||||
}
|
||||
|
||||
static
|
||||
void x2ap_eNB_handle_sctp_association_ind(instance_t instance, sctp_new_association_ind_t *sctp_new_association_ind)
|
||||
{
|
||||
x2ap_eNB_instance_t *instance_p;
|
||||
x2ap_eNB_data_t *x2ap_enb_data_p;
|
||||
|
||||
printf("x2ap_eNB_handle_sctp_association_ind at 1 (called for instance %d)\n", instance);
|
||||
dump_trees();
|
||||
DevAssert(sctp_new_association_ind != NULL);
|
||||
|
||||
instance_p = x2ap_eNB_get_instance(instance);
|
||||
DevAssert(instance_p != NULL);
|
||||
|
||||
x2ap_enb_data_p = x2ap_get_eNB(instance_p, sctp_new_association_ind->assoc_id, -1);
|
||||
if (x2ap_enb_data_p != NULL) abort();
|
||||
// DevAssert(x2ap_enb_data_p != NULL);
|
||||
if (x2ap_enb_data_p == NULL) {
|
||||
/* Create new eNB descriptor */
|
||||
x2ap_enb_data_p = calloc(1, sizeof(*x2ap_enb_data_p));
|
||||
DevAssert(x2ap_enb_data_p != NULL);
|
||||
|
||||
x2ap_enb_data_p->cnx_id = x2ap_eNB_fetch_add_global_cnx_id();
|
||||
|
||||
x2ap_enb_data_p->x2ap_eNB_instance = instance_p;
|
||||
|
||||
/* Insert the new descriptor in list of known eNB
|
||||
* but not yet associated.
|
||||
*/
|
||||
RB_INSERT(x2ap_enb_map, &instance_p->x2ap_enb_head, x2ap_enb_data_p);
|
||||
x2ap_enb_data_p->state = X2AP_ENB_STATE_CONNECTED;
|
||||
instance_p->x2_target_enb_nb++;
|
||||
if (instance_p->x2_target_enb_pending_nb > 0) {
|
||||
instance_p->x2_target_enb_pending_nb--;
|
||||
}
|
||||
} else {
|
||||
X2AP_WARN("x2ap_enb_data_p already exists\n");
|
||||
}
|
||||
|
||||
printf("x2ap_eNB_handle_sctp_association_ind at 2\n");
|
||||
dump_trees();
|
||||
/* Update parameters */
|
||||
x2ap_enb_data_p->assoc_id = sctp_new_association_ind->assoc_id;
|
||||
x2ap_enb_data_p->in_streams = sctp_new_association_ind->in_streams;
|
||||
x2ap_enb_data_p->out_streams = sctp_new_association_ind->out_streams;
|
||||
|
||||
printf("x2ap_eNB_handle_sctp_association_ind at 3\n");
|
||||
dump_trees();
|
||||
}
|
||||
|
||||
int x2ap_eNB_init_sctp (x2ap_eNB_instance_t *instance_p,
|
||||
net_ip_address_t *local_ip_addr,
|
||||
uint32_t enb_port_for_X2C)
|
||||
{
|
||||
// Create and alloc new message
|
||||
MessageDef *message;
|
||||
sctp_init_t *sctp_init = NULL;
|
||||
|
||||
DevAssert(instance_p != NULL);
|
||||
DevAssert(local_ip_addr != NULL);
|
||||
|
||||
message = itti_alloc_new_message (TASK_X2AP, SCTP_INIT_MSG_MULTI_REQ);
|
||||
sctp_init = &message->ittiMsg.sctp_init_multi;
|
||||
|
||||
sctp_init->port = enb_port_for_X2C;
|
||||
sctp_init->ppid = X2AP_SCTP_PPID;
|
||||
sctp_init->ipv4 = 1;
|
||||
sctp_init->ipv6 = 0;
|
||||
sctp_init->nb_ipv4_addr = 1;
|
||||
|
||||
#if 0
|
||||
memcpy(&sctp_init->ipv4_address,
|
||||
local_ip_addr,
|
||||
sizeof(*local_ip_addr));
|
||||
#endif
|
||||
sctp_init->ipv4_address[0] = inet_addr(local_ip_addr->ipv4_address);
|
||||
/*
|
||||
* SR WARNING: ipv6 multi-homing fails sometimes for localhost.
|
||||
* * * * Disable it for now.
|
||||
*/
|
||||
sctp_init->nb_ipv6_addr = 0;
|
||||
sctp_init->ipv6_address[0] = "0:0:0:0:0:0:0:1";
|
||||
|
||||
return itti_send_msg_to_task (TASK_SCTP, instance_p->instance, message);
|
||||
|
||||
}
|
||||
|
||||
static void x2ap_eNB_register_eNB(x2ap_eNB_instance_t *instance_p,
|
||||
net_ip_address_t *target_eNB_ip_address,
|
||||
net_ip_address_t *local_ip_addr,
|
||||
uint16_t in_streams,
|
||||
uint16_t out_streams,
|
||||
uint32_t enb_port_for_X2C,
|
||||
int multi_sd)
|
||||
{
|
||||
|
||||
MessageDef *message = NULL;
|
||||
sctp_new_association_req_multi_t *sctp_new_association_req = NULL;
|
||||
x2ap_eNB_data_t *x2ap_enb_data = NULL;
|
||||
|
||||
DevAssert(instance_p != NULL);
|
||||
DevAssert(target_eNB_ip_address != NULL);
|
||||
|
||||
message = itti_alloc_new_message(TASK_X2AP, SCTP_NEW_ASSOCIATION_REQ_MULTI);
|
||||
|
||||
sctp_new_association_req = &message->ittiMsg.sctp_new_association_req_multi;
|
||||
|
||||
sctp_new_association_req->port = enb_port_for_X2C;
|
||||
sctp_new_association_req->ppid = X2AP_SCTP_PPID;
|
||||
|
||||
sctp_new_association_req->in_streams = in_streams;
|
||||
sctp_new_association_req->out_streams = out_streams;
|
||||
|
||||
sctp_new_association_req->multi_sd = multi_sd;
|
||||
|
||||
memcpy(&sctp_new_association_req->remote_address,
|
||||
target_eNB_ip_address,
|
||||
sizeof(*target_eNB_ip_address));
|
||||
|
||||
memcpy(&sctp_new_association_req->local_address,
|
||||
local_ip_addr,
|
||||
sizeof(*local_ip_addr));
|
||||
|
||||
/* Create new eNB descriptor */
|
||||
x2ap_enb_data = calloc(1, sizeof(*x2ap_enb_data));
|
||||
DevAssert(x2ap_enb_data != NULL);
|
||||
|
||||
x2ap_enb_data->cnx_id = x2ap_eNB_fetch_add_global_cnx_id();
|
||||
sctp_new_association_req->ulp_cnx_id = x2ap_enb_data->cnx_id;
|
||||
|
||||
x2ap_enb_data->assoc_id = -1;
|
||||
x2ap_enb_data->x2ap_eNB_instance = instance_p;
|
||||
|
||||
/* Insert the new descriptor in list of known eNB
|
||||
* but not yet associated.
|
||||
*/
|
||||
RB_INSERT(x2ap_enb_map, &instance_p->x2ap_enb_head, x2ap_enb_data);
|
||||
x2ap_enb_data->state = X2AP_ENB_STATE_WAITING;
|
||||
instance_p->x2_target_enb_nb ++;
|
||||
instance_p->x2_target_enb_pending_nb ++;
|
||||
|
||||
itti_send_msg_to_task(TASK_SCTP, instance_p->instance, message);
|
||||
}
|
||||
|
||||
static
|
||||
void x2ap_eNB_handle_register_eNB(instance_t instance,
|
||||
x2ap_register_enb_req_t *x2ap_register_eNB)
|
||||
{
|
||||
x2ap_eNB_instance_t *new_instance;
|
||||
|
||||
DevAssert(x2ap_register_eNB != NULL);
|
||||
|
||||
/* Look if the provided instance already exists */
|
||||
new_instance = x2ap_eNB_get_instance(instance);
|
||||
|
||||
if (new_instance != NULL) {
|
||||
/* Checks if it is a retry on the same eNB */
|
||||
DevCheck(new_instance->eNB_id == x2ap_register_eNB->eNB_id, new_instance->eNB_id, x2ap_register_eNB->eNB_id, 0);
|
||||
DevCheck(new_instance->cell_type == x2ap_register_eNB->cell_type, new_instance->cell_type, x2ap_register_eNB->cell_type, 0);
|
||||
DevCheck(new_instance->tac == x2ap_register_eNB->tac, new_instance->tac, x2ap_register_eNB->tac, 0);
|
||||
DevCheck(new_instance->mcc == x2ap_register_eNB->mcc, new_instance->mcc, x2ap_register_eNB->mcc, 0);
|
||||
DevCheck(new_instance->mnc == x2ap_register_eNB->mnc, new_instance->mnc, x2ap_register_eNB->mnc, 0);
|
||||
X2AP_WARN("eNB[%d] already registered\n", instance);
|
||||
}
|
||||
else {
|
||||
new_instance = calloc(1, sizeof(x2ap_eNB_instance_t));
|
||||
DevAssert(new_instance != NULL);
|
||||
|
||||
RB_INIT(&new_instance->x2ap_enb_head);
|
||||
|
||||
/* Copy usefull parameters */
|
||||
new_instance->instance = instance;
|
||||
new_instance->eNB_name = x2ap_register_eNB->eNB_name;
|
||||
new_instance->eNB_id = x2ap_register_eNB->eNB_id;
|
||||
new_instance->cell_type = x2ap_register_eNB->cell_type;
|
||||
new_instance->tac = x2ap_register_eNB->tac;
|
||||
new_instance->mcc = x2ap_register_eNB->mcc;
|
||||
new_instance->mnc = x2ap_register_eNB->mnc;
|
||||
new_instance->mnc_digit_length = x2ap_register_eNB->mnc_digit_length;
|
||||
|
||||
new_instance->num_cc = x2ap_register_eNB->num_cc;
|
||||
|
||||
for (int i = 0; i< x2ap_register_eNB->num_cc; i++){
|
||||
new_instance->eutra_band[i] = x2ap_register_eNB->eutra_band[i];
|
||||
new_instance->downlink_frequency[i] = x2ap_register_eNB->downlink_frequency[i];
|
||||
new_instance->uplink_frequency_offset[i] = x2ap_register_eNB->uplink_frequency_offset[i];
|
||||
new_instance->Nid_cell[i] = x2ap_register_eNB->Nid_cell[i];
|
||||
new_instance->N_RB_DL[i] = x2ap_register_eNB->N_RB_DL[i];
|
||||
new_instance->frame_type[i] = x2ap_register_eNB->frame_type[i];
|
||||
new_instance->fdd_earfcn_DL[i] = x2ap_register_eNB->fdd_earfcn_DL[i];
|
||||
new_instance->fdd_earfcn_UL[i] = x2ap_register_eNB->fdd_earfcn_UL[i];
|
||||
}
|
||||
|
||||
DevCheck(x2ap_register_eNB->nb_x2 <= X2AP_MAX_NB_ENB_IP_ADDRESS,
|
||||
X2AP_MAX_NB_ENB_IP_ADDRESS, x2ap_register_eNB->nb_x2, 0);
|
||||
memcpy(new_instance->target_enb_x2_ip_address,
|
||||
x2ap_register_eNB->target_enb_x2_ip_address,
|
||||
x2ap_register_eNB->nb_x2 * sizeof(net_ip_address_t));
|
||||
|
||||
new_instance->nb_x2 = x2ap_register_eNB->nb_x2;
|
||||
new_instance->enb_x2_ip_address = x2ap_register_eNB->enb_x2_ip_address;
|
||||
new_instance->sctp_in_streams = x2ap_register_eNB->sctp_in_streams;
|
||||
new_instance->sctp_out_streams = x2ap_register_eNB->sctp_out_streams;
|
||||
new_instance->enb_port_for_X2C = x2ap_register_eNB->enb_port_for_X2C;
|
||||
|
||||
/* Add the new instance to the list of eNB (meaningfull in virtual mode) */
|
||||
x2ap_eNB_insert_new_instance(new_instance);
|
||||
|
||||
X2AP_INFO("Registered new eNB[%d] and %s eNB id %u\n",
|
||||
instance,
|
||||
x2ap_register_eNB->cell_type == CELL_MACRO_ENB ? "macro" : "home",
|
||||
x2ap_register_eNB->eNB_id);
|
||||
/* initiate the SCTP listener */
|
||||
if (x2ap_eNB_init_sctp(new_instance,&x2ap_register_eNB->enb_x2_ip_address,x2ap_register_eNB->enb_port_for_X2C) < 0 ) {
|
||||
X2AP_ERROR ("Error while sending SCTP_INIT_MSG to SCTP \n");
|
||||
return;
|
||||
}
|
||||
X2AP_INFO("eNB[%d] eNB id %u acting as a listner (server)\n",
|
||||
instance, x2ap_register_eNB->eNB_id);
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
void x2ap_eNB_handle_sctp_init_msg_multi_cnf(
|
||||
instance_t instance_id,
|
||||
sctp_init_msg_multi_cnf_t *m)
|
||||
{
|
||||
x2ap_eNB_instance_t *instance;
|
||||
int index;
|
||||
|
||||
DevAssert(m != NULL);
|
||||
|
||||
instance = x2ap_eNB_get_instance(instance_id);
|
||||
DevAssert(instance != NULL);
|
||||
|
||||
instance->multi_sd = m->multi_sd;
|
||||
/* Exit if CNF message reports failure.
|
||||
* Failure means multi_sd < 0.
|
||||
*/
|
||||
if (instance->multi_sd < 0) {
|
||||
X2AP_ERROR("Error: be sure to properly configure X2 in your configuration file.\n");
|
||||
DevAssert(instance->multi_sd >= 0);
|
||||
}
|
||||
|
||||
/* Trying to connect to the provided list of eNB ip address */
|
||||
|
||||
for (index = 0; index < instance->nb_x2; index++) {
|
||||
|
||||
X2AP_INFO("eNB[%d] eNB id %u acting as an initiator (client)\n",
|
||||
instance_id, instance->eNB_id);
|
||||
x2ap_eNB_register_eNB(instance,
|
||||
&instance->target_enb_x2_ip_address[index],
|
||||
&instance->enb_x2_ip_address,
|
||||
instance->sctp_in_streams,
|
||||
instance->sctp_out_streams,
|
||||
instance->enb_port_for_X2C,
|
||||
instance->multi_sd);
|
||||
}
|
||||
}
|
||||
|
||||
void *x2ap_task(void *arg)
|
||||
{
|
||||
MessageDef *received_msg = NULL;
|
||||
int result;
|
||||
|
||||
X2AP_DEBUG("Starting X2AP layer\n");
|
||||
|
||||
x2ap_eNB_prepare_internal_data();
|
||||
|
||||
itti_mark_task_ready(TASK_X2AP);
|
||||
|
||||
while (1) {
|
||||
itti_receive_msg(TASK_X2AP, &received_msg);
|
||||
switch (ITTI_MSG_ID(received_msg)) {
|
||||
case TERMINATE_MESSAGE:
|
||||
X2AP_WARN(" *** Exiting X2AP thread\n");
|
||||
itti_exit_task();
|
||||
break;
|
||||
|
||||
case X2AP_REGISTER_ENB_REQ:
|
||||
x2ap_eNB_handle_register_eNB(ITTI_MESSAGE_GET_INSTANCE(received_msg),
|
||||
&X2AP_REGISTER_ENB_REQ(received_msg));
|
||||
break;
|
||||
|
||||
case SCTP_INIT_MSG_MULTI_CNF:
|
||||
x2ap_eNB_handle_sctp_init_msg_multi_cnf(ITTI_MESSAGE_GET_INSTANCE(received_msg),
|
||||
&received_msg->ittiMsg.sctp_init_msg_multi_cnf);
|
||||
break;
|
||||
|
||||
case SCTP_NEW_ASSOCIATION_RESP:
|
||||
x2ap_eNB_handle_sctp_association_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
|
||||
&received_msg->ittiMsg.sctp_new_association_resp);
|
||||
break;
|
||||
|
||||
case SCTP_NEW_ASSOCIATION_IND:
|
||||
x2ap_eNB_handle_sctp_association_ind(ITTI_MESSAGE_GET_INSTANCE(received_msg),
|
||||
&received_msg->ittiMsg.sctp_new_association_ind);
|
||||
break;
|
||||
|
||||
case SCTP_DATA_IND:
|
||||
x2ap_eNB_handle_sctp_data_ind(ITTI_MESSAGE_GET_INSTANCE(received_msg),
|
||||
&received_msg->ittiMsg.sctp_data_ind);
|
||||
break;
|
||||
|
||||
default:
|
||||
X2AP_ERROR("Received unhandled message: %d:%s\n",
|
||||
ITTI_MSG_ID(received_msg), ITTI_MSG_NAME(received_msg));
|
||||
break;
|
||||
}
|
||||
|
||||
result = itti_free (ITTI_MSG_ORIGIN_ID(received_msg), received_msg);
|
||||
AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
|
||||
|
||||
received_msg = NULL;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -30,13 +30,12 @@
|
||||
#ifndef X2AP_H_
|
||||
#define X2AP_H_
|
||||
|
||||
typedef struct x2ap_config_s {
|
||||
} x2ap_config_t;
|
||||
#define X2AP_SCTP_PPID (27) ///< X2AP SCTP Payload Protocol Identifier (PPID)
|
||||
#include "x2ap_eNB_defs.h"
|
||||
|
||||
#if defined(OAI_EMU)
|
||||
#else
|
||||
extern x2ap_config_t x2ap_config;
|
||||
#endif
|
||||
int x2ap_eNB_init_sctp (x2ap_eNB_instance_t *instance_p,
|
||||
net_ip_address_t *local_ip_addr,
|
||||
uint32_t enb_port_for_X2C);
|
||||
|
||||
void *x2ap_task(void *arg);
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "assertions.h"
|
||||
#include "intertask_interface.h"
|
||||
#include "x2ap_common.h"
|
||||
#include "x2ap_eNB_decoder.h"
|
||||
|
||||
static int x2ap_eNB_decode_initiating_message(X2AP_X2AP_PDU_t *pdu)
|
||||
{
|
||||
DevAssert(pdu != NULL);
|
||||
|
||||
switch(pdu->choice.initiatingMessage.procedureCode) {
|
||||
|
||||
case X2AP_ProcedureCode_id_x2Setup:
|
||||
asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_X2AP_X2AP_PDU, pdu);
|
||||
X2AP_INFO("x2ap_eNB_decode_initiating_message!\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
X2AP_ERROR("Unknown procedure ID (%d) for initiating message\n",
|
||||
(int)pdu->choice.initiatingMessage.procedureCode);
|
||||
AssertFatal( 0, "Unknown procedure ID (%d) for initiating message\n",
|
||||
(int)pdu->choice.initiatingMessage.procedureCode);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int x2ap_eNB_decode_successful_outcome(X2AP_X2AP_PDU_t *pdu)
|
||||
{
|
||||
DevAssert(pdu != NULL);
|
||||
|
||||
switch(pdu->choice.successfulOutcome.procedureCode) {
|
||||
case X2AP_ProcedureCode_id_x2Setup:
|
||||
asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_X2AP_X2AP_PDU, pdu);
|
||||
X2AP_INFO("x2ap_eNB_decode_successfuloutcome_message!\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
X2AP_ERROR("Unknown procedure ID (%d) for successfull outcome message\n",
|
||||
(int)pdu->choice.successfulOutcome.procedureCode);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int x2ap_eNB_decode_unsuccessful_outcome(X2AP_X2AP_PDU_t *pdu)
|
||||
{
|
||||
DevAssert(pdu != NULL);
|
||||
|
||||
switch(pdu->choice.unsuccessfulOutcome.procedureCode) {
|
||||
case X2AP_ProcedureCode_id_x2Setup:
|
||||
asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_X2AP_X2AP_PDU, pdu);
|
||||
X2AP_INFO("x2ap_eNB_decode_unsuccessfuloutcome_message!\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
X2AP_ERROR("Unknown procedure ID (%d) for unsuccessfull outcome message\n",
|
||||
(int)pdu->choice.unsuccessfulOutcome.procedureCode);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int x2ap_eNB_decode_pdu(X2AP_X2AP_PDU_t *pdu, const uint8_t *const buffer, uint32_t length)
|
||||
{
|
||||
asn_dec_rval_t dec_ret;
|
||||
|
||||
DevAssert(buffer != NULL);
|
||||
|
||||
dec_ret = aper_decode(NULL,
|
||||
&asn_DEF_X2AP_X2AP_PDU,
|
||||
(void **)&pdu,
|
||||
buffer,
|
||||
length,
|
||||
0,
|
||||
0);
|
||||
|
||||
xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, pdu);
|
||||
|
||||
if (dec_ret.code != RC_OK) {
|
||||
X2AP_ERROR("Failed to decode pdu\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch(pdu->present) {
|
||||
case X2AP_X2AP_PDU_PR_initiatingMessage:
|
||||
return x2ap_eNB_decode_initiating_message(pdu);
|
||||
|
||||
case X2AP_X2AP_PDU_PR_successfulOutcome:
|
||||
return x2ap_eNB_decode_successful_outcome(pdu);
|
||||
|
||||
case X2AP_X2AP_PDU_PR_unsuccessfulOutcome:
|
||||
return x2ap_eNB_decode_unsuccessful_outcome(pdu);
|
||||
|
||||
default:
|
||||
X2AP_DEBUG("Unknown presence (%d) or not implemented\n", (int)pdu->present);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return -1;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#ifndef X2AP_ENB_DECODER_H_
|
||||
#define X2AP_ENB_DECODER_H_
|
||||
|
||||
int x2ap_eNB_decode_pdu(X2AP_X2AP_PDU_t *pdu, const uint8_t *const buffer, uint32_t length)
|
||||
__attribute__ ((warn_unused_result));
|
||||
|
||||
#endif /* X2AP_ENB_DECODER_H_ */
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "queue.h"
|
||||
#include "tree.h"
|
||||
|
||||
#include "sctp_eNB_defs.h"
|
||||
|
||||
#ifndef X2AP_ENB_DEFS_H_
|
||||
#define X2AP_ENB_DEFS_H_
|
||||
|
||||
#define X2AP_ENB_NAME_LENGTH_MAX (150)
|
||||
|
||||
typedef enum {
|
||||
/* Disconnected state: initial state for any association. */
|
||||
X2AP_ENB_STATE_DISCONNECTED = 0x0,
|
||||
|
||||
/* State waiting for x2 Setup response message if the target eNB accepts or
|
||||
* X2 Setup failure if rejects the eNB.
|
||||
*/
|
||||
X2AP_ENB_STATE_WAITING = 0x1,
|
||||
|
||||
/* The eNB is successfully connected to another eNB. */
|
||||
X2AP_ENB_STATE_CONNECTED = 0x2,
|
||||
|
||||
/* X2AP is ready, and the eNB is successfully connected to another eNB. */
|
||||
X2AP_ENB_STATE_READY = 0x3,
|
||||
|
||||
X2AP_ENB_STATE_OVERLOAD = 0x4,
|
||||
|
||||
X2AP_ENB_STATE_RESETTING = 0x5,
|
||||
|
||||
/* Max number of states available */
|
||||
X2AP_ENB_STATE_MAX,
|
||||
} x2ap_eNB_state_t;
|
||||
|
||||
|
||||
/* Served PLMN identity element */
|
||||
struct plmn_identity_s {
|
||||
uint16_t mcc;
|
||||
uint16_t mnc;
|
||||
uint8_t mnc_digit_length;
|
||||
STAILQ_ENTRY(plmn_identity_s) next;
|
||||
};
|
||||
|
||||
/* Served group id element */
|
||||
struct served_group_id_s {
|
||||
uint16_t enb_group_id;
|
||||
STAILQ_ENTRY(served_group_id_s) next;
|
||||
};
|
||||
|
||||
/* Served enn code for a particular eNB */
|
||||
struct enb_code_s {
|
||||
uint8_t enb_code;
|
||||
STAILQ_ENTRY(enb_code_s) next;
|
||||
};
|
||||
|
||||
struct x2ap_eNB_instance_s;
|
||||
|
||||
/* This structure describes association of a eNB to another eNB */
|
||||
typedef struct x2ap_eNB_data_s {
|
||||
/* eNB descriptors tree, ordered by sctp assoc id */
|
||||
RB_ENTRY(x2ap_eNB_data_s) entry;
|
||||
|
||||
/* This is the optional name provided by the MME */
|
||||
char *eNB_name;
|
||||
|
||||
/* target eNB ID */
|
||||
uint32_t eNB_id;
|
||||
|
||||
/* Current eNB load information (if any). */
|
||||
//x2ap_load_state_t overload_state;
|
||||
|
||||
/* Current eNB->eNB X2AP association state */
|
||||
x2ap_eNB_state_t state;
|
||||
|
||||
/* Next usable stream for UE signalling */
|
||||
int32_t nextstream;
|
||||
|
||||
/* Number of input/ouput streams */
|
||||
uint16_t in_streams;
|
||||
uint16_t out_streams;
|
||||
|
||||
/* Connexion id used between SCTP/X2AP */
|
||||
uint16_t cnx_id;
|
||||
|
||||
/* SCTP association id */
|
||||
int32_t assoc_id;
|
||||
|
||||
/* Only meaningfull in virtual mode */
|
||||
struct x2ap_eNB_instance_s *x2ap_eNB_instance;
|
||||
} x2ap_eNB_data_t;
|
||||
|
||||
typedef struct x2ap_eNB_instance_s {
|
||||
/* used in simulation to store multiple eNB instances*/
|
||||
STAILQ_ENTRY(x2ap_eNB_instance_s) x2ap_eNB_entries;
|
||||
|
||||
/* Number of target eNBs requested by eNB (tree size) */
|
||||
uint32_t x2_target_enb_nb;
|
||||
/* Number of target eNBs for which association is pending */
|
||||
uint32_t x2_target_enb_pending_nb;
|
||||
/* Number of target eNB successfully associated to eNB */
|
||||
uint32_t x2_target_enb_associated_nb;
|
||||
/* Tree of X2AP eNB associations ordered by association ID */
|
||||
RB_HEAD(x2ap_enb_map, x2ap_eNB_data_s) x2ap_enb_head;
|
||||
|
||||
/* Tree of UE ordered by eNB_ue_x2ap_id's */
|
||||
// RB_HEAD(x2ap_ue_map, x2ap_eNB_ue_context_s) x2ap_ue_head;
|
||||
|
||||
/* For virtual mode, mod_id as defined in the rest of the L1/L2 stack */
|
||||
instance_t instance;
|
||||
|
||||
/* Displayable name of eNB */
|
||||
char *eNB_name;
|
||||
|
||||
/* Unique eNB_id to identify the eNB within EPC.
|
||||
* In our case the eNB is a macro eNB so the id will be 20 bits long.
|
||||
* For Home eNB id, this field should be 28 bits long.
|
||||
*/
|
||||
uint32_t eNB_id;
|
||||
/* The type of the cell */
|
||||
cell_type_t cell_type;
|
||||
|
||||
/* Tracking area code */
|
||||
uint16_t tac;
|
||||
|
||||
/* Mobile Country Code
|
||||
* Mobile Network Code
|
||||
*/
|
||||
uint16_t mcc;
|
||||
uint16_t mnc;
|
||||
uint8_t mnc_digit_length;
|
||||
|
||||
/* CC params */
|
||||
int16_t eutra_band[MAX_NUM_CCs];
|
||||
uint32_t downlink_frequency[MAX_NUM_CCs];
|
||||
int32_t uplink_frequency_offset[MAX_NUM_CCs];
|
||||
uint32_t Nid_cell[MAX_NUM_CCs];
|
||||
int16_t N_RB_DL[MAX_NUM_CCs];
|
||||
lte_frame_type_t frame_type[MAX_NUM_CCs];
|
||||
uint32_t fdd_earfcn_DL[MAX_NUM_CCs];
|
||||
uint32_t fdd_earfcn_UL[MAX_NUM_CCs];
|
||||
int num_cc;
|
||||
|
||||
net_ip_address_t target_enb_x2_ip_address[X2AP_MAX_NB_ENB_IP_ADDRESS];
|
||||
uint8_t nb_x2;
|
||||
net_ip_address_t enb_x2_ip_address;
|
||||
uint16_t sctp_in_streams;
|
||||
uint16_t sctp_out_streams;
|
||||
uint32_t enb_port_for_X2C;
|
||||
int multi_sd;
|
||||
} x2ap_eNB_instance_t;
|
||||
|
||||
typedef struct {
|
||||
/* List of served eNBs
|
||||
* Only used for virtual mode
|
||||
*/
|
||||
STAILQ_HEAD(x2ap_eNB_instances_head_s, x2ap_eNB_instance_s) x2ap_eNB_instances_head;
|
||||
/* Nb of registered eNBs */
|
||||
uint8_t nb_registered_eNBs;
|
||||
|
||||
/* Generate a unique connexion id used between X2AP and SCTP */
|
||||
uint16_t global_cnx_id;
|
||||
} x2ap_eNB_internal_data_t;
|
||||
|
||||
int x2ap_eNB_compare_assoc_id(struct x2ap_eNB_data_s *p1, struct x2ap_eNB_data_s *p2);
|
||||
|
||||
/* Generate the tree management functions */
|
||||
struct x2ap_eNB_map;
|
||||
struct x2ap_eNB_data_s;
|
||||
RB_PROTOTYPE(x2ap_eNB_map, x2ap_eNB_data_s, entry, x2ap_eNB_compare_assoc_id);
|
||||
|
||||
|
||||
#endif /* X2AP_ENB_DEFS_H_ */
|
||||
|
||||
@@ -19,52 +19,36 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
#include "intertask_interface.h"
|
||||
|
||||
#include "x2ap.h"
|
||||
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
#include "intertask_interface.h"
|
||||
#include "x2ap_common.h"
|
||||
#include "x2ap_eNB_encoder.h"
|
||||
|
||||
|
||||
void *x2ap_task(void *arg)
|
||||
int x2ap_eNB_encode_pdu(X2AP_X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len)
|
||||
{
|
||||
MessageDef *received_msg = NULL;
|
||||
int result;
|
||||
ssize_t encoded;
|
||||
|
||||
X2AP_DEBUG("Starting X2AP layer\n");
|
||||
DevAssert(pdu != NULL);
|
||||
DevAssert(buffer != NULL);
|
||||
DevAssert(len != NULL);
|
||||
|
||||
x2ap_prepare_internal_data();
|
||||
|
||||
itti_mark_task_ready(TASK_X2AP);
|
||||
|
||||
while (1) {
|
||||
itti_receive_msg(TASK_X2AP, &received_msg);
|
||||
|
||||
switch (ITTI_MSG_ID(received_msg)) {
|
||||
case TERMINATE_MESSAGE:
|
||||
itti_exit_task();
|
||||
break;
|
||||
|
||||
default:
|
||||
X2AP_ERROR("Received unhandled message: %d:%s\n",
|
||||
ITTI_MSG_ID(received_msg), ITTI_MSG_NAME(received_msg));
|
||||
break;
|
||||
}
|
||||
|
||||
result = itti_free (ITTI_MSG_ORIGIN_ID(received_msg), received_msg);
|
||||
AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
|
||||
|
||||
received_msg = NULL;
|
||||
if (asn1_xer_print) {
|
||||
xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)pdu);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, pdu, (void **)buffer);
|
||||
|
||||
if (encoded < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
*len = encoded;
|
||||
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_X2AP_PDU, pdu);
|
||||
return encoded;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#ifndef X2AP_ENB_ENCODER_H_
|
||||
#define X2AP_ENB_ENCODER_H_
|
||||
|
||||
int x2ap_eNB_encode_pdu(X2AP_X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len)
|
||||
__attribute__ ((warn_unused_result));
|
||||
|
||||
#endif /* X2AP_ENB_ENCODER_H_ */
|
||||
@@ -0,0 +1,405 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#include "intertask_interface.h"
|
||||
|
||||
#include "x2ap_common.h"
|
||||
#include "x2ap_eNB.h"
|
||||
#include "x2ap_eNB_generate_messages.h"
|
||||
#include "x2ap_eNB_encoder.h"
|
||||
|
||||
#include "x2ap_eNB_itti_messaging.h"
|
||||
|
||||
#include "msc.h"
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
int x2ap_eNB_generate_x2_setup_request(
|
||||
x2ap_eNB_instance_t *instance_p, x2ap_eNB_data_t *x2ap_eNB_data_p)
|
||||
{
|
||||
X2AP_X2AP_PDU_t pdu;
|
||||
X2AP_X2SetupRequest_t *out;
|
||||
X2AP_X2SetupRequest_IEs_t *ie;
|
||||
X2AP_PLMN_Identity_t *plmn;
|
||||
ServedCells__Member *servedCellMember;
|
||||
X2AP_GU_Group_ID_t *gu;
|
||||
|
||||
uint8_t *buffer;
|
||||
uint32_t len;
|
||||
int ret = 0;
|
||||
|
||||
DevAssert(instance_p != NULL);
|
||||
DevAssert(x2ap_eNB_data_p != NULL);
|
||||
|
||||
x2ap_eNB_data_p->state = X2AP_ENB_STATE_WAITING;
|
||||
|
||||
/* Prepare the X2AP message to encode */
|
||||
memset(&pdu, 0, sizeof(pdu));
|
||||
pdu.present = X2AP_X2AP_PDU_PR_initiatingMessage;
|
||||
pdu.choice.initiatingMessage.procedureCode = X2AP_ProcedureCode_id_x2Setup;
|
||||
pdu.choice.initiatingMessage.criticality = X2AP_Criticality_reject;
|
||||
pdu.choice.initiatingMessage.value.present = X2AP_InitiatingMessage__value_PR_X2SetupRequest;
|
||||
out = &pdu.choice.initiatingMessage.value.choice.X2SetupRequest;
|
||||
|
||||
/* mandatory */
|
||||
ie = (X2AP_X2SetupRequest_IEs_t *)calloc(1, sizeof(X2AP_X2SetupRequest_IEs_t));
|
||||
ie->id = X2AP_ProtocolIE_ID_id_GlobalENB_ID;
|
||||
ie->criticality = X2AP_Criticality_reject;
|
||||
ie->value.present = X2AP_X2SetupRequest_IEs__value_PR_GlobalENB_ID;
|
||||
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
|
||||
&ie->value.choice.GlobalENB_ID.pLMN_Identity);
|
||||
ie->value.choice.GlobalENB_ID.eNB_ID.present = X2AP_ENB_ID_PR_macro_eNB_ID;
|
||||
MACRO_ENB_ID_TO_BIT_STRING(instance_p->eNB_id,
|
||||
&ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID);
|
||||
X2AP_INFO("%d -> %02x%02x%02x\n", instance_p->eNB_id,
|
||||
ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[0],
|
||||
ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
|
||||
ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
/* mandatory */
|
||||
ie = (X2AP_X2SetupRequest_IEs_t *)calloc(1, sizeof(X2AP_X2SetupRequest_IEs_t));
|
||||
ie->id = X2AP_ProtocolIE_ID_id_ServedCells;
|
||||
ie->criticality = X2AP_Criticality_reject;
|
||||
ie->value.present = X2AP_X2SetupRequest_IEs__value_PR_ServedCells;
|
||||
{
|
||||
for (int i = 0; i<instance_p->num_cc; i++){
|
||||
servedCellMember = (ServedCells__Member *)calloc(1,sizeof(ServedCells__Member));
|
||||
{
|
||||
servedCellMember->servedCellInfo.pCI = instance_p->Nid_cell[i];
|
||||
|
||||
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
|
||||
&servedCellMember->servedCellInfo.cellId.pLMN_Identity);
|
||||
MACRO_ENB_ID_TO_CELL_IDENTITY(instance_p->eNB_id,0,
|
||||
&servedCellMember->servedCellInfo.cellId.eUTRANcellIdentifier);
|
||||
|
||||
INT16_TO_OCTET_STRING(instance_p->tac, &servedCellMember->servedCellInfo.tAC);
|
||||
plmn = (X2AP_PLMN_Identity_t *)calloc(1,sizeof(X2AP_PLMN_Identity_t));
|
||||
{
|
||||
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
|
||||
ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
|
||||
}
|
||||
|
||||
if (instance_p->frame_type[i] == FDD) {
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.present = X2AP_EUTRA_Mode_Info_PR_fDD;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_EARFCN = instance_p->fdd_earfcn_DL[i];
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_EARFCN = instance_p->fdd_earfcn_UL[i];
|
||||
switch (instance_p->N_RB_DL[i]) {
|
||||
case 6:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw6;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw6;
|
||||
break;
|
||||
case 15:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw15;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw15;
|
||||
break;
|
||||
case 25:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw25;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw25;
|
||||
break;
|
||||
case 50:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw50;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw50;
|
||||
break;
|
||||
case 75:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw75;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw75;
|
||||
break;
|
||||
case 100:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw100;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw100;
|
||||
break;
|
||||
default:
|
||||
AssertFatal(0,"Failed: Check value for N_RB_DL/N_RB_UL");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
AssertFatal(0,"X2Setuprequest not supported for TDD!");
|
||||
}
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
|
||||
}
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
/* mandatory */
|
||||
ie = (X2AP_X2SetupRequest_IEs_t *)calloc(1, sizeof(X2AP_X2SetupRequest_IEs_t));
|
||||
ie->id = X2AP_ProtocolIE_ID_id_GUGroupIDList;
|
||||
ie->criticality = X2AP_Criticality_reject;
|
||||
ie->value.present = X2AP_X2SetupRequest_IEs__value_PR_GUGroupIDList;
|
||||
{
|
||||
gu = (X2AP_GU_Group_ID_t *)calloc(1, sizeof(X2AP_GU_Group_ID_t));
|
||||
{
|
||||
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
|
||||
&gu->pLMN_Identity);
|
||||
//@TODO: consider to update this value
|
||||
INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
|
||||
X2AP_ERROR("Failed to encode X2 setup request\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE (MSC_X2AP_SRC_ENB, MSC_X2AP_TARGET_ENB, NULL, 0, "0 X2Setup/initiatingMessage assoc_id %u", x2ap_eNB_data_p->assoc_id);
|
||||
|
||||
x2ap_eNB_itti_send_sctp_data_req(instance_p->instance, x2ap_eNB_data_p->assoc_id, buffer, len, 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int x2ap_eNB_generate_x2_setup_response(x2ap_eNB_data_t *x2ap_eNB_data_p)
|
||||
{
|
||||
X2AP_X2AP_PDU_t pdu;
|
||||
X2AP_X2SetupResponse_t *out;
|
||||
X2AP_X2SetupResponse_IEs_t *ie;
|
||||
X2AP_PLMN_Identity_t *plmn;
|
||||
ServedCells__Member *servedCellMember;
|
||||
X2AP_GU_Group_ID_t *gu;
|
||||
|
||||
x2ap_eNB_instance_t *instance_p;
|
||||
|
||||
uint8_t *buffer;
|
||||
uint32_t len;
|
||||
int ret = 0;
|
||||
|
||||
DevAssert(x2ap_eNB_data_p != NULL);
|
||||
|
||||
/* get the eNB instance */
|
||||
instance_p = x2ap_eNB_data_p->x2ap_eNB_instance;
|
||||
|
||||
DevAssert(instance_p != NULL);
|
||||
|
||||
/* Prepare the X2AP message to encode */
|
||||
memset(&pdu, 0, sizeof(pdu));
|
||||
pdu.present = X2AP_X2AP_PDU_PR_successfulOutcome;
|
||||
pdu.choice.successfulOutcome.procedureCode = X2AP_ProcedureCode_id_x2Setup;
|
||||
pdu.choice.successfulOutcome.criticality = X2AP_Criticality_reject;
|
||||
pdu.choice.successfulOutcome.value.present = X2AP_SuccessfulOutcome__value_PR_X2SetupResponse;
|
||||
out = &pdu.choice.successfulOutcome.value.choice.X2SetupResponse;
|
||||
|
||||
/* mandatory */
|
||||
ie = (X2AP_X2SetupResponse_IEs_t *)calloc(1, sizeof(X2AP_X2SetupResponse_IEs_t));
|
||||
ie->id = X2AP_ProtocolIE_ID_id_GlobalENB_ID;
|
||||
ie->criticality = X2AP_Criticality_reject;
|
||||
ie->value.present = X2AP_X2SetupResponse_IEs__value_PR_GlobalENB_ID;
|
||||
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
|
||||
&ie->value.choice.GlobalENB_ID.pLMN_Identity);
|
||||
ie->value.choice.GlobalENB_ID.eNB_ID.present = X2AP_ENB_ID_PR_macro_eNB_ID;
|
||||
MACRO_ENB_ID_TO_BIT_STRING(instance_p->eNB_id,
|
||||
&ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID);
|
||||
X2AP_INFO("%d -> %02x%02x%02x\n", instance_p->eNB_id,
|
||||
ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[0],
|
||||
ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[1],
|
||||
ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf[2]);
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
/* mandatory */
|
||||
ie = (X2AP_X2SetupResponse_IEs_t *)calloc(1, sizeof(X2AP_X2SetupResponse_IEs_t));
|
||||
ie->id = X2AP_ProtocolIE_ID_id_ServedCells;
|
||||
ie->criticality = X2AP_Criticality_reject;
|
||||
ie->value.present = X2AP_X2SetupResponse_IEs__value_PR_ServedCells;
|
||||
{
|
||||
for (int i = 0; i<instance_p->num_cc; i++){
|
||||
servedCellMember = (ServedCells__Member *)calloc(1,sizeof(ServedCells__Member));
|
||||
{
|
||||
servedCellMember->servedCellInfo.pCI = instance_p->Nid_cell[i];
|
||||
|
||||
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
|
||||
&servedCellMember->servedCellInfo.cellId.pLMN_Identity);
|
||||
MACRO_ENB_ID_TO_CELL_IDENTITY(instance_p->eNB_id,0,
|
||||
&servedCellMember->servedCellInfo.cellId.eUTRANcellIdentifier);
|
||||
|
||||
INT16_TO_OCTET_STRING(instance_p->tac, &servedCellMember->servedCellInfo.tAC);
|
||||
plmn = (X2AP_PLMN_Identity_t *)calloc(1,sizeof(X2AP_PLMN_Identity_t));
|
||||
{
|
||||
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
|
||||
ASN_SEQUENCE_ADD(&servedCellMember->servedCellInfo.broadcastPLMNs.list, plmn);
|
||||
}
|
||||
|
||||
if (instance_p->frame_type[i] == FDD) {
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.present = X2AP_EUTRA_Mode_Info_PR_fDD;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_EARFCN = instance_p->fdd_earfcn_DL[i];
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_EARFCN = instance_p->fdd_earfcn_UL[i];
|
||||
switch (instance_p->N_RB_DL[i]) {
|
||||
case 6:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw6;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw6;
|
||||
break;
|
||||
case 15:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw15;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw15;
|
||||
break;
|
||||
case 25:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw25;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw25;
|
||||
break;
|
||||
case 50:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw50;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw50;
|
||||
break;
|
||||
case 75:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw75;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw75;
|
||||
break;
|
||||
case 100:
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.uL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw100;
|
||||
servedCellMember->servedCellInfo.eUTRA_Mode_Info.choice.fDD.dL_Transmission_Bandwidth = X2AP_Transmission_Bandwidth_bw100;
|
||||
break;
|
||||
default:
|
||||
AssertFatal(0,"Failed: Check value for N_RB_DL/N_RB_UL");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
AssertFatal(0,"X2Setupresponse not supported for TDD!");
|
||||
}
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.ServedCells.list, servedCellMember);
|
||||
}
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
/* mandatory */
|
||||
ie = (X2AP_X2SetupResponse_IEs_t *)calloc(1, sizeof(X2AP_X2SetupResponse_IEs_t));
|
||||
ie->id = X2AP_ProtocolIE_ID_id_GUGroupIDList;
|
||||
ie->criticality = X2AP_Criticality_reject;
|
||||
ie->value.present = X2AP_X2SetupResponse_IEs__value_PR_GUGroupIDList;
|
||||
{
|
||||
gu = (X2AP_GU_Group_ID_t *)calloc(1, sizeof(X2AP_GU_Group_ID_t));
|
||||
{
|
||||
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
|
||||
&gu->pLMN_Identity);
|
||||
//@TODO: consider to update this value
|
||||
INT16_TO_OCTET_STRING(0, &gu->mME_Group_ID);
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&ie->value.choice.GUGroupIDList.list, gu);
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
|
||||
X2AP_ERROR("Failed to encode X2 setup response\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
x2ap_eNB_data_p->state = X2AP_ENB_STATE_READY;
|
||||
|
||||
MSC_LOG_TX_MESSAGE (MSC_X2AP_SRC_ENB, MSC_X2AP_TARGET_ENB, NULL, 0, "0 X2Setup/successfulOutcome assoc_id %u", x2ap_eNB_data_p->assoc_id);
|
||||
|
||||
x2ap_eNB_itti_send_sctp_data_req(instance_p->instance, x2ap_eNB_data_p->assoc_id, buffer, len, 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int x2ap_eNB_generate_x2_setup_failure(instance_t instance,
|
||||
uint32_t assoc_id,
|
||||
X2AP_Cause_PR cause_type,
|
||||
long cause_value,
|
||||
long time_to_wait)
|
||||
{
|
||||
X2AP_X2AP_PDU_t pdu;
|
||||
X2AP_X2SetupFailure_t *out;
|
||||
X2AP_X2SetupFailure_IEs_t *ie;
|
||||
|
||||
uint8_t *buffer;
|
||||
uint32_t len;
|
||||
int ret = 0;
|
||||
|
||||
/* Prepare the X2AP message to encode */
|
||||
memset(&pdu, 0, sizeof(pdu));
|
||||
pdu.present = X2AP_X2AP_PDU_PR_unsuccessfulOutcome;
|
||||
pdu.choice.unsuccessfulOutcome.procedureCode = X2AP_ProcedureCode_id_x2Setup;
|
||||
pdu.choice.unsuccessfulOutcome.criticality = X2AP_Criticality_reject;
|
||||
pdu.choice.unsuccessfulOutcome.value.present = X2AP_UnsuccessfulOutcome__value_PR_X2SetupFailure;
|
||||
out = &pdu.choice.unsuccessfulOutcome.value.choice.X2SetupFailure;
|
||||
|
||||
/* mandatory */
|
||||
ie = (X2AP_X2SetupFailure_IEs_t *)calloc(1, sizeof(X2AP_X2SetupFailure_IEs_t));
|
||||
ie->id = X2AP_ProtocolIE_ID_id_Cause;
|
||||
ie->criticality = X2AP_Criticality_ignore;
|
||||
ie->value.present = X2AP_X2SetupFailure_IEs__value_PR_Cause;
|
||||
|
||||
x2ap_eNB_set_cause (&ie->value.choice.Cause, cause_type, cause_value);
|
||||
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
/* optional: consider to handle this later */
|
||||
ie = (X2AP_X2SetupFailure_IEs_t *)calloc(1, sizeof(X2AP_X2SetupFailure_IEs_t));
|
||||
ie->id = X2AP_ProtocolIE_ID_id_TimeToWait;
|
||||
ie->criticality = X2AP_Criticality_ignore;
|
||||
ie->value.present = X2AP_X2SetupFailure_IEs__value_PR_TimeToWait;
|
||||
|
||||
if (time_to_wait > -1) {
|
||||
ie->value.choice.TimeToWait = time_to_wait;
|
||||
}
|
||||
|
||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||
|
||||
if (x2ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
|
||||
X2AP_ERROR("Failed to encode X2 setup failure\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
MSC_LOG_TX_MESSAGE (MSC_X2AP_SRC_ENB,
|
||||
MSC_X2AP_TARGET_ENB, NULL, 0,
|
||||
"0 X2Setup/unsuccessfulOutcome assoc_id %u cause %u value %u",
|
||||
assoc_id, cause_type, cause_value);
|
||||
|
||||
x2ap_eNB_itti_send_sctp_data_req(instance, assoc_id, buffer, len, 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int x2ap_eNB_set_cause (X2AP_Cause_t * cause_p,
|
||||
X2AP_Cause_PR cause_type,
|
||||
long cause_value)
|
||||
{
|
||||
|
||||
DevAssert (cause_p != NULL);
|
||||
cause_p->present = cause_type;
|
||||
|
||||
switch (cause_type) {
|
||||
case X2AP_Cause_PR_radioNetwork:
|
||||
cause_p->choice.misc = cause_value;
|
||||
break;
|
||||
|
||||
case X2AP_Cause_PR_transport:
|
||||
cause_p->choice.misc = cause_value;
|
||||
break;
|
||||
|
||||
case X2AP_Cause_PR_protocol:
|
||||
cause_p->choice.misc = cause_value;
|
||||
break;
|
||||
|
||||
case X2AP_Cause_PR_misc:
|
||||
cause_p->choice.misc = cause_value;
|
||||
break;
|
||||
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#ifndef X2AP_ENB_GENERATE_MESSAGES_H_
|
||||
#define X2AP_ENB_GENERATE_MESSAGES_H_
|
||||
|
||||
#include "x2ap_eNB_defs.h"
|
||||
#include "x2ap_common.h"
|
||||
|
||||
int x2ap_eNB_generate_x2_setup_request(x2ap_eNB_instance_t *instance_p,
|
||||
x2ap_eNB_data_t *x2ap_enb_data_p);
|
||||
|
||||
int x2ap_eNB_generate_x2_setup_response(x2ap_eNB_data_t *x2ap_enb_data_p);
|
||||
|
||||
int x2ap_eNB_generate_x2_setup_failure(instance_t instance,
|
||||
uint32_t assoc_id,
|
||||
X2AP_Cause_PR cause_type,
|
||||
long cause_value,
|
||||
long time_to_wait);
|
||||
|
||||
int x2ap_eNB_set_cause (X2AP_Cause_t * cause_p,
|
||||
X2AP_Cause_PR cause_type,
|
||||
long cause_value);
|
||||
|
||||
#endif /* X2AP_ENB_GENERATE_MESSAGES_H_ */
|
||||
|
||||
@@ -0,0 +1,432 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
#include <stdint.h>
|
||||
|
||||
#include "intertask_interface.h"
|
||||
|
||||
#include "asn1_conversions.h"
|
||||
|
||||
#include "x2ap_common.h"
|
||||
#include "x2ap_eNB_defs.h"
|
||||
#include "x2ap_eNB_handler.h"
|
||||
#include "x2ap_eNB_decoder.h"
|
||||
|
||||
#include "x2ap_eNB_management_procedures.h"
|
||||
#include "x2ap_eNB_generate_messages.h"
|
||||
|
||||
#include "msc.h"
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
static
|
||||
int x2ap_eNB_handle_x2_setup_request (instance_t instance,
|
||||
uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
X2AP_X2AP_PDU_t *pdu);
|
||||
static
|
||||
int x2ap_eNB_handle_x2_setup_response (instance_t instance,
|
||||
uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
X2AP_X2AP_PDU_t *pdu);
|
||||
static
|
||||
int x2ap_eNB_handle_x2_setup_failure (instance_t instance,
|
||||
uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
X2AP_X2AP_PDU_t *pdu);
|
||||
|
||||
/* Handlers matrix. Only eNB related procedure present here */
|
||||
x2ap_message_decoded_callback x2ap_messages_callback[][3] = {
|
||||
{ 0, 0, 0 }, /* handoverPreparation */
|
||||
{ 0, 0, 0 }, /* handoverCancel */
|
||||
{ 0, 0, 0 }, /* loadIndication */
|
||||
{ 0, 0, 0 }, /* errorIndication */
|
||||
{ 0, 0, 0 }, /* snStatusTransfer */
|
||||
{ 0, 0, 0 }, /* uEContextRelease */
|
||||
{ x2ap_eNB_handle_x2_setup_request, x2ap_eNB_handle_x2_setup_response, x2ap_eNB_handle_x2_setup_failure }, /* x2Setup */
|
||||
{ 0, 0, 0 }, /* reset */
|
||||
{ 0, 0, 0 }, /* eNBConfigurationUpdate */
|
||||
{ 0, 0, 0 }, /* resourceStatusReportingInitiation */
|
||||
{ 0, 0, 0 }, /* resourceStatusReporting */
|
||||
{ 0, 0, 0 }, /* privateMessage */
|
||||
{ 0, 0, 0 }, /* mobilitySettingsChange */
|
||||
{ 0, 0, 0 }, /* rLFIndication */
|
||||
{ 0, 0, 0 }, /* handoverReport */
|
||||
{ 0, 0, 0 }, /* cellActivation */
|
||||
{ 0, 0, 0 }, /* x2Release */
|
||||
{ 0, 0, 0 }, /* x2APMessageTransfer */
|
||||
{ 0, 0, 0 }, /* x2Removal */
|
||||
{ 0, 0, 0 }, /* seNBAdditionPreparation */
|
||||
{ 0, 0, 0 }, /* seNBReconfigurationCompletion */
|
||||
{ 0, 0, 0 }, /* meNBinitiatedSeNBModificationPreparation */
|
||||
{ 0, 0, 0 }, /* seNBinitiatedSeNBModification */
|
||||
{ 0, 0, 0 }, /* meNBinitiatedSeNBRelease */
|
||||
{ 0, 0, 0 }, /* seNBinitiatedSeNBRelease */
|
||||
{ 0, 0, 0 }, /* seNBCounterCheck */
|
||||
{ 0, 0, 0 } /* retrieveUEContext */
|
||||
};
|
||||
|
||||
char *x2ap_direction2String(int x2ap_dir) {
|
||||
static char *x2ap_direction_String[] = {
|
||||
"", /* Nothing */
|
||||
"Originating message", /* originating message */
|
||||
"Successfull outcome", /* successfull outcome */
|
||||
"UnSuccessfull outcome", /* successfull outcome */
|
||||
};
|
||||
return(x2ap_direction_String[x2ap_dir]);
|
||||
}
|
||||
|
||||
void x2ap_handle_x2_setup_message(x2ap_eNB_data_t *enb_desc_p, int sctp_shutdown)
|
||||
{
|
||||
if (sctp_shutdown) {
|
||||
/* A previously connected eNB has been shutdown */
|
||||
|
||||
/* TODO check if it was used by some eNB and send a message to inform these eNB if there is no more associated eNB */
|
||||
if (enb_desc_p->state == X2AP_ENB_STATE_CONNECTED) {
|
||||
enb_desc_p->state = X2AP_ENB_STATE_DISCONNECTED;
|
||||
|
||||
if (enb_desc_p->x2ap_eNB_instance-> x2_target_enb_associated_nb > 0) {
|
||||
/* Decrease associated eNB number */
|
||||
enb_desc_p->x2ap_eNB_instance-> x2_target_enb_associated_nb --;
|
||||
}
|
||||
|
||||
/* If there are no more associated eNB, inform eNB app */
|
||||
if (enb_desc_p->x2ap_eNB_instance->x2_target_enb_associated_nb == 0) {
|
||||
MessageDef *message_p;
|
||||
|
||||
message_p = itti_alloc_new_message(TASK_X2AP, X2AP_DEREGISTERED_ENB_IND);
|
||||
X2AP_DEREGISTERED_ENB_IND(message_p).nb_x2 = 0;
|
||||
itti_send_msg_to_task(TASK_ENB_APP, enb_desc_p->x2ap_eNB_instance->instance, message_p);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Check that at least one setup message is pending */
|
||||
DevCheck(enb_desc_p->x2ap_eNB_instance->x2_target_enb_pending_nb > 0,
|
||||
enb_desc_p->x2ap_eNB_instance->instance,
|
||||
enb_desc_p->x2ap_eNB_instance->x2_target_enb_pending_nb, 0);
|
||||
|
||||
if (enb_desc_p->x2ap_eNB_instance->x2_target_enb_pending_nb > 0) {
|
||||
/* Decrease pending messages number */
|
||||
enb_desc_p->x2ap_eNB_instance->x2_target_enb_pending_nb --;
|
||||
}
|
||||
|
||||
/* If there are no more pending messages, inform eNB app */
|
||||
if (enb_desc_p->x2ap_eNB_instance->x2_target_enb_pending_nb == 0) {
|
||||
MessageDef *message_p;
|
||||
|
||||
message_p = itti_alloc_new_message(TASK_X2AP, X2AP_REGISTER_ENB_CNF);
|
||||
X2AP_REGISTER_ENB_CNF(message_p).nb_x2 = enb_desc_p->x2ap_eNB_instance->x2_target_enb_associated_nb;
|
||||
itti_send_msg_to_task(TASK_ENB_APP, enb_desc_p->x2ap_eNB_instance->instance, message_p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int x2ap_eNB_handle_message(instance_t instance, uint32_t assoc_id, int32_t stream,
|
||||
const uint8_t *const data, const uint32_t data_length)
|
||||
{
|
||||
X2AP_X2AP_PDU_t pdu;
|
||||
int ret;
|
||||
|
||||
DevAssert(data != NULL);
|
||||
|
||||
memset(&pdu, 0, sizeof(pdu));
|
||||
|
||||
if (x2ap_eNB_decode_pdu(&pdu, data, data_length) < 0) {
|
||||
X2AP_ERROR("Failed to decode PDU\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Checking procedure Code and direction of message */
|
||||
if (pdu.choice.initiatingMessage.procedureCode > sizeof(x2ap_messages_callback) / (3 * sizeof(
|
||||
x2ap_message_decoded_callback))
|
||||
|| (pdu.present > X2AP_X2AP_PDU_PR_unsuccessfulOutcome)) {
|
||||
X2AP_ERROR("[SCTP %d] Either procedureCode %ld or direction %d exceed expected\n",
|
||||
assoc_id, pdu.choice.initiatingMessage.procedureCode, pdu.present);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_X2AP_PDU, &pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* No handler present.
|
||||
* This can mean not implemented or no procedure for eNB (wrong direction).
|
||||
*/
|
||||
if (x2ap_messages_callback[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1] == NULL) {
|
||||
X2AP_ERROR("[SCTP %d] No handler for procedureCode %ld in %s\n",
|
||||
assoc_id, pdu.choice.initiatingMessage.procedureCode,
|
||||
x2ap_direction2String(pdu.present - 1));
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_X2AP_PDU, &pdu);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Calling the right handler */
|
||||
ret = (*x2ap_messages_callback[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1])
|
||||
(instance, assoc_id, stream, &pdu);
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_X2AP_X2AP_PDU, &pdu);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
x2ap_eNB_handle_x2_setup_request(instance_t instance,
|
||||
uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
X2AP_X2AP_PDU_t *pdu)
|
||||
{
|
||||
|
||||
X2AP_X2SetupRequest_t *x2SetupRequest;
|
||||
X2AP_X2SetupRequest_IEs_t *ie;
|
||||
|
||||
x2ap_eNB_data_t *x2ap_eNB_data;
|
||||
uint32_t eNB_id = 0;
|
||||
|
||||
DevAssert (pdu != NULL);
|
||||
x2SetupRequest = &pdu->choice.initiatingMessage.value.choice.X2SetupRequest;
|
||||
|
||||
/*
|
||||
* We received a new valid X2 Setup Request on a stream != 0.
|
||||
* * * * This should not happen -> reject eNB x2 setup request.
|
||||
*/
|
||||
|
||||
if (stream != 0) {
|
||||
X2AP_ERROR("Received new x2 setup request on stream != 0\n");
|
||||
/*
|
||||
* Send a x2 setup failure with protocol cause unspecified
|
||||
*/
|
||||
return x2ap_eNB_generate_x2_setup_failure (instance,
|
||||
assoc_id,
|
||||
X2AP_Cause_PR_protocol,
|
||||
X2AP_CauseProtocol_unspecified,
|
||||
-1);
|
||||
}
|
||||
|
||||
X2AP_DEBUG("Received a new X2 setup request\n");
|
||||
|
||||
X2AP_FIND_PROTOCOLIE_BY_ID(X2AP_X2SetupRequest_IEs_t, ie, x2SetupRequest,
|
||||
X2AP_ProtocolIE_ID_id_GlobalENB_ID, true);
|
||||
|
||||
if (ie->value.choice.GlobalENB_ID.eNB_ID.present == X2AP_ENB_ID_PR_home_eNB_ID) {
|
||||
// Home eNB ID = 28 bits
|
||||
uint8_t *eNB_id_buf = ie->value.choice.GlobalENB_ID.eNB_ID.choice.home_eNB_ID.buf;
|
||||
|
||||
if (ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.size != 28) {
|
||||
//TODO: handle case were size != 28 -> notify ? reject ?
|
||||
}
|
||||
|
||||
eNB_id = (eNB_id_buf[0] << 20) + (eNB_id_buf[1] << 12) + (eNB_id_buf[2] << 4) + ((eNB_id_buf[3] & 0xf0) >> 4);
|
||||
X2AP_DEBUG("Home eNB id: %07x\n", eNB_id);
|
||||
} else {
|
||||
// Macro eNB = 20 bits
|
||||
uint8_t *eNB_id_buf = ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf;
|
||||
|
||||
if (ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.size != 20) {
|
||||
//TODO: handle case were size != 20 -> notify ? reject ?
|
||||
}
|
||||
|
||||
eNB_id = (eNB_id_buf[0] << 12) + (eNB_id_buf[1] << 4) + ((eNB_id_buf[2] & 0xf0) >> 4);
|
||||
X2AP_DEBUG("macro eNB id: %05x\n", eNB_id);
|
||||
}
|
||||
|
||||
X2AP_DEBUG("Adding eNB to the list of associated eNBs\n");
|
||||
|
||||
if ((x2ap_eNB_data = x2ap_is_eNB_id_in_list (eNB_id)) == NULL) {
|
||||
/*
|
||||
* eNB has not been found in list of associated eNB,
|
||||
* * * * Add it to the tail of list and initialize data
|
||||
*/
|
||||
if ((x2ap_eNB_data = x2ap_is_eNB_assoc_id_in_list (assoc_id)) == NULL) {
|
||||
/*
|
||||
* ??
|
||||
*/
|
||||
return -1;
|
||||
} else {
|
||||
x2ap_eNB_data->state = X2AP_ENB_STATE_RESETTING;
|
||||
x2ap_eNB_data->eNB_id = eNB_id;
|
||||
}
|
||||
} else {
|
||||
x2ap_eNB_data->state = X2AP_ENB_STATE_RESETTING;
|
||||
/*
|
||||
* eNB has been found in list, consider the x2 setup request as a reset connection,
|
||||
* * * * reseting any previous UE state if sctp association is != than the previous one
|
||||
*/
|
||||
if (x2ap_eNB_data->assoc_id != assoc_id) {
|
||||
/*
|
||||
* ??: Send an overload cause...
|
||||
*/
|
||||
X2AP_ERROR("Rejecting x2 setup request as eNB id %d is already associated to an active sctp association" "Previous known: %d, new one: %d\n", eNB_id, x2ap_eNB_data->assoc_id, assoc_id);
|
||||
|
||||
DevAssert(x2ap_eNB_data->x2ap_eNB_instance != NULL);
|
||||
x2ap_eNB_generate_x2_setup_failure (x2ap_eNB_data->x2ap_eNB_instance->instance,
|
||||
assoc_id,
|
||||
X2AP_Cause_PR_protocol,
|
||||
X2AP_CauseProtocol_unspecified,
|
||||
-1);
|
||||
return -1;
|
||||
}
|
||||
/*
|
||||
* TODO: call the reset procedure
|
||||
*/
|
||||
}
|
||||
|
||||
return x2ap_eNB_generate_x2_setup_response(x2ap_eNB_data);
|
||||
}
|
||||
|
||||
static
|
||||
int x2ap_eNB_handle_x2_setup_response(instance_t instance,
|
||||
uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
X2AP_X2AP_PDU_t *pdu)
|
||||
{
|
||||
|
||||
X2AP_X2SetupResponse_t *x2SetupResponse;
|
||||
X2AP_X2SetupResponse_IEs_t *ie;
|
||||
|
||||
x2ap_eNB_data_t *x2ap_eNB_data;
|
||||
uint32_t eNB_id = 0;
|
||||
|
||||
DevAssert (pdu != NULL);
|
||||
x2SetupResponse = &pdu->choice.successfulOutcome.value.choice.X2SetupResponse;
|
||||
|
||||
/*
|
||||
* We received a new valid X2 Setup Response on a stream != 0.
|
||||
* * * * This should not happen -> reject eNB x2 setup response.
|
||||
*/
|
||||
|
||||
if (stream != 0) {
|
||||
X2AP_ERROR("Received new x2 setup response on stream != 0\n");
|
||||
}
|
||||
|
||||
if ((x2ap_eNB_data = x2ap_get_eNB(NULL, assoc_id, 0)) == NULL) {
|
||||
X2AP_ERROR("[SCTP %d] Received X2 setup response for non existing "
|
||||
"eNB context\n", assoc_id);
|
||||
return -1;
|
||||
}
|
||||
|
||||
X2AP_DEBUG("Received a new X2 setup response\n");
|
||||
|
||||
X2AP_FIND_PROTOCOLIE_BY_ID(X2AP_X2SetupResponse_IEs_t, ie, x2SetupResponse,
|
||||
X2AP_ProtocolIE_ID_id_GlobalENB_ID, true);
|
||||
|
||||
if (ie->value.choice.GlobalENB_ID.eNB_ID.present == X2AP_ENB_ID_PR_home_eNB_ID) {
|
||||
// Home eNB ID = 28 bits
|
||||
uint8_t *eNB_id_buf = ie->value.choice.GlobalENB_ID.eNB_ID.choice.home_eNB_ID.buf;
|
||||
|
||||
if (ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.size != 28) {
|
||||
//TODO: handle case were size != 28 -> notify ? reject ?
|
||||
}
|
||||
|
||||
eNB_id = (eNB_id_buf[0] << 20) + (eNB_id_buf[1] << 12) + (eNB_id_buf[2] << 4) + ((eNB_id_buf[3] & 0xf0) >> 4);
|
||||
X2AP_DEBUG("Home eNB id: %07x\n", eNB_id);
|
||||
} else {
|
||||
// Macro eNB = 20 bits
|
||||
uint8_t *eNB_id_buf = ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.buf;
|
||||
|
||||
if (ie->value.choice.GlobalENB_ID.eNB_ID.choice.macro_eNB_ID.size != 20) {
|
||||
//TODO: handle case were size != 20 -> notify ? reject ?
|
||||
}
|
||||
|
||||
eNB_id = (eNB_id_buf[0] << 12) + (eNB_id_buf[1] << 4) + ((eNB_id_buf[2] & 0xf0) >> 4);
|
||||
X2AP_DEBUG("macro eNB id: %05x\n", eNB_id);
|
||||
}
|
||||
|
||||
X2AP_DEBUG("Adding eNB to the list of associated eNBs\n");
|
||||
|
||||
if ((x2ap_eNB_data = x2ap_is_eNB_id_in_list (eNB_id)) == NULL) {
|
||||
/*
|
||||
* eNB has not been found in list of associated eNB,
|
||||
* * * * Add it to the tail of list and initialize data
|
||||
*/
|
||||
if ((x2ap_eNB_data = x2ap_is_eNB_assoc_id_in_list (assoc_id)) == NULL) {
|
||||
/*
|
||||
* ??: Send an overload cause...
|
||||
*/
|
||||
return -1;
|
||||
} else {
|
||||
x2ap_eNB_data->state = X2AP_ENB_STATE_RESETTING;
|
||||
x2ap_eNB_data->eNB_id = eNB_id;
|
||||
}
|
||||
} else {
|
||||
x2ap_eNB_data->state = X2AP_ENB_STATE_RESETTING;
|
||||
/*
|
||||
* TODO: call the reset procedure
|
||||
*/
|
||||
}
|
||||
|
||||
/* Optionaly set the target eNB name */
|
||||
|
||||
/* The association is now ready as source and target eNBs know parameters of each other.
|
||||
* Mark the association as connected.
|
||||
*/
|
||||
x2ap_eNB_data->state = X2AP_ENB_STATE_READY;
|
||||
x2ap_eNB_data->x2ap_eNB_instance->x2_target_enb_associated_nb ++;
|
||||
x2ap_handle_x2_setup_message(x2ap_eNB_data, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static
|
||||
int x2ap_eNB_handle_x2_setup_failure(instance_t instance,
|
||||
uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
X2AP_X2AP_PDU_t *pdu)
|
||||
{
|
||||
|
||||
X2AP_X2SetupFailure_t *x2SetupFailure;
|
||||
X2AP_X2SetupFailure_IEs_t *ie;
|
||||
|
||||
x2ap_eNB_data_t *x2ap_eNB_data;
|
||||
|
||||
DevAssert(pdu != NULL);
|
||||
|
||||
x2SetupFailure = &pdu->choice.unsuccessfulOutcome.value.choice.X2SetupFailure;
|
||||
|
||||
/*
|
||||
* We received a new valid X2 Setup Failure on a stream != 0.
|
||||
* * * * This should not happen -> reject eNB x2 setup failure.
|
||||
*/
|
||||
|
||||
if (stream != 0) {
|
||||
X2AP_WARN("[SCTP %d] Received x2 setup failure on stream != 0 (%d)\n",
|
||||
assoc_id, stream);
|
||||
}
|
||||
|
||||
if ((x2ap_eNB_data = x2ap_get_eNB (NULL, assoc_id, 0)) == NULL) {
|
||||
X2AP_ERROR("[SCTP %d] Received X2 setup failure for non existing "
|
||||
"eNB context\n", assoc_id);
|
||||
return -1;
|
||||
}
|
||||
|
||||
X2AP_DEBUG("Received a new X2 setup failure\n");
|
||||
|
||||
X2AP_FIND_PROTOCOLIE_BY_ID(X2AP_X2SetupFailure_IEs_t, ie, x2SetupFailure,
|
||||
X2AP_ProtocolIE_ID_id_Cause, true);
|
||||
|
||||
|
||||
// need a FSM to handle all cases
|
||||
if ((ie->value.choice.Cause.present == X2AP_Cause_PR_misc) &&
|
||||
(ie->value.choice.Cause.choice.misc == X2AP_CauseMisc_unspecified)) {
|
||||
X2AP_WARN("Received X2 setup failure for eNB ... eNB is not ready\n");
|
||||
} else {
|
||||
X2AP_ERROR("Received x2 setup failure for eNB... please check your parameters\n");
|
||||
}
|
||||
|
||||
x2ap_eNB_data->state = X2AP_ENB_STATE_WAITING;
|
||||
x2ap_handle_x2_setup_message(x2ap_eNB_data, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#ifndef X2AP_ENB_HANDLERS_H_
|
||||
#define X2AP_ENB_HANDLERS_H_
|
||||
|
||||
#include "x2ap_eNB_defs.h"
|
||||
|
||||
void x2ap_handle_x2_setup_message(x2ap_eNB_data_t *eNB_desc_p, int sctp_shutdown);
|
||||
|
||||
int x2ap_eNB_handle_message(instance_t instance, uint32_t assoc_id, int32_t stream,
|
||||
const uint8_t * const data, const uint32_t data_length);
|
||||
|
||||
#endif /* X2AP_ENB_HANDLERS_H_ */
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#include "intertask_interface.h"
|
||||
|
||||
#include "x2ap_eNB_itti_messaging.h"
|
||||
|
||||
void x2ap_eNB_itti_send_sctp_data_req(instance_t instance, int32_t assoc_id, uint8_t *buffer,
|
||||
uint32_t buffer_length, uint16_t stream)
|
||||
{
|
||||
MessageDef *message_p;
|
||||
sctp_data_req_t *sctp_data_req;
|
||||
|
||||
message_p = itti_alloc_new_message(TASK_X2AP, SCTP_DATA_REQ);
|
||||
|
||||
sctp_data_req = &message_p->ittiMsg.sctp_data_req;
|
||||
|
||||
sctp_data_req->assoc_id = assoc_id;
|
||||
sctp_data_req->buffer = buffer;
|
||||
sctp_data_req->buffer_length = buffer_length;
|
||||
sctp_data_req->stream = stream;
|
||||
|
||||
itti_send_msg_to_task(TASK_SCTP, instance, message_p);
|
||||
}
|
||||
|
||||
|
||||
void x2ap_eNB_itti_send_sctp_close_association(instance_t instance, int32_t assoc_id)
|
||||
{
|
||||
MessageDef *message_p = NULL;
|
||||
sctp_close_association_t *sctp_close_association_p = NULL;
|
||||
|
||||
message_p = itti_alloc_new_message(TASK_X2AP, SCTP_CLOSE_ASSOCIATION);
|
||||
sctp_close_association_p = &message_p->ittiMsg.sctp_close_association;
|
||||
sctp_close_association_p->assoc_id = assoc_id;
|
||||
|
||||
itti_send_msg_to_task(TASK_SCTP, instance, message_p);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#ifndef X2AP_ENB_ITTI_MESSAGING_H_
|
||||
#define X2AP_ENB_ITTI_MESSAGING_H_
|
||||
|
||||
void x2ap_eNB_itti_send_sctp_data_req(instance_t instance, int32_t assoc_id, uint8_t *buffer,
|
||||
uint32_t buffer_length, uint16_t stream);
|
||||
|
||||
|
||||
void x2ap_eNB_itti_send_sctp_close_association(instance_t instance, int32_t assoc_id);
|
||||
|
||||
|
||||
#endif /* X2AP_ENB_ITTI_MESSAGING_H_ */
|
||||
@@ -0,0 +1,236 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "intertask_interface.h"
|
||||
|
||||
#include "assertions.h"
|
||||
#include "conversions.h"
|
||||
|
||||
#include "x2ap_common.h"
|
||||
#include "x2ap_eNB_defs.h"
|
||||
#include "x2ap_eNB.h"
|
||||
|
||||
|
||||
#define X2AP_DEBUG_LIST
|
||||
#ifdef X2AP_DEBUG_LIST
|
||||
# define X2AP_eNB_LIST_OUT(x, args...) X2AP_DEBUG("[eNB]%*s"x"\n", 4*indent, "", ##args)
|
||||
#else
|
||||
# define X2AP_eNB_LIST_OUT(x, args...)
|
||||
#endif
|
||||
|
||||
static int indent = 0;
|
||||
|
||||
|
||||
x2ap_eNB_internal_data_t x2ap_eNB_internal_data;
|
||||
|
||||
RB_GENERATE(x2ap_enb_map, x2ap_eNB_data_s, entry, x2ap_eNB_compare_assoc_id);
|
||||
|
||||
int x2ap_eNB_compare_assoc_id(
|
||||
struct x2ap_eNB_data_s *p1, struct x2ap_eNB_data_s *p2)
|
||||
{
|
||||
if (p1->assoc_id == -1) {
|
||||
if (p1->cnx_id < p2->cnx_id) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (p1->cnx_id > p2->cnx_id) {
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
if (p1->assoc_id < p2->assoc_id) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (p1->assoc_id > p2->assoc_id) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Matching reference */
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint16_t x2ap_eNB_fetch_add_global_cnx_id(void)
|
||||
{
|
||||
return ++x2ap_eNB_internal_data.global_cnx_id;
|
||||
}
|
||||
|
||||
void x2ap_eNB_prepare_internal_data(void)
|
||||
{
|
||||
memset(&x2ap_eNB_internal_data, 0, sizeof(x2ap_eNB_internal_data));
|
||||
STAILQ_INIT(&x2ap_eNB_internal_data.x2ap_eNB_instances_head);
|
||||
}
|
||||
|
||||
void x2ap_eNB_insert_new_instance(x2ap_eNB_instance_t *new_instance_p)
|
||||
{
|
||||
DevAssert(new_instance_p != NULL);
|
||||
|
||||
STAILQ_INSERT_TAIL(&x2ap_eNB_internal_data.x2ap_eNB_instances_head,
|
||||
new_instance_p, x2ap_eNB_entries);
|
||||
}
|
||||
|
||||
void dump_tree(x2ap_eNB_data_t *t)
|
||||
{
|
||||
if (t == NULL) return;
|
||||
printf("-----------------------\n");
|
||||
printf("eNB id %d %s\n", t->eNB_id, t->eNB_name);
|
||||
printf("state %d\n", t->state);
|
||||
printf("nextstream %d\n", t->nextstream);
|
||||
printf("in_streams %d out_streams %d\n", t->in_streams, t->out_streams);
|
||||
printf("cnx_id %d assoc_id %d\n", t->cnx_id, t->assoc_id);
|
||||
dump_tree(t->entry.rbe_left);
|
||||
dump_tree(t->entry.rbe_right);
|
||||
}
|
||||
|
||||
void dump_trees(void)
|
||||
{
|
||||
x2ap_eNB_instance_t *zz;
|
||||
STAILQ_FOREACH(zz, &x2ap_eNB_internal_data.x2ap_eNB_instances_head,
|
||||
x2ap_eNB_entries) {
|
||||
printf("here comes the tree (instance %d):\n---------------------------------------------\n", zz->instance);
|
||||
dump_tree(zz->x2ap_enb_head.rbh_root);
|
||||
printf("---------------------------------------------\n");
|
||||
}
|
||||
}
|
||||
|
||||
struct x2ap_eNB_data_s *x2ap_get_eNB(x2ap_eNB_instance_t *instance_p,
|
||||
int32_t assoc_id,
|
||||
uint16_t cnx_id)
|
||||
{
|
||||
struct x2ap_eNB_data_s temp;
|
||||
struct x2ap_eNB_data_s *found;
|
||||
|
||||
printf("x2ap_get_eNB at 1 (looking for assoc_id %d cnx_id %d)\n", assoc_id, cnx_id);
|
||||
dump_trees();
|
||||
|
||||
memset(&temp, 0, sizeof(struct x2ap_eNB_data_s));
|
||||
|
||||
temp.assoc_id = assoc_id;
|
||||
temp.cnx_id = cnx_id;
|
||||
|
||||
if (instance_p == NULL) {
|
||||
STAILQ_FOREACH(instance_p, &x2ap_eNB_internal_data.x2ap_eNB_instances_head,
|
||||
x2ap_eNB_entries) {
|
||||
found = RB_FIND(x2ap_enb_map, &instance_p->x2ap_enb_head, &temp);
|
||||
|
||||
if (found != NULL) {
|
||||
return found;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return RB_FIND(x2ap_enb_map, &instance_p->x2ap_enb_head, &temp);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
x2ap_eNB_instance_t *x2ap_eNB_get_instance(instance_t instance)
|
||||
{
|
||||
x2ap_eNB_instance_t *temp = NULL;
|
||||
|
||||
STAILQ_FOREACH(temp, &x2ap_eNB_internal_data.x2ap_eNB_instances_head,
|
||||
x2ap_eNB_entries) {
|
||||
if (temp->instance == instance) {
|
||||
/* Matching occurence */
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/// utility functions
|
||||
|
||||
void x2ap_dump_eNB (x2ap_eNB_data_t * eNB_ref);
|
||||
|
||||
void
|
||||
x2ap_dump_eNB_list (void) {
|
||||
x2ap_eNB_instance_t *inst = NULL;
|
||||
struct x2ap_eNB_data_s *found = NULL;
|
||||
struct x2ap_eNB_data_s temp;
|
||||
|
||||
memset(&temp, 0, sizeof(struct x2ap_eNB_data_s));
|
||||
|
||||
STAILQ_FOREACH (inst, &x2ap_eNB_internal_data.x2ap_eNB_instances_head, x2ap_eNB_entries) {
|
||||
found = RB_FIND(x2ap_enb_map, &inst->x2ap_enb_head, &temp);
|
||||
x2ap_dump_eNB (found);
|
||||
}
|
||||
}
|
||||
|
||||
void x2ap_dump_eNB (x2ap_eNB_data_t * eNB_ref) {
|
||||
|
||||
if (eNB_ref == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
X2AP_eNB_LIST_OUT ("");
|
||||
X2AP_eNB_LIST_OUT ("eNB name: %s", eNB_ref->eNB_name == NULL ? "not present" : eNB_ref->eNB_name);
|
||||
X2AP_eNB_LIST_OUT ("eNB STATE: %07x", eNB_ref->state);
|
||||
X2AP_eNB_LIST_OUT ("eNB ID: %07x", eNB_ref->eNB_id);
|
||||
indent++;
|
||||
X2AP_eNB_LIST_OUT ("SCTP cnx id: %d", eNB_ref->cnx_id);
|
||||
X2AP_eNB_LIST_OUT ("SCTP assoc id: %d", eNB_ref->assoc_id);
|
||||
X2AP_eNB_LIST_OUT ("SCTP instreams: %d", eNB_ref->in_streams);
|
||||
X2AP_eNB_LIST_OUT ("SCTP outstreams: %d", eNB_ref->out_streams);
|
||||
indent--;
|
||||
}
|
||||
|
||||
|
||||
x2ap_eNB_data_t * x2ap_is_eNB_id_in_list (const uint32_t eNB_id)
|
||||
{
|
||||
x2ap_eNB_instance_t *inst;
|
||||
struct x2ap_eNB_data_s *elm;
|
||||
|
||||
STAILQ_FOREACH(inst, &x2ap_eNB_internal_data.x2ap_eNB_instances_head, x2ap_eNB_entries) {
|
||||
RB_FOREACH(elm, x2ap_enb_map, &inst->x2ap_enb_head) {
|
||||
if (elm->eNB_id == eNB_id)
|
||||
return elm;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
x2ap_eNB_data_t * x2ap_is_eNB_assoc_id_in_list (const uint32_t sctp_assoc_id)
|
||||
{
|
||||
x2ap_eNB_instance_t *inst;
|
||||
struct x2ap_eNB_data_s *found;
|
||||
struct x2ap_eNB_data_s temp;
|
||||
|
||||
temp.assoc_id = sctp_assoc_id;
|
||||
temp.cnx_id = -1;
|
||||
|
||||
STAILQ_FOREACH(inst, &x2ap_eNB_internal_data.x2ap_eNB_instances_head, x2ap_eNB_entries) {
|
||||
found = RB_FIND(x2ap_enb_map, &inst->x2ap_enb_head, &temp);
|
||||
if (found != NULL){
|
||||
if (found->assoc_id == sctp_assoc_id) {
|
||||
return found;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.openairinterface.org/?page_id=698
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*-------------------------------------------------------------------------------
|
||||
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#ifndef X2AP_ENB_MANAGEMENT_PROCEDURES_H_
|
||||
#define X2AP_ENB_MANAGEMENT_PROCEDURES_H
|
||||
|
||||
void x2ap_eNB_prepare_internal_data(void);
|
||||
|
||||
void dump_trees(void);
|
||||
|
||||
void x2ap_eNB_insert_new_instance(x2ap_eNB_instance_t *new_instance_p);
|
||||
|
||||
x2ap_eNB_instance_t *x2ap_eNB_get_instance(uint8_t mod_id);
|
||||
|
||||
uint16_t x2ap_eNB_fetch_add_global_cnx_id(void);
|
||||
|
||||
void x2ap_eNB_prepare_internal_data(void);
|
||||
|
||||
x2ap_eNB_data_t* x2ap_is_eNB_id_in_list(uint32_t eNB_id);
|
||||
|
||||
x2ap_eNB_data_t* x2ap_is_eNB_assoc_id_in_list(uint32_t sctp_assoc_id);
|
||||
|
||||
struct x2ap_eNB_data_s *x2ap_get_eNB(x2ap_eNB_instance_t *instance_p,
|
||||
int32_t assoc_id,
|
||||
uint16_t cnx_id);
|
||||
|
||||
#endif /* X2AP_ENB_MANAGEMENT_PROCEDURES_H_ */
|
||||
|
||||
Reference in New Issue
Block a user