merge develop

This commit is contained in:
WEI-TAI CHEN
2018-08-05 06:19:32 -07:00
600 changed files with 261094 additions and 772209 deletions
+1
View File
@@ -32,6 +32,7 @@ MESSAGE_DEF(S1AP_INITIAL_UE_MESSAGE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText
MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_REQ_LOG, MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_req_log)
MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_COMMAND_LOG, MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_command_log)
MESSAGE_DEF(S1AP_UE_CONTEXT_RELEASE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_ue_context_release_log)
MESSAGE_DEF(S1AP_ERROR_INDICATION_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_error_indication_log)
MESSAGE_DEF(S1AP_UE_CAPABILITIES_IND , MESSAGE_PRIORITY_MED, s1ap_ue_cap_ind_t , s1ap_ue_cap_ind)
MESSAGE_DEF(S1AP_ENB_DEREGISTERED_IND , MESSAGE_PRIORITY_MED, s1ap_eNB_deregistered_ind_t , s1ap_eNB_deregistered_ind)
-9
View File
@@ -31,10 +31,6 @@
#include <stdint.h>
#include <inttypes.h>
#if 0
#include "queue.h"
#endif
#ifndef SECURITY_TYPES_H_
#define SECURITY_TYPES_H_
@@ -113,11 +109,6 @@ typedef struct eutran_vector_s {
res_t xres;
uint8_t autn[AUTN_LENGTH_OCTETS];
uint8_t kasme[KASME_LENGTH_OCTETS];
/* one UE can have multiple vectors so use STAILQ lists for easy management */
#if 0
STAILQ_ENTRY(eutran_vector_s) entries;
#endif
} eutran_vector_t;
#define FC_KASME (0x10)
+12 -1
View File
@@ -62,6 +62,13 @@ extern boolean_t pdcp_data_req(
const confirm_t confirmP,
const sdu_size_t sdu_buffer_sizeP,
unsigned char *const sdu_buffer_pP,
const pdcp_transmission_mode_t modeP
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,const uint32_t * const sourceL2Id
,const uint32_t * const destinationL2Id
#endif
);
const pdcp_transmission_mode_t modeP);
*/
extern unsigned char NB_eNB_INST;
@@ -355,7 +362,11 @@ NwGtpv1uRcT gtpv1u_eNB_process_stack_req(
SDU_CONFIRM_NO, // confirm
buffer_len,
buffer,
PDCP_TRANSMISSION_MODE_DATA);
PDCP_TRANSMISSION_MODE_DATA
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,NULL, NULL
#endif
);
if ( result == FALSE ) {
+1 -1
View File
@@ -28,7 +28,7 @@
*/
#include "hashtable.h"
#include "asn1_constants.h"
#include "asn_constant.h"
#ifndef GTPV1U_ENB_DEFS_H_
#define GTPV1U_ENB_DEFS_H_
@@ -290,31 +290,6 @@ int encode_activate_default_eps_bearer_context_request(activate_default_eps_bear
encoded += encode_result;
}
#if 0 /* LW: force Protocol Configuration Options to be included in the ESM message */
{
#define CONFIGURATION_PROTOCOL_PPP 0
#define PROTOCOL_ID_IPCP 0x8021
#define PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS 0x000D
/* Force this item to be present */
activate_default_eps_bearer_context_request->presencemask |= ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
/* Fill this item with data from PFT trace */
activate_default_eps_bearer_context_request->protocolconfigurationoptions.configurationprotol = CONFIGURATION_PROTOCOL_PPP;
activate_default_eps_bearer_context_request->protocolconfigurationoptions.protocolid = PROTOCOL_ID_IPCP;
activate_default_eps_bearer_context_request->protocolconfigurationoptions.lengthofprotocolid = 16; /* Size of PROTOCOL_ID_IPCP */
activate_default_eps_bearer_context_request->protocolconfigurationoptions.protocolidcontents.value = (uint8_t *)
/* PROTOCOL_ID_IPCP data */
"\x03\x00\x00\x10\x81\x06\xC0\xA8\x0C\x64\x83\x06\xC0\xA8\x6A\x0C";
/* Additional parameters PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS data */
//"\x00\x0d\x04\x52\x61\x00\x78"
/* Additional parameters PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS data */
//"\x00\x0d\x04\x52\x61\x01\x78";
//activate_default_eps_bearer_context_request->protocolconfigurationoptions.protocolidcontents.length = 16 + 7 + 7;
activate_default_eps_bearer_context_request->protocolconfigurationoptions.protocolidcontents.length = 16;
}
#endif
if ((activate_default_eps_bearer_context_request->presencemask & ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT)
== ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT) {
if ((encode_result =
@@ -86,10 +86,6 @@ int encode_esm_message_container(EsmMessageContainer *esmmessagecontainer, uint8
encoded += encode_result;
ENCODE_U16(lenPtr, encode_result, encoded);
#if 0
lenPtr[1] = (((encoded - 2 - ((iei > 0) ? 1: 0))) & 0x0000ff00) >> 8;
lenPtr[0] = ((encoded - 2 - ((iei > 0) ? 1: 0))) & 0x000000ff;
#endif
return encoded;
}
-31
View File
@@ -97,37 +97,6 @@ typedef struct imeisv_s{
uint8_t parity:4;
} imeisv_t;
#if 0
typedef struct imeisv_s {
uint8_t length;
union {
struct {
uint8_t tac2:4;
uint8_t tac1:4;
uint8_t tac4:4;
uint8_t tac3:4;
uint8_t tac6:4;
uint8_t tac5:4;
uint8_t tac8:4;
uint8_t tac7:4;
uint8_t snr2:4;
uint8_t snr1:4;
uint8_t snr4:4;
uint8_t snr3:4;
uint8_t snr6:4;
uint8_t snr5:4;
uint8_t svn2:4;
uint8_t svn1:4;
#define EVEN_PARITY 0
#define IMEI_ODD_PARITY 0xf
uint8_t parity:4;
} num;
#define IMEISV_BCD8_SIZE 9
uint8_t value[IMEISV_BCD8_SIZE];
} u;
} imeisv_t;
#endif
typedef ImsiMobileIdentity_t ImeiMobileIdentity_t;
typedef imeisv_t ImeisvMobileIdentity_t;
typedef ImsiMobileIdentity_t TmsiMobileIdentity_t;
-12
View File
@@ -175,16 +175,6 @@ void device_close(void* id)
ssize_t device_read(void* id, char* buffer, size_t len)
{
const device_id_t* devid = (device_id_t*)(id);
#if 0
ssize_t rbytes = read(devid->fd, buffer, len);
if (rbytes < 0) {
return RETURNerror;
}
#endif
//#if 0
ssize_t rbytes = 0;
do {
@@ -198,8 +188,6 @@ ssize_t device_read(void* id, char* buffer, size_t len)
} while ( (buffer[rbytes-1] != '\r') && (buffer[rbytes-1] != '\n')
&& (buffer[rbytes-1] != '\0') );
//#endif
return rbytes;
}
-11
View File
@@ -314,17 +314,6 @@ typedef struct {
*/
#define TAI_LIST_T(SIZE) struct {Byte_t n_tais; tai_t tai[SIZE];}
#if 0
/*
* User notification callback, executed whenever a change of data with
* respect of network information (e.g. network registration and/or
* location change, new PLMN becomes available) is notified by the
* EPS Mobility Management sublayer
*/
typedef int (*emm_indication_callback_t) (Stat_t, tac_t, ci_t, AcT_t,
const char*, size_t);
#endif
typedef enum eps_protocol_discriminator_e {
/* Protocol discriminator identifier for EPS Mobility Management */
EPS_MOBILITY_MANAGEMENT_MESSAGE = 0x7,
-9
View File
@@ -260,15 +260,6 @@ typedef struct {
network_pkf_t* pkf[NET_PACKET_FILTER_MAX];
} network_tft_t;
#if 0
/*
* User notification callback, executed whenever a change of status with
* respect of PDN connection or EPS bearer context is notified by the EPS
* Session Management sublayer
*/
typedef int (*esm_indication_callback_t) (int, network_pdn_state_t);
#endif
/****************************************************************************/
/******************** G L O B A L V A R I A B L E S ********************/
/****************************************************************************/
+2 -8
View File
@@ -338,14 +338,8 @@ _attach_accept(
{
int index = 0;
#if 0
/* T3412 timer value */
index += snprintf(buffer + index, length - index, "T3412 = ");
index += gprsTimer(buffer + index, length - index, &msg->t3412value);
/* TAI list */
index += snprintf(buffer + index, length - index, ", ");
index += taiList(buffer + index, length - index, &msg->tailist);
#endif
/* T3412 timer value (TBD) */
/* TAI list (TBD) */
/* GUTI */
if (msg->presencemask & ATTACH_ACCEPT_GUTI_PRESENT) {
-17
View File
@@ -225,23 +225,6 @@ int main (int argc, const char* argv[])
break;
}
#if 0
/* Send the AT command one byte at a time (serial port simulation) */
const char* pbuffer = _user_simulator_send_buffer;
while (*pbuffer) {
int sbytes = USER_SEND(pbuffer++, 1);
if (sbytes == RETURNerror) {
perror("ERROR\t: Failed to send data to the NAS sublayer");
break;
}
(void)poll(0, 0, 10);
}
#endif
(void)poll(0, 0, 100);
}
@@ -1,232 +0,0 @@
-- **************************************************************
--
-- Common definitions
--
-- **************************************************************
S1AP-CommonDataTypes {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
S1ap-Criticality ::= ENUMERATED { reject, ignore, notify }
S1ap-Presence ::= ENUMERATED { optional, conditional, mandatory }
S1ap-PrivateIE-ID ::= CHOICE {
local INTEGER (0..65535),
global OBJECT IDENTIFIER
}
S1ap-ProcedureCode ::= INTEGER {
id-HandoverPreparation(0),
id-HandoverResourceAllocation(1),
id-HandoverNotification(2),
id-PathSwitchRequest(3),
id-HandoverCancel(4),
id-E-RABSetup(5),
id-E-RABModify(6),
id-E-RABRelease(7),
id-E-RABReleaseIndication(8),
id-InitialContextSetup(9),
id-Paging(10),
id-downlinkNASTransport(11),
id-initialUEMessage(12),
id-uplinkNASTransport(13),
id-Reset(14),
id-ErrorIndication(15),
id-NASNonDeliveryIndication(16),
id-S1Setup(17),
id-UEContextReleaseRequest(18),
id-DownlinkS1cdma2000tunneling(19),
id-UplinkS1cdma2000tunneling(20),
id-UEContextModification(21),
id-UECapabilityInfoIndication(22),
id-UEContextRelease(23),
id-eNBStatusTransfer(24),
id-MMEStatusTransfer(25),
id-DeactivateTrace(26),
id-TraceStart(27),
id-TraceFailureIndication(28),
id-ENBConfigurationUpdate(29),
id-MMEConfigurationUpdate(30),
id-LocationReportingControl(31),
id-LocationReportingFailureIndication(32),
id-LocationReport(33),
id-OverloadStart(34),
id-OverloadStop(35),
id-WriteReplaceWarning(36),
id-eNBDirectInformationTransfer(37),
id-MMEDirectInformationTransfer(38),
id-PrivateMessage(39),
id-eNBConfigurationTransfer(40),
id-MMEConfigurationTransfer(41),
id-CellTrafficTrace(42),
id-Kill(43),
id-downlinkUEAssociatedLPPaTransport(44),
id-uplinkUEAssociatedLPPaTransport(45),
id-downlinkNonUEAssociatedLPPaTransport(46),
id-uplinkNonUEAssociatedLPPaTransport(47)
} (0..255)
S1ap-ProtocolExtensionID ::= INTEGER (0..65535)
S1ap-ProtocolIE-ID ::= INTEGER {
id-MME-UE-S1AP-ID (0),
id-HandoverType (1),
id-Cause (2),
id-SourceID (3),
id-TargetID (4),
id-eNB-UE-S1AP-ID (8),
id-E-RABSubjecttoDataForwardingList (12),
id-E-RABtoReleaseListHOCmd (13),
id-E-RABDataForwardingItem (14),
id-E-RABReleaseItemBearerRelComp (15),
id-E-RABToBeSetupListBearerSUReq (16),
id-E-RABToBeSetupItemBearerSUReq (17),
id-E-RABAdmittedList (18),
id-E-RABFailedToSetupListHOReqAck (19),
id-E-RABAdmittedItem (20),
id-E-RABFailedToSetupItemHOReqAck (21),
id-E-RABToBeSwitchedDLList (22),
id-E-RABToBeSwitchedDLItem (23),
id-E-RABToBeSetupListCtxtSUReq (24),
id-TraceActivation (25),
id-NAS-PDU (26),
id-E-RABToBeSetupItemHOReq (27),
id-E-RABSetupListBearerSURes (28),
id-E-RABFailedToSetupListBearerSURes (29),
id-E-RABToBeModifiedListBearerModReq (30),
id-E-RABModifyListBearerModRes (31),
id-E-RABFailedToModifyList (32),
id-E-RABToBeReleasedList (33),
id-E-RABFailedToReleaseList (34),
id-E-RABItem (35),
id-E-RABToBeModifiedItemBearerModReq (36),
id-E-RABModifyItemBearerModRes (37),
id-E-RABReleaseItem (38),
id-E-RABSetupItemBearerSURes (39),
id-SecurityContext (40),
id-HandoverRestrictionList (41),
id-UEPagingID (43),
id-pagingDRX (44),
id-TAIList (46),
id-TAIItem (47),
id-E-RABFailedToSetupListCtxtSURes (48),
id-E-RABReleaseItemHOCmd (49),
id-E-RABSetupItemCtxtSURes (50),
id-E-RABSetupListCtxtSURes (51),
id-E-RABToBeSetupItemCtxtSUReq (52),
id-E-RABToBeSetupListHOReq (53),
id-GERANtoLTEHOInformationRes (55),
id-UTRANtoLTEHOInformationRes (57),
id-CriticalityDiagnostics (58),
id-Global-ENB-ID (59),
id-eNBname (60),
id-MMEname (61),
id-ServedPLMNs (63),
id-SupportedTAs (64),
id-TimeToWait (65),
id-uEaggregateMaximumBitrate (66),
id-TAI (67),
id-E-RABReleaseListBearerRelComp (69),
id-cdma2000PDU (70),
id-cdma2000RATType (71),
id-cdma2000SectorID (72),
id-SecurityKey (73),
id-UERadioCapability (74),
id-GUMMEI-ID (75),
id-E-RABInformationListItem (78),
id-Direct-Forwarding-Path-Availability (79),
id-UEIdentityIndexValue (80),
id-cdma2000HOStatus (83),
id-cdma2000HORequiredIndication (84),
id-E-UTRAN-Trace-ID (86),
id-RelativeMMECapacity (87),
id-SourceMME-UE-S1AP-ID (88),
id-Bearers-SubjectToStatusTransfer-Item (89),
id-eNB-StatusTransfer-TransparentContainer (90),
id-UE-associatedLogicalS1-ConnectionItem (91),
id-ResetType (92),
id-UE-associatedLogicalS1-ConnectionListResAck (93),
id-E-RABToBeSwitchedULItem (94),
id-E-RABToBeSwitchedULList (95),
id-S-TMSI (96),
id-cdma2000OneXRAND (97),
id-RequestType (98),
id-UE-S1AP-IDs (99),
id-EUTRAN-CGI (100),
id-OverloadResponse (101),
id-cdma2000OneXSRVCCInfo (102),
id-E-RABFailedToBeReleasedList (103),
id-Source-ToTarget-TransparentContainer (104),
id-ServedGUMMEIs (105),
id-SubscriberProfileIDforRFP (106),
id-UESecurityCapabilities (107),
id-CSFallbackIndicator (108),
id-CNDomain (109),
id-E-RABReleasedList (110),
id-MessageIdentifier (111),
id-SerialNumber (112),
id-WarningAreaList (113),
id-RepetitionPeriod (114),
id-NumberofBroadcastRequest (115),
id-WarningType (116),
id-WarningSecurityInfo (117),
id-DataCodingScheme (118),
id-WarningMessageContents (119),
id-BroadcastCompletedAreaList (120),
id-Inter-SystemInformationTransferTypeEDT (121),
id-Inter-SystemInformationTransferTypeMDT (122),
id-Target-ToSource-TransparentContainer (123),
id-SRVCCOperationPossible (124),
id-SRVCCHOIndication (125),
id-NAS-DownlinkCount (126),
id-CSG-Id (127),
id-CSG-IdList (128),
id-SONConfigurationTransferECT (129),
id-SONConfigurationTransferMCT (130),
id-TraceCollectionEntityIPAddress (131),
id-MSClassmark2 (132),
id-MSClassmark3 (133),
id-RRC-Establishment-Cause (134),
id-NASSecurityParametersfromE-UTRAN (135),
id-NASSecurityParameterstoE-UTRAN (136),
id-DefaultPagingDRX (137),
id-Source-ToTarget-TransparentContainer-Secondary (138),
id-Target-ToSource-TransparentContainer-Secondary (139),
id-EUTRANRoundTripDelayEstimationInfo (140),
id-BroadcastCancelledAreaList (141),
id-ConcurrentWarningMessageIndicator (142),
id-Data-Forwarding-Not-Possible (143),
id-ExtendedRepetitionPeriod (144),
id-CellAccessMode (145),
id-CSGMembershipStatus (146),
id-LPPa-PDU (147),
id-Routing-ID (148),
id-Time-Synchronization-Info (149),
id-PS-ServiceNotAvailable (150),
id-PagingPriority (151),
id-x2TNLConfigurationInfo (152),
id-eNBX2ExtendedTransportLayerAddresses (153),
id-GUMMEIList (154),
id-GW-TransportLayerAddress (155),
id-Correlation-ID (156),
id-SourceMME-GUMMEI (157),
id-MME-UE-S1AP-ID-2 (158),
id-RegisteredLAI (159),
id-RelayNode-Indicator (160),
id-TrafficLoadReductionIndication (161),
id-MDTConfiguration (162),
id-MMERelaySupportIndicator (163),
id-GWContextReleaseIndication (164),
id-ManagementBasedMDTAllowed (165),
id-PrivacyIndicator (166)
} (0..65535)
S1ap-TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
END
@@ -1,283 +0,0 @@
-- **************************************************************
--
-- Constant definitions
--
-- **************************************************************
S1AP-Constants {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
S1ap-ProcedureCode,
S1ap-ProtocolIE-ID
FROM S1AP-CommonDataTypes;
-- **************************************************************
--
-- Elementary Procedures
--
-- **************************************************************
id-HandoverPreparation S1ap-ProcedureCode ::= 0
id-HandoverResourceAllocation S1ap-ProcedureCode ::= 1
id-HandoverNotification S1ap-ProcedureCode ::= 2
id-PathSwitchRequest S1ap-ProcedureCode ::= 3
id-HandoverCancel S1ap-ProcedureCode ::= 4
id-E-RABSetup S1ap-ProcedureCode ::= 5
id-E-RABModify S1ap-ProcedureCode ::= 6
id-E-RABRelease S1ap-ProcedureCode ::= 7
id-E-RABReleaseIndication S1ap-ProcedureCode ::= 8
id-InitialContextSetup S1ap-ProcedureCode ::= 9
id-Paging S1ap-ProcedureCode ::= 10
id-downlinkNASTransport S1ap-ProcedureCode ::= 11
id-initialUEMessage S1ap-ProcedureCode ::= 12
id-uplinkNASTransport S1ap-ProcedureCode ::= 13
id-Reset S1ap-ProcedureCode::= 14
id-ErrorIndication S1ap-ProcedureCode ::= 15
id-NASNonDeliveryIndication S1ap-ProcedureCode ::= 16
id-S1Setup S1ap-ProcedureCode ::= 17
id-UEContextReleaseRequest S1ap-ProcedureCode ::= 18
id-DownlinkS1cdma2000tunneling S1ap-ProcedureCode ::= 19
id-UplinkS1cdma2000tunneling S1ap-ProcedureCode ::= 20
id-UEContextModification S1ap-ProcedureCode ::= 21
id-UECapabilityInfoIndication S1ap-ProcedureCode ::= 22
id-UEContextRelease S1ap-ProcedureCode ::= 23
id-eNBStatusTransfer S1ap-ProcedureCode ::= 24
id-MMEStatusTransfer S1ap-ProcedureCode ::= 25
id-DeactivateTrace S1ap-ProcedureCode ::= 26
id-TraceStart S1ap-ProcedureCode ::= 27
id-TraceFailureIndication S1ap-ProcedureCode ::= 28
id-ENBConfigurationUpdate S1ap-ProcedureCode ::= 29
id-MMEConfigurationUpdate S1ap-ProcedureCode ::= 30
id-LocationReportingControl S1ap-ProcedureCode ::= 31
id-LocationReportingFailureIndication S1ap-ProcedureCode ::= 32
id-LocationReport S1ap-ProcedureCode ::= 33
id-OverloadStart S1ap-ProcedureCode ::= 34
id-OverloadStop S1ap-ProcedureCode ::= 35
id-WriteReplaceWarning S1ap-ProcedureCode ::= 36
id-eNBDirectInformationTransfer S1ap-ProcedureCode ::= 37
id-MMEDirectInformationTransfer S1ap-ProcedureCode ::= 38
id-PrivateMessage S1ap-ProcedureCode ::= 39
id-eNBConfigurationTransfer S1ap-ProcedureCode ::= 40
id-MMEConfigurationTransfer S1ap-ProcedureCode ::= 41
id-CellTrafficTrace S1ap-ProcedureCode ::= 42
id-Kill S1ap-ProcedureCode ::= 43
id-downlinkUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 44
id-uplinkUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 45
id-downlinkNonUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 46
id-uplinkNonUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 47
-- **************************************************************
--
-- Extension constants
--
-- **************************************************************
s1ap-maxPrivateIEs INTEGER ::= 65535
s1ap-maxProtocolExtensions INTEGER ::= 65535
s1ap-maxProtocolIEs INTEGER ::= 65535
-- **************************************************************
--
-- Lists
--
-- **************************************************************
s1ap-maxNrOfCSGs INTEGER ::= 256
s1ap-maxNrOfE-RABs INTEGER ::= 256
s1ap-maxnoofTAIs INTEGER ::= 256
s1ap-maxnoofTACs INTEGER ::= 256
s1ap-maxNrOfErrors INTEGER ::= 256
s1ap-maxnoofBPLMNs INTEGER ::= 6
s1ap-maxnoofPLMNsPerMME INTEGER ::= 32
s1ap-maxnoofEPLMNs INTEGER ::= 15
s1ap-maxnoofEPLMNsPlusOne INTEGER ::= 16
s1ap-maxnoofForbLACs INTEGER ::= 4096
s1ap-maxnoofForbTACs INTEGER ::= 4096
s1ap-maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256
s1ap-maxnoofCells INTEGER ::= 16
s1ap-maxnoofTAIforWarning INTEGER ::= 65535
s1ap-maxnoofCellID INTEGER ::= 65535
s1ap-maxnoofEmergencyAreaID INTEGER ::= 65535
s1ap-maxnoofCellinTAI INTEGER ::= 65535
s1ap-maxnoofCellinEAI INTEGER ::= 65535
s1ap-maxnoofeNBX2TLAs INTEGER ::= 2
s1ap-maxnoofeNBX2ExtTLAs INTEGER ::= 16
s1ap-maxnoofeNBX2GTPTLAs INTEGER ::= 16
s1ap-maxnoofRATs INTEGER ::= 8
s1ap-maxnoofGroupIDs INTEGER ::= 65535
s1ap-maxnoofMMECs INTEGER ::= 256
s1ap-maxnoofCellIDforMDT INTEGER ::= 32
s1ap-maxnoofTAforMDT INTEGER ::= 8
-- **************************************************************
--
-- IEs
--
-- **************************************************************
id-MME-UE-S1AP-ID S1ap-ProtocolIE-ID ::= 0
id-HandoverType S1ap-ProtocolIE-ID ::= 1
id-Cause S1ap-ProtocolIE-ID ::= 2
id-SourceID S1ap-ProtocolIE-ID ::= 3
id-TargetID S1ap-ProtocolIE-ID ::= 4
id-eNB-UE-S1AP-ID S1ap-ProtocolIE-ID ::= 8
id-E-RABSubjecttoDataForwardingList S1ap-ProtocolIE-ID ::= 12
id-E-RABtoReleaseListHOCmd S1ap-ProtocolIE-ID ::= 13
id-E-RABDataForwardingItem S1ap-ProtocolIE-ID ::= 14
id-E-RABReleaseItemBearerRelComp S1ap-ProtocolIE-ID ::= 15
id-E-RABToBeSetupListBearerSUReq S1ap-ProtocolIE-ID ::= 16
id-E-RABToBeSetupItemBearerSUReq S1ap-ProtocolIE-ID ::= 17
id-E-RABAdmittedList S1ap-ProtocolIE-ID ::= 18
id-E-RABFailedToSetupListHOReqAck S1ap-ProtocolIE-ID ::= 19
id-E-RABAdmittedItem S1ap-ProtocolIE-ID ::= 20
id-E-RABFailedtoSetupItemHOReqAck S1ap-ProtocolIE-ID ::= 21
id-E-RABToBeSwitchedDLList S1ap-ProtocolIE-ID ::= 22
id-E-RABToBeSwitchedDLItem S1ap-ProtocolIE-ID ::= 23
id-E-RABToBeSetupListCtxtSUReq S1ap-ProtocolIE-ID ::= 24
id-TraceActivation S1ap-ProtocolIE-ID ::= 25
id-NAS-PDU S1ap-ProtocolIE-ID ::= 26
id-E-RABToBeSetupItemHOReq S1ap-ProtocolIE-ID ::= 27
id-E-RABSetupListBearerSURes S1ap-ProtocolIE-ID ::= 28
id-E-RABFailedToSetupListBearerSURes S1ap-ProtocolIE-ID ::= 29
id-E-RABToBeModifiedListBearerModReq S1ap-ProtocolIE-ID ::= 30
id-E-RABModifyListBearerModRes S1ap-ProtocolIE-ID ::= 31
id-E-RABFailedToModifyList S1ap-ProtocolIE-ID ::= 32
id-E-RABToBeReleasedList S1ap-ProtocolIE-ID ::= 33
id-E-RABFailedToReleaseList S1ap-ProtocolIE-ID ::= 34
id-E-RABItem S1ap-ProtocolIE-ID ::= 35
id-E-RABToBeModifiedItemBearerModReq S1ap-ProtocolIE-ID ::= 36
id-E-RABModifyItemBearerModRes S1ap-ProtocolIE-ID ::= 37
id-E-RABReleaseItem S1ap-ProtocolIE-ID ::= 38
id-E-RABSetupItemBearerSURes S1ap-ProtocolIE-ID ::= 39
id-SecurityContext S1ap-ProtocolIE-ID ::= 40
id-HandoverRestrictionList S1ap-ProtocolIE-ID ::= 41
id-UEPagingID S1ap-ProtocolIE-ID ::= 43
id-pagingDRX S1ap-ProtocolIE-ID ::= 44
id-TAIList S1ap-ProtocolIE-ID ::= 46
id-TAIItem S1ap-ProtocolIE-ID ::= 47
id-E-RABFailedToSetupListCtxtSURes S1ap-ProtocolIE-ID ::= 48
id-E-RABReleaseItemHOCmd S1ap-ProtocolIE-ID ::= 49
id-E-RABSetupItemCtxtSURes S1ap-ProtocolIE-ID ::= 50
id-E-RABSetupListCtxtSURes S1ap-ProtocolIE-ID ::= 51
id-E-RABToBeSetupItemCtxtSUReq S1ap-ProtocolIE-ID ::= 52
id-E-RABToBeSetupListHOReq S1ap-ProtocolIE-ID ::= 53
id-GERANtoLTEHOInformationRes S1ap-ProtocolIE-ID ::= 55
id-UTRANtoLTEHOInformationRes S1ap-ProtocolIE-ID ::= 57
id-CriticalityDiagnostics S1ap-ProtocolIE-ID ::= 58
id-Global-ENB-ID S1ap-ProtocolIE-ID ::= 59
id-eNBname S1ap-ProtocolIE-ID ::= 60
id-MMEname S1ap-ProtocolIE-ID ::= 61
id-ServedPLMNs S1ap-ProtocolIE-ID ::= 63
id-SupportedTAs S1ap-ProtocolIE-ID ::= 64
id-TimeToWait S1ap-ProtocolIE-ID ::= 65
id-uEaggregateMaximumBitrate S1ap-ProtocolIE-ID ::= 66
id-TAI S1ap-ProtocolIE-ID ::= 67
id-E-RABReleaseListBearerRelComp S1ap-ProtocolIE-ID ::= 69
id-cdma2000PDU S1ap-ProtocolIE-ID ::= 70
id-cdma2000RATType S1ap-ProtocolIE-ID ::= 71
id-cdma2000SectorID S1ap-ProtocolIE-ID ::= 72
id-SecurityKey S1ap-ProtocolIE-ID ::= 73
id-UERadioCapability S1ap-ProtocolIE-ID ::= 74
id-GUMMEI-ID S1ap-ProtocolIE-ID ::= 75
id-E-RABInformationListItem S1ap-ProtocolIE-ID ::= 78
id-Direct-Forwarding-Path-Availability S1ap-ProtocolIE-ID ::= 79
id-UEIdentityIndexValue S1ap-ProtocolIE-ID ::= 80
id-cdma2000HOStatus S1ap-ProtocolIE-ID ::= 83
id-cdma2000HORequiredIndication S1ap-ProtocolIE-ID ::= 84
id-E-UTRAN-Trace-ID S1ap-ProtocolIE-ID ::= 86
id-RelativeMMECapacity S1ap-ProtocolIE-ID ::= 87
id-SourceMME-UE-S1AP-ID S1ap-ProtocolIE-ID ::= 88
id-Bearers-SubjectToStatusTransfer-Item S1ap-ProtocolIE-ID ::= 89
id-eNB-StatusTransfer-TransparentContainer S1ap-ProtocolIE-ID ::= 90
id-UE-associatedLogicalS1-ConnectionItem S1ap-ProtocolIE-ID ::= 91
id-ResetType S1ap-ProtocolIE-ID ::= 92
id-UE-associatedLogicalS1-ConnectionListResAck S1ap-ProtocolIE-ID ::= 93
id-E-RABToBeSwitchedULItem S1ap-ProtocolIE-ID ::= 94
id-E-RABToBeSwitchedULList S1ap-ProtocolIE-ID ::= 95
id-S-TMSI S1ap-ProtocolIE-ID ::= 96
id-cdma2000OneXRAND S1ap-ProtocolIE-ID ::= 97
id-RequestType S1ap-ProtocolIE-ID ::= 98
id-UE-S1AP-IDs S1ap-ProtocolIE-ID ::= 99
id-EUTRAN-CGI S1ap-ProtocolIE-ID ::= 100
id-OverloadResponse S1ap-ProtocolIE-ID ::= 101
id-cdma2000OneXSRVCCInfo S1ap-ProtocolIE-ID ::= 102
id-E-RABFailedToBeReleasedList S1ap-ProtocolIE-ID ::= 103
id-Source-ToTarget-TransparentContainer S1ap-ProtocolIE-ID ::= 104
id-ServedGUMMEIs S1ap-ProtocolIE-ID ::= 105
id-SubscriberProfileIDforRFP S1ap-ProtocolIE-ID ::= 106
id-UESecurityCapabilities S1ap-ProtocolIE-ID ::= 107
id-CSFallbackIndicator S1ap-ProtocolIE-ID ::= 108
id-CNDomain S1ap-ProtocolIE-ID ::= 109
id-E-RABReleasedList S1ap-ProtocolIE-ID ::= 110
id-MessageIdentifier S1ap-ProtocolIE-ID ::= 111
id-SerialNumber S1ap-ProtocolIE-ID ::= 112
id-WarningAreaList S1ap-ProtocolIE-ID ::= 113
id-RepetitionPeriod S1ap-ProtocolIE-ID ::= 114
id-NumberofBroadcastRequest S1ap-ProtocolIE-ID ::= 115
id-WarningType S1ap-ProtocolIE-ID ::= 116
id-WarningSecurityInfo S1ap-ProtocolIE-ID ::= 117
id-DataCodingScheme S1ap-ProtocolIE-ID ::= 118
id-WarningMessageContents S1ap-ProtocolIE-ID ::= 119
id-BroadcastCompletedAreaList S1ap-ProtocolIE-ID ::= 120
id-Inter-SystemInformationTransferTypeEDT S1ap-ProtocolIE-ID ::= 121
id-Inter-SystemInformationTransferTypeMDT S1ap-ProtocolIE-ID ::= 122
id-Target-ToSource-TransparentContainer S1ap-ProtocolIE-ID ::= 123
id-SRVCCOperationPossible S1ap-ProtocolIE-ID ::= 124
id-SRVCCHOIndication S1ap-ProtocolIE-ID ::= 125
id-NAS-DownlinkCount S1ap-ProtocolIE-ID ::= 126
id-CSG-Id S1ap-ProtocolIE-ID ::= 127
id-CSG-IdList S1ap-ProtocolIE-ID ::= 128
id-SONConfigurationTransferECT S1ap-ProtocolIE-ID ::= 129
id-SONConfigurationTransferMCT S1ap-ProtocolIE-ID ::= 130
id-TraceCollectionEntityIPAddress S1ap-ProtocolIE-ID ::= 131
id-MSClassmark2 S1ap-ProtocolIE-ID ::= 132
id-MSClassmark3 S1ap-ProtocolIE-ID ::= 133
id-RRC-Establishment-Cause S1ap-ProtocolIE-ID ::= 134
id-NASSecurityParametersfromE-UTRAN S1ap-ProtocolIE-ID ::= 135
id-NASSecurityParameterstoE-UTRAN S1ap-ProtocolIE-ID ::= 136
id-DefaultPagingDRX S1ap-ProtocolIE-ID ::= 137
id-Source-ToTarget-TransparentContainer-Secondary S1ap-ProtocolIE-ID ::= 138
id-Target-ToSource-TransparentContainer-Secondary S1ap-ProtocolIE-ID ::= 139
id-EUTRANRoundTripDelayEstimationInfo S1ap-ProtocolIE-ID ::= 140
id-BroadcastCancelledAreaList S1ap-ProtocolIE-ID ::= 141
id-ConcurrentWarningMessageIndicator S1ap-ProtocolIE-ID ::= 142
id-Data-Forwarding-Not-Possible S1ap-ProtocolIE-ID ::= 143
id-ExtendedRepetitionPeriod S1ap-ProtocolIE-ID ::= 144
id-CellAccessMode S1ap-ProtocolIE-ID ::= 145
id-CSGMembershipStatus S1ap-ProtocolIE-ID ::= 146
id-LPPa-PDU S1ap-ProtocolIE-ID ::= 147
id-Routing-ID S1ap-ProtocolIE-ID ::= 148
id-Time-Synchronization-Info S1ap-ProtocolIE-ID ::= 149
id-PS-ServiceNotAvailable S1ap-ProtocolIE-ID ::= 150
id-PagingPriority S1ap-ProtocolIE-ID ::= 151
id-x2TNLConfigurationInfo S1ap-ProtocolIE-ID ::= 152
id-eNBX2ExtendedTransportLayerAddresses S1ap-ProtocolIE-ID ::= 153
id-GUMMEIList S1ap-ProtocolIE-ID ::= 154
id-GW-TransportLayerAddress S1ap-ProtocolIE-ID ::= 155
id-Correlation-ID S1ap-ProtocolIE-ID ::= 156
id-SourceMME-GUMMEI S1ap-ProtocolIE-ID ::= 157
id-MME-UE-S1AP-ID-2 S1ap-ProtocolIE-ID ::= 158
id-RegisteredLAI S1ap-ProtocolIE-ID ::= 159
id-RelayNode-Indicator S1ap-ProtocolIE-ID ::= 160
id-TrafficLoadReductionIndication S1ap-ProtocolIE-ID ::= 161
id-MDTConfiguration S1ap-ProtocolIE-ID ::= 162
id-MMERelaySupportIndicator S1ap-ProtocolIE-ID ::= 163
id-GWContextReleaseIndication S1ap-ProtocolIE-ID ::= 164
id-ManagementBasedMDTAllowed S1ap-ProtocolIE-ID ::= 165
id-PrivacyIndicator S1ap-ProtocolIE-ID ::= 166
END
@@ -1,197 +0,0 @@
-- **************************************************************
--
-- Container definitions
--
-- **************************************************************
S1AP-Containers {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
S1ap-Criticality,
S1ap-Presence,
S1ap-PrivateIE-ID,
S1ap-ProtocolExtensionID,
S1ap-ProtocolIE-ID
FROM S1AP-CommonDataTypes
s1ap-maxPrivateIEs,
s1ap-maxProtocolExtensions,
s1ap-maxProtocolIEs
FROM S1AP-Constants;
-- **************************************************************
--
-- Class Definition for Protocol IEs
--
-- **************************************************************
S1AP-PROTOCOL-IES ::= CLASS {
&id S1ap-ProtocolIE-ID UNIQUE,
&criticality S1ap-Criticality,
&Value,
&presence S1ap-Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
TYPE &Value
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Protocol IEs
--
-- **************************************************************
S1AP-PROTOCOL-IES-PAIR ::= CLASS {
&id S1ap-ProtocolIE-ID UNIQUE,
&firstCriticality S1ap-Criticality,
&FirstValue,
&secondCriticality S1ap-Criticality,
&SecondValue,
&presence S1ap-Presence
}
WITH SYNTAX {
ID &id
FIRST CRITICALITY &firstCriticality
FIRST TYPE &FirstValue
SECOND CRITICALITY &secondCriticality
SECOND TYPE &SecondValue
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Protocol Extensions
--
-- **************************************************************
S1AP-PROTOCOL-EXTENSION ::= CLASS {
&id S1ap-ProtocolExtensionID UNIQUE,
&criticality S1ap-Criticality,
&Extension,
&presence S1ap-Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
EXTENSION &Extension
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Private IEs
--
-- **************************************************************
S1AP-PRIVATE-IES ::= CLASS {
&id S1ap-PrivateIE-ID,
&criticality S1ap-Criticality,
&Value,
&presence S1ap-Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
TYPE &Value
PRESENCE &presence
}
-- **************************************************************
--
-- Container for Protocol IEs
--
-- **************************************************************
ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::=
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
id S1AP-PROTOCOL-IES.&id ({IEsSetParam}),
criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container for Protocol IE Pairs
--
-- **************************************************************
ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-FieldPair {{IEsSetParam}}
ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container Lists for Protocol IE Containers
--
-- **************************************************************
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (lowerBound..upperBound)) OF
ProtocolIE-SingleContainer {{IEsSetParam}}
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (lowerBound..upperBound)) OF
ProtocolIE-ContainerPair {{IEsSetParam}}
-- **************************************************************
--
-- Container for Protocol Extensions
--
-- **************************************************************
ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
ProtocolExtensionField {{ExtensionSetParam}}
ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
}
-- **************************************************************
--
-- Container for Private IEs
--
-- **************************************************************
PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::=
SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
PrivateIE-Field {{IEsSetParam}}
PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
id S1AP-PRIVATE-IES.&id ({IEsSetParam}),
criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
}
END
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,590 +0,0 @@
-- **************************************************************
--
-- Elementary Procedure definitions
--
-- **************************************************************
S1AP-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
S1ap-Criticality,
S1ap-ProcedureCode
FROM S1AP-CommonDataTypes
S1ap-CellTrafficTrace,
S1ap-DeactivateTrace,
S1ap-DownlinkUEAssociatedLPPaTransport,
S1ap-DownlinkNASTransport,
S1ap-DownlinkNonUEAssociatedLPPaTransport,
S1ap-DownlinkS1cdma2000tunneling,
S1ap-ENBDirectInformationTransfer,
S1ap-ENBStatusTransfer,
S1ap-ENBConfigurationUpdate,
S1ap-ENBConfigurationUpdateAcknowledge,
S1ap-ENBConfigurationUpdateFailure,
S1ap-ErrorIndication,
S1ap-HandoverCancel,
S1ap-HandoverCancelAcknowledge,
S1ap-HandoverCommand,
S1ap-HandoverFailure,
S1ap-HandoverNotify,
S1ap-HandoverPreparationFailure,
S1ap-HandoverRequest,
S1ap-HandoverRequestAcknowledge,
S1ap-HandoverRequired,
S1ap-InitialContextSetupFailure,
S1ap-InitialContextSetupRequest,
S1ap-InitialContextSetupResponse,
S1ap-InitialUEMessage,
S1ap-KillRequest,
S1ap-KillResponse,
S1ap-LocationReportingControl,
S1ap-LocationReportingFailureIndication,
S1ap-LocationReport,
S1ap-MMEConfigurationUpdate,
S1ap-MMEConfigurationUpdateAcknowledge,
S1ap-MMEConfigurationUpdateFailure,
S1ap-MMEDirectInformationTransfer,
S1ap-MMEStatusTransfer,
S1ap-NASNonDeliveryIndication,
S1ap-OverloadStart,
S1ap-OverloadStop,
S1ap-Paging,
S1ap-PathSwitchRequest,
S1ap-PathSwitchRequestAcknowledge,
S1ap-PathSwitchRequestFailure,
S1ap-PrivateMessage,
S1ap-Reset,
S1ap-ResetAcknowledge,
S1ap-S1SetupFailure,
S1ap-S1SetupRequest,
S1ap-S1SetupResponse,
E-S1ap-RABModifyRequest,
E-S1ap-RABModifyResponse,
E-S1ap-RABReleaseCommand,
E-S1ap-RABReleaseResponse,
E-S1ap-RABReleaseIndication,
E-S1ap-RABSetupRequest,
E-S1ap-RABSetupResponse,
S1ap-TraceFailureIndication,
S1ap-TraceStart,
S1ap-UECapabilityInfoIndication,
S1ap-UEContextModificationFailure,
S1ap-UEContextModificationRequest,
S1ap-UEContextModificationResponse,
S1ap-UEContextReleaseCommand,
S1ap-UEContextReleaseComplete,
S1ap-UEContextReleaseRequest,
S1ap-UplinkUEAssociatedLPPaTransport,
S1ap-UplinkNASTransport,
S1ap-UplinkNonUEAssociatedLPPaTransport,
S1ap-UplinkS1cdma2000tunneling,
S1ap-WriteReplaceWarningRequest,
S1ap-WriteReplaceWarningResponse,
S1ap-ENBConfigurationTransfer,
S1ap-MMEConfigurationTransfer
FROM S1AP-PDU-Contents
id-CellTrafficTrace,
id-DeactivateTrace,
id-downlinkUEAssociatedLPPaTransport,
id-downlinkNASTransport,
id-downlinkNonUEAssociatedLPPaTransport,
id-DownlinkS1cdma2000tunneling,
id-eNBStatusTransfer,
id-ErrorIndication,
id-HandoverCancel,
id-HandoverNotification,
id-HandoverPreparation,
id-HandoverResourceAllocation,
id-InitialContextSetup,
id-initialUEMessage,
id-ENBConfigurationUpdate,
id-Kill,
id-LocationReportingControl,
id-LocationReportingFailureIndication,
id-LocationReport,
id-eNBDirectInformationTransfer,
id-MMEConfigurationUpdate,
id-MMEDirectInformationTransfer,
id-MMEStatusTransfer,
id-NASNonDeliveryIndication,
id-OverloadStart,
id-OverloadStop,
id-Paging,
id-PathSwitchRequest,
id-PrivateMessage,
id-Reset,
id-S1Setup,
id-E-RABModify,
id-E-RABRelease,
id-E-RABReleaseIndication,
id-E-RABSetup,
id-TraceFailureIndication,
id-TraceStart,
id-UECapabilityInfoIndication,
id-UEContextModification,
id-UEContextRelease,
id-UEContextReleaseRequest,
id-uplinkUEAssociatedLPPaTransport,
id-uplinkNASTransport,
id-uplinkNonUEAssociatedLPPaTransport,
id-UplinkS1cdma2000tunneling,
id-WriteReplaceWarning,
id-eNBConfigurationTransfer,
id-MMEConfigurationTransfer
FROM S1AP-Constants;
-- **************************************************************
--
-- Interface Elementary Procedure Class
--
-- **************************************************************
S1AP-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
--
-- **************************************************************
S1AP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
unsuccessfulOutcome UnsuccessfulOutcome,
...
}
InitiatingMessage ::= SEQUENCE {
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
SuccessfulOutcome ::= SEQUENCE {
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
UnsuccessfulOutcome ::= SEQUENCE {
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
-- **************************************************************
--
-- Interface Elementary Procedure List
--
-- **************************************************************
S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= {
S1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
S1AP-ELEMENTARY-PROCEDURES-CLASS-2,
...
}
S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= {
handoverPreparation |
handoverResourceAllocation |
pathSwitchRequest |
e-RABSetup |
e-RABModify |
e-RABRelease |
initialContextSetup |
handoverCancel |
kill |
reset |
s1Setup |
uEContextModification |
uEContextRelease |
eNBConfigurationUpdate |
mMEConfigurationUpdate |
writeReplaceWarning ,
...
}
S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
handoverNotification |
e-RABReleaseIndication |
paging |
downlinkNASTransport |
initialUEMessage |
uplinkNASTransport |
errorIndication |
nASNonDeliveryIndication |
uEContextReleaseRequest |
downlinkS1cdma2000tunneling |
uplinkS1cdma2000tunneling |
uECapabilityInfoIndication |
eNBStatusTransfer |
mMEStatusTransfer |
deactivateTrace |
traceStart |
traceFailureIndication |
cellTrafficTrace |
locationReportingControl |
locationReportingFailureIndication |
locationReport |
overloadStart |
overloadStop |
eNBDirectInformationTransfer |
mMEDirectInformationTransfer |
eNBConfigurationTransfer |
mMEConfigurationTransfer |
privateMessage ,
...,
downlinkUEAssociatedLPPaTransport |
uplinkUEAssociatedLPPaTransport |
downlinkNonUEAssociatedLPPaTransport |
uplinkNonUEAssociatedLPPaTransport
}
-- **************************************************************
--
-- Interface Elementary Procedures
--
-- **************************************************************
handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverRequired
SUCCESSFUL OUTCOME HandoverCommand
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
PROCEDURE CODE id-HandoverPreparation
CRITICALITY reject
}
handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverRequest
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
UNSUCCESSFUL OUTCOME HandoverFailure
PROCEDURE CODE id-HandoverResourceAllocation
CRITICALITY reject
}
handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverNotify
PROCEDURE CODE id-HandoverNotification
CRITICALITY ignore
}
pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE PathSwitchRequest
SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
PROCEDURE CODE id-PathSwitchRequest
CRITICALITY reject
}
e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E-RABSetupRequest
SUCCESSFUL OUTCOME E-RABSetupResponse
PROCEDURE CODE id-E-RABSetup
CRITICALITY reject
}
e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E-RABModifyRequest
SUCCESSFUL OUTCOME E-RABModifyResponse
PROCEDURE CODE id-E-RABModify
CRITICALITY reject
}
e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E-RABReleaseCommand
SUCCESSFUL OUTCOME E-RABReleaseResponse
PROCEDURE CODE id-E-RABRelease
CRITICALITY reject
}
e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E-RABReleaseIndication
PROCEDURE CODE id-E-RABReleaseIndication
CRITICALITY ignore
}
initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE InitialContextSetupRequest
SUCCESSFUL OUTCOME InitialContextSetupResponse
UNSUCCESSFUL OUTCOME InitialContextSetupFailure
PROCEDURE CODE id-InitialContextSetup
CRITICALITY reject
}
uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UEContextReleaseRequest
PROCEDURE CODE id-UEContextReleaseRequest
CRITICALITY ignore
}
paging S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Paging
PROCEDURE CODE id-Paging
CRITICALITY ignore
}
downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DownlinkNASTransport
PROCEDURE CODE id-downlinkNASTransport
CRITICALITY ignore
}
initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE InitialUEMessage
PROCEDURE CODE id-initialUEMessage
CRITICALITY ignore
}
uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UplinkNASTransport
PROCEDURE CODE id-uplinkNASTransport
CRITICALITY ignore
}
nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE NASNonDeliveryIndication
PROCEDURE CODE id-NASNonDeliveryIndication
CRITICALITY ignore
}
handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverCancel
SUCCESSFUL OUTCOME HandoverCancelAcknowledge
PROCEDURE CODE id-HandoverCancel
CRITICALITY reject
}
reset S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Reset
SUCCESSFUL OUTCOME ResetAcknowledge
PROCEDURE CODE id-Reset
CRITICALITY reject
}
errorIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ErrorIndication
PROCEDURE CODE id-ErrorIndication
CRITICALITY ignore
}
s1Setup S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE S1SetupRequest
SUCCESSFUL OUTCOME S1SetupResponse
UNSUCCESSFUL OUTCOME S1SetupFailure
PROCEDURE CODE id-S1Setup
CRITICALITY reject
}
eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBConfigurationUpdate
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
PROCEDURE CODE id-ENBConfigurationUpdate
CRITICALITY reject
}
mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MMEConfigurationUpdate
SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
PROCEDURE CODE id-MMEConfigurationUpdate
CRITICALITY reject
}
downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DownlinkS1cdma2000tunneling
PROCEDURE CODE id-DownlinkS1cdma2000tunneling
CRITICALITY ignore
}
uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UplinkS1cdma2000tunneling
PROCEDURE CODE id-UplinkS1cdma2000tunneling
CRITICALITY ignore
}
uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UEContextModificationRequest
SUCCESSFUL OUTCOME UEContextModificationResponse
UNSUCCESSFUL OUTCOME UEContextModificationFailure
PROCEDURE CODE id-UEContextModification
CRITICALITY reject
}
uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UECapabilityInfoIndication
PROCEDURE CODE id-UECapabilityInfoIndication
CRITICALITY ignore
}
uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UEContextReleaseCommand
SUCCESSFUL OUTCOME UEContextReleaseComplete
PROCEDURE CODE id-UEContextRelease
CRITICALITY reject
}
eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBStatusTransfer
PROCEDURE CODE id-eNBStatusTransfer
CRITICALITY ignore
}
mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MMEStatusTransfer
PROCEDURE CODE id-MMEStatusTransfer
CRITICALITY ignore
}
deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DeactivateTrace
PROCEDURE CODE id-DeactivateTrace
CRITICALITY ignore
}
traceStart S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE TraceStart
PROCEDURE CODE id-TraceStart
CRITICALITY ignore
}
traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE TraceFailureIndication
PROCEDURE CODE id-TraceFailureIndication
CRITICALITY ignore
}
cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={
INITIATING MESSAGE CellTrafficTrace
PROCEDURE CODE id-CellTrafficTrace
CRITICALITY ignore
}
locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE LocationReportingControl
PROCEDURE CODE id-LocationReportingControl
CRITICALITY ignore
}
locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE LocationReportingFailureIndication
PROCEDURE CODE id-LocationReportingFailureIndication
CRITICALITY ignore
}
locationReport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE LocationReport
PROCEDURE CODE id-LocationReport
CRITICALITY ignore
}
overloadStart S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE OverloadStart
PROCEDURE CODE id-OverloadStart
CRITICALITY ignore
}
overloadStop S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE OverloadStop
PROCEDURE CODE id-OverloadStop
CRITICALITY reject
}
writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE WriteReplaceWarningRequest
SUCCESSFUL OUTCOME WriteReplaceWarningResponse
PROCEDURE CODE id-WriteReplaceWarning
CRITICALITY reject
}
eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBDirectInformationTransfer
PROCEDURE CODE id-eNBDirectInformationTransfer
CRITICALITY ignore
}
mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MMEDirectInformationTransfer
PROCEDURE CODE id-MMEDirectInformationTransfer
CRITICALITY ignore
}
eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBConfigurationTransfer
PROCEDURE CODE id-eNBConfigurationTransfer
CRITICALITY ignore
}
mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MMEConfigurationTransfer
PROCEDURE CODE id-MMEConfigurationTransfer
CRITICALITY ignore
}
privateMessage S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE PrivateMessage
PROCEDURE CODE id-PrivateMessage
CRITICALITY ignore
}
kill S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE KillRequest
SUCCESSFUL OUTCOME KillResponse
PROCEDURE CODE id-Kill
CRITICALITY reject
}
downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport
PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport
CRITICALITY ignore
}
uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UplinkUEAssociatedLPPaTransport
PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport
CRITICALITY ignore
}
downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport
PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport
CRITICALITY ignore
}
uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport
PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport
CRITICALITY ignore
}
END
@@ -1,412 +0,0 @@
S1AP-PDU {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
S1ap-Criticality,
S1ap-ProcedureCode,
S1ap-ProtocolIE-ID
FROM S1AP-CommonDataTypes
s1ap-maxProtocolIEs
FROM S1AP-Constants;
S1AP-PDU ::= CHOICE {
initiatingMessage S1ap-InitiatingMessage,
successfulOutcome S1ap-SuccessfulOutcome,
unsuccessfulOutcome S1ap-UnsuccessfulOutcome,
...
}
S1ap-InitiatingMessage ::= SEQUENCE {
procedureCode S1ap-ProcedureCode,
criticality S1ap-Criticality,
value ANY
}
S1ap-SuccessfulOutcome ::= SEQUENCE {
procedureCode S1ap-ProcedureCode,
criticality S1ap-Criticality,
value ANY
}
S1ap-UnsuccessfulOutcome ::= SEQUENCE {
procedureCode S1ap-ProcedureCode,
criticality S1ap-Criticality,
value ANY
}
S1ap-HandoverRequired ::= SEQUENCE {
s1ap-HandoverRequired-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-HandoverCommand ::= SEQUENCE {
s1ap-HandoverCommand-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-HandoverPreparationFailure ::= SEQUENCE {
s1ap-HandoverPreparationFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-HandoverRequest ::= SEQUENCE {
s1ap-HandoverRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-HandoverRequestAcknowledge ::= SEQUENCE {
s1ap-HandoverRequestAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-HandoverFailure ::= SEQUENCE {
s1ap-HandoverFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-HandoverNotify ::= SEQUENCE {
s1ap-HandoverNotify-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-PathSwitchRequest ::= SEQUENCE {
s1ap-PathSwitchRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-PathSwitchRequestAcknowledge ::= SEQUENCE {
s1ap-PathSwitchRequestAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-PathSwitchRequestFailure ::= SEQUENCE {
s1ap-PathSwitchRequestFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-E-RABSetupRequest ::= SEQUENCE {
s1ap-E-RABSetupRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-E-RABSetupResponse ::= SEQUENCE {
s1ap-E-RABSetupResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-E-RABModifyRequest ::= SEQUENCE {
s1ap-E-RABModifyRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-E-RABModifyResponse ::= SEQUENCE {
s1ap-E-RABModifyResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-E-RABReleaseIndication ::= SEQUENCE {
s1ap-E-RABReleaseIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-E-RABReleaseCommand ::= SEQUENCE {
s1ap-E-RABReleaseCommand-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-E-RABReleaseResponse ::= SEQUENCE {
s1ap-E-RABReleaseResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-InitialContextSetupRequest ::= SEQUENCE {
s1ap-InitialContextSetupRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-InitialContextSetupResponse ::= SEQUENCE {
s1ap-InitialContextSetupResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-InitialContextSetupFailure ::= SEQUENCE {
s1ap-InitialContextSetupFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UEContextReleaseRequest ::= SEQUENCE {
s1ap-UEContextReleaseRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-Paging ::= SEQUENCE {
s1ap-Paging-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-DownlinkNASTransport ::= SEQUENCE {
s1ap-DownlinkNASTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-InitialUEMessage ::= SEQUENCE {
s1ap-InitialUEMessage-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UplinkNASTransport ::= SEQUENCE {
s1ap-UplinkNASTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-NASNonDeliveryIndication ::= SEQUENCE {
s1ap-NASNonDeliveryIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-HandoverCancel ::= SEQUENCE {
s1ap-HandoverCancel-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-HandoverCancelAcknowledge ::= SEQUENCE {
s1ap-HandoverCancelAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-Reset ::= SEQUENCE {
s1ap-Reset-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-ResetAcknowledge ::= SEQUENCE {
s1ap-ResetAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-S1SetupResponse ::= SEQUENCE {
s1ap-S1SetupResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-S1SetupRequest ::= SEQUENCE {
s1ap-S1SetupRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-S1SetupFailure ::= SEQUENCE {
s1ap-S1SetupFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-ErrorIndication ::= SEQUENCE {
s1ap-ErrorIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-ENBConfigurationUpdate ::= SEQUENCE {
s1ap-ENBConfigurationUpdate-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
s1ap-ENBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-ENBConfigurationUpdateFailure ::= SEQUENCE {
s1ap-ENBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-MMEConfigurationUpdate ::= SEQUENCE {
s1ap-MMEConfigurationUpdate-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
s1ap-MMEConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-MMEConfigurationUpdateFailure ::= SEQUENCE {
s1ap-MMEConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-DownlinkS1cdma2000tunneling ::= SEQUENCE {
s1ap-DownlinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UplinkS1cdma2000tunneling ::= SEQUENCE {
s1ap-UplinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UEContextModificationRequest ::= SEQUENCE {
s1ap-UEContextModificationRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UEContextModificationResponse ::= SEQUENCE {
s1ap-UEContextModificationResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UEContextModificationFailure ::= SEQUENCE {
s1ap-UEContextModificationFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UECapabilityInfoIndication ::= SEQUENCE {
s1ap-UECapabilityInfoIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UEContextReleaseCommand ::= SEQUENCE {
s1ap-UEContextReleaseCommand-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UEContextReleaseComplete ::= SEQUENCE {
s1ap-UEContextReleaseComplete-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-ENBStatusTransfer ::= SEQUENCE {
s1ap-ENBStatusTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-MMEStatusTransfer ::= SEQUENCE {
s1ap-MMEStatusTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-DeactivateTrace ::= SEQUENCE {
s1ap-DeactivateTrace-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-TraceStart ::= SEQUENCE {
s1ap-TraceStart-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-TraceFailureIndication ::= SEQUENCE {
s1ap-TraceFailureIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-CellTrafficTrace ::= SEQUENCE {
s1ap-CellTrafficTrace-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-LocationReportingControl ::= SEQUENCE {
s1ap-LocationReportingControl-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-LocationReportingFailureIndication ::= SEQUENCE {
s1ap-LocationReportingFailureIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-LocationReport ::= SEQUENCE {
s1ap-LocationReport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-OverloadStart ::= SEQUENCE {
s1ap-OverloadStart-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-OverloadStop ::= SEQUENCE {
s1ap-OverloadStop-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-WriteReplaceWarningRequest ::= SEQUENCE {
s1ap-WriteReplaceWarningRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-WriteReplaceWarningResponse ::= SEQUENCE {
s1ap-WriteReplaceWarningResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-ENBDirectInformationTransfer ::= SEQUENCE {
s1ap-ENBDirectInformationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-MMEDirectInformationTransfer ::= SEQUENCE {
s1ap-MMEDirectInformationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-ENBConfigurationTransfer ::= SEQUENCE {
s1ap-ENBConfigurationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-MMEConfigurationTransfer ::= SEQUENCE {
s1ap-MMEConfigurationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-PrivateMessage ::= SEQUENCE {
s1ap-PrivateMessage-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-KillRequest ::= SEQUENCE {
s1ap-KillRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-KillResponse ::= SEQUENCE {
s1ap-KillResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-DownlinkUEAssociatedLPPaTransport ::= SEQUENCE {
s1ap-DownlinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UplinkUEAssociatedLPPaTransport ::= SEQUENCE {
s1ap-UplinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
s1ap-DownlinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
s1ap-UplinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
...
}
S1ap-IE ::= SEQUENCE {
id S1ap-ProtocolIE-ID,
criticality S1ap-Criticality,
value ANY
}
END
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,201 +0,0 @@
-- **************************************************************
--
-- Common definitions
--
-- **************************************************************
S1AP-CommonDataTypes {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
Criticality ::= ENUMERATED { reject, ignore, notify }
Presence ::= ENUMERATED { optional, conditional, mandatory }
PrivateIE-ID ::= CHOICE {
local INTEGER (0..65535),
global OBJECT IDENTIFIER
}
--ProcedureCode ::= INTEGER (0..255)
ProcedureCode ::= INTEGER {
id-HandoverPreparation(0),
id-HandoverResourceAllocation(1),
id-HandoverNotification(2),
id-PathSwitchRequest(3),
id-HandoverCancel(4),
id-E-RABSetup(5),
id-E-RABModify(6),
id-E-RABRelease(7),
id-E-RABReleaseIndication(8),
id-InitialContextSetup(9),
id-Paging(10),
id-downlinkNASTransport(11),
id-initialUEMessage(12),
id-uplinkNASTransport(13),
id-Reset(14),
id-ErrorIndication(15),
id-NASNonDeliveryIndication(16),
id-S1Setup(17),
id-UEContextReleaseRequest(18),
id-DownlinkS1cdma2000tunneling(19),
id-UplinkS1cdma2000tunneling(20),
id-UEContextModification(21),
id-UECapabilityInfoIndication(22),
id-UEContextRelease(23),
id-eNBStatusTransfer(24),
id-MMEStatusTransfer(25),
id-DeactivateTrace(26),
id-TraceStart(27),
id-TraceFailureIndication(28),
id-ENBConfigurationUpdate(29),
id-MMEConfigurationUpdate(30),
id-LocationReportingControl(31),
id-LocationReportingFailureIndication(32),
id-LocationReport(33),
id-OverloadStart(34),
id-OverloadStop(35),
id-WriteReplaceWarning(36),
id-eNBDirectInformationTransfer(37),
id-MMEDirectInformationTransfer(38),
id-PrivateMessage(39),
id-eNBConfigurationTransfer(40),
id-MMEConfigurationTransfer(41),
id-CellTrafficTrace(42)
} (0..255)
ProtocolExtensionID ::= INTEGER (0..65535)
ProtocolIE-ID ::= INTEGER {
id-MME-UE-S1AP-ID(0),
id-HandoverType(1),
id-Cause(2),
id-SourceID(3),
id-TargetID (4),
id-eNB-UE-S1AP-ID(8),
id-E-RABSubjecttoDataForwardingList(12),
id-E-RABtoReleaseListHOCmd(13),
id-E-RABDataForwardingItem(14),
id-E-RABReleaseItemBearerRelComp(15),
id-E-RABToBeSetupListBearerSUReq(16),
id-E-RABToBeSetupItemBearerSUReq(17),
id-E-RABAdmittedList(18),
id-E-RABFailedToSetupListHOReqAck(19),
id-E-RABAdmittedItem(20),
id-E-RABFailedtoSetupItemHOReqAck(21),
id-E-RABToBeSwitchedDLList(22),
id-E-RABToBeSwitchedDLItem(23),
id-E-RABToBeSetupListCtxtSUReq(24),
id-TraceActivation(25),
id-NAS-PDU(26),
id-E-RABToBeSetupItemHOReq(27),
id-E-RABSetupListBearerSURes(28),
id-E-RABFailedToSetupListBearerSURes(29),
id-E-RABToBeModifiedListBearerModReq(30),
id-E-RABModifyListBearerModRes(31),
id-E-RABFailedToModifyList(32),
id-E-RABToBeReleasedList(33),
id-E-RABFailedToReleaseList(34),
id-E-RABItem(35),
id-E-RABToBeModifiedItemBearerModReq(36),
id-E-RABModifyItemBearerModRes(37),
id-E-RABReleaseItem(38),
id-E-RABSetupItemBearerSURes(39),
id-SecurityContext(40),
id-HandoverRestrictionList(41),
id-UEPagingID(43),
id-pagingDRX(44),
id-TAIList(46),
id-TAIItem(47),
id-E-RABFailedToSetupListCtxtSURes(48),
id-E-RABReleaseItemHOCmd(49),
id-E-RABSetupItemCtxtSURes(50),
id-E-RABSetupListCtxtSURes(51),
id-E-RABToBeSetupItemCtxtSUReq(52),
id-E-RABToBeSetupListHOReq(53),
id-GERANtoLTEHOInformationRes(55),
id-UTRANtoLTEHOInformationRes(57),
id-CriticalityDiagnostics(58),
id-Global-ENB-ID(59),
id-eNBname(60),
id-MMEname(61),
id-ServedPLMNs(63),
id-SupportedTAs(64),
id-TimeToWait(65),
id-uEaggregateMaximumBitrate(66),
id-TAI(67),
id-E-RABReleaseListBearerRelComp(69),
id-cdma2000PDU(70),
id-cdma2000RATType(71),
id-cdma2000SectorID(72),
id-SecurityKey(73),
id-UERadioCapability(74),
id-GUMMEI-ID(75),
id-E-RABInformationListItem(78),
id-Direct-Forwarding-Path-Availability(79),
id-UEIdentityIndexValue(80),
id-cdma2000HOStatus(83),
id-cdma2000HORequiredIndication(84),
id-E-UTRAN-Trace-ID(86),
id-RelativeMMECapacity(87),
id-SourceMME-UE-S1AP-ID(88),
id-Bearers-SubjectToStatusTransfer-Item(89),
id-eNB-StatusTransfer-TransparentContainer(90),
id-UE-associatedLogicalS1-ConnectionItem(91),
id-ResetType(92),
id-UE-associatedLogicalS1-ConnectionListResAck(93),
id-E-RABToBeSwitchedULItem(94),
id-E-RABToBeSwitchedULList(95),
id-S-TMSI(96),
id-cdma2000OneXRAND(97),
id-RequestType(98),
id-UE-S1AP-IDs(99),
id-EUTRAN-CGI(100),
id-OverloadResponse(101),
id-cdma2000OneXSRVCCInfo(102),
id-E-RABFailedToBeReleasedList(103),
id-Source-ToTarget-TransparentContainer(104),
id-ServedGUMMEIs(105),
id-SubscriberProfileIDforRFP(106),
id-UESecurityCapabilities(107),
id-CSFallbackIndicator(108),
id-CNDomain(109),
id-E-RABReleasedList(110),
id-MessageIdentifier(111),
id-SerialNumber(112),
id-WarningAreaList(113),
id-RepetitionPeriod(114),
id-NumberofBroadcastRequest(115),
id-WarningType(116),
id-WarningSecurityInfo(117),
id-DataCodingScheme(118),
id-WarningMessageContents(119),
id-BroadcastCompletedAreaList(120),
id-Inter-SystemInformationTransferTypeEDT(121),
id-Inter-SystemInformationTransferTypeMDT(122),
id-Target-ToSource-TransparentContainer(123),
id-SRVCCOperationPossible(124),
id-SRVCCHOIndication(125),
id-NAS-DownlinkCount(126),
id-CSG-Id(127),
id-CSG-IdList(128),
id-SONConfigurationTransferECT(129),
id-SONConfigurationTransferMCT(130),
id-TraceCollectionEntityIPAddress(131),
id-MSClassmark2(132),
id-MSClassmark3(133),
id-RRC-Establishment-Cause(134),
id-NASSecurityParametersfromE-UTRAN(135),
id-NASSecurityParameterstoE-UTRAN(136),
id-DefaultPagingDRX(137),
id-Source-ToTarget-TransparentContainer-Secondary(138),
id-Target-ToSource-TransparentContainer-Secondary(139)
} (0..65535)
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
END
@@ -1,249 +0,0 @@
-- **************************************************************
--
-- Constant definitions
--
-- **************************************************************
S1AP-Constants {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
ProcedureCode,
ProtocolIE-ID
FROM S1AP-CommonDataTypes;
-- **************************************************************
--
-- Elementary Procedures
--
-- **************************************************************
id-HandoverPreparation ProcedureCode ::= 0
id-HandoverResourceAllocation ProcedureCode ::= 1
id-HandoverNotification ProcedureCode ::= 2
id-PathSwitchRequest ProcedureCode ::= 3
id-HandoverCancel ProcedureCode ::= 4
id-E-RABSetup ProcedureCode ::= 5
id-E-RABModify ProcedureCode ::= 6
id-E-RABRelease ProcedureCode ::= 7
id-E-RABReleaseIndication ProcedureCode ::= 8
id-InitialContextSetup ProcedureCode ::= 9
id-Paging ProcedureCode ::= 10
id-downlinkNASTransport ProcedureCode ::= 11
id-initialUEMessage ProcedureCode ::= 12
id-uplinkNASTransport ProcedureCode ::= 13
id-Reset ProcedureCode ::= 14
id-ErrorIndication ProcedureCode ::= 15
id-NASNonDeliveryIndication ProcedureCode ::= 16
id-S1Setup ProcedureCode ::= 17
id-UEContextReleaseRequest ProcedureCode ::= 18
id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19
id-UplinkS1cdma2000tunneling ProcedureCode ::= 20
id-UEContextModification ProcedureCode ::= 21
id-UECapabilityInfoIndication ProcedureCode ::= 22
id-UEContextRelease ProcedureCode ::= 23
id-eNBStatusTransfer ProcedureCode ::= 24
id-MMEStatusTransfer ProcedureCode ::= 25
id-DeactivateTrace ProcedureCode ::= 26
id-TraceStart ProcedureCode ::= 27
id-TraceFailureIndication ProcedureCode ::= 28
id-ENBConfigurationUpdate ProcedureCode ::= 29
id-MMEConfigurationUpdate ProcedureCode ::= 30
id-LocationReportingControl ProcedureCode ::= 31
id-LocationReportingFailureIndication ProcedureCode ::= 32
id-LocationReport ProcedureCode ::= 33
id-OverloadStart ProcedureCode ::= 34
id-OverloadStop ProcedureCode ::= 35
id-WriteReplaceWarning ProcedureCode ::= 36
id-eNBDirectInformationTransfer ProcedureCode ::= 37
id-MMEDirectInformationTransfer ProcedureCode ::= 38
id-PrivateMessage ProcedureCode ::= 39
id-eNBConfigurationTransfer ProcedureCode ::= 40
id-MMEConfigurationTransfer ProcedureCode ::= 41
id-CellTrafficTrace ProcedureCode ::= 42
-- **************************************************************
--
-- Extension constants
--
-- **************************************************************
maxPrivateIEs INTEGER ::= 65535
maxProtocolExtensions INTEGER ::= 65535
maxProtocolIEs INTEGER ::= 65535
-- **************************************************************
--
-- Lists
--
-- **************************************************************
maxNrOfCSGs INTEGER ::= 256
maxNrOfE-RABs INTEGER ::= 256
maxnoofTAIs INTEGER ::= 256
maxnoofTACs INTEGER ::= 256
maxNrOfErrors INTEGER ::= 256
maxnoofBPLMNs INTEGER ::= 6
maxnoofPLMNsPerMME INTEGER ::= 32
maxnoofEPLMNs INTEGER ::= 15
maxnoofEPLMNsPlusOne INTEGER ::= 16
maxnoofForbLACs INTEGER ::= 4096
maxnoofForbTACs INTEGER ::= 4096
maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256
maxnoofCells INTEGER ::= 16
maxnoofTAIforWarning INTEGER ::= 65535
maxnoofCellID INTEGER ::= 65535
maxnoofEmergencyAreaID INTEGER ::= 65535
maxnoofCellinTAI INTEGER ::= 65535
maxnoofCellinEAI INTEGER ::= 65535
maxnoofeNBX2TLAs INTEGER ::= 2
maxnoofRATs INTEGER ::= 8
maxnoofGroupIDs INTEGER ::= 65535
maxnoofMMECs INTEGER ::= 256
-- **************************************************************
--
-- IEs
--
-- **************************************************************
id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0
id-HandoverType ProtocolIE-ID ::= 1
id-Cause ProtocolIE-ID ::= 2
id-SourceID ProtocolIE-ID ::= 3
id-TargetID ProtocolIE-ID ::= 4
id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12
id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13
id-E-RABDataForwardingItem ProtocolIE-ID ::= 14
id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15
id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16
id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17
id-E-RABAdmittedList ProtocolIE-ID ::= 18
id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19
id-E-RABAdmittedItem ProtocolIE-ID ::= 20
id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21
id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22
id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23
id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24
id-TraceActivation ProtocolIE-ID ::= 25
id-NAS-PDU ProtocolIE-ID ::= 26
id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27
id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28
id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29
id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30
id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31
id-E-RABFailedToModifyList ProtocolIE-ID ::= 32
id-E-RABToBeReleasedList ProtocolIE-ID ::= 33
id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34
id-E-RABItem ProtocolIE-ID ::= 35
id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36
id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37
id-E-RABReleaseItem ProtocolIE-ID ::= 38
id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39
id-SecurityContext ProtocolIE-ID ::= 40
id-HandoverRestrictionList ProtocolIE-ID ::= 41
id-UEPagingID ProtocolIE-ID ::= 43
id-pagingDRX ProtocolIE-ID ::= 44
id-TAIList ProtocolIE-ID ::= 46
id-TAIItem ProtocolIE-ID ::= 47
id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48
id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49
id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50
id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51
id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52
id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53
id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57
id-CriticalityDiagnostics ProtocolIE-ID ::= 58
id-Global-ENB-ID ProtocolIE-ID ::= 59
id-eNBname ProtocolIE-ID ::= 60
id-MMEname ProtocolIE-ID ::= 61
id-ServedPLMNs ProtocolIE-ID ::= 63
id-SupportedTAs ProtocolIE-ID ::= 64
id-TimeToWait ProtocolIE-ID ::= 65
id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66
id-TAI ProtocolIE-ID ::= 67
id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69
id-cdma2000PDU ProtocolIE-ID ::= 70
id-cdma2000RATType ProtocolIE-ID ::= 71
id-cdma2000SectorID ProtocolIE-ID ::= 72
id-SecurityKey ProtocolIE-ID ::= 73
id-UERadioCapability ProtocolIE-ID ::= 74
id-GUMMEI-ID ProtocolIE-ID ::= 75
id-E-RABInformationListItem ProtocolIE-ID ::= 78
id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
id-UEIdentityIndexValue ProtocolIE-ID ::= 80
id-cdma2000HOStatus ProtocolIE-ID ::= 83
id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84
id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86
id-RelativeMMECapacity ProtocolIE-ID ::= 87
id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88
id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89
id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90
id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91
id-ResetType ProtocolIE-ID ::= 92
id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93
id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94
id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95
id-S-TMSI ProtocolIE-ID ::= 96
id-cdma2000OneXRAND ProtocolIE-ID ::= 97
id-RequestType ProtocolIE-ID ::= 98
id-UE-S1AP-IDs ProtocolIE-ID ::= 99
id-EUTRAN-CGI ProtocolIE-ID ::= 100
id-OverloadResponse ProtocolIE-ID ::= 101
id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102
id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103
id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104
id-ServedGUMMEIs ProtocolIE-ID ::= 105
id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106
id-UESecurityCapabilities ProtocolIE-ID ::= 107
id-CSFallbackIndicator ProtocolIE-ID ::= 108
id-CNDomain ProtocolIE-ID ::= 109
id-E-RABReleasedList ProtocolIE-ID ::= 110
id-MessageIdentifier ProtocolIE-ID ::= 111
id-SerialNumber ProtocolIE-ID ::= 112
id-WarningAreaList ProtocolIE-ID ::= 113
id-RepetitionPeriod ProtocolIE-ID ::= 114
id-NumberofBroadcastRequest ProtocolIE-ID ::= 115
id-WarningType ProtocolIE-ID ::= 116
id-WarningSecurityInfo ProtocolIE-ID ::= 117
id-DataCodingScheme ProtocolIE-ID ::= 118
id-WarningMessageContents ProtocolIE-ID ::= 119
id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120
id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121
id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122
id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123
id-SRVCCOperationPossible ProtocolIE-ID ::= 124
id-SRVCCHOIndication ProtocolIE-ID ::= 125
id-NAS-DownlinkCount ProtocolIE-ID ::= 126
id-CSG-Id ProtocolIE-ID ::= 127
id-CSG-IdList ProtocolIE-ID ::= 128
id-SONConfigurationTransferECT ProtocolIE-ID ::= 129
id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130
id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131
id-MSClassmark2 ProtocolIE-ID ::= 132
id-MSClassmark3 ProtocolIE-ID ::= 133
id-RRC-Establishment-Cause ProtocolIE-ID ::= 134
id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135
id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136
id-DefaultPagingDRX ProtocolIE-ID ::= 137
id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138
id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139
END
File diff suppressed because it is too large Load Diff
@@ -1,663 +0,0 @@
S1AP-PDU {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
UEAggregateMaximumBitrate,
Cause,
Cdma2000HORequiredIndication,
Cdma2000HOStatus,
Cdma2000OneXSRVCCInfo,
Cdma2000OneXRAND,
Cdma2000PDU,
Cdma2000RATType,
Cdma2000SectorID,
CNDomain,
CriticalityDiagnostics,
CSFallbackIndicator,
CSG-Id,
CSG-IdList,
Direct-Forwarding-Path-Availability,
Global-ENB-ID,
EUTRAN-CGI,
ENBname,
ENB-StatusTransfer-TransparentContainer,
ENB-UE-S1AP-ID,
GTP-TEID,
GUMMEI,
HandoverRestrictionList,
HandoverType,
MMEname,
MME-UE-S1AP-ID,
MSClassmark2,
MSClassmark3,
NAS-PDU,
NASSecurityParametersfromE-UTRAN,
NASSecurityParameterstoE-UTRAN,
OverloadResponse,
PagingDRX,
PLMNidentity,
RIMTransfer,
RelativeMMECapacity,
RequestType,
E-RAB-ID,
E-RABLevelQoSParameters,
E-RABList,
SecurityKey,
SecurityContext,
ServedGUMMEIs,
SONConfigurationTransfer,
Source-ToTarget-TransparentContainer,
SourceBSS-ToTargetBSS-TransparentContainer,
SourceeNB-ToTargeteNB-TransparentContainer,
SourceRNC-ToTargetRNC-TransparentContainer,
SubscriberProfileIDforRFP,
SRVCCOperationPossible,
SRVCCHOIndication,
SupportedTAs,
TAI,
Target-ToSource-TransparentContainer,
TargetBSS-ToSourceBSS-TransparentContainer,
TargeteNB-ToSourceeNB-TransparentContainer,
TargetID,
TargetRNC-ToSourceRNC-TransparentContainer,
TimeToWait,
TraceActivation,
E-UTRAN-Trace-ID,
TransportLayerAddress,
UEIdentityIndexValue,
UEPagingID,
UERadioCapability,
UE-S1AP-IDs,
UE-associatedLogicalS1-ConnectionItem,
UESecurityCapabilities,
S-TMSI,
MessageIdentifier,
SerialNumber,
WarningAreaList,
RepetitionPeriod,
NumberofBroadcastRequest,
WarningType,
WarningSecurityInfo,
DataCodingScheme,
WarningMessageContents,
BroadcastCompletedAreaList,
RRC-Establishment-Cause
FROM S1AP-IEs
ProcedureCode,
Criticality,
ProtocolIE-ID
FROM S1AP-CommonDataTypes
id-uEaggregateMaximumBitrate,
id-Cause,
id-cdma2000HORequiredIndication,
id-cdma2000HOStatus,
id-cdma2000OneXSRVCCInfo,
id-cdma2000OneXRAND,
id-cdma2000PDU,
id-cdma2000RATType,
id-cdma2000SectorID,
id-CNDomain,
id-CriticalityDiagnostics,
id-CSFallbackIndicator,
id-CSG-Id,
id-CSG-IdList,
id-DefaultPagingDRX,
id-Direct-Forwarding-Path-Availability,
id-Global-ENB-ID,
id-EUTRAN-CGI,
id-eNBname,
id-eNB-StatusTransfer-TransparentContainer,
id-eNB-UE-S1AP-ID,
id-GERANtoLTEHOInformationRes,
id-GUMMEI-ID,
id-HandoverRestrictionList,
id-HandoverType,
id-InitialContextSetup,
id-Inter-SystemInformationTransferTypeEDT,
id-Inter-SystemInformationTransferTypeMDT,
id-NAS-DownlinkCount,
id-MMEname,
id-MME-UE-S1AP-ID,
id-MSClassmark2,
id-MSClassmark3,
id-NAS-PDU,
id-NASSecurityParametersfromE-UTRAN,
id-NASSecurityParameterstoE-UTRAN,
id-OverloadResponse,
id-pagingDRX,
id-RelativeMMECapacity,
id-RequestType,
id-E-RABAdmittedItem,
id-E-RABAdmittedList,
id-E-RABDataForwardingItem,
id-E-RABFailedToModifyList,
id-E-RABFailedToReleaseList,
id-E-RABFailedtoSetupItemHOReqAck,
id-E-RABFailedToSetupListBearerSURes,
id-E-RABFailedToSetupListCtxtSURes,
id-E-RABFailedToSetupListHOReqAck,
id-E-RABFailedToBeReleasedList,
id-E-RABModify,
id-E-RABModifyItemBearerModRes,
id-E-RABModifyListBearerModRes,
id-E-RABRelease,
id-E-RABReleaseItemBearerRelComp,
id-E-RABReleaseItemHOCmd,
id-E-RABReleaseListBearerRelComp,
id-E-RABReleaseIndication,
id-E-RABSetup,
id-E-RABSetupItemBearerSURes,
id-E-RABSetupItemCtxtSURes,
id-E-RABSetupListBearerSURes,
id-E-RABSetupListCtxtSURes,
id-E-RABSubjecttoDataForwardingList,
id-E-RABToBeModifiedItemBearerModReq,
id-E-RABToBeModifiedListBearerModReq,
id-E-RABToBeReleasedList,
id-E-RABReleasedList,
id-E-RABToBeSetupItemBearerSUReq,
id-E-RABToBeSetupItemCtxtSUReq,
id-E-RABToBeSetupItemHOReq,
id-E-RABToBeSetupListBearerSUReq,
id-E-RABToBeSetupListCtxtSUReq,
id-E-RABToBeSetupListHOReq,
id-E-RABToBeSwitchedDLItem,
id-E-RABToBeSwitchedDLList,
id-E-RABToBeSwitchedULList,
id-E-RABToBeSwitchedULItem,
id-E-RABtoReleaseListHOCmd,
id-SecurityKey,
id-SecurityContext,
id-ServedGUMMEIs,
id-SONConfigurationTransferECT,
id-SONConfigurationTransferMCT,
id-Source-ToTarget-TransparentContainer,
id-Source-ToTarget-TransparentContainer-Secondary,
id-SourceMME-UE-S1AP-ID,
id-SRVCCOperationPossible,
id-SRVCCHOIndication,
id-SubscriberProfileIDforRFP,
id-SupportedTAs,
id-S-TMSI,
id-TAI,
id-TAIItem,
id-TAIList,
id-Target-ToSource-TransparentContainer,
id-Target-ToSource-TransparentContainer-Secondary,
id-TargetID,
id-TimeToWait,
id-TraceActivation,
id-E-UTRAN-Trace-ID,
id-UEIdentityIndexValue,
id-UEPagingID,
id-UERadioCapability,
id-UTRANtoLTEHOInformationRes,
id-UE-associatedLogicalS1-ConnectionListResAck,
id-UE-associatedLogicalS1-ConnectionItem,
id-UESecurityCapabilities,
id-UE-S1AP-IDs,
id-ResetType,
id-MessageIdentifier,
id-SerialNumber,
id-WarningAreaList,
id-RepetitionPeriod,
id-NumberofBroadcastRequest,
id-WarningType,
id-WarningSecurityInfo,
id-DataCodingScheme,
id-WarningMessageContents,
id-BroadcastCompletedAreaList,
id-RRC-Establishment-Cause,
id-TraceCollectionEntityIPAddress,
maxnoofTAIs,
maxNrOfErrors,
maxNrOfE-RABs,
maxNrOfIndividualS1ConnectionsToReset,
maxnoofEmergencyAreaID,
maxnoofCellID,
maxnoofTAIforWarning,
maxnoofCellinTAI,
maxnoofCellinEAI,
id-CellTrafficTrace,
id-DeactivateTrace,
id-downlinkNASTransport,
id-DownlinkS1cdma2000tunneling,
id-eNBStatusTransfer,
id-ErrorIndication,
id-HandoverCancel,
id-HandoverNotification,
id-HandoverPreparation,
id-HandoverResourceAllocation,
id-InitialContextSetup,
id-initialUEMessage,
id-ENBConfigurationUpdate,
id-LocationReportingControl,
id-LocationReportingFailureIndication,
id-LocationReport,
id-eNBDirectInformationTransfer,
id-MMEConfigurationUpdate,
id-MMEDirectInformationTransfer,
id-MMEStatusTransfer,
id-NASNonDeliveryIndication,
id-OverloadStart,
id-OverloadStop,
id-Paging,
id-PathSwitchRequest,
id-PrivateMessage,
id-Reset,
id-S1Setup,
id-E-RABModify,
id-E-RABRelease,
id-E-RABReleaseIndication,
id-E-RABSetup,
id-TraceFailureIndication,
id-TraceStart,
id-UECapabilityInfoIndication,
id-UEContextModification,
id-UEContextRelease,
id-UEContextReleaseRequest,
id-uplinkNASTransport,
id-UplinkS1cdma2000tunneling,
id-WriteReplaceWarning,
id-eNBConfigurationTransfer,
id-MMEConfigurationTransfer,
maxProtocolIEs
FROM S1AP-Constants;
-- **************************************************************
--
-- S1 SETUP ELEMENTARY PROCEDURE
--
-- **************************************************************
S1AP-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]
}
S1AP-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
}
HandoverRequired ::= SEQUENCE {
handoverRequired-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverCommand ::= SEQUENCE {
handoverCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverPreparationFailure ::= SEQUENCE {
handoverPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverRequest ::= SEQUENCE {
handoverRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverRequestAcknowledge ::= SEQUENCE {
handoverRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverFailure ::= SEQUENCE {
handoverFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverNotify ::= SEQUENCE {
handoverNotify-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
PathSwitchRequest ::= SEQUENCE {
pathSwitchRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
PathSwitchRequestAcknowledge ::= SEQUENCE {
pathSwitchRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
PathSwitchRequestFailure ::= SEQUENCE {
pathSwitchRequestFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABSetupRequest ::= SEQUENCE {
e-RABSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABSetupResponse ::= SEQUENCE {
e-RABSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABModifyRequest ::= SEQUENCE {
e-RABModifyRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABModifyResponse ::= SEQUENCE {
e-RABModifyResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABReleaseIndication ::= SEQUENCE {
e-RABReleaseIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABReleaseCommand ::= SEQUENCE {
e-RABReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABReleaseResponse ::= SEQUENCE {
e-RABReleaseResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
InitialContextSetupRequest ::= SEQUENCE {
initialContextSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
InitialContextSetupResponse ::= SEQUENCE {
initialContextSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
InitialContextSetupFailure ::= SEQUENCE {
initialContextSetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextReleaseRequest ::= SEQUENCE {
ueContextReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Paging ::= SEQUENCE {
paging-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
DownlinkNASTransport ::= SEQUENCE {
downlinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
InitialUEMessage ::= SEQUENCE {
initialUEMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UplinkNASTransport ::= SEQUENCE {
uplinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
NASNonDeliveryIndication ::= SEQUENCE {
nasNonDeliveryIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverCancel ::= SEQUENCE {
handoverCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverCancelAcknowledge ::= SEQUENCE {
handoverCancelAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Reset ::= SEQUENCE {
reset-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ResetAcknowledge ::= SEQUENCE {
resetAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
S1SetupResponse ::= SEQUENCE {
s1SetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
S1SetupRequest ::= SEQUENCE {
s1SetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
S1SetupFailure ::= SEQUENCE
{
s1SetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ErrorIndication ::= SEQUENCE {
errorIndication-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,
...
}
MMEConfigurationUpdate ::= SEQUENCE {
mmeConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
mmeConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEConfigurationUpdateFailure ::= SEQUENCE {
mmeConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
DownlinkS1cdma2000tunneling ::= SEQUENCE {
downlinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UplinkS1cdma2000tunneling ::= SEQUENCE {
uplinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextModificationRequest ::= SEQUENCE {
ueContextModificationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextModificationResponse ::= SEQUENCE {
ueContextModificationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextModificationFailure ::= SEQUENCE {
ueContextModificationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UECapabilityInfoIndication ::= SEQUENCE {
ueCapabilityInfoIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextReleaseCommand ::= SEQUENCE {
ueContextReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextReleaseComplete ::= SEQUENCE {
ueContextReleaseComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ENBStatusTransfer ::= SEQUENCE {
eNBStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEStatusTransfer ::= SEQUENCE {
mmeStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
DeactivateTrace ::= SEQUENCE {
deactivateTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
TraceStart ::= SEQUENCE {
traceStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
TraceFailureIndication ::= SEQUENCE {
traceFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
CellTrafficTrace ::= SEQUENCE {
cellTrafficTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
LocationReportingControl ::= SEQUENCE {
locationReportingControl-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
LocationReportingFailureIndication ::= SEQUENCE {
locationReportingFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
LocationReport ::= SEQUENCE {
locationReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
OverloadStart ::= SEQUENCE {
overloadStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
OverloadStop ::= SEQUENCE {
overloadStop-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
WriteReplaceWarningRequest ::= SEQUENCE {
writeReplaceWarningRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
WriteReplaceWarningResponse ::= SEQUENCE {
writeReplaceWarningResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ENBDirectInformationTransfer ::= SEQUENCE {
eNBDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEDirectInformationTransfer ::= SEQUENCE {
mmeDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ENBConfigurationTransfer ::= SEQUENCE {
eNBConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEConfigurationTransfer ::= SEQUENCE {
mmeConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
PrivateMessage ::= SEQUENCE {
privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
IE ::= SEQUENCE {
id ProtocolIE-ID,
criticality Criticality,
value ANY
}
END
File diff suppressed because it is too large Load Diff
@@ -1,217 +0,0 @@
-- **************************************************************
--
-- Common definitions
--
-- **************************************************************
S1AP-CommonDataTypes {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
Criticality ::= ENUMERATED { reject, ignore, notify }
Presence ::= ENUMERATED { optional, conditional, mandatory }
PrivateIE-ID ::= CHOICE {
local INTEGER (0..65535),
global OBJECT IDENTIFIER
}
ProcedureCode ::= INTEGER {
id-HandoverPreparation(0),
id-HandoverResourceAllocation(1),
id-HandoverNotification(2),
id-PathSwitchRequest(3),
id-HandoverCancel(4),
id-E-RABSetup(5),
id-E-RABModify(6),
id-E-RABRelease(7),
id-E-RABReleaseIndication(8),
id-InitialContextSetup(9),
id-Paging(10),
id-downlinkNASTransport(11),
id-initialUEMessage(12),
id-uplinkNASTransport(13),
id-Reset(14),
id-ErrorIndication(15),
id-NASNonDeliveryIndication(16),
id-S1Setup(17),
id-UEContextReleaseRequest(18),
id-DownlinkS1cdma2000tunneling(19),
id-UplinkS1cdma2000tunneling(20),
id-UEContextModification(21),
id-UECapabilityInfoIndication(22),
id-UEContextRelease(23),
id-eNBStatusTransfer(24),
id-MMEStatusTransfer(25),
id-DeactivateTrace(26),
id-TraceStart(27),
id-TraceFailureIndication(28),
id-ENBConfigurationUpdate(29),
id-MMEConfigurationUpdate(30),
id-LocationReportingControl(31),
id-LocationReportingFailureIndication(32),
id-LocationReport(33),
id-OverloadStart(34),
id-OverloadStop(35),
id-WriteReplaceWarning(36),
id-eNBDirectInformationTransfer(37),
id-MMEDirectInformationTransfer(38),
id-PrivateMessage(39),
id-eNBConfigurationTransfer(40),
id-MMEConfigurationTransfer(41),
id-CellTrafficTrace(42),
id-Kill(43),
id-downlinkUEAssociatedLPPaTransport(44),
id-uplinkUEAssociatedLPPaTransport(45),
id-downlinkNonUEAssociatedLPPaTransport(46),
id-uplinkNonUEAssociatedLPPaTransport(47)
} (0..255)
ProtocolExtensionID ::= INTEGER (0..65535)
ProtocolIE-ID ::= INTEGER {
id-MME-UE-S1AP-ID(0),
id-HandoverType(1),
id-Cause(2),
id-SourceID(3),
id-TargetID (4),
id-eNB-UE-S1AP-ID(8),
id-E-RABSubjecttoDataForwardingList(12),
id-E-RABtoReleaseListHOCmd(13),
id-E-RABDataForwardingItem(14),
id-E-RABReleaseItemBearerRelComp(15),
id-E-RABToBeSetupListBearerSUReq(16),
id-E-RABToBeSetupItemBearerSUReq(17),
id-E-RABAdmittedList(18),
id-E-RABFailedToSetupListHOReqAck(19),
id-E-RABAdmittedItem(20),
id-E-RABFailedtoSetupItemHOReqAck(21),
id-E-RABToBeSwitchedDLList(22),
id-E-RABToBeSwitchedDLItem(23),
id-E-RABToBeSetupListCtxtSUReq(24),
id-TraceActivation(25),
id-NAS-PDU(26),
id-E-RABToBeSetupItemHOReq(27),
id-E-RABSetupListBearerSURes(28),
id-E-RABFailedToSetupListBearerSURes(29),
id-E-RABToBeModifiedListBearerModReq(30),
id-E-RABModifyListBearerModRes(31),
id-E-RABFailedToModifyList(32),
id-E-RABToBeReleasedList(33),
id-E-RABFailedToReleaseList(34),
id-E-RABItem(35),
id-E-RABToBeModifiedItemBearerModReq(36),
id-E-RABModifyItemBearerModRes(37),
id-E-RABReleaseItem(38),
id-E-RABSetupItemBearerSURes(39),
id-SecurityContext(40),
id-HandoverRestrictionList(41),
id-UEPagingID(43),
id-pagingDRX(44),
id-TAIList(46),
id-TAIItem(47),
id-E-RABFailedToSetupListCtxtSURes(48),
id-E-RABReleaseItemHOCmd(49),
id-E-RABSetupItemCtxtSURes(50),
id-E-RABSetupListCtxtSURes(51),
id-E-RABToBeSetupItemCtxtSUReq(52),
id-E-RABToBeSetupListHOReq(53),
id-GERANtoLTEHOInformationRes(55),
id-UTRANtoLTEHOInformationRes(57),
id-CriticalityDiagnostics(58),
id-Global-ENB-ID(59),
id-eNBname(60),
id-MMEname(61),
id-ServedPLMNs(63),
id-SupportedTAs(64),
id-TimeToWait(65),
id-uEaggregateMaximumBitrate(66),
id-TAI(67),
id-E-RABReleaseListBearerRelComp(69),
id-cdma2000PDU(70),
id-cdma2000RATType(71),
id-cdma2000SectorID(72),
id-SecurityKey(73),
id-UERadioCapability(74),
id-GUMMEI-ID(75),
id-E-RABInformationListItem(78),
id-Direct-Forwarding-Path-Availability(79),
id-UEIdentityIndexValue(80),
id-cdma2000HOStatus(83),
id-cdma2000HORequiredIndication(84),
id-E-UTRAN-Trace-ID(86),
id-RelativeMMECapacity(87),
id-SourceMME-UE-S1AP-ID(88),
id-Bearers-SubjectToStatusTransfer-Item(89),
id-eNB-StatusTransfer-TransparentContainer(90),
id-UE-associatedLogicalS1-ConnectionItem(91),
id-ResetType(92),
id-UE-associatedLogicalS1-ConnectionListResAck(93),
id-E-RABToBeSwitchedULItem(94),
id-E-RABToBeSwitchedULList(95),
id-S-TMSI(96),
id-cdma2000OneXRAND(97),
id-RequestType(98),
id-UE-S1AP-IDs(99),
id-EUTRAN-CGI(100),
id-OverloadResponse(101),
id-cdma2000OneXSRVCCInfo(102),
id-E-RABFailedToBeReleasedList(103),
id-Source-ToTarget-TransparentContainer(104),
id-ServedGUMMEIs(105),
id-SubscriberProfileIDforRFP(106),
id-UESecurityCapabilities(107),
id-CSFallbackIndicator(108),
id-CNDomain(109),
id-E-RABReleasedList(110),
id-MessageIdentifier(111),
id-SerialNumber(112),
id-WarningAreaList(113),
id-RepetitionPeriod(114),
id-NumberofBroadcastRequest(115),
id-WarningType(116),
id-WarningSecurityInfo(117),
id-DataCodingScheme(118),
id-WarningMessageContents(119),
id-BroadcastCompletedAreaList(120),
id-Inter-SystemInformationTransferTypeEDT(121),
id-Inter-SystemInformationTransferTypeMDT(122),
id-Target-ToSource-TransparentContainer(123),
id-SRVCCOperationPossible(124),
id-SRVCCHOIndication(125),
id-NAS-DownlinkCount(126),
id-CSG-Id(127),
id-CSG-IdList(128),
id-SONConfigurationTransferECT(129),
id-SONConfigurationTransferMCT(130),
id-TraceCollectionEntityIPAddress(131),
id-MSClassmark2(132),
id-MSClassmark3(133),
id-RRC-Establishment-Cause(134),
id-NASSecurityParametersfromE-UTRAN(135),
id-NASSecurityParameterstoE-UTRAN(136),
id-DefaultPagingDRX(137),
id-Source-ToTarget-TransparentContainer-Secondary(138),
id-Target-ToSource-TransparentContainer-Secondary(139),
id-EUTRANRoundTripDelayEstimationInfo(140),
id-BroadcastCancelledAreaList(141),
id-ConcurrentWarningMessageIndicator(142),
id-Data-Forwarding-Not-Possible(143),
id-ExtendedRepetitionPeriod(144),
id-CellAccessMode(145),
id-CSGMembershipStatus(146),
id-LPPa-PDU(147),
id-Routing-ID(148),
id-Time-Synchronization-Info(149),
id-PS-ServiceNotAvailable(150),
id-RegisteredLAI(159)
} (0..65535)
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
END
@@ -1,265 +0,0 @@
-- **************************************************************
--
-- Constant definitions
--
-- **************************************************************
S1AP-Constants {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
ProcedureCode,
ProtocolIE-ID
FROM S1AP-CommonDataTypes;
-- **************************************************************
--
-- Elementary Procedures
--
-- **************************************************************
id-HandoverPreparation ProcedureCode ::= 0
id-HandoverResourceAllocation ProcedureCode ::= 1
id-HandoverNotification ProcedureCode ::= 2
id-PathSwitchRequest ProcedureCode ::= 3
id-HandoverCancel ProcedureCode ::= 4
id-E-RABSetup ProcedureCode ::= 5
id-E-RABModify ProcedureCode ::= 6
id-E-RABRelease ProcedureCode ::= 7
id-E-RABReleaseIndication ProcedureCode ::= 8
id-InitialContextSetup ProcedureCode ::= 9
id-Paging ProcedureCode ::= 10
id-downlinkNASTransport ProcedureCode ::= 11
id-initialUEMessage ProcedureCode ::= 12
id-uplinkNASTransport ProcedureCode ::= 13
id-Reset ProcedureCode::= 14
id-ErrorIndication ProcedureCode ::= 15
id-NASNonDeliveryIndication ProcedureCode ::= 16
id-S1Setup ProcedureCode ::= 17
id-UEContextReleaseRequest ProcedureCode ::= 18
id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19
id-UplinkS1cdma2000tunneling ProcedureCode ::= 20
id-UEContextModification ProcedureCode ::= 21
id-UECapabilityInfoIndication ProcedureCode ::= 22
id-UEContextRelease ProcedureCode ::= 23
id-eNBStatusTransfer ProcedureCode ::= 24
id-MMEStatusTransfer ProcedureCode ::= 25
id-DeactivateTrace ProcedureCode ::= 26
id-TraceStart ProcedureCode ::= 27
id-TraceFailureIndication ProcedureCode ::= 28
id-ENBConfigurationUpdate ProcedureCode ::= 29
id-MMEConfigurationUpdate ProcedureCode ::= 30
id-LocationReportingControl ProcedureCode ::= 31
id-LocationReportingFailureIndication ProcedureCode ::= 32
id-LocationReport ProcedureCode ::= 33
id-OverloadStart ProcedureCode ::= 34
id-OverloadStop ProcedureCode ::= 35
id-WriteReplaceWarning ProcedureCode ::= 36
id-eNBDirectInformationTransfer ProcedureCode ::= 37
id-MMEDirectInformationTransfer ProcedureCode ::= 38
id-PrivateMessage ProcedureCode ::= 39
id-eNBConfigurationTransfer ProcedureCode ::= 40
id-MMEConfigurationTransfer ProcedureCode ::= 41
id-CellTrafficTrace ProcedureCode ::= 42
id-Kill ProcedureCode ::= 43
id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44
id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45
id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46
id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47
-- **************************************************************
--
-- Extension constants
--
-- **************************************************************
maxPrivateIEs INTEGER ::= 65535
maxProtocolExtensions INTEGER ::= 65535
maxProtocolIEs INTEGER ::= 65535
-- **************************************************************
--
-- Lists
--
-- **************************************************************
maxNrOfCSGs INTEGER ::= 256
maxNrOfE-RABs INTEGER ::= 256
maxnoofTAIs INTEGER ::= 256
maxnoofTACs INTEGER ::= 256
maxNrOfErrors INTEGER ::= 256
maxnoofBPLMNs INTEGER ::= 6
maxnoofPLMNsPerMME INTEGER ::= 32
maxnoofEPLMNs INTEGER ::= 15
maxnoofEPLMNsPlusOne INTEGER ::= 16
maxnoofForbLACs INTEGER ::= 4096
maxnoofForbTACs INTEGER ::= 4096
maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256
maxnoofCells INTEGER ::= 16
maxnoofTAIforWarning INTEGER ::= 65535
maxnoofCellID INTEGER ::= 65535
maxnoofEmergencyAreaID INTEGER ::= 65535
maxnoofCellinTAI INTEGER ::= 65535
maxnoofCellinEAI INTEGER ::= 65535
maxnoofeNBX2TLAs INTEGER ::= 2
maxnoofRATs INTEGER ::= 8
maxnoofGroupIDs INTEGER ::= 65535
maxnoofMMECs INTEGER ::= 256
-- **************************************************************
--
-- IEs
--
-- **************************************************************
id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0
id-HandoverType ProtocolIE-ID ::= 1
id-Cause ProtocolIE-ID ::= 2
id-SourceID ProtocolIE-ID ::= 3
id-TargetID ProtocolIE-ID ::= 4
id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12
id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13
id-E-RABDataForwardingItem ProtocolIE-ID ::= 14
id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15
id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16
id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17
id-E-RABAdmittedList ProtocolIE-ID ::= 18
id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19
id-E-RABAdmittedItem ProtocolIE-ID ::= 20
id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21
id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22
id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23
id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24
id-TraceActivation ProtocolIE-ID ::= 25
id-NAS-PDU ProtocolIE-ID ::= 26
id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27
id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28
id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29
id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30
id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31
id-E-RABFailedToModifyList ProtocolIE-ID ::= 32
id-E-RABToBeReleasedList ProtocolIE-ID ::= 33
id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34
id-E-RABItem ProtocolIE-ID ::= 35
id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36
id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37
id-E-RABReleaseItem ProtocolIE-ID ::= 38
id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39
id-SecurityContext ProtocolIE-ID ::= 40
id-HandoverRestrictionList ProtocolIE-ID ::= 41
id-UEPagingID ProtocolIE-ID ::= 43
id-pagingDRX ProtocolIE-ID ::= 44
id-TAIList ProtocolIE-ID ::= 46
id-TAIItem ProtocolIE-ID ::= 47
id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48
id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49
id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50
id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51
id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52
id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53
id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57
id-CriticalityDiagnostics ProtocolIE-ID ::= 58
id-Global-ENB-ID ProtocolIE-ID ::= 59
id-eNBname ProtocolIE-ID ::= 60
id-MMEname ProtocolIE-ID ::= 61
id-ServedPLMNs ProtocolIE-ID ::= 63
id-SupportedTAs ProtocolIE-ID ::= 64
id-TimeToWait ProtocolIE-ID ::= 65
id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66
id-TAI ProtocolIE-ID ::= 67
id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69
id-cdma2000PDU ProtocolIE-ID ::= 70
id-cdma2000RATType ProtocolIE-ID ::= 71
id-cdma2000SectorID ProtocolIE-ID ::= 72
id-SecurityKey ProtocolIE-ID ::= 73
id-UERadioCapability ProtocolIE-ID ::= 74
id-GUMMEI-ID ProtocolIE-ID ::= 75
id-E-RABInformationListItem ProtocolIE-ID ::= 78
id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
id-UEIdentityIndexValue ProtocolIE-ID ::= 80
id-cdma2000HOStatus ProtocolIE-ID ::= 83
id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84
id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86
id-RelativeMMECapacity ProtocolIE-ID ::= 87
id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88
id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89
id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90
id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91
id-ResetType ProtocolIE-ID ::= 92
id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93
id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94
id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95
id-S-TMSI ProtocolIE-ID ::= 96
id-cdma2000OneXRAND ProtocolIE-ID ::= 97
id-RequestType ProtocolIE-ID ::= 98
id-UE-S1AP-IDs ProtocolIE-ID ::= 99
id-EUTRAN-CGI ProtocolIE-ID ::= 100
id-OverloadResponse ProtocolIE-ID ::= 101
id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102
id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103
id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104
id-ServedGUMMEIs ProtocolIE-ID ::= 105
id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106
id-UESecurityCapabilities ProtocolIE-ID ::= 107
id-CSFallbackIndicator ProtocolIE-ID ::= 108
id-CNDomain ProtocolIE-ID ::= 109
id-E-RABReleasedList ProtocolIE-ID ::= 110
id-MessageIdentifier ProtocolIE-ID ::= 111
id-SerialNumber ProtocolIE-ID ::= 112
id-WarningAreaList ProtocolIE-ID ::= 113
id-RepetitionPeriod ProtocolIE-ID ::= 114
id-NumberofBroadcastRequest ProtocolIE-ID ::= 115
id-WarningType ProtocolIE-ID ::= 116
id-WarningSecurityInfo ProtocolIE-ID ::= 117
id-DataCodingScheme ProtocolIE-ID ::= 118
id-WarningMessageContents ProtocolIE-ID ::= 119
id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120
id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121
id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122
id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123
id-SRVCCOperationPossible ProtocolIE-ID ::= 124
id-SRVCCHOIndication ProtocolIE-ID ::= 125
id-NAS-DownlinkCount ProtocolIE-ID ::= 126
id-CSG-Id ProtocolIE-ID ::= 127
id-CSG-IdList ProtocolIE-ID ::= 128
id-SONConfigurationTransferECT ProtocolIE-ID ::= 129
id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130
id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131
id-MSClassmark2 ProtocolIE-ID ::= 132
id-MSClassmark3 ProtocolIE-ID ::= 133
id-RRC-Establishment-Cause ProtocolIE-ID ::= 134
id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135
id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136
id-DefaultPagingDRX ProtocolIE-ID ::= 137
id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138
id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139
id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140
id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141
id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142
id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143
id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144
id-CellAccessMode ProtocolIE-ID ::= 145
id-CSGMembershipStatus ProtocolIE-ID ::= 146
id-LPPa-PDU ProtocolIE-ID ::= 147
id-Routing-ID ProtocolIE-ID ::= 148
id-Time-Synchronization-Info ProtocolIE-ID ::= 149
id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150
id-RegisteredLAI ProtocolIE-ID ::= 159
END
@@ -1,197 +0,0 @@
-- **************************************************************
--
-- Container definitions
--
-- **************************************************************
S1AP-Containers {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
Criticality,
Presence,
PrivateIE-ID,
ProtocolExtensionID,
ProtocolIE-ID
FROM S1AP-CommonDataTypes
maxPrivateIEs,
maxProtocolExtensions,
maxProtocolIEs
FROM S1AP-Constants;
-- **************************************************************
--
-- Class Definition for Protocol IEs
--
-- **************************************************************
S1AP-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
--
-- **************************************************************
S1AP-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
--
-- **************************************************************
S1AP-PROTOCOL-EXTENSION ::= CLASS {
&id ProtocolExtensionID UNIQUE,
&criticality Criticality,
&Extension,
&presence Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
EXTENSION &Extension
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Private IEs
--
-- **************************************************************
S1AP-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 {S1AP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::=
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
id S1AP-PROTOCOL-IES.&id ({IEsSetParam}),
criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container for Protocol IE Pairs
--
-- **************************************************************
ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-FieldPair {{IEsSetParam}}
ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container Lists for Protocol IE Containers
--
-- **************************************************************
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (lowerBound..upperBound)) OF
ProtocolIE-SingleContainer {{IEsSetParam}}
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (lowerBound..upperBound)) OF
ProtocolIE-ContainerPair {{IEsSetParam}}
-- **************************************************************
--
-- Container for Protocol Extensions
--
-- **************************************************************
ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
ProtocolExtensionField {{ExtensionSetParam}}
ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
}
-- **************************************************************
--
-- Container for Private IEs
--
-- **************************************************************
PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::=
SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
PrivateIE-Field {{IEsSetParam}}
PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
id S1AP-PRIVATE-IES.&id ({IEsSetParam}),
criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
}
END
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,591 +0,0 @@
-- **************************************************************
--
-- Elementary Procedure definitions
--
-- **************************************************************
S1AP-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
Criticality,
ProcedureCode
FROM S1AP-CommonDataTypes
CellTrafficTrace,
DeactivateTrace,
DownlinkUEAssociatedLPPaTransport,
DownlinkNASTransport,
DownlinkNonUEAssociatedLPPaTransport,
DownlinkS1cdma2000tunneling,
ENBDirectInformationTransfer,
ENBStatusTransfer,
ENBConfigurationUpdate,
ENBConfigurationUpdateAcknowledge,
ENBConfigurationUpdateFailure,
ErrorIndication,
HandoverCancel,
HandoverCancelAcknowledge,
HandoverCommand,
HandoverFailure,
HandoverNotify,
HandoverPreparationFailure,
HandoverRequest,
HandoverRequestAcknowledge,
HandoverRequired,
InitialContextSetupFailure,
InitialContextSetupRequest,
InitialContextSetupResponse,
InitialUEMessage,
KillRequest,
KillResponse,
LocationReportingControl,
LocationReportingFailureIndication,
LocationReport,
MMEConfigurationUpdate,
MMEConfigurationUpdateAcknowledge,
MMEConfigurationUpdateFailure,
MMEDirectInformationTransfer,
MMEStatusTransfer,
NASNonDeliveryIndication,
OverloadStart,
OverloadStop,
Paging,
PathSwitchRequest,
PathSwitchRequestAcknowledge,
PathSwitchRequestFailure,
PrivateMessage,
Reset,
ResetAcknowledge,
S1SetupFailure,
S1SetupRequest,
S1SetupResponse,
E-RABModifyRequest,
E-RABModifyResponse,
E-RABReleaseCommand,
E-RABReleaseResponse,
E-RABReleaseIndication,
E-RABSetupRequest,
E-RABSetupResponse,
TraceFailureIndication,
TraceStart,
UECapabilityInfoIndication,
UEContextModificationFailure,
UEContextModificationRequest,
UEContextModificationResponse,
UEContextReleaseCommand,
UEContextReleaseComplete,
UEContextReleaseRequest,
UplinkUEAssociatedLPPaTransport,
UplinkNASTransport,
UplinkNonUEAssociatedLPPaTransport,
UplinkS1cdma2000tunneling,
WriteReplaceWarningRequest,
WriteReplaceWarningResponse,
ENBConfigurationTransfer,
MMEConfigurationTransfer
FROM S1AP-PDU-Contents
id-CellTrafficTrace,
id-DeactivateTrace,
id-downlinkUEAssociatedLPPaTransport,
id-downlinkNASTransport,
id-downlinkNonUEAssociatedLPPaTransport,
id-DownlinkS1cdma2000tunneling,
id-eNBStatusTransfer,
id-ErrorIndication,
id-HandoverCancel,
id-HandoverNotification,
id-HandoverPreparation,
id-HandoverResourceAllocation,
id-InitialContextSetup,
id-initialUEMessage,
id-ENBConfigurationUpdate,
id-Kill,
id-LocationReportingControl,
id-LocationReportingFailureIndication,
id-LocationReport,
id-eNBDirectInformationTransfer,
id-MMEConfigurationUpdate,
id-MMEDirectInformationTransfer,
id-MMEStatusTransfer,
id-NASNonDeliveryIndication,
id-OverloadStart,
id-OverloadStop,
id-Paging,
id-PathSwitchRequest,
id-PrivateMessage,
id-Reset,
id-S1Setup,
id-E-RABModify,
id-E-RABRelease,
id-E-RABReleaseIndication,
id-E-RABSetup,
id-TraceFailureIndication,
id-TraceStart,
id-UECapabilityInfoIndication,
id-UEContextModification,
id-UEContextRelease,
id-UEContextReleaseRequest,
id-uplinkUEAssociatedLPPaTransport,
id-uplinkNASTransport,
id-uplinkNonUEAssociatedLPPaTransport,
id-UplinkS1cdma2000tunneling,
id-WriteReplaceWarning,
id-eNBConfigurationTransfer,
id-MMEConfigurationTransfer
FROM S1AP-Constants;
-- **************************************************************
--
-- Interface Elementary Procedure Class
--
-- **************************************************************
S1AP-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
--
-- **************************************************************
S1AP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
unsuccessfulOutcome UnsuccessfulOutcome,
...
}
InitiatingMessage ::= SEQUENCE {
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
SuccessfulOutcome ::= SEQUENCE {
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
UnsuccessfulOutcome ::= SEQUENCE {
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
-- **************************************************************
--
-- Interface Elementary Procedure List
--
-- **************************************************************
S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= {
S1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
S1AP-ELEMENTARY-PROCEDURES-CLASS-2,
...
}
S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= {
handoverPreparation |
handoverResourceAllocation |
pathSwitchRequest |
e-RABSetup |
e-RABModify |
e-RABRelease |
initialContextSetup |
handoverCancel |
kill |
reset |
s1Setup |
uEContextModification |
uEContextRelease |
eNBConfigurationUpdate |
mMEConfigurationUpdate |
writeReplaceWarning ,
...
}
S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
handoverNotification |
e-RABReleaseIndication |
paging |
downlinkNASTransport |
initialUEMessage |
uplinkNASTransport |
errorIndication |
nASNonDeliveryIndication |
uEContextReleaseRequest |
downlinkS1cdma2000tunneling |
uplinkS1cdma2000tunneling |
uECapabilityInfoIndication |
eNBStatusTransfer |
mMEStatusTransfer |
deactivateTrace |
traceStart |
traceFailureIndication |
cellTrafficTrace |
locationReportingControl |
locationReportingFailureIndication |
locationReport |
overloadStart |
overloadStop |
eNBDirectInformationTransfer |
mMEDirectInformationTransfer |
eNBConfigurationTransfer |
mMEConfigurationTransfer |
privateMessage ,
...,
downlinkUEAssociatedLPPaTransport |
uplinkUEAssociatedLPPaTransport |
downlinkNonUEAssociatedLPPaTransport |
uplinkNonUEAssociatedLPPaTransport
}
-- **************************************************************
--
-- Interface Elementary Procedures
--
-- **************************************************************
handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverRequired
SUCCESSFUL OUTCOME HandoverCommand
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
PROCEDURE CODE id-HandoverPreparation
CRITICALITY reject
}
handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverRequest
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
UNSUCCESSFUL OUTCOME HandoverFailure
PROCEDURE CODE id-HandoverResourceAllocation
CRITICALITY reject
}
handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverNotify
PROCEDURE CODE id-HandoverNotification
CRITICALITY ignore
}
pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE PathSwitchRequest
SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
PROCEDURE CODE id-PathSwitchRequest
CRITICALITY reject
}
e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E-RABSetupRequest
SUCCESSFUL OUTCOME E-RABSetupResponse
PROCEDURE CODE id-E-RABSetup
CRITICALITY reject
}
e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E-RABModifyRequest
SUCCESSFUL OUTCOME E-RABModifyResponse
PROCEDURE CODE id-E-RABModify
CRITICALITY reject
}
e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E-RABReleaseCommand
SUCCESSFUL OUTCOME E-RABReleaseResponse
PROCEDURE CODE id-E-RABRelease
CRITICALITY reject
}
e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E-RABReleaseIndication
PROCEDURE CODE id-E-RABReleaseIndication
CRITICALITY ignore
}
initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE InitialContextSetupRequest
SUCCESSFUL OUTCOME InitialContextSetupResponse
UNSUCCESSFUL OUTCOME InitialContextSetupFailure
PROCEDURE CODE id-InitialContextSetup
CRITICALITY reject
}
uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UEContextReleaseRequest
PROCEDURE CODE id-UEContextReleaseRequest
CRITICALITY ignore
}
paging S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Paging
PROCEDURE CODE id-Paging
CRITICALITY ignore
}
downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DownlinkNASTransport
PROCEDURE CODE id-downlinkNASTransport
CRITICALITY ignore
}
initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE InitialUEMessage
PROCEDURE CODE id-initialUEMessage
CRITICALITY ignore
}
uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UplinkNASTransport
PROCEDURE CODE id-uplinkNASTransport
CRITICALITY ignore
}
nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE NASNonDeliveryIndication
PROCEDURE CODE id-NASNonDeliveryIndication
CRITICALITY ignore
}
handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverCancel
SUCCESSFUL OUTCOME HandoverCancelAcknowledge
PROCEDURE CODE id-HandoverCancel
CRITICALITY reject
}
reset S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE Reset
SUCCESSFUL OUTCOME ResetAcknowledge
PROCEDURE CODE id-Reset
CRITICALITY reject
}
errorIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ErrorIndication
PROCEDURE CODE id-ErrorIndication
CRITICALITY ignore
}
s1Setup S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE S1SetupRequest
SUCCESSFUL OUTCOME S1SetupResponse
UNSUCCESSFUL OUTCOME S1SetupFailure
PROCEDURE CODE id-S1Setup
CRITICALITY reject
}
eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBConfigurationUpdate
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
PROCEDURE CODE id-ENBConfigurationUpdate
CRITICALITY reject
}
mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MMEConfigurationUpdate
SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
PROCEDURE CODE id-MMEConfigurationUpdate
CRITICALITY reject
}
downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DownlinkS1cdma2000tunneling
PROCEDURE CODE id-DownlinkS1cdma2000tunneling
CRITICALITY ignore
}
uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UplinkS1cdma2000tunneling
PROCEDURE CODE id-UplinkS1cdma2000tunneling
CRITICALITY ignore
}
uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UEContextModificationRequest
SUCCESSFUL OUTCOME UEContextModificationResponse
UNSUCCESSFUL OUTCOME UEContextModificationFailure
PROCEDURE CODE id-UEContextModification
CRITICALITY reject
}
uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UECapabilityInfoIndication
PROCEDURE CODE id-UECapabilityInfoIndication
CRITICALITY ignore
}
uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UEContextReleaseCommand
SUCCESSFUL OUTCOME UEContextReleaseComplete
PROCEDURE CODE id-UEContextRelease
CRITICALITY reject
}
eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBStatusTransfer
PROCEDURE CODE id-eNBStatusTransfer
CRITICALITY ignore
}
mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MMEStatusTransfer
PROCEDURE CODE id-MMEStatusTransfer
CRITICALITY ignore
}
deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DeactivateTrace
PROCEDURE CODE id-DeactivateTrace
CRITICALITY ignore
}
traceStart S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE TraceStart
PROCEDURE CODE id-TraceStart
CRITICALITY ignore
}
traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE TraceFailureIndication
PROCEDURE CODE id-TraceFailureIndication
CRITICALITY ignore
}
cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={
INITIATING MESSAGE CellTrafficTrace
PROCEDURE CODE id-CellTrafficTrace
CRITICALITY ignore
}
locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE LocationReportingControl
PROCEDURE CODE id-LocationReportingControl
CRITICALITY ignore
}
locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE LocationReportingFailureIndication
PROCEDURE CODE id-LocationReportingFailureIndication
CRITICALITY ignore
}
locationReport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE LocationReport
PROCEDURE CODE id-LocationReport
CRITICALITY ignore
}
overloadStart S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE OverloadStart
PROCEDURE CODE id-OverloadStart
CRITICALITY ignore
}
overloadStop S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE OverloadStop
PROCEDURE CODE id-OverloadStop
CRITICALITY reject
}
writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE WriteReplaceWarningRequest
SUCCESSFUL OUTCOME WriteReplaceWarningResponse
PROCEDURE CODE id-WriteReplaceWarning
CRITICALITY reject
}
eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBDirectInformationTransfer
PROCEDURE CODE id-eNBDirectInformationTransfer
CRITICALITY ignore
}
mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MMEDirectInformationTransfer
PROCEDURE CODE id-MMEDirectInformationTransfer
CRITICALITY ignore
}
eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBConfigurationTransfer
PROCEDURE CODE id-eNBConfigurationTransfer
CRITICALITY ignore
}
mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MMEConfigurationTransfer
PROCEDURE CODE id-MMEConfigurationTransfer
CRITICALITY ignore
}
privateMessage S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE PrivateMessage
PROCEDURE CODE id-PrivateMessage
CRITICALITY ignore
}
kill S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE KillRequest
SUCCESSFUL OUTCOME KillResponse
PROCEDURE CODE id-Kill
CRITICALITY reject
}
downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport
PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport
CRITICALITY ignore
}
uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UplinkUEAssociatedLPPaTransport
PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport
CRITICALITY ignore
}
downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport
PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport
CRITICALITY ignore
}
uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport
PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport
CRITICALITY ignore
}
END
@@ -1,413 +0,0 @@
S1AP-PDU {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) s1ap (1) version1 (1)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
Criticality,
ProcedureCode,
ProtocolIE-ID
FROM S1AP-CommonDataTypes
maxProtocolIEs
FROM S1AP-Constants;
S1AP-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
}
HandoverRequired ::= SEQUENCE {
handoverRequired-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverCommand ::= SEQUENCE {
handoverCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverPreparationFailure ::= SEQUENCE {
handoverPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverRequest ::= SEQUENCE {
handoverRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverRequestAcknowledge ::= SEQUENCE {
handoverRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverFailure ::= SEQUENCE {
handoverFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverNotify ::= SEQUENCE {
handoverNotify-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
PathSwitchRequest ::= SEQUENCE {
pathSwitchRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
PathSwitchRequestAcknowledge ::= SEQUENCE {
pathSwitchRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
PathSwitchRequestFailure ::= SEQUENCE {
pathSwitchRequestFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABSetupRequest ::= SEQUENCE {
e-RABSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABSetupResponse ::= SEQUENCE {
e-RABSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABModifyRequest ::= SEQUENCE {
e-RABModifyRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABModifyResponse ::= SEQUENCE {
e-RABModifyResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABReleaseIndication ::= SEQUENCE {
e-RABReleaseIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABReleaseCommand ::= SEQUENCE {
e-RABReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
E-RABReleaseResponse ::= SEQUENCE {
e-RABReleaseResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
InitialContextSetupRequest ::= SEQUENCE {
initialContextSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
InitialContextSetupResponse ::= SEQUENCE {
initialContextSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
InitialContextSetupFailure ::= SEQUENCE {
initialContextSetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextReleaseRequest ::= SEQUENCE {
ueContextReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Paging ::= SEQUENCE {
paging-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
DownlinkNASTransport ::= SEQUENCE {
downlinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
InitialUEMessage ::= SEQUENCE {
initialUEMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UplinkNASTransport ::= SEQUENCE {
uplinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
NASNonDeliveryIndication ::= SEQUENCE {
nasNonDeliveryIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverCancel ::= SEQUENCE {
handoverCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverCancelAcknowledge ::= SEQUENCE {
handoverCancelAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
Reset ::= SEQUENCE {
reset-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ResetAcknowledge ::= SEQUENCE {
resetAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
S1SetupResponse ::= SEQUENCE {
s1SetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
S1SetupRequest ::= SEQUENCE {
s1SetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
S1SetupFailure ::= SEQUENCE
{
s1SetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ErrorIndication ::= SEQUENCE {
errorIndication-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,
...
}
MMEConfigurationUpdate ::= SEQUENCE {
mmeConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
mmeConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEConfigurationUpdateFailure ::= SEQUENCE {
mmeConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
DownlinkS1cdma2000tunneling ::= SEQUENCE {
downlinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UplinkS1cdma2000tunneling ::= SEQUENCE {
uplinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextModificationRequest ::= SEQUENCE {
ueContextModificationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextModificationResponse ::= SEQUENCE {
ueContextModificationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextModificationFailure ::= SEQUENCE {
ueContextModificationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UECapabilityInfoIndication ::= SEQUENCE {
ueCapabilityInfoIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextReleaseCommand ::= SEQUENCE {
ueContextReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextReleaseComplete ::= SEQUENCE {
ueContextReleaseComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ENBStatusTransfer ::= SEQUENCE {
eNBStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEStatusTransfer ::= SEQUENCE {
mmeStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
DeactivateTrace ::= SEQUENCE {
deactivateTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
TraceStart ::= SEQUENCE {
traceStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
TraceFailureIndication ::= SEQUENCE {
traceFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
CellTrafficTrace ::= SEQUENCE {
cellTrafficTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
LocationReportingControl ::= SEQUENCE {
locationReportingControl-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
LocationReportingFailureIndication ::= SEQUENCE {
locationReportingFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
LocationReport ::= SEQUENCE {
locationReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
OverloadStart ::= SEQUENCE {
overloadStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
OverloadStop ::= SEQUENCE {
overloadStop-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
WriteReplaceWarningRequest ::= SEQUENCE {
writeReplaceWarningRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
WriteReplaceWarningResponse ::= SEQUENCE {
writeReplaceWarningResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ENBDirectInformationTransfer ::= SEQUENCE {
eNBDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEDirectInformationTransfer ::= SEQUENCE {
mmeDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ENBConfigurationTransfer ::= SEQUENCE {
eNBConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MMEConfigurationTransfer ::= SEQUENCE {
mmeConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
PrivateMessage ::= SEQUENCE {
privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
KillRequest ::= SEQUENCE {
killRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
KillResponse ::= SEQUENCE {
killResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
DownlinkUEAssociatedLPPaTransport ::= SEQUENCE {
downlinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UplinkUEAssociatedLPPaTransport ::= SEQUENCE {
uplinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
downlinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
uplinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
IE ::= SEQUENCE {
id ProtocolIE-ID,
criticality Criticality,
value ANY
}
END
File diff suppressed because it is too large Load Diff
-1
View File
@@ -87,7 +87,6 @@ extern int asn1_xer_print;
# define S1AP_DEBUG(x, args...) do { fprintf(stdout, "[S1AP][D]"x, ##args); } while(0)
#endif
#define S1AP_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID, mandatory) \
do {\
IE_TYPE **ptr; \
+150 -93
View File
@@ -80,12 +80,16 @@ uint32_t s1ap_generate_eNB_id(void)
char hostname[50];
int ret;
uint32_t eNB_id;
/* Retrieve the host name */
ret = gethostname(hostname, sizeof(hostname));
DevAssert(ret == 0);
out = crypt(hostname, "eurecom");
DevAssert(out != NULL);
eNB_id = ((out[0] << 24) | (out[1] << 16) | (out[2] << 8) | out[3]);
return eNB_id;
}
@@ -99,32 +103,46 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p,
sctp_new_association_req_t *sctp_new_association_req_p = NULL;
s1ap_eNB_mme_data_t *s1ap_mme_data_p = NULL;
struct s1ap_eNB_mme_data_s *mme = NULL;
DevAssert(instance_p != NULL);
DevAssert(mme_ip_address != NULL);
message_p = itti_alloc_new_message(TASK_S1AP, SCTP_NEW_ASSOCIATION_REQ);
sctp_new_association_req_p = &message_p->ittiMsg.sctp_new_association_req;
sctp_new_association_req_p->port = S1AP_PORT_NUMBER;
sctp_new_association_req_p->ppid = S1AP_SCTP_PPID;
sctp_new_association_req_p->in_streams = in_streams;
sctp_new_association_req_p->out_streams = out_streams;
memcpy(&sctp_new_association_req_p->remote_address,
mme_ip_address,
sizeof(*mme_ip_address));
memcpy(&sctp_new_association_req_p->local_address,
local_ip_addr,
sizeof(*local_ip_addr));
S1AP_INFO("[eNB %d] check the mme registration state\n",instance_p->instance);
mme = s1ap_eNB_get_MME_from_instance(instance_p);
if ( mme == NULL ) {
/* Create new MME descriptor */
s1ap_mme_data_p = calloc(1, sizeof(*s1ap_mme_data_p));
DevAssert(s1ap_mme_data_p != NULL);
s1ap_mme_data_p->cnx_id = s1ap_eNB_fetch_add_global_cnx_id();
sctp_new_association_req_p->ulp_cnx_id = s1ap_mme_data_p->cnx_id;
s1ap_mme_data_p->assoc_id = -1;
s1ap_mme_data_p->s1ap_eNB_instance = instance_p;
STAILQ_INIT(&s1ap_mme_data_p->served_gummei);
/* Insert the new descriptor in list of known MME
* but not yet associated.
*/
@@ -135,10 +153,12 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p,
} else if (mme->state == S1AP_ENB_STATE_WAITING) {
instance_p->s1ap_mme_pending_nb ++;
sctp_new_association_req_p->ulp_cnx_id = mme->cnx_id;
S1AP_INFO("[eNB %d] MME already registered, retrive the data (state %d, cnx %d, mme_nb %d, mme_pending_nb %d)\n",
instance_p->instance,
mme->state, mme->cnx_id,
instance_p->s1ap_mme_nb, instance_p->s1ap_mme_pending_nb);
/*s1ap_mme_data_p->cnx_id = mme->cnx_id;
sctp_new_association_req_p->ulp_cnx_id = mme->cnx_id;
@@ -160,7 +180,9 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
{
s1ap_eNB_instance_t *new_instance;
uint8_t index;
DevAssert(s1ap_register_eNB != NULL);
/* Look if the provided instance already exists */
new_instance = s1ap_eNB_get_instance(instance);
@@ -176,8 +198,10 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
} else {
new_instance = calloc(1, sizeof(s1ap_eNB_instance_t));
DevAssert(new_instance != NULL);
RB_INIT(&new_instance->s1ap_ue_head);
RB_INIT(&new_instance->s1ap_mme_head);
/* Copy usefull parameters */
new_instance->instance = instance;
new_instance->eNB_name = s1ap_register_eNB->eNB_name;
@@ -188,8 +212,10 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
new_instance->mnc = s1ap_register_eNB->mnc;
new_instance->mnc_digit_length = s1ap_register_eNB->mnc_digit_length;
new_instance->default_drx = s1ap_register_eNB->default_drx;
/* Add the new instance to the list of eNB (meaningfull in virtual mode) */
s1ap_eNB_insert_new_instance(new_instance);
S1AP_INFO("Registered new eNB[%d] and %s eNB id %u\n",
instance,
s1ap_register_eNB->cell_type == CELL_MACRO_ENB ? "macro" : "home",
@@ -213,9 +239,12 @@ void s1ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_associa
{
s1ap_eNB_instance_t *instance_p;
s1ap_eNB_mme_data_t *s1ap_mme_data_p;
DevAssert(sctp_new_association_resp != NULL);
instance_p = s1ap_eNB_get_instance(instance);
DevAssert(instance_p != NULL);
s1ap_mme_data_p = s1ap_eNB_get_MME(instance_p, -1,
sctp_new_association_resp->ulp_cnx_id);
DevAssert(s1ap_mme_data_p != NULL);
@@ -225,7 +254,9 @@ void s1ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_associa
sctp_new_association_resp->sctp_state,
instance,
sctp_new_association_resp->ulp_cnx_id);
s1ap_handle_s1_setup_message(s1ap_mme_data_p, sctp_new_association_resp->sctp_state == SCTP_STATE_SHUTDOWN);
return;
}
@@ -233,6 +264,7 @@ void s1ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_associa
s1ap_mme_data_p->assoc_id = sctp_new_association_resp->assoc_id;
s1ap_mme_data_p->in_streams = sctp_new_association_resp->in_streams;
s1ap_mme_data_p->out_streams = sctp_new_association_resp->out_streams;
/* Prepare new S1 Setup Request */
s1ap_eNB_generate_s1_setup_request(instance_p, s1ap_mme_data_p);
}
@@ -241,10 +273,11 @@ static
void s1ap_eNB_handle_sctp_data_ind(sctp_data_ind_t *sctp_data_ind)
{
int result;
DevAssert(sctp_data_ind != NULL);
#if defined(TEST_S1C_MME)
mme_test_s1_notify_sctp_data_ind(sctp_data_ind->assoc_id, sctp_data_ind->stream,
sctp_data_ind->buffer, sctp_data_ind->buffer_length);
sctp_data_ind->buffer, sctp_data_ind->buffer_length);
#else
s1ap_eNB_handle_message(sctp_data_ind->assoc_id, sctp_data_ind->stream,
sctp_data_ind->buffer, sctp_data_ind->buffer_length);
@@ -257,8 +290,11 @@ void *s1ap_eNB_task(void *arg)
{
MessageDef *received_msg = NULL;
int result;
S1AP_DEBUG("Starting S1AP layer\n");
s1ap_eNB_prepare_internal_data();
itti_mark_task_ready(TASK_S1AP);
MSC_START_USE();
@@ -266,112 +302,116 @@ void *s1ap_eNB_task(void *arg)
itti_receive_msg(TASK_S1AP, &received_msg);
switch (ITTI_MSG_ID(received_msg)) {
case TERMINATE_MESSAGE:
S1AP_WARN(" *** Exiting S1AP thread\n");
itti_exit_task();
break;
case S1AP_REGISTER_ENB_REQ: {
/* Register a new eNB.
* in Virtual mode eNBs will be distinguished using the mod_id/
* Each eNB has to send an S1AP_REGISTER_ENB message with its
* own parameters.
*/
s1ap_eNB_handle_register_eNB(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_REGISTER_ENB_REQ(received_msg));
}
case TERMINATE_MESSAGE:
S1AP_WARN(" *** Exiting S1AP thread\n");
itti_exit_task();
break;
case SCTP_NEW_ASSOCIATION_RESP: {
s1ap_eNB_handle_sctp_association_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&received_msg->ittiMsg.sctp_new_association_resp);
}
break;
case S1AP_REGISTER_ENB_REQ: {
/* Register a new eNB.
* in Virtual mode eNBs will be distinguished using the mod_id/
* Each eNB has to send an S1AP_REGISTER_ENB message with its
* own parameters.
*/
s1ap_eNB_handle_register_eNB(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_REGISTER_ENB_REQ(received_msg));
}
break;
case SCTP_DATA_IND: {
s1ap_eNB_handle_sctp_data_ind(&received_msg->ittiMsg.sctp_data_ind);
}
break;
case SCTP_NEW_ASSOCIATION_RESP: {
s1ap_eNB_handle_sctp_association_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&received_msg->ittiMsg.sctp_new_association_resp);
}
break;
case S1AP_NAS_FIRST_REQ: {
s1ap_eNB_handle_nas_first_req(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_NAS_FIRST_REQ(received_msg));
}
break;
case SCTP_DATA_IND: {
s1ap_eNB_handle_sctp_data_ind(&received_msg->ittiMsg.sctp_data_ind);
}
break;
case S1AP_UPLINK_NAS: {
s1ap_eNB_nas_uplink(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_UPLINK_NAS(received_msg));
}
break;
case S1AP_NAS_FIRST_REQ: {
s1ap_eNB_handle_nas_first_req(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_NAS_FIRST_REQ(received_msg));
}
break;
case S1AP_UE_CAPABILITIES_IND: {
s1ap_eNB_ue_capabilities(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_UE_CAPABILITIES_IND(received_msg));
}
break;
case S1AP_UPLINK_NAS: {
s1ap_eNB_nas_uplink(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_UPLINK_NAS(received_msg));
}
break;
case S1AP_INITIAL_CONTEXT_SETUP_RESP: {
s1ap_eNB_initial_ctxt_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_INITIAL_CONTEXT_SETUP_RESP(received_msg));
}
break;
case S1AP_UE_CAPABILITIES_IND: {
s1ap_eNB_ue_capabilities(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_UE_CAPABILITIES_IND(received_msg));
}
break;
case S1AP_E_RAB_SETUP_RESP: {
s1ap_eNB_e_rab_setup_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_E_RAB_SETUP_RESP(received_msg));
}
break;
case S1AP_INITIAL_CONTEXT_SETUP_RESP: {
s1ap_eNB_initial_ctxt_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_INITIAL_CONTEXT_SETUP_RESP(received_msg));
}
break;
case S1AP_E_RAB_MODIFY_RESP: {
s1ap_eNB_e_rab_modify_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_E_RAB_MODIFY_RESP(received_msg));
}
break;
case S1AP_E_RAB_SETUP_RESP: {
s1ap_eNB_e_rab_setup_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_E_RAB_SETUP_RESP(received_msg));
}
break;
case S1AP_NAS_NON_DELIVERY_IND: {
s1ap_eNB_nas_non_delivery_ind(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_NAS_NON_DELIVERY_IND(received_msg));
}
break;
case S1AP_E_RAB_MODIFY_RESP: {
s1ap_eNB_e_rab_modify_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_E_RAB_MODIFY_RESP(received_msg));
}
break;
case S1AP_NAS_NON_DELIVERY_IND: {
s1ap_eNB_nas_non_delivery_ind(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_NAS_NON_DELIVERY_IND(received_msg));
}
break;
case S1AP_UE_CONTEXT_RELEASE_COMPLETE: {
s1ap_ue_context_release_complete(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_UE_CONTEXT_RELEASE_COMPLETE(received_msg));
}
break;
case S1AP_UE_CONTEXT_RELEASE_COMPLETE: {
s1ap_ue_context_release_complete(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_UE_CONTEXT_RELEASE_COMPLETE(received_msg));
}
break;
case S1AP_UE_CONTEXT_RELEASE_REQ: {
s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; // test
struct s1ap_eNB_ue_context_s *ue_context_p = NULL; // test
s1ap_ue_context_release_req(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_UE_CONTEXT_RELEASE_REQ(received_msg));
s1ap_eNB_instance_p = s1ap_eNB_get_instance(ITTI_MESSAGE_GET_INSTANCE(received_msg)); // test
DevAssert(s1ap_eNB_instance_p != NULL); // test
case S1AP_UE_CONTEXT_RELEASE_REQ: {
s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL; // test
struct s1ap_eNB_ue_context_s *ue_context_p = NULL; // test
if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p,
S1AP_UE_CONTEXT_RELEASE_REQ(received_msg).eNB_ue_s1ap_id)) == NULL) { // test
/* The context for this eNB ue s1ap id doesn't exist in the map of eNB UEs */
S1AP_ERROR("Failed to find ue context associated with eNB ue s1ap id: %u\n",
S1AP_UE_CONTEXT_RELEASE_REQ(received_msg).eNB_ue_s1ap_id); // test
} // test
}
break;
s1ap_ue_context_release_req(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_UE_CONTEXT_RELEASE_REQ(received_msg));
case S1AP_E_RAB_RELEASE_RESPONSE: {
s1ap_eNB_instance_p = s1ap_eNB_get_instance(ITTI_MESSAGE_GET_INSTANCE(received_msg)); // test
DevAssert(s1ap_eNB_instance_p != NULL); // test
if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p,
S1AP_UE_CONTEXT_RELEASE_REQ(received_msg).eNB_ue_s1ap_id)) == NULL) { // test
/* The context for this eNB ue s1ap id doesn't exist in the map of eNB UEs */
S1AP_ERROR("Failed to find ue context associated with eNB ue s1ap id: %u\n",
S1AP_UE_CONTEXT_RELEASE_REQ(received_msg).eNB_ue_s1ap_id); // test
} // test
}
break;
case S1AP_E_RAB_RELEASE_RESPONSE: {
s1ap_eNB_e_rab_release_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
&S1AP_E_RAB_RELEASE_RESPONSE(received_msg));
}
break;
}
break;
default:
S1AP_ERROR("Received unhandled message: %d:%s\n",
ITTI_MSG_ID(received_msg), ITTI_MSG_NAME(received_msg));
break;
default:
S1AP_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;
}
@@ -389,7 +429,12 @@ static int s1ap_eNB_generate_s1_setup_request(
uint8_t *buffer;
uint32_t len;
int ret = 0;
DevAssert(instance_p != NULL);
DevAssert(s1ap_mme_data_p != NULL);
s1ap_mme_data_p->state = S1AP_ENB_STATE_WAITING;
/* Prepare the S1AP message to encode */
memset(&pdu, 0, sizeof(pdu));
pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage;
@@ -397,6 +442,8 @@ static int s1ap_eNB_generate_s1_setup_request(
pdu.choice.initiatingMessage.criticality = S1AP_Criticality_reject;
pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_S1SetupRequest;
out = &pdu.choice.initiatingMessage.value.choice.S1SetupRequest;
/* mandatory */
ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_Global_ENB_ID;
ie->criticality = S1AP_Criticality_reject;
@@ -423,17 +470,24 @@ static int s1ap_eNB_generate_s1_setup_request(
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
/* mandatory */
ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_SupportedTAs;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_SupportedTAs;
ta = (S1AP_SupportedTAs_Item_t *)calloc(1, sizeof(S1AP_SupportedTAs_Item_t));
INT16_TO_OCTET_STRING(instance_p->tac, &ta->tAC);
plmn = (S1AP_PLMNidentity_t *)calloc(1, sizeof(S1AP_PLMNidentity_t));
MCC_MNC_TO_TBCD(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
ASN_SEQUENCE_ADD(&ta->broadcastPLMNs.list, plmn);
ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAs.list, ta);
{
ta = (S1AP_SupportedTAs_Item_t *)calloc(1, sizeof(S1AP_SupportedTAs_Item_t));
INT16_TO_OCTET_STRING(instance_p->tac, &ta->tAC);
{
plmn = (S1AP_PLMNidentity_t *)calloc(1, sizeof(S1AP_PLMNidentity_t));
MCC_MNC_TO_TBCD(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, plmn);
ASN_SEQUENCE_ADD(&ta->broadcastPLMNs.list, plmn);
}
ASN_SEQUENCE_ADD(&ie->value.choice.SupportedTAs.list, ta);
}
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_DefaultPagingDRX;
ie->criticality = S1AP_Criticality_ignore;
@@ -452,9 +506,10 @@ static int s1ap_eNB_generate_s1_setup_request(
}
/* optional */
#if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0))
if (0) {
ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_UE_RetentionInformation ;
ie->id = S1AP_ProtocolIE_ID_id_UE_RetentionInformation;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_UE_RetentionInformation;
// ie->value.choice.UE_RetentionInformation = ;
@@ -470,6 +525,7 @@ static int s1ap_eNB_generate_s1_setup_request(
// ie->value.choice.NB_IoT_DefaultPagingDRX = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &len) < 0) {
S1AP_ERROR("Failed to encode S1 setup request\n");
@@ -478,5 +534,6 @@ static int s1ap_eNB_generate_s1_setup_request(
/* Non UE-Associated signalling -> stream = 0 */
s1ap_eNB_itti_send_sctp_data_req(instance_p->instance, s1ap_mme_data_p->assoc_id, buffer, len, 0);
return ret;
}
@@ -60,8 +60,10 @@ int s1ap_ue_context_release_complete(instance_t instance,
S1AP_UEContextReleaseComplete_IEs_t *ie;
uint8_t *buffer;
uint32_t length;
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
DevAssert(ue_release_complete_p != NULL);
DevAssert(s1ap_eNB_instance_p != NULL);
@@ -85,12 +87,16 @@ int s1ap_ue_context_release_complete(instance_t instance,
pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject;
pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_UEContextReleaseComplete;
out = &pdu.choice.successfulOutcome.value.choice.UEContextReleaseComplete;
/* mandatory */
ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_ignore;
@@ -108,7 +114,8 @@ int s1ap_ue_context_release_complete(instance_t instance,
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
/* release 12 */
/* release 12, optional */
#if (S1AP_VERSION >= MAKE_VERSION(12, 0, 0))
if (0) {
ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_UserLocationInformation;
@@ -118,7 +125,8 @@ int s1ap_ue_context_release_complete(instance_t instance,
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
/* release 13 */
/* release 13, optional */
#if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0))
if (0) {
ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_InformationOnRecommendedCellsAndENBsForPaging;
@@ -126,6 +134,7 @@ int s1ap_ue_context_release_complete(instance_t instance,
ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_InformationOnRecommendedCellsAndENBsForPaging;
// ie->value.choice.InformationOnRecommendedCellsAndENBsForPaging = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_CellIdentifierAndCELevelForCECapableUEs;
ie->criticality = S1AP_Criticality_ignore;
@@ -133,6 +142,8 @@ int s1ap_ue_context_release_complete(instance_t instance,
// ie->value.choice.CellIdentifierAndCELevelForCECapableUEs = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0)) */
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(12, 0, 0)) */
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
/* Encode procedure has failed... */
@@ -147,14 +158,16 @@ int s1ap_ue_context_release_complete(instance_t instance,
length,
MSC_AS_TIME_FMT" UEContextRelease successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0, //MSC_AS_TIME_ARGS(ctxt_pP),
ue_ctxt_release_complete_ies_p->eNB_UE_S1AP_ID,
ue_ctxt_release_complete_ies_p->mme_ue_s1ap_id);
ue_release_complete_p->eNB_ue_s1ap_id,
ue_context_p->mme_ue_s1ap_id);
/* UE associated signalling -> use the allocated stream */
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
ue_context_p->mme_ref->assoc_id, buffer,
length, ue_context_p->tx_stream);
//LG s1ap_eNB_itti_send_sctp_close_association(s1ap_eNB_instance_p->instance,
// ue_context_p->mme_ref->assoc_id);
// ue_context_p->mme_ref->assoc_id);
// release UE context
struct s1ap_eNB_ue_context_s *ue_context2_p = NULL;
@@ -167,12 +180,12 @@ int s1ap_ue_context_release_complete(instance_t instance,
S1AP_WARN("Removing UE context eNB_ue_s1ap_id %u: did not find context\n",
ue_context_p->eNB_ue_s1ap_id);
}
/*RB_FOREACH(ue_context_p, s1ap_ue_map, &s1ap_eNB_instance_p->s1ap_ue_head) {
S1AP_WARN("in s1ap_ue_map: UE context eNB_ue_s1ap_id %u mme_ue_s1ap_id %u state %u\n",
ue_context_p->eNB_ue_s1ap_id, ue_context_p->mme_ue_s1ap_id,
ue_context_p->ue_state);
}*/
return 0;
}
@@ -189,6 +202,7 @@ int s1ap_ue_context_release_req(instance_t instance,
uint32_t length;
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
DevAssert(ue_release_req_p != NULL);
DevAssert(s1ap_eNB_instance_p != NULL);
@@ -207,18 +221,24 @@ int s1ap_ue_context_release_req(instance_t instance,
pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore;
pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_UEContextReleaseRequest;
out = &pdu.choice.initiatingMessage.value.choice.UEContextReleaseRequest;
/* mandatory */
ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_release_req_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_Cause;
ie->criticality = S1AP_Criticality_ignore;
@@ -259,6 +279,7 @@ int s1ap_ue_context_release_req(instance_t instance,
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* optional */
#if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0))
if (0) {
ie = (S1AP_UEContextReleaseRequest_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseRequest_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_GWContextReleaseIndication;
@@ -267,6 +288,7 @@ int s1ap_ue_context_release_req(instance_t instance,
ie->value.choice.GWContextReleaseIndication = TRUE;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) */
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
/* Encode procedure has failed... */
@@ -281,12 +303,14 @@ int s1ap_ue_context_release_req(instance_t instance,
length,
MSC_AS_TIME_FMT" UEContextReleaseRequest initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
ue_ctxt_release_request_ies_p->eNB_UE_S1AP_ID,
ue_ctxt_release_request_ies_p->mme_ue_s1ap_id);
ue_release_req_p->eNB_ue_s1ap_id,
ue_context_p->mme_ue_s1ap_id);
/* UE associated signalling -> use the allocated stream */
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
ue_context_p->mme_ref->assoc_id, buffer,
length, ue_context_p->tx_stream);
return 0;
}
+16 -3
View File
@@ -36,7 +36,6 @@
#include "s1ap_common.h"
#include "s1ap_eNB_decoder.h"
static int s1ap_eNB_decode_initiating_message(S1AP_S1AP_PDU_t *pdu)
{
MessageDef *message_p;
@@ -123,7 +122,19 @@ static int s1ap_eNB_decode_initiating_message(S1AP_S1AP_PDU_t *pdu)
memcpy(&message_p->ittiMsg.s1ap_e_rab_release_request_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
S1AP_INFO("TODO E_RABRelease nitiating message\n");
S1AP_INFO("TODO E_RABRelease initiating message\n");
break;
case S1AP_ProcedureCode_id_ErrorIndication:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_ERROR_INDICATION_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id,
res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_error_indication_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_error_indication_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
S1AP_INFO("TODO ErrorIndication initiating message\n");
break;
default:
@@ -195,11 +206,13 @@ int s1ap_eNB_decode_pdu(S1AP_S1AP_PDU_t *pdu, const uint8_t *const buffer,
const uint32_t length)
{
asn_dec_rval_t dec_ret;
DevAssert(pdu != NULL);
DevAssert(buffer != NULL);
dec_ret = aper_decode(NULL,
&asn_DEF_S1AP_S1AP_PDU,
(void **)pdu,
(void **)&pdu,
buffer,
length,
0,
-1
View File
@@ -21,7 +21,6 @@
#include <stdint.h>
#ifndef S1AP_ENB_DECODER_H_
#define S1AP_ENB_DECODER_H_
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -56,7 +56,8 @@ void s1ap_eNB_itti_send_nas_downlink_ind(instance_t instance,
s1ap_downlink_nas->ue_initial_id = ue_initial_id;
s1ap_downlink_nas->eNB_ue_s1ap_id = eNB_ue_s1ap_id;
s1ap_downlink_nas->nas_pdu.buffer = nas_pdu;
s1ap_downlink_nas->nas_pdu.buffer = malloc(sizeof(uint8_t) * nas_pdu_length);
memcpy(s1ap_downlink_nas->nas_pdu.buffer, nas_pdu, nas_pdu_length);
s1ap_downlink_nas->nas_pdu.length = nas_pdu_length;
itti_send_msg_to_task(TASK_RRC_ENB, instance, message_p);
+146 -75
View File
@@ -61,10 +61,13 @@ int s1ap_eNB_handle_nas_first_req(
S1AP_InitialUEMessage_IEs_t *ie;
uint8_t *buffer = NULL;
uint32_t length = 0;
DevAssert(s1ap_nas_first_req_p != NULL);
/* Retrieve the S1AP eNB instance associated with Mod_id */
instance_p = s1ap_eNB_get_instance(instance);
DevAssert(instance_p != NULL);
memset(&pdu, 0, sizeof(pdu));
pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage;
pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_initialUEMessage;
@@ -105,6 +108,7 @@ int s1ap_eNB_handle_nas_first_req(
* In case eNB has no MME associated, the eNB should inform RRC and discard
* this request.
*/
S1AP_WARN("No MME is associated to the eNB\n");
// TODO: Inform RRC
return -1;
@@ -115,6 +119,7 @@ int s1ap_eNB_handle_nas_first_req(
*/
ue_desc_p = s1ap_eNB_allocate_new_UE_context();
DevAssert(ue_desc_p != NULL);
/* Keep a reference to the selected MME */
ue_desc_p->mme_ref = mme_desc_p;
ue_desc_p->ue_initial_id = s1ap_nas_first_req_p->ue_initial_id;
@@ -122,6 +127,7 @@ int s1ap_eNB_handle_nas_first_req(
do {
struct s1ap_eNB_ue_context_s *collision_p;
/* Peek a random value for the eNB_ue_s1ap_id */
ue_desc_p->eNB_ue_s1ap_id = (random() + random()) & 0x00ffffff;
@@ -142,21 +148,23 @@ int s1ap_eNB_handle_nas_first_req(
ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_NAS_PDU;
#if 1
ie->value.choice.NAS_PDU.buf = s1ap_nas_first_req_p->nas_pdu.buffer;
#else
ie->value.choice.NAS_PDU.buf = malloc(s1ap_nas_first_req_p->nas_pdu.length);
memcpy(ie->value.choice.NAS_PDU.buf,
s1ap_nas_first_req_p->nas_pdu.buffer,
s1ap_nas_first_req_p->nas_pdu.length);
#endif
ie->value.choice.NAS_PDU.size = s1ap_nas_first_req_p->nas_pdu.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_InitialUEMessage_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_TAI;
@@ -169,6 +177,7 @@ int s1ap_eNB_handle_nas_first_req(
instance_p->mnc_digit_length,
&ie->value.choice.TAI.pLMNidentity);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_EUTRAN_CGI;
@@ -187,9 +196,11 @@ int s1ap_eNB_handle_nas_first_req(
instance_p->mnc_digit_length,
&ie->value.choice.EUTRAN_CGI.pLMNidentity);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* Set the establishment cause according to those provided by RRC */
DevCheck(s1ap_nas_first_req_p->establishment_cause < RRC_CAUSE_LAST,
s1ap_nas_first_req_p->establishment_cause, RRC_CAUSE_LAST, 0);
/* mandatory */
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_RRC_Establishment_Cause;
@@ -242,6 +253,7 @@ int s1ap_eNB_handle_nas_first_req(
}
/* optional */
#if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0))
if (0) {
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_CellAccessMode;
@@ -252,6 +264,7 @@ int s1ap_eNB_handle_nas_first_req(
}
/* optional */
#if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0))
if (0) {
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_GW_TransportLayerAddress;
@@ -271,6 +284,7 @@ int s1ap_eNB_handle_nas_first_req(
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#if (S1AP_VERSION >= MAKE_VERSION(11, 0, 0))
/* optional */
if (0) {
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
@@ -311,6 +325,7 @@ int s1ap_eNB_handle_nas_first_req(
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0))
/* optional */
if (0) {
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
@@ -341,6 +356,7 @@ int s1ap_eNB_handle_nas_first_req(
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0))
/* optional */
if (0) {
ie = (S1AP_InitialUEMessage_IEs_t *)calloc(1, sizeof(S1AP_InitialUEMessage_IEs_t));
@@ -360,6 +376,11 @@ int s1ap_eNB_handle_nas_first_req(
// ie->value.choice.Coverage_Level = ue_release_req_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(13, 0, 0)) */
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(11, 0, 0)) */
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) */
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
/* Failed to encode message */
@@ -368,6 +389,7 @@ int s1ap_eNB_handle_nas_first_req(
/* Update the current S1AP UE state */
ue_desc_p->ue_state = S1AP_UE_WAITING_CSR;
/* Assign a stream for this UE :
* From 3GPP 36.412 7)Transport layers:
* Within the SCTP association established between one MME and eNB pair:
@@ -387,6 +409,7 @@ int s1ap_eNB_handle_nas_first_req(
}
ue_desc_p->tx_stream = mme_desc_p->nextstream;
MSC_LOG_TX_MESSAGE(
MSC_S1AP_ENB,
MSC_S1AP_MME,
@@ -394,10 +417,12 @@ int s1ap_eNB_handle_nas_first_req(
0,
MSC_AS_TIME_FMT" initialUEMessage initiatingMessage eNB_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
initial_ue_message_p->eNB_UE_S1AP_ID);
ue_desc_p->eNB_ue_s1ap_id);
/* Send encoded message over sctp */
s1ap_eNB_itti_send_sctp_data_req(instance_p->instance, mme_desc_p->assoc_id,
buffer, length, ue_desc_p->tx_stream);
return 0;
}
@@ -431,25 +456,28 @@ int s1ap_eNB_handle_nas_downlink(uint32_t assoc_id,
}
s1ap_eNB_instance = mme_desc_p->s1ap_eNB_instance;
/* Prepare the S1AP message to encode */
container = &pdu->choice.initiatingMessage.value.choice.DownlinkNASTransport;
S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_DownlinkNASTransport_IEs_t, ie, container,
S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, TRUE);
S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID, true);
mme_ue_s1ap_id = ie->value.choice.MME_UE_S1AP_ID;
S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_DownlinkNASTransport_IEs_t, ie, container,
S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, TRUE);
S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, true);
enb_ue_s1ap_id = ie->value.choice.ENB_UE_S1AP_ID;
if ((ue_desc_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance,
ie->value.choice.ENB_UE_S1AP_ID)) == NULL) {
enb_ue_s1ap_id)) == NULL) {
MSC_LOG_RX_DISCARDED_MESSAGE(
MSC_S1AP_ENB,
MSC_S1AP_MME,
(const char *)downlink_NAS_transport_p,
sizeof(S1AP_DownlinkNASTransportIEs_t),
(const char *)NULL,
NULL,
MSC_AS_TIME_FMT" downlinkNASTransport eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
enb_ue_s1ap_id
enb_ue_s1ap_id,
mme_ue_s1ap_id);
/* TODO: fix this log - the original version is suspicious (twice downlink_NAS_transport_p->eNB_UE_S1AP_ID?) */
/*S1AP_ERROR("[SCTP %d] Received NAS downlink message for non existing UE context eNB_UE_S1AP_ID: 0x%"PRIx32" %u\n",
@@ -490,22 +518,25 @@ int s1ap_eNB_handle_nas_downlink(uint32_t assoc_id,
MSC_LOG_RX_MESSAGE(
MSC_S1AP_ENB,
MSC_S1AP_MME,
(const char *)downlink_NAS_transport_p,
sizeof(S1AP_DownlinkNASTransportIEs_t),
(const char *)NULL,
NULL,
MSC_AS_TIME_FMT" downlinkNASTransport eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
enb_ue_s1ap_id,
mme_ue_s1ap_id);
S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_DownlinkNASTransport_IEs_t, ie, container,
S1AP_ProtocolIE_ID_id_NAS_PDU, TRUE);
S1AP_ProtocolIE_ID_id_NAS_PDU, true);
/* Forward the NAS PDU to RRC */
s1ap_eNB_itti_send_nas_downlink_ind(s1ap_eNB_instance->instance,
ue_desc_p->ue_initial_id,
ue_desc_p->eNB_ue_s1ap_id,
ie->value.choice.NAS_PDU.buf,
ie->value.choice.NAS_PDU.size);
// LG: Why set to 0 ??
//ue_desc_p->ue_initial_id = 0;
return 0;
}
@@ -520,7 +551,9 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
S1AP_UplinkNASTransport_IEs_t *ie;
uint8_t *buffer;
uint32_t length;
DevAssert(s1ap_uplink_nas_p != NULL);
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
DevAssert(s1ap_eNB_instance_p != NULL);
@@ -550,6 +583,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore;
pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_UplinkNASTransport;
out = &pdu.choice.initiatingMessage.value.choice.UplinkNASTransport;
/* mandatory */
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
@@ -557,6 +591,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
@@ -564,6 +599,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
ie->value.present = S1AP_UplinkNASTransport_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU;
@@ -572,6 +608,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
ie->value.choice.NAS_PDU.buf = s1ap_uplink_nas_p->nas_pdu.buffer;
ie->value.choice.NAS_PDU.size = s1ap_uplink_nas_p->nas_pdu.length;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_EUTRAN_CGI;
@@ -587,6 +624,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
0,
&ie->value.choice.EUTRAN_CGI.cell_ID);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_TAI;
@@ -601,6 +639,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* optional */
#if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0))
if (0) {
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_GW_TransportLayerAddress;
@@ -611,6 +650,7 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
}
/* optional */
#if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0))
if (0) {
ie = (S1AP_UplinkNASTransport_IEs_t *)calloc(1, sizeof(S1AP_UplinkNASTransport_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_SIPTO_L_GW_TransportLayerAddress;
@@ -629,6 +669,8 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
// ie->value.choice.LHN_ID =;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) */
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
S1AP_ERROR("Failed to encode uplink NAS transport\n");
@@ -643,12 +685,14 @@ int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_
0,
MSC_AS_TIME_FMT" uplinkNASTransport initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
uplink_NAS_transport_p->eNB_UE_S1AP_ID,
uplink_NAS_transport_p->mme_ue_s1ap_id);
ue_context_p->eNB_ue_s1ap_id,
ue_context_p->mme_ue_s1ap_id);
/* UE associated signalling -> use the allocated stream */
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
ue_context_p->mme_ref->assoc_id, buffer,
length, ue_context_p->tx_stream);
return 0;
}
@@ -665,7 +709,9 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
S1AP_NASNonDeliveryIndication_IEs_t *ie;
uint8_t *buffer;
uint32_t length;
DevAssert(s1ap_nas_non_delivery_ind != NULL);
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
DevAssert(s1ap_eNB_instance_p != NULL);
@@ -688,6 +734,7 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore;
pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_NASNonDeliveryIndication;
out = &pdu.choice.initiatingMessage.value.choice.NASNonDeliveryIndication;
/* mandatory */
ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
@@ -695,6 +742,7 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
@@ -702,17 +750,20 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->id = S1AP_ProtocolIE_ID_id_NAS_PDU;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_NAS_PDU;
ie->value.choice.NAS_PDU.buf = s1ap_nas_non_delivery_ind->nas_pdu.buffer;
ie->value.choice.NAS_PDU.size = s1ap_nas_non_delivery_ind->nas_pdu.length;
/* mandatory */
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_NASNonDeliveryIndication_IEs_t *)calloc(1, sizeof(S1AP_NASNonDeliveryIndication_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->id = S1AP_ProtocolIE_ID_id_Cause;
ie->criticality = S1AP_Criticality_ignore;
/* Send a dummy cause */
ie->value.present = S1AP_NASNonDeliveryIndication_IEs__value_PR_Cause;
@@ -732,12 +783,13 @@ int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
MSC_LOG_TX_MESSAGE(
MSC_S1AP_ENB,
MSC_S1AP_MME,
(const char *)s1ap_nas_non_delivery_ind,
sizeof(s1ap_nas_non_delivery_ind_t),
(const char *)buffer,
length,
MSC_AS_TIME_FMT" NASNonDeliveryIndication initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
nas_non_delivery_p->eNB_UE_S1AP_ID,
nas_non_delivery_p->mme_ue_s1ap_id);
ue_context_p->eNB_ue_s1ap_id,
ue_context_p->mme_ue_s1ap_id);
/* UE associated signalling -> use the allocated stream */
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
ue_context_p->mme_ref->assoc_id, buffer,
@@ -758,8 +810,10 @@ int s1ap_eNB_initial_ctxt_resp(
uint8_t *buffer = NULL;
uint32_t length;
int i;
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
DevAssert(initial_ctxt_resp_p != NULL);
DevAssert(s1ap_eNB_instance_p != NULL);
@@ -789,6 +843,7 @@ int s1ap_eNB_initial_ctxt_resp(
pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject;
pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_InitialContextSetupResponse;
out = &pdu.choice.successfulOutcome.value.choice.InitialContextSetupResponse;
/* mandatory */
ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
@@ -796,6 +851,7 @@ int s1ap_eNB_initial_ctxt_resp(
ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
@@ -803,22 +859,26 @@ int s1ap_eNB_initial_ctxt_resp(
ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = initial_ctxt_resp_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_InitialContextSetupResponseIEs_t *)calloc(1, sizeof(S1AP_InitialContextSetupResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->id = S1AP_ProtocolIE_ID_id_E_RABSetupListCtxtSURes;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_InitialContextSetupResponseIEs__value_PR_E_RABSetupListCtxtSURes;
for (i = 0; i < initial_ctxt_resp_p->nb_of_e_rabs; i++) {
S1AP_E_RABSetupItemCtxtSUResIEs_t *item;
/* mandatory */
item = calloc(1, sizeof(S1AP_E_RABSetupItemCtxtSUResIEs_t));
item->id = S1AP_ProtocolIE_ID_id_E_RABSetupItemBearerSURes;
item = (S1AP_E_RABSetupItemCtxtSUResIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupItemCtxtSUResIEs_t));
item->id = S1AP_ProtocolIE_ID_id_E_RABSetupItemCtxtSURes;
item->criticality = S1AP_Criticality_ignore;
item->value.present = S1AP_E_RABSetupItemBearerSUResIEs__value_PR_E_RABSetupItemBearerSURes;
item->value.present = S1AP_E_RABSetupItemCtxtSUResIEs__value_PR_E_RABSetupItemCtxtSURes;
item->value.choice.E_RABSetupItemCtxtSURes.e_RAB_ID = initial_ctxt_resp_p->e_rabs[i].e_rab_id;
GTP_TEID_TO_ASN1(initial_ctxt_resp_p->e_rabs[i].gtp_teid, &item->value.choice.E_RABSetupItemCtxtSURes.gTP_TEID);
item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf = initial_ctxt_resp_p->e_rabs[i].eNB_addr.buffer;
item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf = malloc(initial_ctxt_resp_p->e_rabs[i].eNB_addr.length);
memcpy(item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.buf,
initial_ctxt_resp_p->e_rabs[i].eNB_addr.buffer,
initial_ctxt_resp_p->e_rabs[i].eNB_addr.length);
item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.size = initial_ctxt_resp_p->e_rabs[i].eNB_addr.length;
item->value.choice.E_RABSetupItemCtxtSURes.transportLayerAddress.bits_unused = 0;
S1AP_DEBUG("initial_ctxt_resp_p: e_rab ID %ld, enb_addr %d.%d.%d.%d, SIZE %ld \n",
@@ -843,7 +903,7 @@ int s1ap_eNB_initial_ctxt_resp(
for (i = 0; i < initial_ctxt_resp_p->nb_of_e_rabs_failed; i++) {
S1AP_E_RABItemIEs_t *item;
/* mandatory */
item = calloc(1, sizeof(S1AP_E_RABItemIEs_t));
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
item->criticality = S1AP_Criticality_ignore;
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
@@ -855,23 +915,18 @@ int s1ap_eNB_initial_ctxt_resp(
case S1AP_Cause_PR_radioNetwork:
item->value.choice.E_RABItem.cause.choice.radioNetwork = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_transport:
item->value.choice.E_RABItem.cause.choice.transport = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_nas:
item->value.choice.E_RABItem.cause.choice.nas = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_protocol:
item->value.choice.E_RABItem.cause.choice.protocol = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_misc:
item->value.choice.E_RABItem.cause.choice.misc = initial_ctxt_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_NOTHING:
default:
break;
@@ -907,12 +962,14 @@ int s1ap_eNB_initial_ctxt_resp(
length,
MSC_AS_TIME_FMT" InitialContextSetup successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
initial_ies_p->eNB_UE_S1AP_ID,
initial_ies_p->mme_ue_s1ap_id);
initial_ctxt_resp_p->eNB_ue_s1ap_id,
ue_context_p->mme_ue_s1ap_id);
/* UE associated signalling -> use the allocated stream */
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
ue_context_p->mme_ref->assoc_id, buffer,
length, ue_context_p->tx_stream);
return 0;
}
@@ -928,8 +985,10 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
S1AP_UECapabilityInfoIndicationIEs_t *ie;
uint8_t *buffer;
uint32_t length;
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
DevAssert(ue_cap_info_ind_p != NULL);
DevAssert(s1ap_eNB_instance_p != NULL);
@@ -959,6 +1018,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore;
pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_UECapabilityInfoIndication;
out = &pdu.choice.initiatingMessage.value.choice.UECapabilityInfoIndication;
/* mandatory */
ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
@@ -966,6 +1026,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
@@ -973,6 +1034,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
ie->value.present = S1AP_UECapabilityInfoIndicationIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_cap_info_ind_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_UERadioCapability;
@@ -983,6 +1045,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* optional */
#if (S1AP_VERSION >= MAKE_VERSION(12, 0, 0))
if (0) {
ie = (S1AP_UECapabilityInfoIndicationIEs_t *)calloc(1, sizeof(S1AP_UECapabilityInfoIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_UERadioCapabilityForPaging;
@@ -991,6 +1054,7 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
// ie->value.choice.UERadioCapabilityForPaging = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
/* Encode procedure has failed... */
@@ -1005,12 +1069,14 @@ int s1ap_eNB_ue_capabilities(instance_t instance,
length,
MSC_AS_TIME_FMT" UECapabilityInfoIndication initiatingMessage eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
ue_cap_info_ind_ies_p->eNB_UE_S1AP_ID,
ue_cap_info_ind_ies_p->mme_ue_s1ap_id);
ue_cap_info_ind_p->eNB_ue_s1ap_id,
ue_context_p->mme_ue_s1ap_id);
/* UE associated signalling -> use the allocated stream */
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
ue_context_p->mme_ref->assoc_id, buffer,
length, ue_context_p->tx_stream);
return 0;
}
@@ -1027,13 +1093,15 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
uint8_t *buffer = NULL;
uint32_t length;
int i;
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
DevAssert(e_rab_setup_resp_p != NULL);
DevAssert(s1ap_eNB_instance_p != NULL);
if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p,
e_rab_setup_resp_p->eNB_ue_s1ap_id)) == NULL) {
e_rab_setup_resp_p->eNB_ue_s1ap_id)) == NULL) {
/* The context for this eNB ue s1ap id doesn't exist in the map of eNB UEs */
S1AP_WARN("Failed to find ue context associated with eNB ue s1ap id: 0x%06x\n",
e_rab_setup_resp_p->eNB_ue_s1ap_id);
@@ -1058,6 +1126,7 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject;
pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_E_RABSetupResponse;
out = &pdu.choice.successfulOutcome.value.choice.E_RABSetupResponse;
/* mandatory */
ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
@@ -1065,6 +1134,7 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
ie->value.present = S1AP_E_RABSetupResponseIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_E_RABSetupResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
@@ -1083,13 +1153,16 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
for (i = 0; i < e_rab_setup_resp_p->nb_of_e_rabs; i++) {
S1AP_E_RABSetupItemBearerSUResIEs_t *item;
/* mandatory */
item = calloc(1, sizeof(S1AP_E_RABSetupItemBearerSUResIEs_t));
item = (S1AP_E_RABSetupItemBearerSUResIEs_t *)calloc(1, sizeof(S1AP_E_RABSetupItemBearerSUResIEs_t));
item->id = S1AP_ProtocolIE_ID_id_E_RABSetupItemBearerSURes;
item->criticality = S1AP_Criticality_ignore;
item->value.present = S1AP_E_RABSetupItemBearerSUResIEs__value_PR_E_RABSetupItemBearerSURes;
item->value.choice.E_RABSetupItemBearerSURes.e_RAB_ID = e_rab_setup_resp_p->e_rabs[i].e_rab_id;
GTP_TEID_TO_ASN1(e_rab_setup_resp_p->e_rabs[i].gtp_teid, &item->value.choice.E_RABSetupItemBearerSURes.gTP_TEID);
item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf = e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer;
item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf = malloc(e_rab_setup_resp_p->e_rabs[i].eNB_addr.length);
memcpy(item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.buf,
e_rab_setup_resp_p->e_rabs[i].eNB_addr.buffer,
e_rab_setup_resp_p->e_rabs[i].eNB_addr.length);
item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.size = e_rab_setup_resp_p->e_rabs[i].eNB_addr.length;
item->value.choice.E_RABSetupItemBearerSURes.transportLayerAddress.bits_unused = 0;
S1AP_DEBUG("e_rab_setup_resp: e_rab ID %ld, teid %u, enb_addr %d.%d.%d.%d, SIZE %ld\n",
@@ -1115,7 +1188,7 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
for (i = 0; i < e_rab_setup_resp_p->nb_of_e_rabs_failed; i++) {
S1AP_E_RABItemIEs_t *item;
item = calloc(1, sizeof(S1AP_E_RABItemIEs_t));
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
item->criticality = S1AP_Criticality_ignore;
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
@@ -1127,23 +1200,18 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
case S1AP_Cause_PR_radioNetwork:
item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_transport:
item->value.choice.E_RABItem.cause.choice.transport = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_nas:
item->value.choice.E_RABItem.cause.choice.nas = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_protocol:
item->value.choice.E_RABItem.cause.choice.protocol = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_misc:
item->value.choice.E_RABItem.cause.choice.misc = e_rab_setup_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_NOTHING:
default:
break;
@@ -1173,7 +1241,6 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_E_RABSetupListBearerSURes, &e_RABSetupListBearerSURes);
*/
fprintf(stderr, "start encode\n");
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
S1AP_ERROR("Failed to encode uplink transport\n");
/* Encode procedure has failed... */
@@ -1187,12 +1254,14 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
length,
MSC_AS_TIME_FMT" E_RAN Setup successfulOutcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
initial_ies_p->eNB_UE_S1AP_ID,
initial_ies_p->mme_ue_s1ap_id);
e_rab_setup_resp_p->eNB_ue_s1ap_id,
ue_context_p->mme_ue_s1ap_id);
/* UE associated signalling -> use the allocated stream */
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
ue_context_p->mme_ref->assoc_id, buffer,
length, ue_context_p->tx_stream);
return 0;
}
@@ -1206,16 +1275,19 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
S1AP_S1AP_PDU_t pdu;
S1AP_E_RABModifyResponse_t *out;
S1AP_E_RABModifyResponseIEs_t *ie;
uint8_t *buffer = NULL;
uint32_t length;
int i;
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
DevAssert(e_rab_modify_resp_p != NULL);
DevAssert(s1ap_eNB_instance_p != NULL);
if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p,
e_rab_modify_resp_p->eNB_ue_s1ap_id)) == NULL) {
e_rab_modify_resp_p->eNB_ue_s1ap_id)) == NULL) {
/* The context for this eNB ue s1ap id doesn't exist in the map of eNB UEs */
S1AP_WARN("Failed to find ue context associated with eNB ue s1ap id: 0x%06x\n",
e_rab_modify_resp_p->eNB_ue_s1ap_id);
@@ -1240,6 +1312,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject;
pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_E_RABModifyResponse;
out = &pdu.choice.successfulOutcome.value.choice.E_RABModifyResponse;
/* mandatory */
ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
@@ -1247,6 +1320,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
ie->value.present = S1AP_E_RABModifyResponseIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_E_RABModifyResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
@@ -1264,7 +1338,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs; i++) {
S1AP_E_RABModifyItemBearerModResIEs_t *item;
item = calloc(1, sizeof(S1AP_E_RABModifyItemBearerModResIEs_t));
item = (S1AP_E_RABModifyItemBearerModResIEs_t *)calloc(1, sizeof(S1AP_E_RABModifyItemBearerModResIEs_t));
item->id = S1AP_ProtocolIE_ID_id_E_RABModifyItemBearerModRes;
item->criticality = S1AP_Criticality_ignore;
item->value.present = S1AP_E_RABModifyItemBearerModResIEs__value_PR_E_RABModifyItemBearerModRes;
@@ -1285,7 +1359,7 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
for (i = 0; i < e_rab_modify_resp_p->nb_of_e_rabs_failed; i++) {
S1AP_E_RABItemIEs_t *item;
item = calloc(1, sizeof(S1AP_E_RABItemIEs_t));
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
item->criticality = S1AP_Criticality_ignore;
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
@@ -1297,23 +1371,18 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
case S1AP_Cause_PR_radioNetwork:
item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_transport:
item->value.choice.E_RABItem.cause.choice.transport = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_nas:
item->value.choice.E_RABItem.cause.choice.nas = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_protocol:
item->value.choice.E_RABItem.cause.choice.protocol = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_misc:
item->value.choice.E_RABItem.cause.choice.misc = e_rab_modify_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_NOTHING:
default:
break;
@@ -1337,7 +1406,6 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
}
fprintf(stderr, "start encode\n");
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
S1AP_ERROR("Failed to encode uplink transport\n");
/* Encode procedure has failed... */
@@ -1351,8 +1419,9 @@ int s1ap_eNB_e_rab_modify_resp(instance_t instance,
length,
MSC_AS_TIME_FMT" E_RAN Modify successful Outcome eNB_ue_s1ap_id %u mme_ue_s1ap_id %u",
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
initial_ies_p->eNB_UE_S1AP_ID,
initial_ies_p->mme_ue_s1ap_id);
e_rab_modify_resp_p->eNB_ue_s1ap_id,
ue_context_p->mme_ue_s1ap_id);
/* UE associated signalling -> use the allocated stream */
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
ue_context_p->mme_ref->assoc_id, buffer,
@@ -1364,21 +1433,22 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
s1ap_e_rab_release_resp_t *e_rab_release_resp_p)
//------------------------------------------------------------------------------
{
s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL;
struct s1ap_eNB_ue_context_s *ue_context_p = NULL;
s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL;
struct s1ap_eNB_ue_context_s *ue_context_p = NULL;
S1AP_S1AP_PDU_t pdu;
S1AP_E_RABReleaseResponse_t *out;
S1AP_E_RABReleaseResponseIEs_t *ie;
uint8_t *buffer = NULL;
uint32_t length;
int i;
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
DevAssert(e_rab_release_resp_p != NULL);
DevAssert(s1ap_eNB_instance_p != NULL);
if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p,
e_rab_release_resp_p->eNB_ue_s1ap_id)) == NULL) {
e_rab_release_resp_p->eNB_ue_s1ap_id)) == NULL) {
/* The context for this eNB ue s1ap id doesn't exist in the map of eNB UEs */
S1AP_WARN("Failed to find ue context associated with eNB ue s1ap id: %u\n",
e_rab_release_resp_p->eNB_ue_s1ap_id);
@@ -1392,6 +1462,7 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject;
pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_E_RABReleaseResponse;
out = &pdu.choice.successfulOutcome.value.choice.E_RABReleaseResponse;
/* mandatory */
ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
@@ -1399,6 +1470,7 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
ie->value.present = S1AP_E_RABReleaseResponseIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_context_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
@@ -1416,7 +1488,7 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
for (i = 0; i < e_rab_release_resp_p->nb_of_e_rabs_released; i++) {
S1AP_E_RABReleaseItemBearerRelCompIEs_t *item;
item = calloc(1, sizeof(S1AP_E_RABReleaseItemBearerRelCompIEs_t));
item = (S1AP_E_RABReleaseItemBearerRelCompIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseItemBearerRelCompIEs_t));
item->id = S1AP_ProtocolIE_ID_id_E_RABReleaseItemBearerRelComp;
item->criticality = S1AP_Criticality_ignore;
item->value.present = S1AP_E_RABReleaseItemBearerRelCompIEs__value_PR_E_RABReleaseItemBearerRelComp;
@@ -1437,7 +1509,7 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
for (i = 0; i < e_rab_release_resp_p->nb_of_e_rabs_failed; i++) {
S1AP_E_RABItemIEs_t *item;
item = calloc(1, sizeof(S1AP_E_RABItemIEs_t));
item = (S1AP_E_RABItemIEs_t *)calloc(1, sizeof(S1AP_E_RABItemIEs_t));
item->id = S1AP_ProtocolIE_ID_id_E_RABItem;
item->criticality = S1AP_Criticality_ignore;
item->value.present = S1AP_E_RABItemIEs__value_PR_E_RABItem;
@@ -1449,23 +1521,18 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
case S1AP_Cause_PR_radioNetwork:
item->value.choice.E_RABItem.cause.choice.radioNetwork = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_transport:
item->value.choice.E_RABItem.cause.choice.transport = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_nas:
item->value.choice.E_RABItem.cause.choice.nas = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_protocol:
item->value.choice.E_RABItem.cause.choice.protocol = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_misc:
item->value.choice.E_RABItem.cause.choice.misc = e_rab_release_resp_p->e_rabs_failed[i].cause_value;
break;
case S1AP_Cause_PR_NOTHING:
default:
break;
@@ -1488,6 +1555,7 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
}
/* optional */
#if (S1AP_VERSION >= MAKE_VERSION(12, 0, 0))
if(0) {
ie = (S1AP_E_RABReleaseResponseIEs_t *)calloc(1, sizeof(S1AP_E_RABReleaseResponseIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_UserLocationInformation;
@@ -1496,9 +1564,9 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
// ie->value.choice.UserLocationInformation = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(14, 0, 0)) */
fprintf(stderr, "start encode\n");
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
S1AP_ERROR("Failed to encode release response\n");
/* Encode procedure has failed... */
@@ -1514,11 +1582,14 @@ int s1ap_eNB_e_rab_release_resp(instance_t instance,
0,0,//MSC_AS_TIME_ARGS(ctxt_pP),
e_rab_release_resp_p->eNB_ue_s1ap_id,
ue_context_p->mme_ue_s1ap_id);
/* UE associated signalling -> use the allocated stream */
s1ap_eNB_itti_send_sctp_data_req(s1ap_eNB_instance_p->instance,
ue_context_p->mme_ref->assoc_id, buffer,
length, ue_context_p->tx_stream);
S1AP_INFO("e_rab_release_response sended eNB_UE_S1AP_ID %d mme_ue_s1ap_id %d nb_of_e_rabs_released %d nb_of_e_rabs_failed %d\n",
e_rab_release_resp_p->eNB_ue_s1ap_id, ue_context_p->mme_ue_s1ap_id,e_rab_release_resp_p->nb_of_e_rabs_released,e_rab_release_resp_p->nb_of_e_rabs_failed);
return 0;
}
+9 -1
View File
@@ -50,13 +50,18 @@ int s1ap_eNB_handle_overload_start(uint32_t assoc_id,
s1ap_eNB_mme_data_t *mme_desc_p;
S1AP_OverloadStart_t *container;
S1AP_OverloadStartIEs_t *ie;
DevAssert(pdu != NULL);
container = &pdu->choice.initiatingMessage.value.choice.OverloadStart;
S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_OverloadStartIEs_t, ie, container,
S1AP_ProtocolIE_ID_id_OverloadResponse, TRUE);
S1AP_ProtocolIE_ID_id_OverloadResponse, true);
DevCheck(ie->value.choice.OverloadResponse.present ==
S1AP_OverloadResponse_PR_overloadAction,
S1AP_OverloadResponse_PR_overloadAction, 0, 0);
/* Non UE-associated signalling -> stream 0 */
DevCheck(stream == 0, stream, 0, 0);
@@ -71,6 +76,7 @@ int s1ap_eNB_handle_overload_start(uint32_t assoc_id,
mme_desc_p->state = S1AP_ENB_OVERLOAD;
mme_desc_p->overload_state =
ie->value.choice.OverloadResponse.choice.overloadAction;
return 0;
}
@@ -83,7 +89,9 @@ int s1ap_eNB_handle_overload_stop(uint32_t assoc_id,
* Information Element.
*/
DevAssert(pdu != NULL);
s1ap_eNB_mme_data_t *mme_desc_p;
/* Non UE-associated signalling -> stream 0 */
DevCheck(stream == 0, stream, 0, 0);
+15 -1
View File
@@ -47,9 +47,11 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
S1AP_TraceFailureIndicationIEs_t *ie;
uint8_t *buffer = NULL;
uint32_t length;
DevAssert(ue_desc_p != NULL);
DevAssert(trace_id != NULL);
DevAssert(cause_p != NULL);
/* Prepare the S1AP message to encode */
memset(&pdu, 0, sizeof(pdu));
pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage;
@@ -57,24 +59,32 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore;
pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_TraceFailureIndication;
out = &pdu.choice.initiatingMessage.value.choice.TraceFailureIndication;
/* mandatory */
ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_MME_UE_S1AP_ID;
ie->value.choice.MME_UE_S1AP_ID = ue_desc_p->mme_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_E_UTRAN_Trace_ID;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_E_UTRAN_Trace_ID;
memcpy(&ie->value.choice.E_UTRAN_Trace_ID, trace_id, sizeof(S1AP_E_UTRAN_Trace_ID_t));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* mandatory */
ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_Cause;
ie->criticality = S1AP_Criticality_ignore;
@@ -99,15 +109,18 @@ int s1ap_eNB_handle_trace_start(uint32_t assoc_id,
S1AP_TraceStartIEs_t *ie;
struct s1ap_eNB_ue_context_s *ue_desc_p;
struct s1ap_eNB_mme_data_s *mme_ref_p;
DevAssert(pdu != NULL);
container = &pdu->choice.initiatingMessage.value.choice.TraceStart;
S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_TraceStartIEs_t, ie, container,
S1AP_ProtocolIE_ID_id_eNB_UE_S1AP_ID, TRUE);
mme_ref_p = s1ap_eNB_get_MME(NULL, assoc_id, 0);
DevAssert(mme_ref_p != NULL);
if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_ref_p->s1ap_eNB_instance,
ie->value.choice.ENB_UE_S1AP_ID)) == NULL) {
ie->value.choice.ENB_UE_S1AP_ID)) == NULL) {
/* Could not find context associated with this eNB_ue_s1ap_id -> generate
* trace failure indication.
*/
@@ -130,5 +143,6 @@ int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id,
// S1AP_DeactivateTraceIEs_t *deactivate_trace_p;
//
// deactivate_trace_p = &message_p->msg.deactivateTraceIEs;
return 0;
}
-15
View File
@@ -203,19 +203,6 @@ sctp_handle_new_association_req(
if (s > 0 ) {
if (((struct sockaddr_in*)ifa->ifa_addr)->sin_addr.s_addr == in.s_addr) {
#if 0
memset(&ifr, 0, sizeof(ifr));
snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s",ifa->ifa_name);
if (setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, (void *)&ifr, sizeof(ifr)) < 0) {
SCTP_ERROR("Setsockopt SOL_SOCKET failed: %s\n",
strerror(errno));
} else {
SCTP_DEBUG("Setsockopt SOL_SOCKET socket bound to : %s\n",
ifa->ifa_name);
}
#else
struct sockaddr_in locaddr;
locaddr.sin_family = AF_INET;
locaddr.sin_port = htons(sctp_new_association_req_p->port);
@@ -228,8 +215,6 @@ sctp_handle_new_association_req(
SCTP_DEBUG("sctp_bindx SCTP_BINDX_ADD_ADDR socket bound to : %s\n",
inet_ntoa(locaddr.sin_addr));
}
#endif
break;
}
@@ -45,7 +45,7 @@ eNBs =
pucch_delta_shift = 1;
pucch_nRB_CQI = 1;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pucch_n1_AN = 0;
pdsch_referenceSignalPower = -26;
pdsch_p_b = 0;
pusch_n_SB = 1;
@@ -44,7 +44,7 @@ eNBs =
pucch_delta_shift = 1;
pucch_nRB_CQI = 1;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pucch_n1_AN = 0;
pdsch_referenceSignalPower = -26;
pdsch_p_b = 0;
pusch_n_SB = 1;
+1 -1
View File
@@ -40,7 +40,7 @@
#ifdef CMAKER
#include "SystemInformationBlockType2.h"
#else
#include "RRC/LITE/MESSAGES/SystemInformationBlockType2.h"
#include "RRC/LTE/MESSAGES/SystemInformationBlockType2.h"
#endif
#define IPV4_STR_ADDR_TO_INT_NWBO(AdDr_StR,NwBo,MeSsAgE ) do {\
+1 -1
View File
@@ -1206,7 +1206,7 @@ int main( int argc, char **argv )
logInit();
set_glog(LOG_TRACE, LOG_MED);
itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, NULL);
itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info);
set_comp_log(ENB_APP, LOG_TRACE, LOG_MED, 1);
set_comp_log(S1AP, LOG_TRACE, LOG_MED, 1);
@@ -37,7 +37,9 @@
int et_s1ap_decode_pdu(S1AP_PDU_t *const pdu, const uint8_t *const buffer, const uint32_t length)
{
asn_dec_rval_t dec_ret;
DevAssert(buffer != NULL);
memset((void *)pdu, 0, sizeof(S1AP_S1AP_PDU_t));
dec_ret = aper_decode(NULL,
&asn_DEF_S1AP_S1AP_PDU,
File diff suppressed because it is too large Load Diff
@@ -60,7 +60,7 @@ extern uint32_t g_constraints;
//{
//}
void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t *const s1ap, xmlNode *node, const S1AP_MME_UE_S1AP_ID_t new_id)
void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t * const s1ap, xmlNode *node, const S1ap_MME_UE_S1AP_ID_t new_id)
{
xmlNode *cur_node = NULL;
xmlAttrPtr attr = NULL;
@@ -73,30 +73,24 @@ void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t *const s1ap, xmlNode *node, cons
// modify
for (cur_node = (xmlNode *)node; cur_node; cur_node = cur_node->next) {
go_deeper_in_tree = 1;
if ((!xmlStrcmp(cur_node->name, (const xmlChar *)"field"))) {
// do not get hidden fields
xml_char = xmlGetProp((xmlNode *)cur_node, (const xmlChar *)"hide");
if (NULL != xml_char) {
if ((!xmlStrcmp(xml_char, (const xmlChar *)"yes"))) {
go_deeper_in_tree = 0;
}
xmlFree(xml_char);
}
if (0 < go_deeper_in_tree) {
// first get size
xml_char = xmlGetProp((xmlNode *)cur_node, (const xmlChar *)"pos");
if (NULL != xml_char) {
pos = strtoul((const char *)xml_char, NULL, 0);
pos -= s1ap->xml_stream_pos_offset;
AssertFatal(pos >= 0, "Bad pos %d xml_stream_pos_offset %d", pos, s1ap->xml_stream_pos_offset);
xmlFree(xml_char);
xml_char = xmlGetProp((xmlNode *)cur_node, (const xmlChar *)"size");
if (NULL != xml_char) {
const xmlChar value_d[32];
const xmlChar value_h[20];
@@ -106,6 +100,7 @@ void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t *const s1ap, xmlNode *node, cons
unsigned long int uli = 0;
char hex[3] = {0,0,0};
char *end_ptr = NULL;
size = strtoul((const char *)xml_char, NULL, 0);
xmlFree(xml_char);
// second: try to set value (always hex)
@@ -115,12 +110,12 @@ void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t *const s1ap, xmlNode *node, cons
AssertFatal((ret > 0) && (ret < 20), "Could not convert int to hex str");
ret = snprintf((char *)showname, 64, "MME-UE-S1AP-ID: %d", new_id);
AssertFatal((ret > 0) && (ret < 64), "Could not convert int to dec str");
attr = xmlSetProp((xmlNode *)cur_node, (const xmlChar *)"value", value_h);
attr = xmlSetProp((xmlNode *)cur_node, (const xmlChar *)"show", value_d);
attr = xmlSetProp((xmlNode *)cur_node, (const xmlChar *)"showname", showname);
//TODO update s1ap->binary_stream @pos with new_id_hex, size
AssertFatal((pos+size) < s1ap->binary_stream_allocated_size, "Rewrite of mme_ue_s1ap_id out of bounds of binary_stream");
//avoid endianess issues
do {
hex[0] = value_h[pos2++];
@@ -131,7 +126,6 @@ void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t *const s1ap, xmlNode *node, cons
AssertFatal((uli != ULONG_MAX) && (end_ptr != NULL) && (*end_ptr == '\0'), "Conversion of hexstring %s failed returned %ld errno %d", hex, uli, errno);
s1ap->binary_stream[pos++] = (unsigned char)uli;
} while (pos2 < (2*5));
// update ASN1
et_decode_s1ap(s1ap);
//S1AP_INFO("Updated ASN1 for %s\n", showname);
@@ -139,7 +133,6 @@ void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t *const s1ap, xmlNode *node, cons
}
}
}
if (0 < go_deeper_in_tree) {
update_xpath_node_mme_ue_s1ap_id(s1ap, cur_node->children, new_id);
}
@@ -154,11 +147,12 @@ void update_xpath_node_mme_ue_s1ap_id(et_s1ap_t *const s1ap, xmlNode *node, cons
* Prints the @nodes content to @output.
* From http://www.xmlsoft.org/examples/#xpath2.c
*/
void update_xpath_nodes_mme_ue_s1ap_id(et_s1ap_t *const s1ap_payload, xmlNodeSetPtr nodes, const S1AP_MME_UE_S1AP_ID_t new_id)
void update_xpath_nodes_mme_ue_s1ap_id(et_s1ap_t * const s1ap_payload, xmlNodeSetPtr nodes, const S1ap_MME_UE_S1AP_ID_t new_id)
{
int size = 0;
int i = 0;
xmlNode *s1ap_node = NULL;
size = (nodes) ? nodes->nodeNr : 0;
//S1AP_DEBUG("%s() num nodes %u\n", __FUNCTION__, size);
@@ -174,7 +168,6 @@ void update_xpath_nodes_mme_ue_s1ap_id(et_s1ap_t *const s1ap_payload, xmlNodeSet
s1ap_node = nodes->nodeTab[i];
AssertFatal(NULL != s1ap_node, "One element of resultset of XPATH expression is NULL\n");
update_xpath_node_mme_ue_s1ap_id(s1ap_payload, s1ap_node, new_id);
/*
* All the elements returned by an XPath query are pointers to
* elements from the tree *except* namespace nodes where the XPath
@@ -197,24 +190,26 @@ void update_xpath_nodes_mme_ue_s1ap_id(et_s1ap_t *const s1ap_payload, xmlNodeSet
}
}
//------------------------------------------------------------------------------
int et_s1ap_update_mme_ue_s1ap_id(et_packet_t *const packet, const S1AP_MME_UE_S1AP_ID_t old_id, const S1AP_MME_UE_S1AP_ID_t new_id)
int et_s1ap_update_mme_ue_s1ap_id(et_packet_t * const packet, const S1ap_MME_UE_S1AP_ID_t old_id, const S1ap_MME_UE_S1AP_ID_t new_id)
{
xmlChar xpath_expression[ET_XPATH_EXPRESSION_MAX_LENGTH];
int ret = 0;
xmlDocPtr doc = NULL;
xmlXPathContextPtr xpath_ctx = NULL;
xmlXPathObjectPtr xpath_obj = NULL;
//S1AP_DEBUG("%s() packet num %u original frame number %u, mme_ue_s1ap_id %u -> %u\n", __FUNCTION__, packet->packet_number, packet->original_frame_number, old_id, new_id);
ret = snprintf(xpath_expression, ET_XPATH_EXPRESSION_MAX_LENGTH, "//field[@name=\"s1ap.MME_UE_S1AP_ID\"][@show=\"%u\"]", old_id);
AssertFatal((ret > 0) && (ret < ET_XPATH_EXPRESSION_MAX_LENGTH), "Could not build XPATH expression err=%d", ret);
doc = packet->sctp_hdr.u.data_hdr.payload.doc;
// Create xpath evaluation context
xpath_ctx = xmlXPathNewContext(doc);
if(xpath_ctx == NULL) {
fprintf(stderr,"Error: unable to create new XPath context\n");
xmlFreeDoc(doc);
return(-1);
fprintf(stderr,"Error: unable to create new XPath context\n");
xmlFreeDoc(doc);
return(-1);
}
// Evaluate xpath expression
@@ -222,16 +217,17 @@ int et_s1ap_update_mme_ue_s1ap_id(et_packet_t *const packet, const S1AP_MME_UE_S
xmlXPathFreeContext(xpath_ctx);
AssertFatal(xpath_obj != NULL, "Unable to evaluate XPATH expression \"%s\"\n", xpath_expression);
if(xmlXPathNodeSetIsEmpty(xpath_obj->nodesetval)) {
if(xmlXPathNodeSetIsEmpty(xpath_obj->nodesetval)){
xmlXPathFreeObject(xpath_obj);
S1AP_DEBUG("%s() No match \"%s\"packet num %u original frame number %u, mme_ue_s1ap_id %u -> %u\n",
__FUNCTION__, xpath_expression, packet->packet_number, packet->original_frame_number, old_id, new_id);
__FUNCTION__, xpath_expression, packet->packet_number, packet->original_frame_number, old_id, new_id);
return -1;
}
// update selected nodes
update_xpath_nodes_mme_ue_s1ap_id(&packet->sctp_hdr.u.data_hdr.payload, xpath_obj->nodesetval, new_id);
// Cleanup of XPath data
xmlXPathFreeObject(xpath_obj);
return 0;
}
+1 -1
View File
@@ -69,7 +69,7 @@ int main(int argc, char *argv[])
/* Calling each layer init function */
log_init(&mme_config);
itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, NULL);
itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info);
sctp_init(&mme_config);
udp_init(&mme_config);
s1ap_mme_init(&mme_config);
+1 -6
View File
@@ -57,7 +57,6 @@ static void *eNB_app_task (void *args_p);
void mme_test_s1_start_test(instance_t instance);
//------------------------------------------------------------------------------
static char *conf_config_file_name = NULL;
static char *itti_dump_file = NULL;
const Enb_properties_array_t *enb_properties = NULL;
int16_t glog_level = LOG_INFO;
int16_t glog_verbosity = LOG_MED;
@@ -77,10 +76,6 @@ static void get_options (int argc, char **argv)
while ((c = getopt_long (argc, argv, "K:g:G:O:",NULL,NULL)) != -1) {
switch (c) {
case 'K':
itti_dump_file = strdup(optarg);
break;
case 'O':
conf_config_file_name = optarg;
break;
@@ -316,7 +311,7 @@ int main( int argc, char **argv )
/* Read eNB configuration file */
enb_properties = enb_config_init(conf_config_file_name);
itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, itti_dump_file);
itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info);
itti_wait_ready(1);
+1 -4
View File
@@ -276,13 +276,10 @@ void udp_eNB_receiver(struct udp_socket_desc_s *udp_sock_pP)
* if the queue is full.
*/
/* look for HACK_RLC_UM_LIMIT for others places related to the hack. Please do not remove this comment. */
//if (itti_send_msg_to_task(udp_sock_pP->task_id, INSTANCE_DEFAULT, message_p) < 0) {
if (itti_try_send_msg_to_task(udp_sock_pP->task_id, INSTANCE_DEFAULT, message_p) < 0) {
#if 0
LOG_I(UDP_, "Failed to send message %d to task %d\n",
LOG_E(UDP_, "Failed to send message %d to task %d\n",
UDP_DATA_IND,
udp_sock_pP->task_id);
#endif
itti_free(TASK_UDP, message_p);
itti_free(TASK_UDP, forwarded_buffer);
return;