Commit 50fd082c authored by gauthier's avatar gauthier

TO BE INTEGRATED

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5430 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent b80d8091
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)
This diff is collapsed.
-- **************************************************************
--
-- 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
\ No newline at end of file
-- **************************************************************
--
-- 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
\ No newline at end of file
-- **************************************************************
--
-- 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
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
-- **************************************************************
--
-- 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}),