Use an un-official community collaboration version of asn1c

1. It's no need to modify LTE-RRC's ASN.1 file for enabling option group
   feature in generate_asn1.
2. It's no need to patch the C header files generated from
   LTE-RRC/S1AP/X2AP's ASN.1 in fix_asn1.
3. It's no need to pre-process S1AP/X2AP's ASN.1 for enabling information
   object class feature by asn1tostruct.py.

This commit requires an un-official version of asn1c which are
collaboration of asn1c community members and `build_helper` is modified
in this commit accordingly :

  https://github.com/brchiu/asn1c/tree/velichkov_s1ap_plus_option_group

This asn1c can also convert ASN.1 of 5G NR RRC (38.331, v15.1.0) and
generate C files with -findirect-choice command line option without
tweaking ASN.1 file.

Examples for how to use this asn1c for S1AP are in S1AP files, e.g.
s1ap_eNB_nas_procedures.c and s1ap_eNB_handler.c.

There is an modified openair-cn (based on tag 0.5.0) with this new asn1c at :

  https://github.com/brchiu/openair-cn/tree/new-asn1c

Basic S1AP interaction and data transfer operation between OAI eNB and
this modified openair-cn has been tested.

Note: Community version of asn1c is keeping evolved to provide better usage.
This commit is contained in:
Bi-Ruei, Chiu
2018-07-13 10:04:46 +08:00
parent df1e5b21c8
commit a247907d3a
103 changed files with 159551 additions and 24258 deletions
+89 -113
View File
@@ -170,7 +170,7 @@ set(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} ${C_FLAGS_PROCESSOR} -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops -Wno-packed-bitfield-compat -fPIC ")
# add autotools definitions that were maybe used!
set(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_STRERROR=1 -DHAVE_SOCKET=1 -DHAVE_MEMSET=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_LIBSCTP -D'MAKE_VERSION(a,b,c)=((a)*256+(b)*16+c)'"
"${CMAKE_C_FLAGS} -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_STRERROR=1 -DHAVE_SOCKET=1 -DHAVE_MEMSET=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_LIBSCTP -DASN_DISABLE_OER_SUPPORT -D'MAKE_VERSION(a,b,c)=((a)*256+(b)*16+c)'"
)
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} ${C_FLAGS_PROCESSOR} -std=c++11 "
@@ -281,8 +281,8 @@ endif (${ENABLE_ITTI})
# (so creating new asn.1 objects instead of modifying the object attributes)
# New C code source file, cmake must be re-run (instead of re-running make only)
#############
set(asn1c_call "${OPENAIR_CMAKE}/tools/generate_asn1")
set(fix_asn1c_call "${OPENAIR_CMAKE}/tools/fix_asn1")
# set(asn1c_call "${OPENAIR_CMAKE}/tools/generate_asn1")
# set(fix_asn1c_call "${OPENAIR_CMAKE}/tools/fix_asn1")
set(asn1_generated_dir ${OPENAIR_BIN_DIR})
set(protoc_call "${OPENAIR_CMAKE}/tools/generate_protobuf")
@@ -302,28 +302,32 @@ elseif (${RRC_ASN1_VERSION} STREQUAL "CBA")
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel10")
make_version(RRC_VERSION 10 2 0)
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn)
else()
make_version(RRC_VERSION 14 3 0)
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/RRC-e30.asn)
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel11")
make_version(RRC_VERSION 11 18 0)
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-11.18.0.asn1)
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel12")
make_version(RRC_VERSION 12 16 0)
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-12.16.0.asn1)
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel13")
make_version(RRC_VERSION 13 9 1)
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-13.9.1.asn1)
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel14")
make_version(RRC_VERSION 14 6 2)
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.6.2.asn1)
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel15")
make_version(RRC_VERSION 15 1 0)
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.1.0.asn1)
endif (${RRC_ASN1_VERSION} STREQUAL "Rel8")
add_definitions(-DRRC_VERSION=${RRC_VERSION})
set (RRC_FULL_DIR ${asn1_generated_dir}/RRC_${RRC_ASN1_VERSION})
if(NOT EXISTS ${asn1c_call})
message( FATAL_ERROR "The script ${asn1c_call} must be present" )
endif(NOT EXISTS ${asn1c_call})
execute_process(COMMAND ${asn1c_call} ${RRC_FULL_DIR} ${RRC_GRAMMAR}
message("calling asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D ${RRC_FULL_DIR} ${RRC_GRAMMAR}")
execute_process(COMMAND mkdir -p ${RRC_FULL_DIR}
COMMAND env asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D ${RRC_FULL_DIR} ${RRC_GRAMMAR}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "${asn1c_call}: error")
endif (NOT ${ret} STREQUAL 0)
if(NOT EXISTS ${fix_asn1c_call})
message( FATAL_ERROR "The script ${fix_asn1c_call} must be present" )
endif(NOT EXISTS ${fix_asn1c_call})
execute_process(COMMAND ${fix_asn1c_call} ${RRC_FULL_DIR} RRC ${RRC_ASN1_VERSION}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "${fix_asn1c_call}: error")
message(FATAL_ERROR "${ret}: error")
endif (NOT ${ret} STREQUAL 0)
file(GLOB rrc_source ${RRC_FULL_DIR}/*.c)
file(GLOB rrc_h ${RRC_FULL_DIR}/*.h)
set(rrc_h ${rrc_h} ${RRC_FULL_DIR}/asn1_constants.h)
@@ -337,8 +341,8 @@ include_directories ("${RRC_FULL_DIR}")
# Warning: if you modify ASN.1 source file to generate new C files, cmake should be re-run instead of make
add_custom_command (
OUTPUT ${RRC_FULL_DIR}/asn1_constants.h
COMMAND ${asn1c_call} ${RRC_FULL_DIR} ${RRC_GRAMMAR}
COMMAND ${fix_asn1c_call} ${RRC_FULL_DIR} RRC ${RRC_ASN1_VERSION}
COMMAND mkdir -p ${RRC_FULL_DIR}
COMMAND env asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D ${RRC_FULL_DIR} ${RRC_GRAMMAR}
DEPENDS ${RRC_GRAMMAR}
)
@@ -346,65 +350,56 @@ add_custom_command (
# Same limitation as described in RRC: unknown generated file list
# so we generate it at cmake time
##############
add_list1_option(S1AP_RELEASE R10 "S1AP ASN.1 grammar version" R8 R9 R10)
add_list1_option(S1AP_RELEASE R14 "S1AP ASN.1 grammar version" R8 R9 R10 R14 R15)
set(S1AP_DIR ${OPENAIR3_DIR}/S1AP)
if (${S1AP_RELEASE} STREQUAL "R8")
make_version(S1AP_VERSION 8 10 0)
set (ASN1RELDIR R8.10)
set(S1AP_ASN_FILES "s1ap-8.10.0.asn1")
elseif (${S1AP_RELEASE} STREQUAL "R9")
make_version(S1AP_VERSION 9 8 0)
set (ASN1RELDIR R9.8)
make_version(S1AP_VERSION 9 10 0)
set(S1AP_ASN_FILES "s1ap-9.10.0.asn1")
elseif (${S1AP_RELEASE} STREQUAL "R10")
make_version(S1AP_VERSION 10 5 0)
set (ASN1RELDIR R10.5)
make_version(S1AP_VERSION 10 9 0)
set(S1AP_ASN_FILES "s1ap-10.9.0.asn1")
elseif (${S1AP_RELEASE} STREQUAL "R11")
make_version(S1AP_VERSION 11 8 0)
set(S1AP_ASN_FILES "s1ap-11.8.0.asn1")
elseif (${S1AP_RELEASE} STREQUAL "R12")
make_version(S1AP_VERSION 12 7 0)
set(S1AP_ASN_FILES "s1ap-12.7.0.asn1")
elseif (${S1AP_RELEASE} STREQUAL "R13")
make_version(S1AP_VERSION 13 6 0)
set(S1AP_ASN_FILES "s1ap-13.6.0.asn1")
elseif (${S1AP_RELEASE} STREQUAL "R14")
make_version(S1AP_VERSION 14 5 0)
set(S1AP_ASN_FILES "s1ap-14.5.0.asn1")
else (${S1AP_RELEASE} STREQUAL "R15")
make_version(S1AP_VERSION 15 1 0)
set(S1AP_ASN_FILES "s1ap-15.1.0.asn1")
endif(${S1AP_RELEASE} STREQUAL "R8")
add_definitions(-DS1AP_VERSION=${S1AP_VERSION})
set(S1AP_ASN_DIR ${S1AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR})
set(S1AP_ASN_FILES
${S1AP_ASN_DIR}/S1AP-CommonDataTypes.asn
${S1AP_ASN_DIR}/S1AP-Constants.asn
${S1AP_ASN_DIR}/S1AP-IEs.asn
${S1AP_ASN_DIR}/S1AP-PDU.asn
)
set(S1AP_C_DIR ${asn1_generated_dir}/S1AP_${ASN1RELDIR})
#message("calling ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}")
execute_process(COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}
set(S1AP_ASN_DIR ${S1AP_DIR}/MESSAGES/ASN1/${S1AP_RELEASE})
set(S1AP_C_DIR ${asn1_generated_dir}/S1AP_${S1AP_RELEASE})
message("calling ASN1C_PREFIX=S1AP_ asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${S1AP_C_DIR} ${S1AP_ASN_DIR}/${S1AP_ASN_FILES}")
execute_process(COMMAND mkdir -p ${S1AP_C_DIR}
COMMAND env "ASN1C_PREFIX=S1AP_" asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${S1AP_C_DIR} ${S1AP_ASN_DIR}/${S1AP_ASN_FILES}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "${asn1c_call}: error")
endif (NOT ${ret} STREQUAL 0)
execute_process(COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "asn1tostruct.py: error")
endif (NOT ${ret} STREQUAL 0)
execute_process(COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_RELEASE}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "${fix_asn1c_call}: error")
message(FATAL_ERROR "${ret}: error")
endif (NOT ${ret} STREQUAL 0)
file(GLOB S1AP_source ${S1AP_C_DIR}/*.c)
set(S1AP_OAI_generated
${S1AP_C_DIR}/s1ap_decoder.c
${S1AP_C_DIR}/s1ap_encoder.c
${S1AP_C_DIR}/s1ap_xer_print.c
${S1AP_C_DIR}/s1ap_compare.c
${S1AP_C_DIR}/s1ap_ies_defs.h
)
file(GLOB s1ap_h ${S1AP_C_DIR}/*.h)
set(s1ap_h ${s1ap_h} )
set(s1ap_h ${s1ap_h})
add_custom_command (
OUTPUT ${S1AP_OAI_generated}
COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}
COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR}
COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_RELEASE}
DEPENDS ${S1AP_ASN_FILES}
)
OUTPUT ${S1AP_C_DIR}/S1AP_asn_constant.h
COMMAND mkdir -p ${S1AP_C_DIR}
COMMAND env "ASN1C_PREFIX=S1AP_" asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${S1AP_C_DIR} ${S1AP_ASN_DIR}/${S1AP_ASN_FILES}
DEPENDS ${S1AP_ASN_DIR}/${S1AP_ASN_FILES}
)
add_library(S1AP_LIB
${S1AP_OAI_generated}
${S1AP_source}
${S1AP_DIR}/s1ap_common.c
)
@@ -413,7 +408,6 @@ include_directories ("${S1AP_C_DIR}")
include_directories ("${S1AP_DIR}")
add_library(S1AP_ENB
${S1AP_C_DIR}/s1ap_ies_defs.h
${S1AP_DIR}/s1ap_eNB.c
${S1AP_DIR}/s1ap_eNB_context_management_procedures.c
${S1AP_DIR}/s1ap_eNB_decoder.c
@@ -428,70 +422,52 @@ add_library(S1AP_ENB
${S1AP_DIR}/s1ap_eNB_ue_context.c
)
#X2AP
# Same limitation as described in RRC/S1AP: unknown generated file list
# so we generate it at cmake time
##############
add_list1_option(X2AP_RELEASE R11 "X2AP ASN.1 grammar version" R10 R11)
set(X2AP_DIR ${OPENAIR2_DIR}/X2AP)
if (${X2AP_RELEASE} STREQUAL "R10")
make_version(S1AP_VERSION 10 0 0)
set (ASN1RELDIR R.UNKNOWN)
elseif (${X2AP_RELEASE} STREQUAL "R11")
make_version(S1AP_VERSION 11 2 0)
set (ASN1RELDIR R11.2)
endif(${X2AP_RELEASE} STREQUAL "R10")
add_definitions(-DX2AP_VERSION=${X2AP_VERSION})
set(X2AP_ASN_DIR ${X2AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR})
set(X2AP_ASN_FILES
${X2AP_ASN_DIR}/X2AP-CommonDataTypes.asn
${X2AP_ASN_DIR}/X2AP-Constants.asn
${X2AP_ASN_DIR}/X2AP-IEs.asn
${X2AP_ASN_DIR}/X2AP-PDU.asn
${X2AP_ASN_DIR}/X2AP-Containers.asn
)
add_list1_option(X2AP_RELEASE R14 "X2AP ASN.1 grammar version" R8 R11 R12 R14 R15)
set(X2AP_C_DIR ${asn1_generated_dir}/X2AP_${ASN1RELDIR})
#message("calling ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}")
execute_process(COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}
set(X2AP_DIR ${OPENAIR2_DIR}/X2AP)
if (${X2AP_RELEASE} STREQUAL "R8")
make_version(X2AP_VERSION 8 9 0)
set(X2AP_ASN_FILES x2ap-8.9.0.asn1)
elseif (${X2AP_RELEASE} STREQUAL "R11")
make_version(X2AP_VERSION 11 9 0)
set(X2AP_ASN_FILES x2ap-11.9.0.asn1)
elseif (${X2AP_RELEASE} STREQUAL "R12")
make_version(X2AP_VERSION 12 9 0)
set(X2AP_ASN_FILES x2ap-12.9.0.asn1)
elseif (${X2AP_RELEASE} STREQUAL "R14")
make_version(X2AP_VERSION 14 6 0)
set(X2AP_ASN_FILES x2ap-14.6.0.asn1)
elseif (${X2AP_RELEASE} STREQUAL "R15")
make_version(X2AP_VERSION 15 1 0)
set(X2AP_ASN_FILES x2ap-15.1.0.asn1)
endif(${X2AP_RELEASE} STREQUAL "R8")
add_definitions(-DX2AP_VERSION=${X2AP_VERSION})
set(X2AP_ASN_DIR ${X2AP_DIR}/MESSAGES/ASN1/${X2AP_RELEASE})
set(X2AP_C_DIR ${asn1_generated_dir}/X2AP_${X2AP_RELEASE})
message("calling ASN1C_PREFIX=X2AP_ asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${X2AP_C_DIR} ${X2AP_ASN_DIR}/${X2AP_ASN_FILES}")
execute_process(COMMAND mkdir -p ${X2AP_C_DIR}
COMMAND env "ASN1C_PREFIX=X2AP_" asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${X2AP_C_DIR} ${X2AP_ASN_DIR}/${X2AP_ASN_FILES}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "${asn1c_call}: error")
endif (NOT ${ret} STREQUAL 0)
execute_process(COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "asn1tostruct.py: error")
endif (NOT ${ret} STREQUAL 0)
execute_process(COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_RELEASE}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "${fix_asn1c_call}: error")
message(FATAL_ERROR "${ret}: error")
endif (NOT ${ret} STREQUAL 0)
file(GLOB X2AP_source ${X2AP_C_DIR}/*.c)
set(X2AP_OAI_generated
${X2AP_C_DIR}/x2ap_decoder.c
${X2AP_C_DIR}/x2ap_encoder.c
${X2AP_C_DIR}/x2ap_xer_print.c
${X2AP_C_DIR}/x2ap_ies_defs.h
)
file(GLOB x2ap_h ${X2AP_C_DIR}/*.h)
set(x2ap_h ${x2ap_h} )
set(x2ap_h ${x2ap_h})
#message("calling ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR}")
add_custom_command (
OUTPUT ${X2AP_OAI_generated}
COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}
COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR}
COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_RELEASE}
DEPENDS ${X2AP_ASN_FILES}
OUTPUT ${X2AP_C_DIR}/X2AP_asn_constant.h
COMMAND mkdir -p ${X2AP_C_DIR}
COMMAND env "ASN1C_PREFIX=X2AP_" asn1c -pdu=all -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D ${X2AP_C_DIR} ${X2AP_ASN_DIR}/${X2AP_ASN_FILES}
DEPENDS ${X2AP_ASN_DIR}/${X2AP_ASN_FILES}
)
add_library(X2AP_LIB
${X2AP_OAI_generated}
${X2AP_source}
${X2AP_DIR}/x2ap_common.c
)
@@ -2304,7 +2280,7 @@ endforeach()
# castxml doesn't work with c11 (gcc 5 default)
# force castxml and clang compilation with gnu89 standard
# we can't use cXX standard as pthread_rwlock_t is gnu standard
list(APPEND itti_compiler_options "-std=gnu89;-D'MAKE_VERSION(a,b,c)=((a)*256+(b)*16+c)'")
list(APPEND itti_compiler_options "-std=gnu89;-DASN_DISABLE_OER_SUPPORT;-D'MAKE_VERSION(a,b,c)=((a)*256+(b)*16+c)'")
set (ITTI_H ${ITTI_DIR}/intertask_interface_types.h)
if(EXISTS /usr/bin/gccxml)
set(xml_command gccxml ${itti_compiler_options} -fxml=${OPENAIR_BIN_DIR}/messages.xml ${ITTI_H})
+3 -1
View File
@@ -678,8 +678,10 @@ install_asn1c_from_source(){
echo_info "\nInstalling ASN1. The log file for ASN1 installation is here: $asn1_install_log "
(
$SUDO rm -rf /tmp/asn1c
GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c
# GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c
git clone https://github.com/brchiu/asn1c /tmp/asn1c
cd /tmp/asn1c
git checkout velichkov_s1ap_plus_option_group
./configure
make -j`nproc`
$SUDO make install
+1 -1
View File
@@ -22,7 +22,7 @@
#ifndef GTPV1_U_MESSAGES_TYPES_H_
#define GTPV1_U_MESSAGES_TYPES_H_
#include "asn1_constants.h"
#include "asn_constant.h"
#define GTPV1U_MAX_BEARERS_PER_UE max_val_DRB_Identity
+1 -1
View File
@@ -29,7 +29,7 @@
***************************************************************************/
#ifdef CMAKER
#include "asn1_constants.h"
#include "asn_constant.h"
#else
#include "RRC/LTE/MESSAGES/asn1_constants.h"
#endif
+1 -1
View File
@@ -21,7 +21,7 @@
#ifndef RAL_MESSAGES_TYPES_H_
#define RAL_MESSAGES_TYPES_H_
#include "asn1_constants.h"
#include "asn_constant.h"
#include "platform_types.h"
#include "commonDef.h"
/* 802.21 mappings with the RRC protocol :
+1 -1
View File
@@ -38,7 +38,7 @@ MESSAGE_DEF(S1AP_E_RAB_MODIFY_RESPONSE_LOG , MESSAGE_PRIORITY_MED, IttiMsgTex
MESSAGE_DEF(S1AP_PAGING_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_paging_log)
MESSAGE_DEF(S1AP_E_RAB_RELEASE_REQUEST_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_e_rab_release_request_log)
MESSAGE_DEF(S1AP_E_RAB_RELEASE_RESPONSE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_e_rab_release_response_log)
MESSAGE_DEF(S1AP_E_RAB_ERROR_INDICATION_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_error_indication_log)
MESSAGE_DEF(S1AP_ERROR_INDICATION_LOG , MESSAGE_PRIORITY_MED, IttiMsgText , s1ap_error_indication_log)
/* eNB application layer -> S1AP messages */
MESSAGE_DEF(S1AP_REGISTER_ENB_REQ , MESSAGE_PRIORITY_MED, s1ap_register_enb_req_t , s1ap_register_enb_req)
+1 -1
View File
@@ -44,7 +44,7 @@
# include "rlc_am_structs.h"
# include "rlc_tm_structs.h"
# include "rlc_um_structs.h"
# include "asn1_constants.h"
# include "asn_constant.h"
# include "UTIL/LOG/log.h"
# include "mem_block.h"
//# include "PHY/defs.h"
+23 -4
View File
@@ -99,15 +99,29 @@ void *ue_ip_interrupt(void)
}
#endif //NETLINK
//---------------------------------------------------------------------------
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0))
void ue_ip_timer(struct timer_list *t)
#else
void ue_ip_timer(unsigned long dataP)
#endif
{
//---------------------------------------------------------------------------
ue_ip_priv_t *priv_p=(ue_ip_priv_t *)dataP;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0))
ue_ip_priv_t *priv_p = from_timer(priv_p, t, timer);
#else
ue_ip_priv_t *priv_p = (ue_ip_priv_t *)dataP;
#endif
spin_lock(&priv_p->lock);
(priv_p->timer).function=ue_ip_timer;
(priv_p->timer).expires=jiffies+UE_IP_TIMER_TICK;
(priv_p->timer).data=dataP;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0))
mod_timer(&priv_p->timer, jiffies + UE_IP_TIMER_TICK);
#else
(priv_p->timer).function = ue_ip_timer;
(priv_p->timer).expires = jiffies + UE_IP_TIMER_TICK;
(priv_p->timer).data = dataP;
add_timer(&priv_p->timer);
#endif
spin_unlock(&priv_p->lock);
return;
// add_timer(&gpriv->timer);
@@ -137,10 +151,15 @@ int ue_ip_open(struct net_device *dev_pP)
netif_wake_queue(dev_pP);
}
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0))
timer_setup(&(priv_p->timer), ue_ip_timer, 0);
(priv_p->timer).expires = jiffies+UE_IP_TIMER_TICK;
#else
init_timer(&priv_p->timer);
(priv_p->timer).expires = jiffies+UE_IP_TIMER_TICK;
(priv_p->timer).data = (unsigned long)priv_p;
(priv_p->timer).function = ue_ip_timer;
#endif
//add_timer(&priv_p->timer);
printk("[UE_IP_DRV][%s] name = %s\n", __FUNCTION__, dev_pP->name);
+1
View File
@@ -131,6 +131,7 @@ mac_rrc_data_req(
mib->message.systemFrameNumber.buf = &sfn;
enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_BCH_Message,
NULL,
(void*)mib,
carrier->MIB,
24);
+20 -1
View File
@@ -241,6 +241,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_BCH_Message,
NULL,
(void*)mib,
carrier->MIB,
24);
@@ -320,6 +321,7 @@ uint8_t do_MIB_SL(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
enc_rval = uper_encode_to_buffer(&asn_DEF_SBCCH_SL_BCH_Message,
NULL,
(void*)mib_sl,
UE_rrc_inst[ctxt_pP->module_id].MIB,
24);
@@ -509,6 +511,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)bcch_message);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message,
NULL,
(void*)bcch_message,
buffer,
100);
@@ -1354,6 +1357,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)bcch_message);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message,
NULL,
(void*)bcch_message,
buffer,
900);
@@ -1442,6 +1446,7 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv)
enc_rval = uper_encode_to_buffer(&asn_DEF_UL_CCCH_Message,
NULL,
(void*)&ul_ccch_msg,
buffer,
100);
@@ -1609,6 +1614,7 @@ uint8_t do_SidelinkUEInformation(uint8_t Mod_id, uint8_t *buffer, SL_Destinatio
enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
NULL,
(void*)&ul_dcch_msg,
buffer,
100);
@@ -1693,6 +1699,7 @@ uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uin
*/
enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
NULL,
(void*)&ul_dcch_msg,
buffer,
100);
@@ -1753,6 +1760,7 @@ do_RRCConnectionReconfigurationComplete(
rrcConnectionReconfigurationComplete->criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.nonCriticalExtension=NULL;
enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
NULL,
(void*)&ul_dcch_msg,
buffer,
100);
@@ -2163,6 +2171,7 @@ do_RRCConnectionSetup(
xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message,
NULL,
(void*)&dl_ccch_msg,
buffer,
100);
@@ -2237,6 +2246,7 @@ do_SecurityModeCommand(
xer_fprint(stdout, &asn_DEF_DL_DCCH_Message, (void*)&dl_dcch_msg);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message,
NULL,
(void*)&dl_dcch_msg,
buffer,
100);
@@ -2316,6 +2326,7 @@ do_UECapabilityEnquiry(
xer_fprint(stdout, &asn_DEF_DL_DCCH_Message, (void*)&dl_dcch_msg);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message,
NULL,
(void*)&dl_dcch_msg,
buffer,
100);
@@ -2520,6 +2531,7 @@ do_RRCConnectionReconfiguration(
}
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message,
NULL,
(void*)&dl_dcch_msg,
buffer,
RRC_BUF_SIZE);
@@ -2736,6 +2748,7 @@ do_RRCConnectionReestablishment(
xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message,
NULL,
(void*)&dl_ccch_msg,
buffer,
100);
@@ -2797,6 +2810,7 @@ do_RRCConnectionReestablishmentReject(
xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message,
NULL,
(void*)&dl_ccch_msg,
buffer,
100);
@@ -2859,6 +2873,7 @@ do_RRCConnectionReject(
xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message,
NULL,
(void*)&dl_ccch_msg,
buffer,
100);
@@ -2924,6 +2939,7 @@ uint8_t do_RRCConnectionRelease(
sizeof(*rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.nonCriticalExtension));
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message,
NULL,
(void*)&dl_dcch_msg,
buffer,
RRC_BUF_SIZE);
@@ -3051,6 +3067,7 @@ uint8_t do_MBSFNAreaConfig(uint8_t Mod_id,
xer_fprint(stdout,&asn_DEF_MCCH_Message,(void*)mcch_message);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_MCCH_Message,
NULL,
(void*)mcch_message,
buffer,
100);
@@ -3183,6 +3200,7 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer,int measid,int phy_
measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells->choice.measResultListEUTRA=*(measResultListEUTRA2);
enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
NULL,
(void*)&ul_dcch_msg,
buffer,
100);
@@ -3316,7 +3334,7 @@ uint8_t do_Paging(uint8_t Mod_id, uint8_t *buffer, ue_paging_identity_t ue_pagin
LOG_D(RRC, "[eNB %d] do_Paging paging_record: cn_Domain %ld, ue_paging_identity.presenceMask %d, PagingRecordList.count %d\n",
Mod_id, paging_record_p->cn_Domain, ue_paging_identity.presenceMask, pcch_msg.message.choice.c1.choice.paging.pagingRecordList->list.count);
enc_rval = uper_encode_to_buffer(&asn_DEF_PCCH_Message, (void*)&pcch_msg, buffer, RRC_BUF_SIZE);
enc_rval = uper_encode_to_buffer(&asn_DEF_PCCH_Message, NULL, (void*)&pcch_msg, buffer, RRC_BUF_SIZE);
if(enc_rval.encoded == -1)
{
LOG_I(RRC, "[eNB AssertFatal]ASN1 message encoding failed (%s, %lu)!\n",
@@ -3492,6 +3510,7 @@ OAI_UECapability_t *fill_ue_capability(char *UE_EUTRA_Capability_xer_fname)
xer_fprint(stdout,&asn_DEF_UE_EUTRA_Capability,(void *)UE_EUTRA_Capability);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_UE_EUTRA_Capability,
NULL,
(void*)UE_EUTRA_Capability,
&UECapability.sdu[0],
MAX_UE_CAPABILITY_SIZE);
@@ -131,6 +131,7 @@ uint8_t do_MIB_NB_IoT(
(uint32_t)hsfn_LSB);
enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_BCH_Message_NB,
NULL,
(void*)mib_NB_IoT,
carrier->MIB_NB_IoT,
100);
@@ -387,6 +388,7 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id,
enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message_NB,
NULL,
(void*)bcch_message,
carrier->SIB1_NB_IoT,
100);
@@ -669,6 +671,7 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id,
xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message_NB, (void*)bcch_message);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message_NB,
NULL,
(void*)bcch_message,
carrier->SIB23_NB_IoT,
900);
@@ -888,6 +891,7 @@ uint8_t do_RRCConnectionSetup_NB_IoT(
xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB,
NULL,
(void*)&dl_ccch_msg_NB_IoT,
buffer,
100);
@@ -939,6 +943,7 @@ uint8_t do_SecurityModeCommand_NB_IoT(
xer_fprint(stdout, &asn_DEF_DL_DCCH_Message_NB, (void*)&dl_dcch_msg_NB_IoT);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB,
NULL,
(void*)&dl_dcch_msg_NB_IoT,
buffer,
100);
@@ -1000,6 +1005,7 @@ uint8_t do_UECapabilityEnquiry_NB_IoT(
xer_fprint(stdout, &asn_DEF_DL_DCCH_Message_NB, (void*)&dl_dcch_msg_NB_IoT);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB,
NULL,
(void*)&dl_dcch_msg_NB_IoT,
buffer,
100);
@@ -1094,6 +1100,7 @@ uint16_t do_RRCConnectionReconfiguration_NB_IoT(
rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.fullConfig_r13 = NULL;
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB,
NULL,
(void*)&dl_dcch_msg_NB_IoT,
buffer,
RRC_BUF_SIZE);
@@ -1140,6 +1147,7 @@ uint8_t do_RRCConnectionReestablishmentReject_NB_IoT(
xer_fprint(stdout, &asn_DEF_DL_CCCH_Message_NB, (void*)&dl_ccch_msg_NB_IoT);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB,
NULL,
(void*)&dl_ccch_msg_NB_IoT,
buffer,
100);
@@ -1210,6 +1218,7 @@ uint8_t do_RRCConnectionReject_NB_IoT(
xer_fprint(stdout, &asn_DEF_DL_CCCH_Message_NB, (void*)&dl_ccch_msg);
#endif
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB,
NULL,
(void*)&dl_ccch_msg_NB_IoT,
buffer,
100);
@@ -1336,6 +1345,7 @@ uint8_t do_RRCConnectionReestablishment_NB_IoT(
rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.nextHopChainingCount_r13=0;
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message_NB,
NULL,
(void*)&dl_ccch_msg_NB_IoT,
buffer,
RRC_BUF_SIZE);
@@ -1405,6 +1415,7 @@ uint8_t do_RRCConnectionRelease_NB_IoT(
sizeof(*rrcConnectionRelease_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r13.nonCriticalExtension));
enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message_NB,
NULL,
(void*)&dl_dcch_msg_NB_IoT,
buffer,
RRC_BUF_SIZE);//check
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
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -1926,6 +1926,7 @@ rrc_ue_process_securityModeCommand(
ctxt_pP->module_id,ctxt_pP->frame, ctxt_pP->subframe, eNB_index, securityModeCommand->rrc_TransactionIdentifier);
enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
NULL,
(void*)&ul_dcch_msg,
buffer,
100);
@@ -2039,7 +2040,7 @@ rrc_ue_process_ueCapabilityEnquiry(
&ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list,
&ue_CapabilityRAT_Container);
enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, (void*) &ul_dcch_msg, buffer, 100);
enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, NULL, (void*) &ul_dcch_msg, buffer, 100);
AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n",
enc_rval.failed_type->name, enc_rval.encoded);
+4 -4
View File
@@ -7142,8 +7142,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
LOG_I(RRC, "got UE capabilities for UE %x\n", ctxt_pP->rnti);
if (ue_context_p->ue_context.UE_Capability) {
LOG_I(RRC, "freeing old UE capabilities for UE %x\n", ctxt_pP->rnti);
asn_DEF_UE_EUTRA_Capability.free_struct(&asn_DEF_UE_EUTRA_Capability,
ue_context_p->ue_context.UE_Capability, 0);
ASN_STRUCT_FREE(asn_DEF_UE_EUTRA_Capability,
ue_context_p->ue_context.UE_Capability);
ue_context_p->ue_context.UE_Capability = 0;
}
dec_rval = uper_decode(NULL,
@@ -7163,8 +7163,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
LOG_E(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Failed to decode UE capabilities (%zu bytes)\n",
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
dec_rval.consumed);
asn_DEF_UE_EUTRA_Capability.free_struct(&asn_DEF_UE_EUTRA_Capability,
ue_context_p->ue_context.UE_Capability, 0);
ASN_STRUCT_FREE(asn_DEF_UE_EUTRA_Capability,
ue_context_p->ue_context.UE_Capability);
ue_context_p->ue_context.UE_Capability = 0;
}
+6 -3
View File
@@ -58,7 +58,7 @@
#include "RRC/LTE/rrc_eNB_GTPV1U.h"
#include "TLVDecoder.h"
#include "S1ap-NAS-PDU.h"
#include "S1AP_NAS-PDU.h"
#include "flexran_agent_common_internal.h"
extern RAN_CONTEXT_t RC;
@@ -678,7 +678,8 @@ void rrc_eNB_send_S1AP_UE_CAPABILITIES_IND(
return;
}
asn_enc_rval_t ret = uper_encode_to_buffer(&asn_DEF_UECapabilityInformation, ueCapabilityInformation, buf, 4096);
asn_enc_rval_t ret = uper_encode_to_buffer(&asn_DEF_UECapabilityInformation, NULL, ueCapabilityInformation, buf, 4096);
if (ret.encoded == -1) abort();
memset(&rac, 0, sizeof(UERadioAccessCapabilityInformation_t));
@@ -692,7 +693,9 @@ void rrc_eNB_send_S1AP_UE_CAPABILITIES_IND(
/* 8192 is arbitrary, should be big enough */
buf2 = malloc16(8192);
if (buf2 == NULL) abort();
ret = uper_encode_to_buffer(&asn_DEF_UERadioAccessCapabilityInformation, &rac, buf2, 8192);
ret = uper_encode_to_buffer(&asn_DEF_UERadioAccessCapabilityInformation, NULL, &rac, buf2, 8192);
if (ret.encoded == -1) abort();
MessageDef *msg_p;
@@ -1,81 +0,0 @@
include Makefile.inc
OBJS=$(addprefix MESSAGES/,${ASN_MODULE_SOURCES:.c=.o})
CFLAGS += -DEMIT_ASN_DEBUG=1
CFLAGS += -Wall
CFLAGS += -g
OBJS += x2ap_decoder.o
OBJS += x2ap_encoder.o
OBJS += x2ap_common.o
#X2AP_SERVER_SRC = sctp_primitives_server.c
#X2AP_SERVER_SRC += x2ap_server_main.c
#X2AP_SERVER_OBJS = $(X2AP_SERVER_SRC:.c=.o)
X2AP_CLIENT_SRC = sctp_primitives_client.c
X2AP_CLIENT_SRC += x2ap_client_main.c
X2AP_CLIENT_OBJS = $(X2AP_CLIENT_SRC:.c=.o)
libx2ap_messages.a:$(OBJS)
$(AR) rcsv libx2ap_messages.a $(OBJS)
asn1fromtool:
asn1c -gen-PER -fnative-types -fskeletons-copy X2AP-CommonDataTypes.asn X2AP-Constants.asn X2AP-IEs.asn \
X2AP-PDU.asn
asn1fromscript:
python ../asn1tostruct.py -f X2AP-PDU-Contents.asn -d
all: server x2ap_client_main
server: server.o libx2ap_messages.a generating_messages.o sctp_primitives_client.o x2ap_pdu_decoder.o
$(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o $@ $^ -lsctp -lpthread libx2ap_messages.a
$(OBJS): %.o : %.c
$(CC) $(CFLAGS) -I. -o $@ -c $<
$(X2AP_SERVER_OBJS): %.o : %.c
$(CC) -c $(CFLAGS) -I. $< -o $@
$(X2AP_CLIENT_OBJS): %.o : %.c
$(CC) -c $(CFLAGS) $< -o $@
x2ap_server_main.o: x2ap_server_main.c
$(CC) $(CFLAGS) -I. $^ -o $@ -lsctp \
-lpthread
x2ap_client_main: $(X2AP_CLIENT_OBJS)
$(CC) $(CFLAGS) $^ -o $@ -lsctp \
-lpthread
server.o: server.c
$(CC) $(CFLAGS) -I. $^ -o $@ -lsctp \
-lpthread
x2ap_pdu_decoder.o: x2ap_pdu_decoder.c
$(CC) $(CFLAGS) -I. -o $@ -c $<
x2ap_pdu_encoder.o: x2ap_pdu_encoder.c
$(CC) $(CFLAGS) -I. -o $@ -c $<
sctp_primitives_server.o: sctp_primitives_server.c
$(CC) $(CFLAGS) -o $@ -c $<
generating_messages.o: generating_messages.c
$(CC) $(CFLAGS) -I. -o $@ -c $<
clean:
rm -f $(OBJS)
@@ -1,462 +0,0 @@
ASN_MODULE_SOURCES= \
Criticality.c \
Presence.c \
PrivateIE-ID.c \
ProcedureCode.c \
ProtocolIE-ID.c \
TriggeringMessage.c \
IE-Extensions.c \
AS-SecurityInformation.c \
AllocationAndRetentionPriority.c \
ActivatedCellList.c \
ActivatedCellList-Item.c \
BitRate.c \
BroadcastPLMNs-Item.c \
CapacityValue.c \
CellCapacityClassValue.c \
CellToReport-List.c \
CellToReport-Item.c \
CellMeasurementResult-List.c \
CellMeasurementResult-Item.c \
ReportingPeriodicity.c \
Cause.c \
CauseMisc.c \
CauseProtocol.c \
CauseRadioNetwork.c \
CauseTransport.c \
Cell-Size.c \
CellInformation-List.c \
CellInformation-Item.c \
CellType.c \
CompositeAvailableCapacityGroup.c \
CompositeAvailableCapacity.c \
COUNTvalue.c \
CriticalityDiagnostics.c \
CriticalityDiagnostics-IE-List.c \
CriticalityDiagnostics-IE-Elm.c \
CRNTI.c \
CyclicPrefixDL.c \
CyclicPrefixUL.c \
DeactivationIndication.c \
DL-Forwarding.c \
E-RABs-Admitted-List.c \
E-RABs-Admitted-Item.c \
E-RABs-ToBeSetup-List.c \
E-RABs-ToBeSetup-Item.c \
E-RABs-SubjectToStatusTransfer-List.c \
E-RABs-SubjectToStatusTransfer-Item.c \
EARFCN.c \
FDD-Info.c \
TDD-Info.c \
EUTRA-Mode-Info.c \
ECGI.c \
ENB-ID.c \
EncryptionAlgorithms.c \
EPLMNs.c \
E-RAB-ID.c \
E-RAB-Level-QoS-Parameters.c \
E-RAB-List.c \
E-RAB-Item.c \
EUTRANCellIdentifier.c \
EUTRANTraceID.c \
EventType.c \
ForbiddenInterRATs.c \
ForbiddenTAs.c \
ForbiddenTAs-Item.c \
ForbiddenTACs.c \
ForbiddenLAs.c \
ForbiddenLAs-Item.c \
ForbiddenLACs.c \
Fourframes.c \
GBR-QosInformation.c \
GlobalENB-ID.c \
GTPtunnelEndpoint.c \
GTP-TEI.c \
GUGroupIDList.c \
GU-Group-ID.c \
GUMMEI.c \
HandoverReportType.c \
HandoverRestrictionList.c \
HFN.c \
HWLoadIndicator.c \
IntegrityProtectionAlgorithms.c \
InterfacesToTrace.c \
Key-eNodeB-Star.c \
LAC.c \
LastVisitedCell-Item.c \
LastVisitedEUTRANCellInformation.c \
LastVisitedUTRANCellInformation.c \
LastVisitedGERANCellInformation.c \
LoadIndicator.c \
LocationReportingInformation.c \
MME-Group-ID.c \
MME-Code.c \
Measurement-ID.c \
MBSFN-Subframe-Infolist.c \
MBSFN-Subframe-Info.c \
MobilityParametersModificationRange.c \
MobilityParametersInformation.c \
Neighbour-Information.c \
Neighbour-Information-Elm.c \
NextHopChainingCount.c \
Number-of-Antennaports.c \
Oneframe.c \
PDCP-SN.c \
PCI.c \
PLMN-Identity.c \
PRACH-Configuration.c \
Pre-emptionCapability.c \
Pre-emptionVulnerability.c \
PriorityLevel.c \
QCI.c \
ReceiveStatusofULPDCPSDUs.c \
Registration-Request.c \
RelativeNarrowbandTxPower.c \
ReportArea.c \
ReportCharacteristics.c \
RNTP-Threshold.c \
RRC-Context.c \
RadioResourceStatus.c \
DL-GBR-PRB-usage.c \
UL-GBR-PRB-usage.c \
DL-non-GBR-PRB-usage.c \
UL-non-GBR-PRB-usage.c \
DL-Total-PRB-usage.c \
UL-Total-PRB-usage.c \
RadioframeAllocationPeriod.c \
RadioframeAllocationOffset.c \
S1TNLLoadIndicator.c \
ServedCellsToActivate.c \
ServedCellsToActivate-Item.c \
ServedCellsToModify.c \
ServedCellsToModify-Item.c \
Old-ECGIs.c \
ServedCells.c \
ServedCellItem.c \
ServedCell-Information.c \
ShortMAC-I.c \
SRVCCOperationPossible.c \
SubframeAssignment.c \
SpecialSubframe-Info.c \
SpecialSubframePatterns.c \
SubscriberProfileIDforRFP.c \
SubframeAllocation.c \
TAC.c \
TargeteNBtoSource-eNBTransparentContainer.c \
TimeToWait.c \
Time-UE-StayedInCell.c \
TraceActivation.c \
TraceCollectionEntityIPAddress.c \
TraceDepth.c \
Transmission-Bandwidth.c \
TransportLayerAddress.c \
TypeOfError.c \
UE-HistoryInformation.c \
UE-S1AP-ID.c \
UE-ID.c \
UEAggregateMaximumBitRate.c \
UESecurityCapabilities.c \
UE-ContextInformation.c \
UL-InterferenceOverloadIndication.c \
UL-InterferenceOverloadIndication-Item.c \
UL-HighInterferenceIndicationInfo.c \
UL-HighInterferenceIndicationInfo-Item.c \
UL-HighInterferenceIndication.c \
UE-RLF-Report-Container.c \
IE.c \
PDU.c \
InitiatingMessage.c \
SuccessfulOutcome.c \
UnsuccessfulOutcome.c \
HandoverRequest.c \
HandoverRequestAcknowledge.c \
HandoverPreparationFailure.c \
SNStatusTransfer.c \
UEContextRelease.c \
HandoverCancel.c \
HandoverReport.c \
ErrorIndication.c \
ResetRequest.c \
ResetResponse.c \
X2SetupRequest.c \
X2SetupResponse.c \
X2SetupFailure.c \
LoadInformation.c \
ENBConfigurationUpdate.c \
ENBConfigurationUpdateAcknowledge.c \
ENBConfigurationUpdateFailure.c \
ResourceStatusRequest.c \
ResourceStatusResponse.c \
ResourceStatusFailure.c \
ResourceStatusUpdate.c \
RLFIndication.c \
PrivateMessage.c \
MobilityChangeRequest.c \
MobilityChangeAcknowledge.c \
MobilityChangeFailure.c \
CellActivationRequest.c \
CellActivationResponse.c \
CellActivationFailure.c
ASN_MODULE_HEADERS= \
Criticality.h \
Presence.h \
PrivateIE-ID.h \
ProcedureCode.h \
ProtocolIE-ID.h \
TriggeringMessage.h \
IE-Extensions.h \
AS-SecurityInformation.h \
AllocationAndRetentionPriority.h \
ActivatedCellList.h \
ActivatedCellList-Item.h \
BitRate.h \
BroadcastPLMNs-Item.h \
CapacityValue.h \
CellCapacityClassValue.h \
CellToReport-List.h \
CellToReport-Item.h \
CellMeasurementResult-List.h \
CellMeasurementResult-Item.h \
ReportingPeriodicity.h \
Cause.h \
CauseMisc.h \
CauseProtocol.h \
CauseRadioNetwork.h \
CauseTransport.h \
Cell-Size.h \
CellInformation-List.h \
CellInformation-Item.h \
CellType.h \
CompositeAvailableCapacityGroup.h \
CompositeAvailableCapacity.h \
COUNTvalue.h \
CriticalityDiagnostics.h \
CriticalityDiagnostics-IE-List.h \
CriticalityDiagnostics-IE-Elm.h \
CRNTI.h \
CyclicPrefixDL.h \
CyclicPrefixUL.h \
DeactivationIndication.h \
DL-Forwarding.h \
E-RABs-Admitted-List.h \
E-RABs-Admitted-Item.h \
E-RABs-ToBeSetup-List.h \
E-RABs-ToBeSetup-Item.h \
E-RABs-SubjectToStatusTransfer-List.h \
E-RABs-SubjectToStatusTransfer-Item.h \
EARFCN.h \
FDD-Info.h \
TDD-Info.h \
EUTRA-Mode-Info.h \
ECGI.h \
ENB-ID.h \
EncryptionAlgorithms.h \
EPLMNs.h \
E-RAB-ID.h \
E-RAB-Level-QoS-Parameters.h \
E-RAB-List.h \
E-RAB-Item.h \
EUTRANCellIdentifier.h \
EUTRANTraceID.h \
EventType.h \
ForbiddenInterRATs.h \
ForbiddenTAs.h \
ForbiddenTAs-Item.h \
ForbiddenTACs.h \
ForbiddenLAs.h \
ForbiddenLAs-Item.h \
ForbiddenLACs.h \
Fourframes.h \
GBR-QosInformation.h \
GlobalENB-ID.h \
GTPtunnelEndpoint.h \
GTP-TEI.h \
GUGroupIDList.h \
GU-Group-ID.h \
GUMMEI.h \
HandoverReportType.h \
HandoverRestrictionList.h \
HFN.h \
HWLoadIndicator.h \
IntegrityProtectionAlgorithms.h \
InterfacesToTrace.h \
Key-eNodeB-Star.h \
LAC.h \
LastVisitedCell-Item.h \
LastVisitedEUTRANCellInformation.h \
LastVisitedUTRANCellInformation.h \
LastVisitedGERANCellInformation.h \
LoadIndicator.h \
LocationReportingInformation.h \
MME-Group-ID.h \
MME-Code.h \
Measurement-ID.h \
MBSFN-Subframe-Infolist.h \
MBSFN-Subframe-Info.h \
MobilityParametersModificationRange.h \
MobilityParametersInformation.h \
Neighbour-Information.h \
Neighbour-Information-Elm.h \
NextHopChainingCount.h \
Number-of-Antennaports.h \
Oneframe.h \
PDCP-SN.h \
PCI.h \
PLMN-Identity.h \
PRACH-Configuration.h \
Pre-emptionCapability.h \
Pre-emptionVulnerability.h \
PriorityLevel.h \
QCI.h \
ReceiveStatusofULPDCPSDUs.h \
Registration-Request.h \
RelativeNarrowbandTxPower.h \
ReportArea.h \
ReportCharacteristics.h \
RNTP-Threshold.h \
RRC-Context.h \
RadioResourceStatus.h \
DL-GBR-PRB-usage.h \
UL-GBR-PRB-usage.h \
DL-non-GBR-PRB-usage.h \
UL-non-GBR-PRB-usage.h \
DL-Total-PRB-usage.h \
vUL-Total-PRB-usage.h \
RadioframeAllocationPeriod.h \
RadioframeAllocationOffset.h \
S1TNLLoadIndicator.h \
ServedCellsToActivate.h \
ServedCellsToActivate-Item.h \
ServedCellsToModify.h \
ServedCellsToModify-Item.h \
Old-ECGIs.h \
ServedCells.h \
ServedCellItem.h \
ServedCell-Information.h \
ShortMAC-I.h \
SRVCCOperationPossible.h \
SubframeAssignment.h \
SpecialSubframe-Info.h \
SpecialSubframePatterns.h \
SubscriberProfileIDforRFP.h \
SubframeAllocation.h \
TAC.h \
TargeteNBtoSource-eNBTransparentContainer.h \
TimeToWait.h \
Time-UE-StayedInCell.h \
TraceActivation.h \
TraceCollectionEntityIPAddress.h \
TraceDepth.h \
Transmission-Bandwidth.h \
TransportLayerAddress.h \
TypeOfError.h \
UE-HistoryInformation.h \
UE-S1AP-ID.h \
UE-ID.h \
UEAggregateMaximumBitRate.h \
UESecurityCapabilities.h \
UE-ContextInformation.h \
UL-InterferenceOverloadIndication.h \
UL-InterferenceOverloadIndication-Item.h \
UL-HighInterferenceIndicationInfo.h \
UL-HighInterferenceIndicationInfo-Item.h \
UL-HighInterferenceIndication.h \
UE-RLF-Report-Container.h \
IE.h \
PDU.h \
InitiatingMessage.h \
SuccessfulOutcome.h \
UnsuccessfulOutcome.h \
HandoverRequest.h \
HandoverRequestAcknowledge.h \
HandoverPreparationFailure.h \
SNStatusTransfer.h \
UEContextRelease.h \
HandoverCancel.h \
HandoverReport.h \
ErrorIndication.h \
ResetRequest.h \
ResetResponse.h \
X2SetupRequest.h \
X2SetupResponse.h \
X2SetupFailure.h \
LoadInformation.h \
ENBConfigurationUpdate.h \
ENBConfigurationUpdateAcknowledge.h \
ENBConfigurationUpdateFailure.h \
ResourceStatusRequest.h \
ResourceStatusResponse.h \
ResourceStatusFailure.h \
ResourceStatusUpdate.h \
RLFIndication.h \
PrivateMessage.h \
MobilityChangeRequest.h \
MobilityChangeAcknowledge.h \
MobilityChangeFailure.h \
CellActivationRequest.h \
CellActivationResponse.h \
CellActivationFailure.h
ASN_MODULE_HEADERS+=ANY.h
ASN_MODULE_SOURCES+=ANY.c
ASN_MODULE_HEADERS+=BOOLEAN.h
ASN_MODULE_SOURCES+=BOOLEAN.c
ASN_MODULE_HEADERS+=INTEGER.h
ASN_MODULE_HEADERS+=NativeEnumerated.h
ASN_MODULE_SOURCES+=INTEGER.c
ASN_MODULE_HEADERS+=NULL.h
ASN_MODULE_SOURCES+=NULL.c
ASN_MODULE_SOURCES+=NativeEnumerated.c
ASN_MODULE_HEADERS+=NativeInteger.h
ASN_MODULE_SOURCES+=NativeInteger.c
ASN_MODULE_HEADERS+=OBJECT_IDENTIFIER.h
ASN_MODULE_SOURCES+=OBJECT_IDENTIFIER.c
ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h
ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.c
ASN_MODULE_HEADERS+=asn_SET_OF.h
ASN_MODULE_SOURCES+=asn_SET_OF.c
ASN_MODULE_HEADERS+=constr_CHOICE.h
ASN_MODULE_SOURCES+=constr_CHOICE.c
ASN_MODULE_HEADERS+=constr_SEQUENCE.h
ASN_MODULE_SOURCES+=constr_SEQUENCE.c
ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h
ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.c
ASN_MODULE_HEADERS+=constr_SET_OF.h
ASN_MODULE_SOURCES+=constr_SET_OF.c
ASN_MODULE_HEADERS+=asn_application.h
ASN_MODULE_HEADERS+=asn_system.h
ASN_MODULE_HEADERS+=asn_codecs.h
ASN_MODULE_HEADERS+=asn_internal.h
ASN_MODULE_HEADERS+=OCTET_STRING.h
ASN_MODULE_SOURCES+=OCTET_STRING.c
ASN_MODULE_HEADERS+=BIT_STRING.h
ASN_MODULE_SOURCES+=BIT_STRING.c
ASN_MODULE_SOURCES+=asn_codecs_prim.c
ASN_MODULE_HEADERS+=asn_codecs_prim.h
ASN_MODULE_HEADERS+=ber_tlv_length.h
ASN_MODULE_SOURCES+=ber_tlv_length.c
ASN_MODULE_HEADERS+=ber_tlv_tag.h
ASN_MODULE_SOURCES+=ber_tlv_tag.c
ASN_MODULE_HEADERS+=ber_decoder.h
ASN_MODULE_SOURCES+=ber_decoder.c
ASN_MODULE_HEADERS+=der_encoder.h
ASN_MODULE_SOURCES+=der_encoder.c
ASN_MODULE_HEADERS+=constr_TYPE.h
ASN_MODULE_SOURCES+=constr_TYPE.c
ASN_MODULE_HEADERS+=constraints.h
ASN_MODULE_SOURCES+=constraints.c
ASN_MODULE_HEADERS+=xer_support.h
ASN_MODULE_SOURCES+=xer_support.c
ASN_MODULE_HEADERS+=xer_decoder.h
ASN_MODULE_SOURCES+=xer_decoder.c
ASN_MODULE_HEADERS+=xer_encoder.h
ASN_MODULE_SOURCES+=xer_encoder.c
ASN_MODULE_HEADERS+=per_support.h
ASN_MODULE_SOURCES+=per_support.c
ASN_MODULE_HEADERS+=per_decoder.h
ASN_MODULE_SOURCES+=per_decoder.c
ASN_MODULE_HEADERS+=per_encoder.h
ASN_MODULE_SOURCES+=per_encoder.c
ASN_MODULE_HEADERS+=per_opentype.h
ASN_MODULE_SOURCES+=per_opentype.c
@@ -1,126 +0,0 @@
-- **************************************************************
--
-- Common definitions
--
-- **************************************************************
X2AP-CommonDataTypes {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- Extension constants
--
-- **************************************************************
maxPrivateIEs INTEGER ::= 65535
maxProtocolExtensions INTEGER ::= 65535
maxProtocolIEs INTEGER ::= 65535
-- **************************************************************
--
-- Common Data Types
--
-- **************************************************************
Criticality ::= ENUMERATED { reject, ignore, notify }
Presence ::= ENUMERATED { optional, conditional, mandatory }
PrivateIE-ID ::= CHOICE {
local INTEGER (0.. maxPrivateIEs),
global OBJECT IDENTIFIER
}
ProcedureCode ::= INTEGER {
id-handoverPreparation (0),
id-handoverCancel (1),
id-loadIndication (2),
id-errorIndication (3),
id-snStatusTransfer (4),
id-uEContextRelease (5),
id-x2Setup (6),
id-reset (7),
id-eNBConfigurationUpdate (8),
id-resourceStatusReportingInitiation (9),
id-resourceStatusReporting (10),
id-privateMessage (11),
id-mobilitySettingsChange (12),
id-rLFIndication (13),
id-handoverReport (14),
id-cellActivation (15)
} (0..255)
ProtocolIE-ID ::= INTEGER {
id-E-RABs-Admitted-Item (0),
id-E-RABs-Admitted-List (1),
id-E-RAB-Item (2),
id-E-RABs-NotAdmitted-List (3),
id-E-RABs-ToBeSetup-Item (4),
id-Cause (5),
id-CellInformation (6),
id-CellInformation-Item (7),
id-New-eNB-UE-X2AP-ID (9),
id-Old-eNB-UE-X2AP-ID (10),
id-TargetCell-ID (11),
id-TargeteNBtoSource-eNBTransparentContainer (12),
id-TraceActivation (13),
id-UE-ContextInformation (14),
id-UE-HistoryInformation (15),
id-UE-X2AP-ID (16),
id-CriticalityDiagnostics (17),
id-E-RABs-SubjectToStatusTransfer-List (18),
id-E-RABs-SubjectToStatusTransfer-Item (19),
id-ServedCells (20),
id-GlobalENB-ID (21),
id-TimeToWait (22),
id-GUMMEI-ID (23),
id-GUGroupIDList (24),
id-ServedCellsToAdd (25),
id-ServedCellsToModify (26),
id-ServedCellsToDelete (27),
id-Registration-Request (28),
id-CellToReport (29),
id-ReportingPeriodicity (30),
id-CellToReport-Item (31),
id-CellMeasurementResult (32),
id-CellMeasurementResult-Item (33),
id-GUGroupIDToAddList (34),
id-GUGroupIDToDeleteList (35),
id-SRVCCOperationPossible (36),
id-Measurement-ID (37),
id-ReportCharacteristics (38),
id-ENB1-Measurement-ID (39),
id-ENB2-Measurement-ID (40),
id-Number-of-Antennaports (41),
id-CompositeAvailableCapacityGroup (42),
id-ENB1-Cell-ID (43),
id-ENB2-Cell-ID (44),
id-ENB2-Proposed-Mobility-Parameters (45),
id-ENB1-Mobility-Parameters (46),
id-ENB2-Mobility-Parameters-Modification-Range (47),
id-FailureCellPCI (48),
id-Re-establishmentCellECGI (49),
id-FailureCellCRNTI (50),
id-ShortMAC-I (51),
id-SourceCellECGI (52),
id-FailureCellECGI (53),
id-HandoverReportType (54),
id-PRACH-Configuration (55),
id-MBSFN-Subframe-Info (56),
id-ServedCellsToActivate (57),
id-ActivatedCellList (58),
id-DeactivationIndication (59),
id-UE-RLF-Report-Container (60)
} (0..maxProtocolIEs)
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
END
@@ -1,138 +0,0 @@
-- **************************************************************
--
-- Constant definitions
--
-- **************************************************************
X2AP-Constants {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ProcedureCode,
ProtocolIE-ID
FROM X2AP-CommonDataTypes;
-- **************************************************************
--
-- Elementary Procedures
--
-- **************************************************************
id-handoverPreparation ProcedureCode ::= 0
id-handoverCancel ProcedureCode ::= 1
id-loadIndication ProcedureCode ::= 2
id-errorIndication ProcedureCode ::= 3
id-snStatusTransfer ProcedureCode ::= 4
id-uEContextRelease ProcedureCode ::= 5
id-x2Setup ProcedureCode ::= 6
id-reset ProcedureCode ::= 7
id-eNBConfigurationUpdate ProcedureCode ::= 8
id-resourceStatusReportingInitiation ProcedureCode ::= 9
id-resourceStatusReporting ProcedureCode ::= 10
id-privateMessage ProcedureCode ::= 11
id-mobilitySettingsChange ProcedureCode ::= 12
id-rLFIndication ProcedureCode ::= 13
id-handoverReport ProcedureCode ::= 14
id-cellActivation ProcedureCode ::= 15
-- **************************************************************
--
-- Lists
--
-- **************************************************************
maxEARFCN INTEGER ::= 65535
maxInterfaces INTEGER ::= 16
maxCellineNB INTEGER ::= 256
maxnoofBearers INTEGER ::= 256
maxNrOfErrors INTEGER ::= 256
maxnoofPDCP-SN INTEGER ::= 16 -- FFS Value to be checked
maxnoofEPLMNs INTEGER ::= 15
maxnoofEPLMNsPlusOne INTEGER ::= 16
maxnoofForbLACs INTEGER ::= 4096
maxnoofForbTACs INTEGER ::= 4096
maxnoofBPLMNs INTEGER ::= 6
maxnoofNeighbours INTEGER ::= 512
maxnoofPRBs INTEGER ::= 110
maxPools INTEGER ::= 16
maxnoofCells INTEGER ::= 16
maxnoofMBSFN INTEGER ::= 8
-- **************************************************************
--
-- IEs
--
-- **************************************************************
id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0
id-E-RABs-Admitted-List ProtocolIE-ID ::= 1
id-E-RAB-Item ProtocolIE-ID ::= 2
id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3
id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4
id-Cause ProtocolIE-ID ::= 5
id-CellInformation ProtocolIE-ID ::= 6
id-CellInformation-Item ProtocolIE-ID ::= 7
id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9
id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10
id-TargetCell-ID ProtocolIE-ID ::= 11
id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12
id-TraceActivation ProtocolIE-ID ::= 13
id-UE-ContextInformation ProtocolIE-ID ::= 14
id-UE-HistoryInformation ProtocolIE-ID ::= 15
id-UE-X2AP-ID ProtocolIE-ID ::= 16
id-CriticalityDiagnostics ProtocolIE-ID ::= 17
id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18
id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19
id-ServedCells ProtocolIE-ID ::= 20
id-GlobalENB-ID ProtocolIE-ID ::= 21
id-TimeToWait ProtocolIE-ID ::= 22
id-GUMMEI-ID ProtocolIE-ID ::= 23
id-GUGroupIDList ProtocolIE-ID ::= 24
id-ServedCellsToAdd ProtocolIE-ID ::= 25
id-ServedCellsToModify ProtocolIE-ID ::= 26
id-ServedCellsToDelete ProtocolIE-ID ::= 27
id-Registration-Request ProtocolIE-ID ::= 28
id-CellToReport ProtocolIE-ID ::= 29
id-ReportingPeriodicity ProtocolIE-ID ::= 30
id-CellToReport-Item ProtocolIE-ID ::= 31
id-CellMeasurementResult ProtocolIE-ID ::= 32
id-CellMeasurementResult-Item ProtocolIE-ID ::= 33
id-GUGroupIDToAddList ProtocolIE-ID ::= 34
id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35
id-SRVCCOperationPossible ProtocolIE-ID ::= 36
id-Measurement-ID ProtocolIE-ID ::= 37
id-ReportCharacteristics ProtocolIE-ID ::= 38
id-ENB1-Measurement-ID ProtocolIE-ID ::= 39
id-ENB2-Measurement-ID ProtocolIE-ID ::= 40
id-Number-of-Antennaports ProtocolIE-ID ::= 41
id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42
id-ENB1-Cell-ID ProtocolIE-ID ::= 43
id-ENB2-Cell-ID ProtocolIE-ID ::= 44
id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45
id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46
id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47
id-FailureCellPCI ProtocolIE-ID ::= 48
id-Re-establishmentCellECGI ProtocolIE-ID ::= 49
id-FailureCellCRNTI ProtocolIE-ID ::= 50
id-ShortMAC-I ProtocolIE-ID ::= 51
id-SourceCellECGI ProtocolIE-ID ::= 52
id-FailureCellECGI ProtocolIE-ID ::= 53
id-HandoverReportType ProtocolIE-ID ::= 54
id-PRACH-Configuration ProtocolIE-ID ::= 55
id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56
id-ServedCellsToActivate ProtocolIE-ID ::= 57
id-ActivatedCellList ProtocolIE-ID ::= 58
id-DeactivationIndication ProtocolIE-ID ::= 59
id-UE-RLF-Report-Container ProtocolIE-ID ::= 60
END
@@ -1,194 +0,0 @@
-- **************************************************************
--
-- Container definitions
--
-- **************************************************************
X2AP-Containers {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
maxPrivateIEs,
maxProtocolExtensions,
maxProtocolIEs,
Criticality,
Presence,
PrivateIE-ID,
ProtocolIE-ID
FROM X2AP-CommonDataTypes;
-- **************************************************************
--
-- Class Definition for Protocol IEs
--
-- **************************************************************
X2AP-PROTOCOL-IES ::= CLASS {
&id ProtocolIE-ID UNIQUE,
&criticality Criticality,
&Value,
&presence Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
TYPE &Value
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Protocol IEs
--
-- **************************************************************
X2AP-PROTOCOL-IES-PAIR ::= CLASS {
&id ProtocolIE-ID UNIQUE,
&firstCriticality Criticality,
&FirstValue,
&secondCriticality Criticality,
&SecondValue,
&presence Presence
}
WITH SYNTAX {
ID &id
FIRST CRITICALITY &firstCriticality
FIRST TYPE &FirstValue
SECOND CRITICALITY &secondCriticality
SECOND TYPE &SecondValue
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Protocol Extensions
--
-- **************************************************************
X2AP-PROTOCOL-EXTENSION ::= CLASS {
&id ProtocolIE-ID UNIQUE,
&criticality Criticality,
&Extension,
&presence Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
EXTENSION &Extension
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Private IEs
--
-- **************************************************************
X2AP-PRIVATE-IES ::= CLASS {
&id PrivateIE-ID,
&criticality Criticality,
&Value,
&presence Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
TYPE &Value
PRESENCE &presence
}
-- **************************************************************
--
-- Container for Protocol IEs
--
-- **************************************************************
ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
id X2AP-PROTOCOL-IES.&id ({IEsSetParam}),
criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container for Protocol IE Pairs
--
-- **************************************************************
ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-FieldPair {{IEsSetParam}}
ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container Lists for Protocol IE Containers
--
-- **************************************************************
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (lowerBound..upperBound)) OF
ProtocolIE-Container {{IEsSetParam}}
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (lowerBound..upperBound)) OF
ProtocolIE-ContainerPair {{IEsSetParam}}
-- **************************************************************
--
-- Container for Protocol Extensions
--
-- **************************************************************
ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
ProtocolExtensionField {{ExtensionSetParam}}
ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
}
-- **************************************************************
--
-- Container for Private IEs
--
-- **************************************************************
PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::=
SEQUENCE (SIZE (1..maxPrivateIEs)) OF
PrivateIE-Field {{IEsSetParam}}
PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
id X2AP-PRIVATE-IES.&id ({IEsSetParam}),
criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
}
END
@@ -1,989 +0,0 @@
-- **************************************************************
--
-- Information Element Definitions
--
-- **************************************************************
X2AP-IEs {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
id-E-RAB-Item,
id-Number-of-Antennaports,
id-MBSFN-Subframe-Info,
id-PRACH-Configuration,
maxnoofBearers,
maxCellineNB,
maxEARFCN,
maxInterfaces,
maxnoofBPLMNs,
maxnoofCells,
maxnoofEPLMNs,
maxnoofEPLMNsPlusOne,
maxnoofForbLACs,
maxnoofForbTACs,
maxnoofNeighbours,
maxnoofPRBs,
maxNrOfErrors,
maxPools,
maxnoofMBSFN
FROM X2AP-Constants
Criticality,
ProcedureCode,
ProtocolIE-ID,
TriggeringMessage,
maxProtocolExtensions
FROM X2AP-CommonDataTypes
IE
FROM X2AP-PDU;
IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE
-- A
AS-SecurityInformation ::= SEQUENCE {
key-eNodeB-star Key-eNodeB-Star,
nextHopChainingCount NextHopChainingCount,
-- iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
AllocationAndRetentionPriority ::= SEQUENCE {
priorityLevel PriorityLevel,
pre-emptionCapability Pre-emptionCapability,
pre-emptionVulnerability Pre-emptionVulnerability,
-- iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item
ActivatedCellList-Item::= SEQUENCE {
ecgi ECGI,
-- iE-Extensions ProtocolExtensionContainer { { ActivatedCellList-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
-- B
BitRate ::= INTEGER (0..10000000000)
BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
-- C
CapacityValue ::= INTEGER (0..100)
CellCapacityClassValue ::= INTEGER (1..100, ...)
CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE
CellToReport-Item ::= SEQUENCE {
cell-ID ECGI,
-- iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE
CellMeasurementResult-Item ::= SEQUENCE {
cell-ID ECGI,
hWOverLoadIndicator HWLoadIndicator OPTIONAL,
s1TNLOverLoadIndicator S1TNLLoadIndicator OPTIONAL,
radioResourceStatus RadioResourceStatus OPTIONAL,
-- iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ReportingPeriodicity ::= ENUMERATED {
one-thousand-ms,
two-thousand-ms,
five-thousand-ms,
ten-thousand-ms,
...
}
Cause ::= CHOICE {
radioNetwork CauseRadioNetwork,
transport CauseTransport,
protocol CauseProtocol,
misc CauseMisc,
...
}
CauseMisc ::= ENUMERATED {
control-processing-overload,
hardware-failure,
om-intervention,
not-enough-user-plane-processing-resources,
unspecified,
...
}
CauseProtocol ::= ENUMERATED {
transfer-syntax-error,
abstract-syntax-error-reject,
abstract-syntax-error-ignore-and-notify,
message-not-compatible-with-receiver-state,
semantic-error,
unspecified,
abstract-syntax-error-falsely-constructed-message,
...
}
CauseRadioNetwork ::= ENUMERATED {
handover-desirable-for-radio-reasons,
time-critical-handover,
resource-optimisation-handover,
reduce-load-in-serving-cell,
partial-handover,
unknown-new-eNB-UE-X2AP-ID,
unknown-old-eNB-UE-X2AP-ID,
unknown-pair-of-UE-X2AP-ID,
ho-target-not-allowed,
tx2relocoverall-expiry,
trelocprep-expiry,
cell-not-available,
no-radio-resources-available-in-target-cell,
invalid-MME-GroupID,
unknown-MME-Code,
encryption-and-or-integrity-protection-algorithms-not-supported,
reportCharacteristicsEmpty,
noReportPeriodicity,
existingMeasurementID,
unknown-eNB-Measurement-ID,
measurement-temporarily-not-available,
unspecified,
...,
load-balancing,
handover-optimisation,
value-out-of-allowed-range,
multiple-E-RAB-ID-instances,
switch-off-ongoing,
not-supported-QCI-value
}
CauseTransport ::= ENUMERATED {
transport-resource-unavailable,
unspecified,
...
}
Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... }
CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE
CellInformation-Item ::= SEQUENCE {
cell-ID ECGI,
ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL,
ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL,
relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL,
-- iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CellType ::= SEQUENCE {
cell-Size Cell-Size,
-- iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CompositeAvailableCapacityGroup ::= SEQUENCE {
dL-CompositeAvailableCapacity CompositeAvailableCapacity,
uL-CompositeAvailableCapacity CompositeAvailableCapacity,
-- iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CompositeAvailableCapacity ::= SEQUENCE {
cellCapacityClassValue CellCapacityClassValue OPTIONAL,
capacityValue CapacityValue,
-- iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
COUNTvalue ::= SEQUENCE {
pDCP-SN PDCP-SN,
hFN HFN,
-- iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CriticalityDiagnostics ::= SEQUENCE {
procedureCode ProcedureCode OPTIONAL,
triggeringMessage TriggeringMessage OPTIONAL,
procedureCriticality Criticality OPTIONAL,
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
-- iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF CriticalityDiagnostics-IE-Elm
CriticalityDiagnostics-IE-Elm ::= SEQUENCE {
iECriticality Criticality,
iE-ID ProtocolIE-ID,
typeOfError TypeOfError,
-- iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
CRNTI ::= BIT STRING (SIZE (16))
CyclicPrefixDL ::= ENUMERATED {
normal,
extended,
...
}
CyclicPrefixUL ::= ENUMERATED {
normal,
extended,
...
}
-- D
DeactivationIndication::= ENUMERATED {
deactivated,
...
}
DL-Forwarding ::= ENUMERATED {
dL-forwardingProposed,
...
}
-- E
E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF IE
E-RABs-Admitted-Item ::= SEQUENCE {
e-RAB-ID E-RAB-ID,
uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
-- iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF IE
E-RABs-ToBeSetup-Item ::= SEQUENCE {
e-RAB-ID E-RAB-ID,
e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
dL-Forwarding DL-Forwarding OPTIONAL,
uL-GTPtunnelEndpoint GTPtunnelEndpoint,
-- iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF IE
E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE {
e-RAB-ID E-RAB-ID,
receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
uL-COUNTvalue COUNTvalue,
dL-COUNTvalue COUNTvalue,
-- iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
EARFCN ::= INTEGER (0..maxEARFCN)
FDD-Info ::= SEQUENCE {
uL-EARFCN EARFCN,
dL-EARFCN EARFCN,
uL-Transmission-Bandwidth Transmission-Bandwidth,
dL-Transmission-Bandwidth Transmission-Bandwidth,
-- iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
TDD-Info ::= SEQUENCE {
eARFCN EARFCN,
transmission-Bandwidth Transmission-Bandwidth,
subframeAssignment SubframeAssignment,
specialSubframe-Info SpecialSubframe-Info,
-- iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
EUTRA-Mode-Info ::= CHOICE {
fDD FDD-Info,
tDD TDD-Info,
...
}
ECGI ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eUTRANcellIdentifier EUTRANCellIdentifier,
-- iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ENB-ID ::= CHOICE {
macro-eNB-ID BIT STRING (SIZE (20)),
home-eNB-ID BIT STRING (SIZE (28)),
...
}
EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...))
EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity
E-RAB-ID ::= INTEGER (0..15, ...)
E-RAB-Level-QoS-Parameters ::= SEQUENCE {
qCI QCI,
allocationAndRetentionPriority AllocationAndRetentionPriority,
gbrQosInformation GBR-QosInformation OPTIONAL,
-- iE-Extensions ProtocolExtensionContainer { { E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF IE
E-RAB-Item ::= SEQUENCE {
e-RAB-ID E-RAB-ID,
cause Cause,
-- iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
EUTRANTraceID ::= OCTET STRING (SIZE (8))
EventType ::= ENUMERATED{
change-of-serving-cell,
...
}
-- F
ForbiddenInterRATs ::= ENUMERATED {
all,
geran,
utran,
cdma2000,
...,
geranandutran,
cdma2000andutran
}
ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
ForbiddenTAs-Item ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
forbiddenTACs ForbiddenTACs,
-- iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
ForbiddenLAs-Item ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
forbiddenLACs ForbiddenLACs,
-- iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
Fourframes ::= BIT STRING (SIZE (24))
-- G
GBR-QosInformation ::= SEQUENCE {
e-RAB-MaximumBitrateDL BitRate,
e-RAB-MaximumBitrateUL BitRate,
e-RAB-GuaranteedBitrateDL BitRate,
e-RAB-GuaranteedBitrateUL BitRate,
-- iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
GlobalENB-ID ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eNB-ID ENB-ID,
-- iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
GTPtunnelEndpoint ::= SEQUENCE {
transportLayerAddress TransportLayerAddress,
gTP-TEID GTP-TEI,
-- iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
GTP-TEI ::= OCTET STRING (SIZE (4))
GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID
GU-Group-ID ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
mME-Group-ID MME-Group-ID,
-- iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
GUMMEI ::= SEQUENCE {
gU-Group-ID GU-Group-ID,
mME-Code MME-Code,
-- iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
-- H
HandoverReportType ::= ENUMERATED {
hoTooEarly,
hoToWrongCell,
...
}
HandoverRestrictionList ::= SEQUENCE {
servingPLMN PLMN-Identity,
equivalentPLMNs EPLMNs OPTIONAL,
forbiddenTAs ForbiddenTAs OPTIONAL,
forbiddenLAs ForbiddenLAs OPTIONAL,
forbiddenInterRATs ForbiddenInterRATs OPTIONAL,
-- iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
HFN ::= INTEGER (0..1048575)
HWLoadIndicator ::= SEQUENCE {
dLHWLoadIndicator LoadIndicator,
uLHWLoadIndicator LoadIndicator,
-- iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
-- I
IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...))
InterfacesToTrace ::= BIT STRING (SIZE (8))
-- J
-- K
Key-eNodeB-Star ::= BIT STRING (SIZE(256))
-- L
LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H))
LastVisitedCell-Item ::= CHOICE {
e-UTRAN-Cell LastVisitedEUTRANCellInformation,
uTRAN-Cell LastVisitedUTRANCellInformation,
gERAN-Cell LastVisitedGERANCellInformation,
...
}
LastVisitedEUTRANCellInformation ::= SEQUENCE {
global-Cell-ID ECGI,
cellType CellType,
time-UE-StayedInCell Time-UE-StayedInCell,
-- iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
LastVisitedUTRANCellInformation ::= OCTET STRING
LastVisitedGERANCellInformation ::= CHOICE {
undefined NULL,
...
}
LoadIndicator ::= ENUMERATED {
lowLoad,
mediumLoad,
highLoad,
overLoad,
...
}
LocationReportingInformation ::= SEQUENCE {
eventType EventType,
reportArea ReportArea,
-- iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
-- M
MME-Group-ID ::= OCTET STRING (SIZE (2))
MME-Code ::= OCTET STRING (SIZE (1))
Measurement-ID ::= INTEGER (1..4095, ...)
MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info
MBSFN-Subframe-Info ::= SEQUENCE {
radioframeAllocationPeriod RadioframeAllocationPeriod,
radioframeAllocationOffset RadioframeAllocationOffset,
subframeAllocation SubframeAllocation,
-- iE-Extensions ProtocolExtensionContainer { { MBSFN-Subframe-Info-ExtIEs } } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
MobilityParametersModificationRange ::= SEQUENCE {
handoverTriggerChangeLowerLimit INTEGER (-20..20),
handoverTriggerChangeUpperLimit INTEGER (-20..20),
...
}
MobilityParametersInformation ::= SEQUENCE {
handoverTriggerChange INTEGER (-20..20),
...
}
-- N
Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF Neighbour-Information-Elm
Neighbour-Information-Elm ::= SEQUENCE {
eCGI ECGI,
pCI PCI,
eARFCN EARFCN,
-- iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
NextHopChainingCount ::= INTEGER (0..7)
Number-of-Antennaports ::= ENUMERATED {
an1,
an2,
an4,
...
}
-- O
Oneframe ::= BIT STRING (SIZE (6))
-- P
PDCP-SN ::= INTEGER (0..4095)
PCI ::= INTEGER (0..503, ...)
PLMN-Identity ::= OCTET STRING (SIZE(3))
PRACH-Configuration ::= SEQUENCE {
rootSequenceIndex INTEGER (0..837),
zeroCorrelationIndex INTEGER (0..15),
highSpeedFlag BOOLEAN,
prach-FreqOffset INTEGER (0..94),
prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD --
-- iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
Pre-emptionCapability ::= ENUMERATED {
shall-not-trigger-pre-emption,
may-trigger-pre-emption
}
Pre-emptionVulnerability ::= ENUMERATED {
not-pre-emptable,
pre-emptable
}
PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
-- Q
QCI ::= INTEGER (0..255)
-- R
ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
Registration-Request ::= ENUMERATED {
start,
stop,
...
}
RelativeNarrowbandTxPower ::= SEQUENCE {
rNTP-PerPRB BIT STRING (SIZE(6..110, ...)),
rNTP-Threshold RNTP-Threshold,
numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...},
p-B INTEGER (0..3,...),
pDCCH-InterferenceImpact INTEGER (0..4,...),
-- iE-Extensions ProtocolExtensionContainer { { RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ReportArea ::= ENUMERATED{
ecgi,
...
}
ReportCharacteristics ::= BIT STRING (SIZE (32))
RNTP-Threshold ::= ENUMERATED {
minusInfinity,
minusEleven,
minusTen,
minusNine,
minusEight,
minusSeven,
minusSix,
minusFive,
minusFour,
minusThree,
minusTwo,
minusOne,
zero,
one,
two,
three,
...
}
RRC-Context ::= OCTET STRING
RadioResourceStatus ::= SEQUENCE {
dL-GBR-PRB-usage DL-GBR-PRB-usage,
uL-GBR-PRB-usage UL-GBR-PRB-usage,
dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage,
uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage,
dL-Total-PRB-usage DL-Total-PRB-usage,
uL-Total-PRB-usage UL-Total-PRB-usage,
-- iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
DL-GBR-PRB-usage::= INTEGER (0..100)
UL-GBR-PRB-usage::= INTEGER (0..100)
DL-non-GBR-PRB-usage::= INTEGER (0..100)
UL-non-GBR-PRB-usage::= INTEGER (0..100)
DL-Total-PRB-usage::= INTEGER (0..100)
UL-Total-PRB-usage::= INTEGER (0..100)
RadioframeAllocationPeriod ::= ENUMERATED{
n1,
n2,
n4,
n8,
n16,
n32,
...
}
RadioframeAllocationOffset ::= INTEGER (0..7, ...)
-- S
S1TNLLoadIndicator ::= SEQUENCE {
dLS1TNLLoadIndicator LoadIndicator,
uLS1TNLLoadIndicator LoadIndicator,
-- iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item
ServedCellsToActivate-Item::= SEQUENCE {
ecgi ECGI,
-- iE-Extensions ProtocolExtensionContainer { { ServedCellsToActivate-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF IE
ServedCellsToModify-Item::= SEQUENCE {
old-ecgi ECGI,
servedCellInfo ServedCell-Information,
neighbour-Info Neighbour-Information OPTIONAL,
-- iE-Extensions ProtocolExtensionContainer { { ServedCellsToModify-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI
ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF ServedCellItem
ServedCellItem ::= SEQUENCE {
servedCellInfo ServedCell-Information,
neighbour-Info Neighbour-Information OPTIONAL,
-- iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ServedCell-Information ::= SEQUENCE {
pCI PCI,
cellId ECGI,
tAC TAC,
broadcastPLMNs BroadcastPLMNs-Item,
eUTRA-Mode-Info EUTRA-Mode-Info,
-- iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
ShortMAC-I ::= BIT STRING (SIZE(16))
SRVCCOperationPossible ::= ENUMERATED {
possible,
...
}
SubframeAssignment ::= ENUMERATED {
sa0,
sa1,
sa2,
sa3,
sa4,
sa5,
sa6,
...
}
SpecialSubframe-Info ::= SEQUENCE {
specialSubframePatterns SpecialSubframePatterns,
cyclicPrefixDL CyclicPrefixDL,
cyclicPrefixUL CyclicPrefixUL,
-- iE-Extensions ProtocolExtensionContainer { { SpecialSubframe-Info-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
SpecialSubframePatterns ::= ENUMERATED {
ssp0,
ssp1,
ssp2,
ssp3,
ssp4,
ssp5,
ssp6,
ssp7,
ssp8,
...
}
SubscriberProfileIDforRFP ::= INTEGER (1..256)
SubframeAllocation ::= CHOICE {
oneframe Oneframe,
fourframes Fourframes,
...
}
-- T
TAC ::= OCTET STRING (SIZE (2))
TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING
TimeToWait ::= ENUMERATED {
v1s,
v2s,
v5s,
v10s,
v20s,
v60s,
...
}
Time-UE-StayedInCell ::= INTEGER (0..4095)
TraceActivation ::= SEQUENCE {
eUTRANTraceID EUTRANTraceID,
interfacesToTrace InterfacesToTrace,
traceDepth TraceDepth,
traceCollectionEntityIPAddress TraceCollectionEntityIPAddress,
-- iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...))
TraceDepth ::= ENUMERATED {
minimum,
medium,
maximum,
minimumWithoutVendorSpecificExtension,
mediumWithoutVendorSpecificExtension,
maximumWithoutVendorSpecificExtension,
...
}
Transmission-Bandwidth ::= ENUMERATED {
bw6,
bw15,
bw25,
bw50,
bw75,
bw100,
...
}
TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
TypeOfError ::= ENUMERATED {
not-understood,
missing,
...
}
-- U
UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
UE-S1AP-ID ::= INTEGER (0.. 4294967295)
UE-X2AP-ID ::= INTEGER (0..4095) -- Value FFS
UEAggregateMaximumBitRate ::= SEQUENCE {
uEaggregateMaximumBitRateDownlink BitRate,
uEaggregateMaximumBitRateUplink BitRate,
-- iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
UESecurityCapabilities ::= SEQUENCE {
encryptionAlgorithms EncryptionAlgorithms,
integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
-- iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
UE-ContextInformation ::= SEQUENCE {
mME-UE-S1AP-ID UE-S1AP-ID,
uESecurityCapabilities UESecurityCapabilities,
aS-SecurityInformation AS-SecurityInformation,
uEaggregateMaximumBitRate UEAggregateMaximumBitRate,
subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List,
rRC-Context RRC-Context,
handoverRestrictionList HandoverRestrictionList OPTIONAL,
locationReportingInformation LocationReportingInformation OPTIONAL,
-- iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item
UL-InterferenceOverloadIndication-Item ::= ENUMERATED {
high-interference,
medium-interference,
low-interference,
...
}
UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item
UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE {
target-Cell-ID ECGI,
ul-interferenceindication UL-HighInterferenceIndication,
-- iE-Extensions ProtocolExtensionContainer { { UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL,
iE-Extensions IE-Extensions OPTIONAL,
...
}
UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...))
UE-RLF-Report-Container::= OCTET STRING
-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9]
-- V
-- W
-- X
-- Y
-- Z
END
@@ -1,951 +0,0 @@
-- **************************************************************
--
-- PDU definitions for X2AP.
--
-- **************************************************************
X2AP-PDU-Contents {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
AS-SecurityInformation,
Cause,
CompositeAvailableCapacityGroup,
COUNTvalue,
CriticalityDiagnostics,
CRNTI,
DeactivationIndication,
DL-Forwarding,
ECGI,
E-RAB-ID,
E-RAB-Level-QoS-Parameters,
E-RAB-List,
EUTRANTraceID,
GlobalENB-ID,
GTPtunnelEndpoint,
GUGroupIDList,
GUMMEI,
HandoverReportType,
HandoverRestrictionList,
LocationReportingInformation,
Neighbour-Information,
PCI,
PDCP-SN,
PLMN-Identity,
ReceiveStatusofULPDCPSDUs,
Registration-Request,
RelativeNarrowbandTxPower,
RadioResourceStatus,
UE-RLF-Report-Container,
RRC-Context,
ServedCell-Information,
ServedCells,
ShortMAC-I,
SRVCCOperationPossible,
SubscriberProfileIDforRFP,
TargeteNBtoSource-eNBTransparentContainer,
TimeToWait,
TraceActivation,
TraceDepth,
TransportLayerAddress,
UEAggregateMaximumBitRate,
UE-HistoryInformation,
UE-S1AP-ID,
UESecurityCapabilities,
UE-X2AP-ID,
UL-HighInterferenceIndicationInfo,
UL-InterferenceOverloadIndication,
HWLoadIndicator,
S1TNLLoadIndicator,
Measurement-ID,
ReportCharacteristics,
MobilityParametersInformation,
MobilityParametersModificationRange
FROM X2AP-IEs
PrivateIE-Container{},
ProtocolExtensionContainer{},
ProtocolIE-Container{},
ProtocolIE-ContainerList{},
ProtocolIE-ContainerPair{},
ProtocolIE-ContainerPairList{},
ProtocolIE-Single-Container{},
X2AP-PRIVATE-IES,
X2AP-PROTOCOL-EXTENSION,
X2AP-PROTOCOL-IES,
X2AP-PROTOCOL-IES-PAIR
FROM X2AP-Containers
id-ActivatedCellList,
id-Cause,
id-CellInformation,
id-CellInformation-Item,
id-CellMeasurementResult,
id-CellMeasurementResult-Item,
id-CellToReport,
id-CellToReport-Item,
id-CompositeAvailableCapacityGroup,
id-CriticalityDiagnostics,
id-DeactivationIndication,
id-E-RABs-Admitted-Item,
id-E-RABs-Admitted-List,
id-E-RABs-NotAdmitted-List,
id-E-RABs-SubjectToStatusTransfer-List,
id-E-RABs-SubjectToStatusTransfer-Item,
id-E-RABs-ToBeSetup-Item,
id-GlobalENB-ID,
id-GUGroupIDList,
id-GUGroupIDToAddList,
id-GUGroupIDToDeleteList,
id-GUMMEI-ID,
id-New-eNB-UE-X2AP-ID,
id-Old-eNB-UE-X2AP-ID,
id-Registration-Request,
id-ReportingPeriodicity,
id-ServedCells,
id-ServedCellsToActivate,
id-ServedCellsToAdd,
id-ServedCellsToModify,
id-ServedCellsToDelete,
id-SRVCCOperationPossible,
id-TargetCell-ID,
id-TargeteNBtoSource-eNBTransparentContainer,
id-TimeToWait,
id-TraceActivation,
id-UE-ContextInformation,
id-UE-HistoryInformation,
id-UE-X2AP-ID,
id-Measurement-ID,
id-ReportCharacteristics,
id-ENB1-Measurement-ID,
id-ENB2-Measurement-ID,
id-ENB1-Cell-ID,
id-ENB2-Cell-ID,
id-ENB2-Proposed-Mobility-Parameters,
id-ENB1-Mobility-Parameters,
id-ENB2-Mobility-Parameters-Modification-Range,
id-FailureCellPCI,
id-Re-establishmentCellECGI,
id-FailureCellCRNTI,
id-ShortMAC-I,
id-SourceCellECGI,
id-FailureCellECGI,
id-HandoverReportType,
id-UE-RLF-Report-Container,
maxCellineNB,
maxnoofBearers,
maxnoofPDCP-SN
FROM X2AP-Constants;
-- **************************************************************
--
-- HANDOVER REQUEST
--
-- **************************************************************
HandoverRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}},
...
}
HandoverRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory } |
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
{ ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory } |
{ ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory } |
{ ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory } |
{ ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory } |
{ ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional } |
{ ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional },
...
}
UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} }
E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory },
...
}
E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- HANDOVER REQUEST ACKNOWLEDGE
--
-- **************************************************************
HandoverRequestAcknowledge ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}},
...
}
HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} |
{ ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory} |
{ ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional} |
{ ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} }
E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} }
E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory }
}
E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- HANDOVER PREPARATION FAILURE
--
-- **************************************************************
HandoverPreparationFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}},
...
}
HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory} |
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- Handover Report
--
-- **************************************************************
HandoverReport ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{HandoverReport-IEs}},
...
}
HandoverReport-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
{ ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
{ ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory} |
{ ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- ,
...
}
-- **************************************************************
--
-- SN Status Transfer
--
-- **************************************************************
SNStatusTransfer ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}},
...
}
SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
{ ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} ,
...
}
E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { E-RABs-SubjectToStatusTransfer-ItemIEs} }
E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory }
}
E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- UE Context Release
--
-- **************************************************************
UEContextRelease ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}},
...
}
UEContextRelease-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} ,
...
}
-- **************************************************************
--
-- HANDOVER CANCEL
--
-- **************************************************************
HandoverCancel ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}},
...
}
HandoverCancel-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
...
}
-- **************************************************************
--
-- ERROR INDICATION
--
-- **************************************************************
ErrorIndication ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
...
}
ErrorIndication-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} |
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} ,
...
}
-- **************************************************************
--
-- Reset Request
--
-- **************************************************************
ResetRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ResetRequest-IEs}},
...
}
ResetRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
...
}
-- **************************************************************
--
-- Reset Response
--
-- **************************************************************
ResetResponse ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ResetResponse-IEs}},
...
}
ResetResponse-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- X2 SETUP REQUEST
--
-- **************************************************************
X2SetupRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}},
...
}
X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} |
{ ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} |
{ ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional},
...
}
-- **************************************************************
--
-- X2 SETUP RESPONSE
--
-- **************************************************************
X2SetupResponse ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}},
...
}
X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory} |
{ ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} |
{ ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- X2 SETUP FAILURE
--
-- **************************************************************
X2SetupFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}},
...
}
X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} |
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- LOAD INFORMATION
--
-- **************************************************************
LoadInformation ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{LoadInformation-IEs}},
...
}
LoadInformation-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} ,
...
}
CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} }
CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory }
}
CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- ENB CONFIGURATION UPDATE
--
-- **************************************************************
ENBConfigurationUpdate ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}},
...
}
ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional} |
{ ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional} |
{ ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional} |
{ ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional} |
{ ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional},
...
}
ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item
ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional },
...
}
-- **************************************************************
--
-- ENB CONFIGURATION UPDATE ACKNOWLEDGE
--
-- **************************************************************
ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}},
...
}
ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- ENB CONFIGURATION UPDATE FAIURE
--
-- **************************************************************
ENBConfigurationUpdateFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}},
...
}
ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- Resource Status Request
--
-- **************************************************************
ResourceStatusRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}},
...
}
ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
{ ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”--
{ ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory} |
{ ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional} |
{ ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory} |
{ ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional} ,
...
}
CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} }
CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory }
}
CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Resource Status Response
--
-- **************************************************************
ResourceStatusResponse ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}},
...
}
ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- Resource Status Failure
--
-- **************************************************************
ResourceStatusFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}},
...
}
ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- Resource Status Update
--
-- **************************************************************
ResourceStatusUpdate ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}},
...
}
ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
{ ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory},
...
}
CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} }
CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory }
}
CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
{
ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional },
...
}
-- **************************************************************
--
-- PRIVATE MESSAGE
--
-- **************************************************************
PrivateMessage ::= SEQUENCE {
privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
...
}
PrivateMessage-IEs X2AP-PRIVATE-IES ::= {
...
}
-- **************************************************************
--
-- MOBILITY CHANGE REQUEST
--
-- **************************************************************
MobilityChangeRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}},
...
}
MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
{ ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
{ ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional }|
{ ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory }|
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory },
...
}
-- **************************************************************
--
-- MOBILITY CHANGE ACKNOWLEDGE
--
-- **************************************************************
MobilityChangeAcknowledge ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}},
...
}
MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
{ ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- MOBILITY CHANGE FAILURE
--
-- **************************************************************
MobilityChangeFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}},
...
}
MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }|
{ ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory }|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
{ ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- Radio Link Failure Indication
--
-- **************************************************************
RLFIndication ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{RLFIndication-IEs}},
...
}
RLFIndication-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}|
{ ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
{ ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}|
{ ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}|
{ ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional},
...
}
-- **************************************************************
--
-- Cell Activation Request
--
-- **************************************************************
CellActivationRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}},
...
}
CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory },
...
}
ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item
ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Cell Activation Response
--
-- **************************************************************
CellActivationResponse ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}},
...
}
CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
--**************************************************************
--
-- CELL ACTIVATION FAILURE
--
-- **************************************************************
CellActivationFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}},
...
}
CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={
...
}
MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory },
...
}
ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
{ ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional }|
{ ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional }|
{ ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional },
...
}
END
@@ -1,240 +0,0 @@
-- **************************************************************
--
-- Elementary Procedure definitions
--
-- **************************************************************
X2AP-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
Criticality,
ProcedureCode
FROM X2AP-CommonDataTypes
CellActivationRequest,
CellActivationResponse,
CellActivationFailure,
ENBConfigurationUpdate,
ENBConfigurationUpdateAcknowledge,
ENBConfigurationUpdateFailure,
ErrorIndication,
HandoverCancel,
HandoverReport,
HandoverPreparationFailure,
HandoverRequest,
HandoverRequestAcknowledge,
LoadInformation,
PrivateMessage,
ResetRequest,
ResetResponse,
ResourceStatusFailure,
ResourceStatusRequest,
ResourceStatusResponse,
ResourceStatusUpdate,
RLFIndication,
SNStatusTransfer,
UEContextRelease,
X2SetupFailure, X2SetupRequest,
X2SetupResponse,
MobilityChangeRequest,
MobilityChangeAcknowledge,
MobilityChangeFailure
FROM X2AP-PDU-Contents
id-cellActivation,
id-eNBConfigurationUpdate,
id-errorIndication,
id-handoverCancel,
id-handoverReport,
id-handoverPreparation,
id-loadIndication,
id-privateMessage,
id-reset,
id-resourceStatusReporting,
id-resourceStatusReportingInitiation,
id-rLFIndication,
id-snStatusTransfer,
id-uEContextRelease,
id-x2Setup,
id-mobilitySettingsChange
FROM X2AP-Constants;
-- **************************************************************
--
-- Interface Elementary Procedure Class
--
-- **************************************************************
X2AP-ELEMENTARY-PROCEDURE ::= CLASS {
&InitiatingMessage ,
&SuccessfulOutcome OPTIONAL,
&UnsuccessfulOutcome OPTIONAL,
&procedureCode ProcedureCode UNIQUE,
&criticality Criticality DEFAULT ignore
}
WITH SYNTAX {
INITIATING MESSAGE &InitiatingMessage
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
PROCEDURE CODE &procedureCode
[CRITICALITY &criticality]
}
-- **************************************************************
--
-- Interface PDU Definition
--
-- **************************************************************
X2AP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
unsuccessfulOutcome UnsuccessfulOutcome,
...
}
InitiatingMessage ::= SEQUENCE {
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
SuccessfulOutcome ::= SEQUENCE {
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
UnsuccessfulOutcome ::= SEQUENCE {
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
-- **************************************************************
--
-- Interface Elementary Procedure List
--
-- **************************************************************
X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= {
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
handoverPreparation |
reset |
x2Setup |
resourceStatusReportingInitiation |
eNBConfigurationUpdate |
mobilitySettingsChange |
cellActivation ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
snStatusTransfer |
uEContextRelease |
handoverCancel |
errorIndication |
resourceStatusReporting |
loadIndication |
privateMessage |
rLFIndication | handoverReport,
...
}
-- **************************************************************
--
-- Interface Elementary Procedures
--
-- **************************************************************
handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverRequest
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
PROCEDURE CODE id-handoverPreparation
CRITICALITY reject
}
snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE SNStatusTransfer
PROCEDURE CODE id-snStatusTransfer
CRITICALITY ignore
}
uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UEContextRelease
PROCEDURE CODE id-uEContextRelease
CRITICALITY ignore
}
handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverCancel
PROCEDURE CODE id-handoverCancel
CRITICALITY ignore
}
handoverReport X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverReport
PROCEDURE CODE id-handoverReport
CRITICALITY ignore
}
errorIndication X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ErrorIndication
PROCEDURE CODE id-errorIndication
CRITICALITY ignore
}
reset X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ResetRequest
SUCCESSFUL OUTCOME ResetResponse
PROCEDURE CODE id-reset
CRITICALITY reject
}
x2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE X2SetupRequest
SUCCESSFUL OUTCOME X2SetupResponse
UNSUCCESSFUL OUTCOME X2SetupFailure
PROCEDURE CODE id-x2Setup
CRITICALITY reject
}
loadIndication X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE LoadInformation
PROCEDURE CODE id-loadIndication
CRITICALITY ignore
}
eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBConfigurationUpdate
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
PROCEDURE CODE id-eNBConfigurationUpdate
CRITICALITY reject
}
resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ResourceStatusRequest
SUCCESSFUL OUTCOME ResourceStatusResponse
UNSUCCESSFUL OUTCOME ResourceStatusFailure
PROCEDURE CODE id-resourceStatusReportingInitiation
CRITICALITY reject
}
resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ResourceStatusUpdate
PROCEDURE CODE id-resourceStatusReporting
CRITICALITY ignore
}
rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE RLFIndication
PROCEDURE CODE id-rLFIndication
CRITICALITY ignore
}
privateMessage X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE PrivateMessage
PROCEDURE CODE id-privateMessage
CRITICALITY ignore
}
mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MobilityChangeRequest
SUCCESSFUL OUTCOME MobilityChangeAcknowledge
UNSUCCESSFUL OUTCOME MobilityChangeFailure
PROCEDURE CODE id-mobilitySettingsChange
CRITICALITY reject
}
cellActivation X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE CellActivationRequest
SUCCESSFUL OUTCOME CellActivationResponse
UNSUCCESSFUL OUTCOME CellActivationFailure
PROCEDURE CODE id-cellActivation
CRITICALITY reject
}
END
@@ -1,241 +0,0 @@
-- **************************************************************
--
-- Elementary Procedure definitions
--
-- **************************************************************
X2AP-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
Criticality,
ProcedureCode
FROM X2AP-CommonDataTypes
CellActivationRequest,
CellActivationResponse,
CellActivationFailure,
ENBConfigurationUpdate,
ENBConfigurationUpdateAcknowledge,
ENBConfigurationUpdateFailure,
ErrorIndication,
HandoverCancel,
HandoverReport,
HandoverPreparationFailure,
HandoverRequest,
HandoverRequestAcknowledge,
LoadInformation,
PrivateMessage,
ResetRequest,
ResetResponse,
ResourceStatusFailure,
ResourceStatusRequest,
ResourceStatusResponse,
ResourceStatusUpdate,
RLFIndication,
SNStatusTransfer,
UEContextRelease,
X2SetupFailure, X2SetupRequest,
X2SetupResponse,
MobilityChangeRequest,
MobilityChangeAcknowledge,
MobilityChangeFailure
FROM X2AP-PDU-Contents
id-cellActivation,
id-eNBConfigurationUpdate,
id-errorIndication,
id-handoverCancel,
id-handoverReport,
id-handoverPreparation,
id-loadIndication,
id-privateMessage,
id-reset,
id-resourceStatusReporting,
id-resourceStatusReportingInitiation,
id-rLFIndication,
id-snStatusTransfer,
id-uEContextRelease,
id-x2Setup,
id-mobilitySettingsChange
FROM X2AP-Constants;
-- **************************************************************
--
-- Interface Elementary Procedure Class
--
-- **************************************************************
X2AP-ELEMENTARY-PROCEDURE ::= CLASS {
&InitiatingMessage ,
&SuccessfulOutcome OPTIONAL,
&UnsuccessfulOutcome OPTIONAL,
&procedureCode ProcedureCode UNIQUE,
&criticality Criticality DEFAULT ignore
}
WITH SYNTAX {
INITIATING MESSAGE &InitiatingMessage
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
PROCEDURE CODE &procedureCode
[CRITICALITY &criticality]
}
-- **************************************************************
--
-- Interface PDU Definition
--
-- **************************************************************
X2AP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
unsuccessfulOutcome UnsuccessfulOutcome,
...
}
InitiatingMessage ::= SEQUENCE {
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
SuccessfulOutcome ::= SEQUENCE {
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
UnsuccessfulOutcome ::= SEQUENCE {
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
-- **************************************************************
--
-- Interface Elementary Procedure List
--
-- **************************************************************
X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= {
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
handoverPreparation |
reset |
x2Setup |
resourceStatusReportingInitiation |
eNBConfigurationUpdate |
mobilitySettingsChange |
cellActivation ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
snStatusTransfer |
uEContextRelease |
handoverCancel |
errorIndication |
resourceStatusReporting |
loadIndication |
privateMessage |
rLFIndication | handoverReport,
...
}
-- **************************************************************
--
-- Interface Elementary Procedures
--
-- **************************************************************
handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverRequest
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
PROCEDURE CODE id-handoverPreparation
CRITICALITY reject
}
snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE SNStatusTransfer
PROCEDURE CODE id-snStatusTransfer
CRITICALITY ignore
}
uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UEContextRelease
PROCEDURE CODE id-uEContextRelease
CRITICALITY ignore
}
handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverCancel
PROCEDURE CODE id-handoverCancel
CRITICALITY ignore
}
handoverReport X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverReport
PROCEDURE CODE id-handoverReport
CRITICALITY ignore
}
errorIndication X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ErrorIndication
PROCEDURE CODE id-errorIndication
CRITICALITY ignore
}
reset X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ResetRequest
SUCCESSFUL OUTCOME ResetResponse
PROCEDURE CODE id-reset
CRITICALITY reject
}
x2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE X2SetupRequest
SUCCESSFUL OUTCOME X2SetupResponse
UNSUCCESSFUL OUTCOME X2SetupFailure
PROCEDURE CODE id-x2Setup
CRITICALITY reject
}
loadIndication X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE LoadInformation
PROCEDURE CODE id-loadIndication
CRITICALITY ignore
}
eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBConfigurationUpdate
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
PROCEDURE CODE id-eNBConfigurationUpdate
CRITICALITY reject
}
resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ResourceStatusRequest
SUCCESSFUL OUTCOME ResourceStatusResponse
UNSUCCESSFUL OUTCOME ResourceStatusFailure
PROCEDURE CODE id-resourceStatusReportingInitiation
CRITICALITY reject
}
resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ResourceStatusUpdate
PROCEDURE CODE id-resourceStatusReporting
CRITICALITY ignore
}
rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE RLFIndication
PROCEDURE CODE id-rLFIndication
CRITICALITY ignore
}
privateMessage X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE PrivateMessage
PROCEDURE CODE id-privateMessage
CRITICALITY ignore
}
mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MobilityChangeRequest
SUCCESSFUL OUTCOME MobilityChangeAcknowledge
UNSUCCESSFUL OUTCOME MobilityChangeFailure
PROCEDURE CODE id-mobilitySettingsChange
CRITICALITY reject
}
cellActivation X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE CellActivationRequest
SUCCESSFUL OUTCOME CellActivationResponse
UNSUCCESSFUL OUTCOME CellActivationFailure
PROCEDURE CODE id-cellActivation
CRITICALITY reject
}
END
@@ -1,199 +0,0 @@
-- **************************************************************
--
-- PDU definitions for X2AP.
--
-- **************************************************************
X2AP-PDU {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU (1) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
maxProtocolIEs,
Criticality,
ProcedureCode,
ProtocolIE-ID
FROM X2AP-CommonDataTypes;
IE ::= SEQUENCE {
id ProtocolIE-ID,
criticality Criticality,
value ANY
}
X2AP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
unsuccessfulOutcome UnsuccessfulOutcome,
...
}
InitiatingMessage ::= SEQUENCE {
procedureCode ProcedureCode,
criticality Criticality,
value ANY
}
SuccessfulOutcome ::= SEQUENCE {
procedureCode ProcedureCode,
criticality Criticality,
value ANY
}
UnsuccessfulOutcome ::= SEQUENCE {
procedureCode ProcedureCode,
criticality Criticality,
value ANY
}
HandoverRequest ::= SEQUENCE {
handoverRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverRequestAcknowledge ::= SEQUENCE {
handoverRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverPreparationFailure ::= SEQUENCE {
handoverPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
SNStatusTransfer ::= SEQUENCE {
snStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
UEContextRelease ::= SEQUENCE {
ueContextRelease-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverCancel ::= SEQUENCE {
handoverCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
HandoverReport ::= SEQUENCE {
handoverReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ErrorIndication ::= SEQUENCE {
errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ResetRequest ::= SEQUENCE {
resetRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ResetResponse ::= SEQUENCE {
resetResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
X2SetupRequest ::= SEQUENCE {
x2SetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
X2SetupResponse ::= SEQUENCE {
x2SetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
X2SetupFailure ::= SEQUENCE {
x2SetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
LoadInformation ::= SEQUENCE {
loadInformation-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ENBConfigurationUpdate ::= SEQUENCE {
eNBConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
eNBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ENBConfigurationUpdateFailure ::= SEQUENCE {
eNBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ResourceStatusRequest ::= SEQUENCE {
resourceStatusRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ResourceStatusResponse ::= SEQUENCE {
resourceStatusResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ResourceStatusFailure ::= SEQUENCE {
resourceStatusFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
ResourceStatusUpdate ::= SEQUENCE {
resourceStatusUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
RLFIndication ::= SEQUENCE {
rlfIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
PrivateMessage ::= SEQUENCE {
privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MobilityChangeRequest ::= SEQUENCE {
mobilityChangeRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MobilityChangeAcknowledge ::= SEQUENCE {
mobilityChangeAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
MobilityChangeFailure ::= SEQUENCE {
mobilityChangeFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
CellActivationRequest ::= SEQUENCE {
cellActivationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
CellActivationResponse ::= SEQUENCE {
cellActivationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
CellActivationFailure ::= SEQUENCE {
cellActivationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
...
}
END
File diff suppressed because it is too large Load Diff
@@ -1,462 +0,0 @@
X2AP_ASN_MODULE_SOURCES= \
X2ap-Criticality.c \
X2ap-Presence.c \
X2ap-PrivateIE-ID.c \
X2ap-ProcedureCode.c \
X2ap-ProtocolIE-ID.c \
X2ap-TriggeringMessage.c \
X2ap-IE-Extensions.c \
X2ap-AS-SecurityInformation.c \
X2ap-AllocationAndRetentionPriority.c \
X2ap-ActivatedCellList.c \
X2ap-ActivatedCellList-Item.c \
X2ap-BitRate.c \
X2ap-BroadcastPLMNs-Item.c \
X2ap-CapacityValue.c \
X2ap-CellCapacityClassValue.c \
X2ap-CellToReport-List.c \
X2ap-CellToReport-Item.c \
X2ap-CellMeasurementResult-List.c \
X2ap-CellMeasurementResult-Item.c \
X2ap-ReportingPeriodicity.c \
X2ap-Cause.c \
X2ap-CauseMisc.c \
X2ap-CauseProtocol.c \
X2ap-CauseRadioNetwork.c \
X2ap-CauseTransport.c \
X2ap-Cell-Size.c \
X2ap-CellInformation-List.c \
X2ap-CellInformation-Item.c \
X2ap-CellType.c \
X2ap-CompositeAvailableCapacityGroup.c \
X2ap-CompositeAvailableCapacity.c \
X2ap-COUNTvalue.c \
X2ap-CriticalityDiagnostics.c \
X2ap-CriticalityDiagnostics-IE-List.c \
X2ap-CriticalityDiagnostics-IE-Elm.c \
X2ap-CRNTI.c \
X2ap-CyclicPrefixDL.c \
X2ap-CyclicPrefixUL.c \
X2ap-DeactivationIndication.c \
X2ap-DL-Forwarding.c \
X2ap-E-RABs-Admitted-List.c \
X2ap-E-RABs-Admitted-Item.c \
X2ap-E-RABs-ToBeSetup-List.c \
X2ap-E-RABs-ToBeSetup-Item.c \
X2ap-E-RABs-SubjectToStatusTransfer-List.c \
X2ap-E-RABs-SubjectToStatusTransfer-Item.c \
X2ap-EARFCN.c \
X2ap-FDD-Info.c \
X2ap-TDD-Info.c \
X2ap-EUTRA-Mode-Info.c \
X2ap-ECGI.c \
X2ap-ENB-ID.c \
X2ap-EncryptionAlgorithms.c \
X2ap-EPLMNs.c \
X2ap-E-RAB-ID.c \
X2ap-E-RAB-Level-QoS-Parameters.c \
X2ap-E-RAB-List.c \
X2ap-E-RAB-Item.c \
X2ap-EUTRANCellIdentifier.c \
X2ap-EUTRANTraceID.c \
X2ap-EventType.c \
X2ap-ForbiddenInterRATs.c \
X2ap-ForbiddenTAs.c \
X2ap-ForbiddenTAs-Item.c \
X2ap-ForbiddenTACs.c \
X2ap-ForbiddenLAs.c \
X2ap-ForbiddenLAs-Item.c \
X2ap-ForbiddenLACs.c \
X2ap-Fourframes.c \
X2ap-GBR-QosInformation.c \
X2ap-GlobalENB-ID.c \
X2ap-GTPtunnelEndpoint.c \
X2ap-GTP-TEI.c \
X2ap-GUGroupIDList.c \
X2ap-GU-Group-ID.c \
X2ap-GUMMEI.c \
X2ap-HandoverReportType.c \
X2ap-HandoverRestrictionList.c \
X2ap-HFN.c \
X2ap-HWLoadIndicator.c \
X2ap-IntegrityProtectionAlgorithms.c \
X2ap-InterfacesToTrace.c \
X2ap-Key-eNodeB-Star.c \
X2ap-LAC.c \
X2ap-LastVisitedCell-Item.c \
X2ap-LastVisitedEUTRANCellInformation.c \
X2ap-LastVisitedUTRANCellInformation.c \
X2ap-LastVisitedGERANCellInformation.c \
X2ap-LoadIndicator.c \
X2ap-LocationReportingInformation.c \
X2ap-MME-Group-ID.c \
X2ap-MME-Code.c \
X2ap-Measurement-ID.c \
X2ap-MBSFN-Subframe-Infolist.c \
X2ap-MBSFN-Subframe-Info.c \
X2ap-MobilityParametersModificationRange.c \
X2ap-MobilityParametersInformation.c \
X2ap-Neighbour-Information.c \
X2ap-Neighbour-Information-Elm.c \
X2ap-NextHopChainingCount.c \
X2ap-Number-of-Antennaports.c \
X2ap-Oneframe.c \
X2ap-PDCP-SN.c \
X2ap-PCI.c \
X2ap-PLMN-Identity.c \
X2ap-PRACH-Configuration.c \
X2ap-Pre-emptionCapability.c \
X2ap-Pre-emptionVulnerability.c \
X2ap-PriorityLevel.c \
X2ap-QCI.c \
X2ap-ReceiveStatusofULPDCPSDUs.c \
X2ap-Registration-Request.c \
X2ap-RelativeNarrowbandTxPower.c \
X2ap-ReportArea.c \
X2ap-ReportCharacteristics.c \
X2ap-RNTP-Threshold.c \
X2ap-RRC-Context.c \
X2ap-RadioResourceStatus.c \
X2ap-DL-GBR-PRB-usage.c \
X2ap-UL-GBR-PRB-usage.c \
X2ap-DL-non-GBR-PRB-usage.c \
X2ap-UL-non-GBR-PRB-usage.c \
X2ap-DL-Total-PRB-usage.c \
X2ap-UL-Total-PRB-usage.c \
X2ap-RadioframeAllocationPeriod.c \
X2ap-RadioframeAllocationOffset.c \
X2ap-S1TNLLoadIndicator.c \
X2ap-ServedCellsToActivate.c \
X2ap-ServedCellsToActivate-Item.c \
X2ap-ServedCellsToModify.c \
X2ap-ServedCellsToModify-Item.c \
X2ap-Old-ECGIs.c \
X2ap-ServedCells.c \
X2ap-ServedCellItem.c \
X2ap-ServedCell-Information.c \
X2ap-ShortMAC-I.c \
X2ap-SRVCCOperationPossible.c \
X2ap-SubframeAssignment.c \
X2ap-SpecialSubframe-Info.c \
X2ap-SpecialSubframePatterns.c \
X2ap-SubscriberProfileIDforRFP.c \
X2ap-SubframeAllocation.c \
X2ap-TAC.c \
X2ap-TargeteNBtoSource-eNBTransparentContainer.c \
X2ap-TimeToWait.c \
X2ap-Time-UE-StayedInCell.c \
X2ap-TraceActivation.c \
X2ap-TraceCollectionEntityIPAddress.c \
X2ap-TraceDepth.c \
X2ap-Transmission-Bandwidth.c \
X2ap-TransportLayerAddress.c \
X2ap-TypeOfError.c \
X2ap-UE-HistoryInformation.c \
X2ap-UE-S1AP-ID.c \
X2ap-UE-X2AP-ID.c \
X2ap-UEAggregateMaximumBitRate.c \
X2ap-UESecurityCapabilities.c \
X2ap-UE-ContextInformation.c \
X2ap-UL-InterferenceOverloadIndication.c \
X2ap-UL-InterferenceOverloadIndication-Item.c \
X2ap-UL-HighInterferenceIndicationInfo.c \
X2ap-UL-HighInterferenceIndicationInfo-Item.c \
X2ap-UL-HighInterferenceIndication.c \
X2ap-UE-RLF-Report-Container.c \
X2ap-IE.c \
X2AP-PDU.c \
X2ap-InitiatingMessage.c \
X2ap-SuccessfulOutcome.c \
X2ap-UnsuccessfulOutcome.c \
X2ap-HandoverRequest.c \
X2ap-HandoverRequestAcknowledge.c \
X2ap-HandoverPreparationFailure.c \
X2ap-SNStatusTransfer.c \
X2ap-UEContextRelease.c \
X2ap-HandoverCancel.c \
X2ap-HandoverReport.c \
X2ap-ErrorIndication.c \
X2ap-ResetRequest.c \
X2ap-ResetResponse.c \
X2ap-X2SetupRequest.c \
X2ap-X2SetupResponse.c \
X2ap-X2SetupFailure.c \
X2ap-LoadInformation.c \
X2ap-ENBConfigurationUpdate.c \
X2ap-ENBConfigurationUpdateAcknowledge.c \
X2ap-ENBConfigurationUpdateFailure.c \
X2ap-ResourceStatusRequest.c \
X2ap-ResourceStatusResponse.c \
X2ap-ResourceStatusFailure.c \
X2ap-ResourceStatusUpdate.c \
X2ap-RLFIndication.c \
X2ap-PrivateMessage.c \
X2ap-MobilityChangeRequest.c \
X2ap-MobilityChangeAcknowledge.c \
X2ap-MobilityChangeFailure.c \
X2ap-CellActivationRequest.c \
X2ap-CellActivationResponse.c \
X2ap-CellActivationFailure.c
X2AP_ASN_MODULE_HEADERS= \
X2ap-Criticality.h \
X2ap-Presence.h \
X2ap-PrivateIE-ID.h \
X2ap-ProcedureCode.h \
X2ap-ProtocolIE-ID.h \
X2ap-TriggeringMessage.h \
X2ap-IE-Extensions.h \
X2ap-AS-SecurityInformation.h \
X2ap-AllocationAndRetentionPriority.h \
X2ap-ActivatedCellList.h \
X2ap-ActivatedCellList-Item.h \
X2ap-BitRate.h \
X2ap-BroadcastPLMNs-Item.h \
X2ap-CapacityValue.h \
X2ap-CellCapacityClassValue.h \
X2ap-CellToReport-List.h \
X2ap-CellToReport-Item.h \
X2ap-CellMeasurementResult-List.h \
X2ap-CellMeasurementResult-Item.h \
X2ap-ReportingPeriodicity.h \
X2ap-Cause.h \
X2ap-CauseMisc.h \
X2ap-CauseProtocol.h \
X2ap-CauseRadioNetwork.h \
X2ap-CauseTransport.h \
X2ap-Cell-Size.h \
X2ap-CellInformation-List.h \
X2ap-CellInformation-Item.h \
X2ap-CellType.h \
X2ap-CompositeAvailableCapacityGroup.h \
X2ap-CompositeAvailableCapacity.h \
X2ap-COUNTvalue.h \
X2ap-CriticalityDiagnostics.h \
X2ap-CriticalityDiagnostics-IE-List.h \
X2ap-CriticalityDiagnostics-IE-Elm.h \
X2ap-CRNTI.h \
X2ap-CyclicPrefixDL.h \
X2ap-CyclicPrefixUL.h \
X2ap-DeactivationIndication.h \
X2ap-DL-Forwarding.h \
X2ap-E-RABs-Admitted-List.h \
X2ap-E-RABs-Admitted-Item.h \
X2ap-E-RABs-ToBeSetup-List.h \
X2ap-E-RABs-ToBeSetup-Item.h \
X2ap-E-RABs-SubjectToStatusTransfer-List.h \
X2ap-E-RABs-SubjectToStatusTransfer-Item.h \
X2ap-EARFCN.h \
X2ap-FDD-Info.h \
X2ap-TDD-Info.h \
X2ap-EUTRA-Mode-Info.h \
X2ap-ECGI.h \
X2ap-ENB-ID.h \
X2ap-EncryptionAlgorithms.h \
X2ap-EPLMNs.h \
X2ap-E-RAB-ID.h \
X2ap-E-RAB-Level-QoS-Parameters.h \
X2ap-E-RAB-List.h \
X2ap-E-RAB-Item.h \
X2ap-EUTRANCellIdentifier.h \
X2ap-EUTRANTraceID.h \
X2ap-EventType.h \
X2ap-ForbiddenInterRATs.h \
X2ap-ForbiddenTAs.h \
X2ap-ForbiddenTAs-Item.h \
X2ap-ForbiddenTACs.h \
X2ap-ForbiddenLAs.h \
X2ap-ForbiddenLAs-Item.h \
X2ap-ForbiddenLACs.h \
X2ap-Fourframes.h \
X2ap-GBR-QosInformation.h \
X2ap-GlobalENB-ID.h \
X2ap-GTPtunnelEndpoint.h \
X2ap-GTP-TEI.h \
X2ap-GUGroupIDList.h \
X2ap-GU-Group-ID.h \
X2ap-GUMMEI.h \
X2ap-HandoverReportType.h \
X2ap-HandoverRestrictionList.h \
X2ap-HFN.h \
X2ap-HWLoadIndicator.h \
X2ap-IntegrityProtectionAlgorithms.h \
X2ap-InterfacesToTrace.h \
X2ap-Key-eNodeB-Star.h \
X2ap-LAC.h \
X2ap-LastVisitedCell-Item.h \
X2ap-LastVisitedEUTRANCellInformation.h \
X2ap-LastVisitedUTRANCellInformation.h \
X2ap-LastVisitedGERANCellInformation.h \
X2ap-LoadIndicator.h \
X2ap-LocationReportingInformation.h \
X2ap-MME-Group-ID.h \
X2ap-MME-Code.h \
X2ap-Measurement-ID.h \
X2ap-MBSFN-Subframe-Infolist.h \
X2ap-MBSFN-Subframe-Info.h \
X2ap-MobilityParametersModificationRange.h \
X2ap-MobilityParametersInformation.h \
X2ap-Neighbour-Information.h \
X2ap-Neighbour-Information-Elm.h \
X2ap-NextHopChainingCount.h \
X2ap-Number-of-Antennaports.h \
X2ap-Oneframe.h \
X2ap-PDCP-SN.h \
X2ap-PCI.h \
X2ap-PLMN-Identity.h \
X2ap-PRACH-Configuration.h \
X2ap-Pre-emptionCapability.h \
X2ap-Pre-emptionVulnerability.h \
X2ap-PriorityLevel.h \
X2ap-QCI.h \
X2ap-ReceiveStatusofULPDCPSDUs.h \
X2ap-Registration-Request.h \
X2ap-RelativeNarrowbandTxPower.h \
X2ap-ReportArea.h \
X2ap-ReportCharacteristics.h \
X2ap-RNTP-Threshold.h \
X2ap-RRC-Context.h \
X2ap-RadioResourceStatus.h \
X2ap-DL-GBR-PRB-usage.h \
X2ap-UL-GBR-PRB-usage.h \
X2ap-DL-non-GBR-PRB-usage.h \
X2ap-UL-non-GBR-PRB-usage.h \
X2ap-DL-Total-PRB-usage.h \
vUL-Total-PRB-usage.h \
X2ap-RadioframeAllocationPeriod.h \
X2ap-RadioframeAllocationOffset.h \
X2ap-S1TNLLoadIndicator.h \
X2ap-ServedCellsToActivate.h \
X2ap-ServedCellsToActivate-Item.h \
X2ap-ServedCellsToModify.h \
X2ap-ServedCellsToModify-Item.h \
X2ap-Old-ECGIs.h \
X2ap-ServedCells.h \
X2ap-ServedCellItem.h \
X2ap-ServedCell-Information.h \
X2ap-ShortMAC-I.h \
X2ap-SRVCCOperationPossible.h \
X2ap-SubframeAssignment.h \
X2ap-SpecialSubframe-Info.h \
X2ap-SpecialSubframePatterns.h \
X2ap-SubscriberProfileIDforRFP.h \
X2ap-SubframeAllocation.h \
X2ap-TAC.h \
X2ap-TargeteNBtoSource-eNBTransparentContainer.h \
X2ap-TimeToWait.h \
X2ap-Time-UE-StayedInCell.h \
X2ap-TraceActivation.h \
X2ap-TraceCollectionEntityIPAddress.h \
X2ap-TraceDepth.h \
X2ap-Transmission-Bandwidth.h \
X2ap-TransportLayerAddress.h \
X2ap-TypeOfError.h \
X2ap-UE-HistoryInformation.h \
X2ap-UE-S1AP-ID.h \
X2ap-UE-X2AP-ID.h \
X2ap-UEAggregateMaximumBitRate.h \
X2ap-UESecurityCapabilities.h \
X2ap-UE-ContextInformation.h \
X2ap-UL-InterferenceOverloadIndication.h \
X2ap-UL-InterferenceOverloadIndication-Item.h \
X2ap-UL-HighInterferenceIndicationInfo.h \
X2ap-UL-HighInterferenceIndicationInfo-Item.h \
X2ap-UL-HighInterferenceIndication.h \
X2ap-UE-RLF-Report-Container.h \
X2ap-IE.h \
X2ap-X2AP-PDU.h \
X2ap-InitiatingMessage.h \
X2ap-SuccessfulOutcome.h \
X2ap-UnsuccessfulOutcome.h \
X2ap-HandoverRequest.h \
X2ap-HandoverRequestAcknowledge.h \
X2ap-HandoverPreparationFailure.h \
X2ap-SNStatusTransfer.h \
X2ap-UEContextRelease.h \
X2ap-HandoverCancel.h \
X2ap-HandoverReport.h \
X2ap-ErrorIndication.h \
X2ap-ResetRequest.h \
X2ap-ResetResponse.h \
X2ap-X2SetupRequest.h \
X2ap-X2SetupResponse.h \
X2ap-X2SetupFailure.h \
X2ap-LoadInformation.h \
X2ap-ENBConfigurationUpdate.h \
X2ap-ENBConfigurationUpdateAcknowledge.h \
X2ap-ENBConfigurationUpdateFailure.h \
X2ap-ResourceStatusRequest.h \
X2ap-ResourceStatusResponse.h \
X2ap-ResourceStatusFailure.h \
X2ap-ResourceStatusUpdate.h \
X2ap-RLFIndication.h \
X2ap-PrivateMessage.h \
X2ap-MobilityChangeRequest.h \
X2ap-MobilityChangeAcknowledge.h \
X2ap-MobilityChangeFailure.h \
X2ap-CellActivationRequest.h \
X2ap-CellActivationResponse.h \
X2ap-CellActivationFailure.h
X2AP_ASN_MODULE_HEADERS+=ANY.h
X2AP_ASN_MODULE_SOURCES+=ANY.o
X2AP_ASN_MODULE_HEADERS+=BOOLEAN.h
X2AP_ASN_MODULE_SOURCES+=BOOLEAN.o
X2AP_ASN_MODULE_HEADERS+=INTEGER.h
X2AP_ASN_MODULE_HEADERS+=NativeEnumerated.h
X2AP_ASN_MODULE_SOURCES+=INTEGER.o
X2AP_ASN_MODULE_HEADERS+=NULL.h
X2AP_ASN_MODULE_SOURCES+=NULL.o
X2AP_ASN_MODULE_SOURCES+=NativeEnumerated.o
X2AP_ASN_MODULE_HEADERS+=NativeInteger.h
X2AP_ASN_MODULE_SOURCES+=NativeInteger.o
X2AP_ASN_MODULE_HEADERS+=OBJECT_IDENTIFIER.h
X2AP_ASN_MODULE_SOURCES+=OBJECT_IDENTIFIER.o
X2AP_ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h
X2AP_ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.o
X2AP_ASN_MODULE_HEADERS+=asn_SET_OF.h
X2AP_ASN_MODULE_SOURCES+=asn_SET_OF.o
X2AP_ASN_MODULE_HEADERS+=constr_CHOICE.h
X2AP_ASN_MODULE_SOURCES+=constr_CHOICE.o
X2AP_ASN_MODULE_HEADERS+=constr_SEQUENCE.h
X2AP_ASN_MODULE_SOURCES+=constr_SEQUENCE.o
X2AP_ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h
X2AP_ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.o
X2AP_ASN_MODULE_HEADERS+=constr_SET_OF.h
X2AP_ASN_MODULE_SOURCES+=constr_SET_OF.o
X2AP_ASN_MODULE_HEADERS+=asn_application.h
X2AP_ASN_MODULE_HEADERS+=asn_system.h
X2AP_ASN_MODULE_HEADERS+=asn_codecs.h
X2AP_ASN_MODULE_HEADERS+=asn_internal.h
X2AP_ASN_MODULE_HEADERS+=OCTET_STRING.h
X2AP_ASN_MODULE_SOURCES+=OCTET_STRING.o
X2AP_ASN_MODULE_HEADERS+=BIT_STRING.h
X2AP_ASN_MODULE_SOURCES+=BIT_STRING.o
X2AP_ASN_MODULE_SOURCES+=asn_codecs_prim.o
X2AP_ASN_MODULE_HEADERS+=asn_codecs_prim.h
X2AP_ASN_MODULE_HEADERS+=ber_tlv_length.h
X2AP_ASN_MODULE_SOURCES+=ber_tlv_length.o
X2AP_ASN_MODULE_HEADERS+=ber_tlv_tag.h
X2AP_ASN_MODULE_SOURCES+=ber_tlv_tag.o
X2AP_ASN_MODULE_HEADERS+=ber_decoder.h
X2AP_ASN_MODULE_SOURCES+=ber_decoder.o
X2AP_ASN_MODULE_HEADERS+=der_encoder.h
X2AP_ASN_MODULE_SOURCES+=der_encoder.o
X2AP_ASN_MODULE_HEADERS+=constr_TYPE.h
X2AP_ASN_MODULE_SOURCES+=constr_TYPE.o
X2AP_ASN_MODULE_HEADERS+=constraints.h
X2AP_ASN_MODULE_SOURCES+=constraints.o
X2AP_ASN_MODULE_HEADERS+=xer_support.h
X2AP_ASN_MODULE_SOURCES+=xer_support.o
X2AP_ASN_MODULE_HEADERS+=xer_decoder.h
X2AP_ASN_MODULE_SOURCES+=xer_decoder.o
X2AP_ASN_MODULE_HEADERS+=xer_encoder.h
X2AP_ASN_MODULE_SOURCES+=xer_encoder.o
X2AP_ASN_MODULE_HEADERS+=per_support.h
X2AP_ASN_MODULE_SOURCES+=per_support.o
X2AP_ASN_MODULE_HEADERS+=per_decoder.h
X2AP_ASN_MODULE_SOURCES+=per_decoder.o
X2AP_ASN_MODULE_HEADERS+=per_encoder.h
X2AP_ASN_MODULE_SOURCES+=per_encoder.o
X2AP_ASN_MODULE_HEADERS+=per_opentype.h
X2AP_ASN_MODULE_SOURCES+=per_opentype.o
@@ -1,142 +0,0 @@
X2AP-CommonDataTypes {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- Extension constants
--
-- **************************************************************
x2ap-maxPrivateIEs INTEGER ::= 65535
x2ap-maxProtocolExtensions INTEGER ::= 65535
x2ap-maxProtocolIEs INTEGER ::= 65535
-- **************************************************************
--
-- Common Data Types
--
-- **************************************************************
X2ap-Criticality ::= ENUMERATED { reject, ignore, notify }
X2ap-Presence ::= ENUMERATED { optional, conditional, mandatory }
X2ap-PrivateIE-ID ::= CHOICE {
local INTEGER (0.. x2ap-maxPrivateIEs),
global OBJECT IDENTIFIER
}
--X2ap-ProcedureCode ::= INTEGER (0..255)
X2ap-ProcedureCode ::= INTEGER {
id-handoverPreparation (0),
id-handoverCancel (1),
id-loadIndication (2),
id-errorIndication (3),
id-snStatusTransfer (4),
id-uEContextRelease (5),
id-x2Setup (6),
id-reset (7),
id-eNBConfigurationUpdate (8),
id-resourceStatusReportingInitiation (9),
id-resourceStatusReporting (10),
id-privateMessage (11),
id-mobilitySettingsChange (12),
id-rLFIndication (13),
id-handoverReport (14),
id-cellActivation (15)
} (0..255)
--X2ap-ProtocolIE-ID ::= INTEGER (0..x2ap-maxProtocolIEs)
X2ap-ProtocolIE-ID ::= INTEGER {
id-E-RABs-Admitted-Item (0),
id-E-RABs-Admitted-List (1),
id-E-RAB-Item (2),
id-E-RABs-NotAdmitted-List (3),
id-E-RABs-ToBeSetup-Item (4),
id-Cause (5),
id-CellInformation (6),
id-CellInformation-Item (7),
id-New-eNB-UE-X2AP-ID (9),
id-Old-eNB-UE-X2AP-ID (10),
id-TargetCell-ID (11),
id-TargeteNBtoSource-eNBTransparentContainer (12),
id-TraceActivation (13),
id-UE-ContextInformation (14),
id-UE-HistoryInformation (15),
id-UE-X2AP-ID (16),
id-CriticalityDiagnostics (17),
id-E-RABs-SubjectToStatusTransfer-List (18),
id-E-RABs-SubjectToStatusTransfer-Item (19),
id-ServedCells (20),
id-GlobalENB-ID (21),
id-TimeToWait (22),
id-GUMMEI-ID (23),
id-GUGroupIDList (24),
id-ServedCellsToAdd (25),
id-ServedCellsToModify (26),
id-ServedCellsToDelete (27),
id-Registration-Request (28),
id-CellToReport (29),
id-ReportingPeriodicity (30),
id-CellToReport-Item (31),
id-CellMeasurementResult (32),
id-CellMeasurementResult-Item (33),
id-GUGroupIDToAddList (34),
id-GUGroupIDToDeleteList (35),
id-SRVCCOperationPossible (36),
id-Measurement-ID (37),
id-ReportCharacteristics (38),
id-ENB1-Measurement-ID (39),
id-ENB2-Measurement-ID (40),
id-Number-of-Antennaports (41),
id-CompositeAvailableCapacityGroup (42),
id-ENB1-Cell-ID (43),
id-ENB2-Cell-ID (44),
id-ENB2-Proposed-Mobility-Parameters (45),
id-ENB1-Mobility-Parameters (46),
id-ENB2-Mobility-Parameters-Modification-Range (47),
id-FailureCellPCI (48),
id-Re-establishmentCellECGI (49),
id-FailureCellCRNTI (50),
id-ShortMAC-I (51),
id-SourceCellECGI (52),
id-FailureCellECGI (53),
id-HandoverReportType (54),
id-PRACH-Configuration (55),
id-MBSFN-Subframe-Info (56),
id-ServedCellsToActivate (57),
id-ActivatedCellList (58),
id-DeactivationIndication (59),
id-UE-RLF-Report-Container (60),
id-ABSInformation (61),
id-InvokeIndication (62),
id-ABS-Status (63),
id-PartialSuccessIndicator (64),
id-MeasurementInitiationResult-List (65),
id-MeasurementInitiationResult-Item (66),
id-MeasurementFailureCause-Item (67),
id-CompleteFailureCauseInformation-List (68),
id-CompleteFailureCauseInformation-Item (69),
id-CSG-Id (70),
id-CSGMembershipStatus (71),
id-MDTConfiguration (72),
id-ManagementBasedMDTallowed (74),
id-RRCConnSetupIndicator (75),
id-NeighbourTAC (76),
id-Time-UE-StayedInCell-EnhancedGranularity (77),
id-RRCConnReestabIndicator (78),
id-MBMS-Service-Area-List (79),
id-HO-cause (80),
id-TargetCellInUTRAN (81),
id-MultibandInfoList (84)
} (0..x2ap-maxProtocolIEs)
X2ap-TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
END
@@ -1,162 +0,0 @@
-- **************************************************************
--
-- Constant definitions
--
-- **************************************************************
X2AP-Constants {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
X2ap-ProcedureCode,
X2ap-ProtocolIE-ID
FROM X2AP-CommonDataTypes;
-- **************************************************************
--
-- Elementary Procedures
--
-- **************************************************************
id-handoverPreparation X2ap-ProcedureCode ::= 0
id-handoverCancel X2ap-ProcedureCode ::= 1
id-loadIndication X2ap-ProcedureCode ::= 2
id-errorIndication X2ap-ProcedureCode ::= 3
id-snStatusTransfer X2ap-ProcedureCode ::= 4
id-uEContextRelease X2ap-ProcedureCode ::= 5
id-x2Setup X2ap-ProcedureCode ::= 6
id-reset X2ap-ProcedureCode ::= 7
id-eNBConfigurationUpdate X2ap-ProcedureCode ::= 8
id-resourceStatusReportingInitiation X2ap-ProcedureCode ::= 9
id-resourceStatusReporting X2ap-ProcedureCode ::= 10
id-privateMessage X2ap-ProcedureCode ::= 11
id-mobilitySettingsChange X2ap-ProcedureCode ::= 12
id-rLFIndication X2ap-ProcedureCode ::= 13
id-handoverReport X2ap-ProcedureCode ::= 14
id-cellActivation X2ap-ProcedureCode ::= 15
-- **************************************************************
--
-- Lists
--
-- **************************************************************
x2ap-maxEARFCN INTEGER ::= 65535
x2ap-maxInterfaces INTEGER ::= 16
x2ap-maxCellineNB INTEGER ::= 256
x2ap-maxnoofBands INTEGER ::= 16
x2ap-maxnoofBearers INTEGER ::= 256
x2ap-maxNrOfErrors INTEGER ::= 256
x2ap-maxnoofPDCP-SN INTEGER ::= 16
x2ap-maxnoofEPLMNs INTEGER ::= 15
x2ap-maxnoofEPLMNsPlusOne INTEGER ::= 16
x2ap-maxnoofForbLACs INTEGER ::= 4096
x2ap-maxnoofForbTACs INTEGER ::= 4096
x2ap-maxnoofBPLMNs INTEGER ::= 6
x2ap-maxnoofNeighbours INTEGER ::= 512
x2ap-maxnoofPRBs INTEGER ::= 110
x2ap-maxPools INTEGER ::= 16
x2ap-maxnoofCells INTEGER ::= 16
x2ap-maxnoofMBSFN INTEGER ::= 8
x2ap-maxFailedMeasObjects INTEGER ::= 32
x2ap-maxnoofCellIDforMDT INTEGER ::= 32
x2ap-maxnoofTAforMDT INTEGER ::= 8
x2ap-maxnoofMBMSServiceAreaIdentities INTEGER ::= 256
-- **************************************************************
--
-- IEs
--
-- **************************************************************
id-E-RABs-Admitted-Item X2ap-ProtocolIE-ID ::= 0
id-E-RABs-Admitted-List X2ap-ProtocolIE-ID ::= 1
id-E-RAB-Item X2ap-ProtocolIE-ID ::= 2
id-E-RABs-NotAdmitted-List X2ap-ProtocolIE-ID ::= 3
id-E-RABs-ToBeSetup-Item X2ap-ProtocolIE-ID ::= 4
id-Cause X2ap-ProtocolIE-ID ::= 5
id-CellInformation X2ap-ProtocolIE-ID ::= 6
id-CellInformation-Item X2ap-ProtocolIE-ID ::= 7
id-New-eNB-UE-X2AP-ID X2ap-ProtocolIE-ID ::= 9
id-Old-eNB-UE-X2AP-ID X2ap-ProtocolIE-ID ::= 10
id-TargetCell-ID X2ap-ProtocolIE-ID ::= 11
id-TargeteNBtoSource-eNBTransparentContainer X2ap-ProtocolIE-ID ::= 12
id-TraceActivation X2ap-ProtocolIE-ID ::= 13
id-UE-ContextInformation X2ap-ProtocolIE-ID ::= 14
id-UE-HistoryInformation X2ap-ProtocolIE-ID ::= 15
id-UE-X2AP-ID X2ap-ProtocolIE-ID ::= 16
id-CriticalityDiagnostics X2ap-ProtocolIE-ID ::= 17
id-E-RABs-SubjectToStatusTransfer-List X2ap-ProtocolIE-ID ::= 18
id-E-RABs-SubjectToStatusTransfer-Item X2ap-ProtocolIE-ID ::= 19
id-ServedCells X2ap-ProtocolIE-ID ::= 20
id-GlobalENB-ID X2ap-ProtocolIE-ID ::= 21
id-TimeToWait X2ap-ProtocolIE-ID ::= 22
id-GUMMEI-ID X2ap-ProtocolIE-ID ::= 23
id-GUGroupIDList X2ap-ProtocolIE-ID ::= 24
id-ServedCellsToAdd X2ap-ProtocolIE-ID ::= 25
id-ServedCellsToModify X2ap-ProtocolIE-ID ::= 26
id-ServedCellsToDelete X2ap-ProtocolIE-ID ::= 27
id-Registration-Request X2ap-ProtocolIE-ID ::= 28
id-CellToReport X2ap-ProtocolIE-ID ::= 29
id-ReportingPeriodicity X2ap-ProtocolIE-ID ::= 30
id-CellToReport-Item X2ap-ProtocolIE-ID ::= 31
id-CellMeasurementResult X2ap-ProtocolIE-ID ::= 32
id-CellMeasurementResult-Item X2ap-ProtocolIE-ID ::= 33
id-GUGroupIDToAddList X2ap-ProtocolIE-ID ::= 34
id-GUGroupIDToDeleteList X2ap-ProtocolIE-ID ::= 35
id-SRVCCOperationPossible X2ap-ProtocolIE-ID ::= 36
id-Measurement-ID X2ap-ProtocolIE-ID ::= 37
id-ReportCharacteristics X2ap-ProtocolIE-ID ::= 38
id-ENB1-Measurement-ID X2ap-ProtocolIE-ID ::= 39
id-ENB2-Measurement-ID X2ap-ProtocolIE-ID ::= 40
id-Number-of-Antennaports X2ap-ProtocolIE-ID ::= 41
id-CompositeAvailableCapacityGroup X2ap-ProtocolIE-ID ::= 42
id-ENB1-Cell-ID X2ap-ProtocolIE-ID ::= 43
id-ENB2-Cell-ID X2ap-ProtocolIE-ID ::= 44
id-ENB2-Proposed-Mobility-Parameters X2ap-ProtocolIE-ID ::= 45
id-ENB1-Mobility-Parameters X2ap-ProtocolIE-ID ::= 46
id-ENB2-Mobility-Parameters-Modification-Range X2ap-ProtocolIE-ID ::= 47
id-FailureCellPCI X2ap-ProtocolIE-ID ::= 48
id-Re-establishmentCellECGI X2ap-ProtocolIE-ID ::= 49
id-FailureCellCRNTI X2ap-ProtocolIE-ID ::= 50
id-ShortMAC-I X2ap-ProtocolIE-ID ::= 51
id-SourceCellECGI X2ap-ProtocolIE-ID ::= 52
id-FailureCellECGI X2ap-ProtocolIE-ID ::= 53
id-HandoverReportType X2ap-ProtocolIE-ID ::= 54
id-PRACH-Configuration X2ap-ProtocolIE-ID ::= 55
id-MBSFN-Subframe-Info X2ap-ProtocolIE-ID ::= 56
id-ServedCellsToActivate X2ap-ProtocolIE-ID ::= 57
id-ActivatedCellList X2ap-ProtocolIE-ID ::= 58
id-DeactivationIndication X2ap-ProtocolIE-ID ::= 59
id-UE-RLF-Report-Container X2ap-ProtocolIE-ID ::= 60
id-ABSInformation X2ap-ProtocolIE-ID ::= 61
id-InvokeIndication X2ap-ProtocolIE-ID ::= 62
id-ABS-Status X2ap-ProtocolIE-ID ::= 63
id-PartialSuccessIndicator X2ap-ProtocolIE-ID ::= 64
id-MeasurementInitiationResult-List X2ap-ProtocolIE-ID ::= 65
id-MeasurementInitiationResult-Item X2ap-ProtocolIE-ID ::= 66
id-MeasurementFailureCause-Item X2ap-ProtocolIE-ID ::= 67
id-CompleteFailureCauseInformation-List X2ap-ProtocolIE-ID ::= 68
id-CompleteFailureCauseInformation-Item X2ap-ProtocolIE-ID ::= 69
id-CSG-Id X2ap-ProtocolIE-ID ::= 70
id-CSGMembershipStatus X2ap-ProtocolIE-ID ::= 71
id-MDTConfiguration X2ap-ProtocolIE-ID ::= 72
id-ManagementBasedMDTallowed X2ap-ProtocolIE-ID ::= 74
id-RRCConnSetupIndicator X2ap-ProtocolIE-ID ::= 75
id-NeighbourTAC X2ap-ProtocolIE-ID ::= 76
id-Time-UE-StayedInCell-EnhancedGranularity X2ap-ProtocolIE-ID ::= 77
id-RRCConnReestabIndicator X2ap-ProtocolIE-ID ::= 78
id-MBMS-Service-Area-List X2ap-ProtocolIE-ID ::= 79
id-HO-cause X2ap-ProtocolIE-ID ::= 80
id-TargetCellInUTRAN X2ap-ProtocolIE-ID ::= 81
id-MultibandInfoList X2ap-ProtocolIE-ID ::= 84
END
@@ -1,195 +0,0 @@
-- **************************************************************
--
-- Container definitions
--
-- **************************************************************
X2AP-Containers {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
x2ap-maxPrivateIEs,
x2ap-maxProtocolExtensions,
x2ap-maxProtocolIEs,
X2ap-Criticality,
X2ap-Presence,
X2ap-PrivateIE-ID,
X2ap-ProtocolIE-ID
FROM X2AP-CommonDataTypes;
-- **************************************************************
--
-- Class Definition for Protocol IEs
--
-- **************************************************************
X2AP-PROTOCOL-IES ::= CLASS {
&id X2ap-ProtocolIE-ID UNIQUE,
&criticality X2ap-Criticality,
&Value,
&presence X2ap-Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
TYPE &Value
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Protocol IEs
--
-- **************************************************************
X2AP-PROTOCOL-IES-PAIR ::= CLASS {
&id X2ap-ProtocolIE-ID UNIQUE,
&firstCriticality X2ap-Criticality,
&FirstValue,
&secondCriticality X2ap-Criticality,
&SecondValue,
&presence X2ap-Presence
}
WITH SYNTAX {
ID &id
FIRST CRITICALITY &firstCriticality
FIRST TYPE &FirstValue
SECOND CRITICALITY &secondCriticality
SECOND TYPE &SecondValue
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Protocol Extensions
--
-- **************************************************************
X2AP-PROTOCOL-EXTENSION ::= CLASS {
&id X2ap-ProtocolIE-ID UNIQUE,
&criticality X2ap-Criticality,
&Extension,
&presence X2ap-Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
EXTENSION &Extension
PRESENCE &presence
}
-- **************************************************************
--
-- Class Definition for Private IEs
--
-- **************************************************************
X2AP-PRIVATE-IES ::= CLASS {
&id X2ap-PrivateIE-ID,
&criticality X2ap-Criticality,
&Value,
&presence X2ap-Presence
}
WITH SYNTAX {
ID &id
CRITICALITY &criticality
TYPE &Value
PRESENCE &presence
}
-- **************************************************************
--
-- Container for Protocol IEs
--
-- **************************************************************
ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
id X2AP-PROTOCOL-IES.&id ({IEsSetParam}),
criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container for Protocol IE Pairs
--
-- **************************************************************
ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF
ProtocolIE-FieldPair {{IEsSetParam}}
ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container Lists for Protocol IE Containers
--
-- **************************************************************
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (lowerBound..upperBound)) OF
ProtocolIE-Container {{IEsSetParam}}
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (lowerBound..upperBound)) OF
ProtocolIE-ContainerPair {{IEsSetParam}}
-- **************************************************************
--
-- Container for Protocol Extensions
--
-- **************************************************************
ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
SEQUENCE (SIZE (1..x2ap-maxProtocolExtensions)) OF
ProtocolExtensionField {{ExtensionSetParam}}
ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
}
-- **************************************************************
--
-- Container for Private IEs
--
-- **************************************************************
PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::=
SEQUENCE (SIZE (1..x2ap-maxPrivateIEs)) OF
PrivateIE-Field {{IEsSetParam}}
PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
id X2AP-PRIVATE-IES.&id ({IEsSetParam}),
criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
}
END
File diff suppressed because it is too large Load Diff
@@ -1,892 +0,0 @@
-- **************************************************************
--
-- PDU definitions for X2AP.
--
-- **************************************************************
X2AP-PDU-Contents {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
X2ap-ABSInformation,
X2ap-ABS-Status,
X2ap-AS-SecurityInformation,
X2ap-Cause,
X2ap-CompositeAvailableCapacityGroup,
X2ap-COUNTvalue,
X2ap-CriticalityDiagnostics,
X2ap-CRNTI,
X2ap-CSGMembershipStatus,
X2ap-CSG-Id,
X2ap-DeactivationIndication,
X2ap-DL-Forwarding,
X2ap-ECGI,
X2ap-E-RAB-ID,
X2ap-E-RAB-Level-QoS-Parameters,
X2ap-E-RAB-List,
X2ap-EUTRANTraceID,
X2ap-GlobalENB-ID,
X2ap-GTPtunnelEndpoint,
X2ap-GUGroupIDList,
X2ap-GUMMEI,
X2ap-HandoverReportType,
X2ap-HandoverRestrictionList,
X2ap-InvokeIndication,
X2ap-LocationReportingInformation,
X2ap-MDT-Configuration,
X2ap-ManagementBasedMDTallowed,
X2ap-Neighbour-Information,
X2ap-PCI,
X2ap-PDCP-SN,
X2ap-PLMN-Identity,
X2ap-ReceiveStatusofULPDCPSDUs,
X2ap-Registration-Request,
X2ap-RelativeNarrowbandTxPower,
X2ap-RadioResourceStatus,
X2ap-RRCConnReestabIndicator,
X2ap-RRCConnSetupIndicator,
X2ap-UE-RLF-Report-Container,
X2ap-RRC-Context,
X2ap-ServedCell-Information,
X2ap-ServedCells,
X2ap-ShortMAC-I,
X2ap-SRVCCOperationPossible,
X2ap-SubscriberProfileIDforRFP,
X2ap-TargetCellInUTRAN,
X2ap-TargeteNBtoSource-eNBTransparentContainer,
X2ap-TimeToWait,
X2ap-TraceActivation,
X2ap-TraceDepth,
X2ap-TransportLayerAddress,
X2ap-UEAggregateMaximumBitRate,
X2ap-UE-HistoryInformation,
X2ap-UE-S1AP-ID,
X2ap-UESecurityCapabilities,
X2ap-UE-X2AP-ID,
X2ap-UL-HighInterferenceIndicationInfo,
X2ap-UL-InterferenceOverloadIndication,
X2ap-HWLoadIndicator,
X2ap-S1TNLLoadIndicator,
X2ap-Measurement-ID,
X2ap-ReportCharacteristics,
X2ap-MobilityParametersInformation,
X2ap-MobilityParametersModificationRange
FROM X2AP-IEs
PrivateIE-Container{},
ProtocolExtensionContainer{},
ProtocolIE-Container{},
ProtocolIE-ContainerList{},
ProtocolIE-ContainerPair{},
ProtocolIE-ContainerPairList{},
ProtocolIE-Single-Container{},
X2AP-PRIVATE-IES,
X2AP-PROTOCOL-EXTENSION,
X2AP-PROTOCOL-IES,
X2AP-PROTOCOL-IES-PAIR
FROM X2AP-Containers
id-ABSInformation,
id-ActivatedCellList,
id-Cause,
id-CellInformation,
id-CellInformation-Item,
id-CellMeasurementResult,
id-CellMeasurementResult-Item,
id-CellToReport,
id-CellToReport-Item,
id-CompositeAvailableCapacityGroup,
id-CriticalityDiagnostics,
id-DeactivationIndication,
id-E-RABs-Admitted-Item,
id-E-RABs-Admitted-List,
id-E-RABs-NotAdmitted-List,
id-E-RABs-SubjectToStatusTransfer-List,
id-E-RABs-SubjectToStatusTransfer-Item,
id-E-RABs-ToBeSetup-Item,
id-GlobalENB-ID,
id-GUGroupIDList,
id-GUGroupIDToAddList,
id-GUGroupIDToDeleteList,
id-GUMMEI-ID,
id-InvokeIndication,
id-New-eNB-UE-X2AP-ID,
id-Old-eNB-UE-X2AP-ID,
id-Registration-Request,
id-ReportingPeriodicity,
id-ServedCells,
id-ServedCellsToActivate,
id-ServedCellsToAdd,
id-ServedCellsToModify,
id-ServedCellsToDelete,
id-SRVCCOperationPossible,
id-TargetCell-ID,
id-TargeteNBtoSource-eNBTransparentContainer,
id-TimeToWait,
id-TraceActivation,
id-UE-ContextInformation,
id-UE-HistoryInformation,
id-UE-X2AP-ID,
id-Measurement-ID,
id-ReportCharacteristics,
id-ENB1-Measurement-ID,
id-ENB2-Measurement-ID,
id-ENB1-Cell-ID,
id-ENB2-Cell-ID,
id-ENB2-Proposed-Mobility-Parameters,
id-ENB1-Mobility-Parameters,
id-ENB2-Mobility-Parameters-Modification-Range,
id-FailureCellPCI,
id-Re-establishmentCellECGI,
id-FailureCellCRNTI,
id-ShortMAC-I,
id-SourceCellECGI,
id-FailureCellECGI,
id-HandoverReportType,
id-UE-RLF-Report-Container,
id-PartialSuccessIndicator,
id-MeasurementInitiationResult-List,
id-MeasurementInitiationResult-Item,
id-MeasurementFailureCause-Item,
id-CompleteFailureCauseInformation-List,
id-CompleteFailureCauseInformation-Item,
id-CSGMembershipStatus,
id-CSG-Id,
id-MDTConfiguration,
id-ManagementBasedMDTallowed,
id-ABS-Status,
id-RRCConnSetupIndicator,
id-RRCConnReestabIndicator,
id-TargetCellInUTRAN,
x2ap-maxCellineNB,
x2ap-maxnoofBearers,
x2ap-maxnoofPDCP-SN,
x2ap-maxFailedMeasObjects,
x2ap-maxnoofCellIDforMDT,
x2ap-maxnoofTAforMDT
FROM X2AP-Constants;
-- **************************************************************
--
-- HANDOVER REQUEST
--
-- **************************************************************
X2ap-HandoverRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-HandoverRequest-IEs}},
...
}
X2ap-HandoverRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory }|
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }|
{ ID id-TargetCell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
{ ID id-GUMMEI-ID CRITICALITY reject TYPE X2ap-GUMMEI PRESENCE mandatory }|
{ ID id-UE-ContextInformation CRITICALITY reject TYPE X2ap-UE-ContextInformation PRESENCE mandatory }|
{ ID id-UE-HistoryInformation CRITICALITY ignore TYPE X2ap-UE-HistoryInformation PRESENCE mandatory }|
{ ID id-TraceActivation CRITICALITY ignore TYPE X2ap-TraceActivation PRESENCE optional}|
{ ID id-SRVCCOperationPossible CRITICALITY ignore TYPE X2ap-SRVCCOperationPossible PRESENCE optional}|
{ ID id-CSGMembershipStatus CRITICALITY reject TYPE X2ap-CSGMembershipStatus PRESENCE optional},
...
}
X2ap-UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION X2ap-ManagementBasedMDTallowed PRESENCE optional },
...
}
X2ap-E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { {X2ap-E-RABs-ToBeSetup-ItemIEs} }
X2ap-E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE X2ap-E-RABs-ToBeSetup-Item PRESENCE mandatory },
...
}
X2ap-E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- HANDOVER REQUEST ACKNOWLEDGE
--
-- **************************************************************
X2ap-HandoverRequestAcknowledge ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-HandoverRequestAcknowledge-IEs}},
...
}
X2ap-HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
{ ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE X2ap-E-RABs-Admitted-List PRESENCE mandatory} |
{ ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE X2ap-E-RAB-List PRESENCE optional} |
{ ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE X2ap-TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
X2ap-E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { {X2ap-E-RABs-Admitted-ItemIEs} }
X2ap-E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE X2ap-E-RABs-Admitted-Item PRESENCE mandatory }
}
X2ap-E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- HANDOVER PREPARATION FAILURE
--
-- **************************************************************
X2ap-HandoverPreparationFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-HandoverPreparationFailure-IEs}},
...
}
X2ap-HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} |
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- Handover Report
--
-- **************************************************************
X2ap-HandoverReport ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-HandoverReport-IEs}},
...
}
X2ap-HandoverReport-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-HandoverReportType CRITICALITY ignore TYPE X2ap-HandoverReportTYPE X2ap-PRESENCE mandatory}|
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} |
{ ID id-SourceCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory}|
{ ID id-FailureCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory} |
{ ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report TYPE X2ap-IE is set to “HO to Wrong Cell” -- |
{ ID id-TargetCellInUTRAN CRITICALITY ignore TYPE X2ap-TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report TYPE X2ap-IE is set to "InterRAT ping-pong" --,
...
}
-- **************************************************************
--
-- SN Status Transfer
--
-- **************************************************************
X2ap-SNStatusTransfer ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-SNStatusTransfer-IEs}},
...
}
X2ap-SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
{ ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE X2ap-E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory} ,
...
}
X2ap-E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..x2ap-maxnoofBearers)) OF ProtocolIE-Single-Container { { X2ap-E-RABs-SubjectToStatusTransfer-ItemIEs} }
X2ap-E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE X2ap-E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory }
}
X2ap-E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- UE Context Release
--
-- **************************************************************
X2ap-UEContextRelease ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-UEContextRelease-IEs}},
...
}
X2ap-UEContextRelease-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} ,
...
}
-- **************************************************************
--
-- HANDOVER CANCEL
--
-- **************************************************************
X2ap-HandoverCancel ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-HandoverCancel-IEs}},
...
}
X2ap-HandoverCancel-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE X2ap-UE-X2AP-ID PRESENCE mandatory} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE optional} |
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} ,
...
}
-- **************************************************************
--
-- ERROR INDICATION
--
-- **************************************************************
X2ap-ErrorIndication ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ErrorIndication-IEs}},
...
}
X2ap-ErrorIndication-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE optional} |
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE X2ap-UE-X2AP-ID PRESENCE optional} |
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE optional} |
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional} ,
...
}
-- **************************************************************
--
-- Reset Request
--
-- **************************************************************
X2ap-ResetRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ResetRequest-IEs}},
...
}
X2ap-ResetRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory },
...
}
-- **************************************************************
--
-- Reset Response
--
-- **************************************************************
X2ap-ResetResponse ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ResetResponse-IEs}},
...
}
X2ap-ResetResponse-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- X2 SETUP REQUEST
--
-- **************************************************************
X2SetupRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}},
...
}
X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-GlobalENB-ID CRITICALITY reject TYPE X2ap-GlobalENB-ID PRESENCE mandatory} |
{ ID id-ServedCells CRITICALITY reject TYPE X2ap-ServedCells PRESENCE mandatory} |
{ ID id-GUGroupIDList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional},
...
}
-- **************************************************************
--
-- X2 SETUP RESPONSE
--
-- **************************************************************
X2SetupResponse ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}},
...
}
X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-GlobalENB-ID CRITICALITY reject TYPE X2ap-GlobalENB-ID PRESENCE mandatory} |
{ ID id-ServedCells CRITICALITY reject TYPE X2ap-ServedCells PRESENCE mandatory} |
{ ID id-GUGroupIDList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional}|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- X2 SETUP FAILURE
--
-- **************************************************************
X2SetupFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}},
...
}
X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory} |
{ ID id-TimeToWait CRITICALITY ignore TYPE X2ap-TimeToWait PRESENCE optional} |
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- LOAD INFORMATION
--
-- **************************************************************
X2ap-LoadInformation ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-LoadInformation-IEs}},
...
}
X2ap-LoadInformation-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-CellInformation CRITICALITY ignore TYPE X2ap-CellInformation-List PRESENCE mandatory} ,
...
}
X2ap-CellInformation-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CellInformation-ItemIEs} }
X2ap-CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-CellInformation-Item CRITICALITY ignore TYPE X2ap-CellInformation-Item PRESENCE mandatory }
}
X2ap-CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
{ ID id-ABSInformation CRITICALITY ignore EXTENSION X2ap-ABSInformation PRESENCE optional }|
{ ID id-InvokeIndication CRITICALITY ignore EXTENSION X2ap-InvokeIndication PRESENCE optional },
...
}
-- **************************************************************
--
-- ENB CONFIGURATION UPDATE
--
-- **************************************************************
X2ap-ENBConfigurationUpdate ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ENBConfigurationUpdate-IEs}},
...
}
X2ap-ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ServedCellsToAdd CRITICALITY reject TYPE X2ap-ServedCells PRESENCE optional} |
{ ID id-ServedCellsToModify CRITICALITY reject TYPE X2ap-ServedCellsToModify PRESENCE optional} |
{ ID id-ServedCellsToDelete CRITICALITY reject TYPE X2ap-Old-ECGIs PRESENCE optional} |
{ ID id-GUGroupIDToAddList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional} |
{ ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE X2ap-GUGroupIDList PRESENCE optional},
...
}
X2ap-ServedCellsToModify::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ServedCellsToModify-Item
ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION X2ap-DeactivationIndication PRESENCE optional },
...
}
-- **************************************************************
--
-- ENB CONFIGURATION UPDATE ACKNOWLEDGE
--
-- **************************************************************
X2ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ENBConfigurationUpdateAcknowledge-IEs}},
...
}
X2ap-ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- ENB CONFIGURATION UPDATE FAIURE
--
-- **************************************************************
X2ap-ENBConfigurationUpdateFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ENBConfigurationUpdateFailure-IEs}},
...
}
X2ap-ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }|
{ ID id-TimeToWait CRITICALITY ignore TYPE X2ap-TimeToWait PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- Resource Status Request
--
-- **************************************************************
X2ap-ResourceStatusRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusRequest-IEs}},
...
}
X2ap-ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
{ ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE X2ap-Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”--
{ ID id-Registration-Request CRITICALITY reject TYPE X2ap-Registration-Request PRESENCE mandatory}|
{ ID id-ReportCharacteristics CRITICALITY reject TYPE X2ap-ReportCharacteristics PRESENCE optional}|
{ ID id-CellToReport CRITICALITY ignore TYPE X2ap-CellToReport-List PRESENCE mandatory}|
{ ID id-ReportingPeriodicity CRITICALITY ignore TYPE X2ap-ReportingPeriodicity PRESENCE optional}|
{ ID id-PartialSuccessIndicator CRITICALITY ignore TYPE X2ap-PartialSuccessIndicator PRESENCE optional},
...
}
X2ap-CellToReport-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CellToReport-ItemIEs} }
X2ap-CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-CellToReport-Item CRITICALITY ignore TYPE X2ap-CellToReport-Item PRESENCE mandatory }
}
X2ap-CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
X2ap-ReportingPeriodicity ::= ENUMERATED {
one-thousand-ms,
two-thousand-ms,
five-thousand-ms,
ten-thousand-ms,
...
}
X2ap-PartialSuccessIndicator ::= ENUMERATED {
partial-success-allowed,
...
}
-- **************************************************************
--
-- Resource Status Response
--
-- **************************************************************
X2ap-ResourceStatusResponse ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusResponse-IEs}},
...
}
X2ap-ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional}|
{ ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE X2ap-MeasurementInitiationResult-List PRESENCE optional},
...
}
X2ap-MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { { X2ap-MeasurementInitiationResult-ItemIEs} }
X2ap-MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE X2ap-MeasurementInitiationResult-Item PRESENCE mandatory}
}
X2ap-MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
X2ap-MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..x2ap-maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { X2ap-MeasurementFailureCause-ItemIEs} }
X2ap-MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE X2ap-MeasurementFailureCause-Item PRESENCE mandatory}
}
X2ap-MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Resource Status Failure
--
-- **************************************************************
X2ap-ResourceStatusFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusFailure-IEs}},
...
}
X2ap-ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory}|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional}|
{ ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE X2ap-CompleteFailureCauseInformation-List PRESENCE optional},
...
}
X2ap-CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CompleteFailureCauseInformation-ItemIEs} }
X2ap-CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE X2ap-CompleteFailureCauseInformation-Item PRESENCE mandatory}
}
X2ap-CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Resource Status Update
--
-- **************************************************************
X2ap-ResourceStatusUpdate ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-ResourceStatusUpdate-IEs}},
...
}
X2ap-ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
{ ID id-ENB2-Measurement-ID CRITICALITY reject TYPE X2ap-Measurement-ID PRESENCE mandatory}|
{ ID id-CellMeasurementResult CRITICALITY ignore TYPE X2ap-CellMeasurementResult-List PRESENCE mandatory},
...
}
X2ap-CellMeasurementResult-List ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF ProtocolIE-Single-Container { {X2ap-CellMeasurementResult-ItemIEs} }
X2ap-CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= {
{ ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE X2ap-CellMeasurementResult-Item PRESENCE mandatory }
}
X2ap-CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
{ ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION X2ap-CompositeAvailableCapacityGroup PRESENCE optional}|
{ ID id-ABS-Status CRITICALITY ignore EXTENSION X2ap-ABS-Status PRESENCE optional},
...
}
-- **************************************************************
--
-- PRIVATE MESSAGE
--
-- **************************************************************
X2ap-PrivateMessage ::= SEQUENCE {
privateIEs PrivateIE-Container {{X2ap-PrivateMessage-IEs}},
...
}
X2ap-PrivateMessage-IEs X2AP-PRIVATE-IES ::= {
...
}
-- **************************************************************
--
-- MOBILITY CHANGE REQUEST
--
-- **************************************************************
X2ap-MobilityChangeRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-MobilityChangeRequest-IEs}},
...
}
X2ap-MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
{ ID id-ENB2-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
{ ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE X2ap-MobilityParametersInformation PRESENCE optional }|
{ ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE X2ap-MobilityParametersInformation PRESENCE mandatory }|
{ ID id-Cause CRITICALITY reject TYPE X2ap-Cause PRESENCE mandatory },
...
}
-- **************************************************************
--
-- MOBILITY CHANGE ACKNOWLEDGE
--
-- **************************************************************
X2ap-MobilityChangeAcknowledge ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-MobilityChangeAcknowledge-IEs}},
...
}
X2ap-MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
{ ID id-ENB2-Cell-ID CRITICALITY reject TYPE X2ap-ECGI PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- MOBILITY CHANGE FAILURE
--
-- **************************************************************
X2ap-MobilityChangeFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-MobilityChangeFailure-IEs}},
...
}
X2ap-MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ENB1-Cell-ID CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory }|
{ ID id-ENB2-Cell-ID CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory }|
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }|
{ ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE X2ap-MobilityParametersModificationRange PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- Radio Link Failure Indication
--
-- **************************************************************
X2ap-RLFIndication ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-RLFIndication-IEs}},
...
}
X2ap-RLFIndication-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-FailureCellPCI CRITICALITY ignore TYPE X2ap-PCI PRESENCE mandatory}|
{ ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE X2ap-ECGI PRESENCE mandatory}|
{ ID id-FailureCellCRNTI CRITICALITY ignore TYPE X2ap-CRNTI PRESENCE mandatory}|
{ ID id-ShortMAC-I CRITICALITY ignore TYPE X2ap-ShortMAC-I PRESENCE optional}|
{ ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE X2ap-UE-RLF-Report-Container PRESENCE optional}|
{ ID id-RRCConnSetupIndicator CRITICALITY reject TYPE X2ap-RRCConnSetupIndicator PRESENCE optional}|
{ ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE X2ap-RRCConnReestabIndicator PRESENCE optional},
...
}
-- **************************************************************
--
-- Cell Activation Request
--
-- **************************************************************
X2ap-CellActivationRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-CellActivationRequest-IEs}},
...
}
X2ap-CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ServedCellsToActivate CRITICALITY reject TYPE X2ap-ServedCellsToActivate PRESENCE mandatory },
...
}
X2ap-ServedCellsToActivate::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ServedCellsToActivate-Item
X2ap-ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- Cell Activation Response
--
-- **************************************************************
X2ap-CellActivationResponse ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-CellActivationResponse-IEs}},
...
}
X2ap-CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-ActivatedCellList CRITICALITY ignore TYPE X2ap-ActivatedCellList PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
X2ap-ActivatedCellList ::= SEQUENCE (SIZE (1..x2ap-maxCellineNB)) OF X2ap-ActivatedCellList-Item
X2ap-ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
--**************************************************************
--
-- CELL ACTIVATION FAILURE
--
-- **************************************************************
X2ap-CellActivationFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{X2ap-CellActivationFailure-IEs}},
...
}
X2ap-CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-Cause CRITICALITY ignore TYPE X2ap-Cause PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE X2ap-CriticalityDiagnostics PRESENCE optional },
...
}
END
@@ -1,243 +0,0 @@
-- **************************************************************
--
-- Elementary Procedure definitions
--
-- **************************************************************
X2AP-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
X2ap-Criticality,
X2ap-ProcedureCode
FROM X2AP-CommonDataTypes
X2ap-CellActivationRequest,
X2ap-CellActivationResponse,
X2ap-CellActivationFailure,
X2ap-ENBConfigurationUpdate,
X2ap-ENBConfigurationUpdateAcknowledge,
X2ap-ENBConfigurationUpdateFailure,
X2ap-ErrorIndication,
X2ap-HandoverCancel,
X2ap-HandoverReport,
X2ap-HandoverPreparationFailure,
X2ap-HandoverRequest,
X2ap-HandoverRequestAcknowledge,
X2ap-LoadInformation,
X2ap-PrivateMessage,
X2ap-ResetRequest,
X2ap-ResetResponse,
X2ap-ResourceStatusFailure,
X2ap-ResourceStatusRequest,
X2ap-ResourceStatusResponse,
X2ap-ResourceStatusUpdate,
X2ap-RLFIndication,
X2ap-SNStatusTransfer,
X2ap-UEContextRelease,
X2SetupFailure, X2SetupRequest,
X2SetupResponse,
X2ap-MobilityChangeRequest,
X2ap-MobilityChangeAcknowledge,
X2ap-MobilityChangeFailure
FROM X2AP-PDU-Contents
id-cellActivation,
id-eNBConfigurationUpdate,
id-errorIndication,
id-handoverCancel,
id-handoverReport,
id-handoverPreparation,
id-loadIndication,
id-privateMessage,
id-reset,
id-resourceStatusReporting,
id-resourceStatusReportingInitiation,
id-rLFIndication,
id-snStatusTransfer,
id-uEContextRelease,
id-x2Setup,
id-mobilitySettingsChange
FROM X2AP-Constants;
-- **************************************************************
--
-- Interface Elementary Procedure Class
--
-- **************************************************************
X2AP-ELEMENTARY-PROCEDURE ::= CLASS {
&InitiatingMessage ,
&SuccessfulOutcome OPTIONAL,
&UnsuccessfulOutcome OPTIONAL,
&procedureCode ProcedureCode UNIQUE,
&criticality Criticality DEFAULT ignore
}
WITH SYNTAX {
INITIATING MESSAGE &InitiatingMessage
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
PROCEDURE CODE &procedureCode
[CRITICALITY &criticality]
}
-- **************************************************************
--
-- Interface PDU Definition
--
-- **************************************************************
X2AP-PDU ::= CHOICE {
initiatingMessage InitiatingMessage,
successfulOutcome SuccessfulOutcome,
unsuccessfulOutcome UnsuccessfulOutcome,
...
}
InitiatingMessage ::= SEQUENCE {
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
SuccessfulOutcome ::= SEQUENCE {
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
UnsuccessfulOutcome ::= SEQUENCE {
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
-- **************************************************************
--
-- Interface Elementary Procedure List
--
-- **************************************************************
X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= {
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
handoverPreparation |
reset |
x2Setup |
resourceStatusReportingInitiation |
eNBConfigurationUpdate |
mobilitySettingsChange |
cellActivation ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
snStatusTransfer |
uEContextRelease |
handoverCancel |
errorIndication |
resourceStatusReporting |
loadIndication |
privateMessage |
rLFIndication | handoverReport,
...
}
-- **************************************************************
--
-- Interface Elementary Procedures
--
-- **************************************************************
handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverRequest
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
PROCEDURE CODE id-handoverPreparation
CRITICALITY reject
}
snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE SNStatusTransfer
PROCEDURE CODE id-snStatusTransfer
CRITICALITY ignore
}
uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE UEContextRelease
PROCEDURE CODE id-uEContextRelease
CRITICALITY ignore
}
handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverCancel
PROCEDURE CODE id-handoverCancel
CRITICALITY ignore
}
handoverReport X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE HandoverReport
PROCEDURE CODE id-handoverReport
CRITICALITY ignore
}
errorIndication X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ErrorIndication
PROCEDURE CODE id-errorIndication
CRITICALITY ignore
}
reset X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ResetRequest
SUCCESSFUL OUTCOME ResetResponse
PROCEDURE CODE id-reset
CRITICALITY reject
}
x2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE X2SetupRequest
SUCCESSFUL OUTCOME X2SetupResponse
UNSUCCESSFUL OUTCOME X2SetupFailure
PROCEDURE CODE id-x2Setup
CRITICALITY reject
}
loadIndication X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE LoadInformation
PROCEDURE CODE id-loadIndication
CRITICALITY ignore
}
eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ENBConfigurationUpdate
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
PROCEDURE CODE id-eNBConfigurationUpdate
CRITICALITY reject
}
resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ResourceStatusRequest
SUCCESSFUL OUTCOME ResourceStatusResponse
UNSUCCESSFUL OUTCOME ResourceStatusFailure
PROCEDURE CODE id-resourceStatusReportingInitiation
CRITICALITY reject
}
resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE ResourceStatusUpdate
PROCEDURE CODE id-resourceStatusReporting
CRITICALITY ignore
}
rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE RLFIndication
PROCEDURE CODE id-rLFIndication
CRITICALITY ignore
}
privateMessage X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE PrivateMessage
PROCEDURE CODE id-privateMessage
CRITICALITY ignore
}
mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE MobilityChangeRequest
SUCCESSFUL OUTCOME MobilityChangeAcknowledge
UNSUCCESSFUL OUTCOME MobilityChangeFailure
PROCEDURE CODE id-mobilitySettingsChange
CRITICALITY reject
}
cellActivation X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE CellActivationRequest
SUCCESSFUL OUTCOME CellActivationResponse
UNSUCCESSFUL OUTCOME CellActivationFailure
PROCEDURE CODE id-cellActivation
CRITICALITY reject
}
END
@@ -1,199 +0,0 @@
-- **************************************************************
--
-- PDU definitions for X2AP.
--
-- **************************************************************
X2AP-PDU {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU (1) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
x2ap-maxProtocolIEs,
X2ap-Criticality,
X2ap-ProcedureCode,
X2ap-ProtocolIE-ID
FROM X2AP-CommonDataTypes;
X2ap-IE ::= SEQUENCE {
id X2ap-ProtocolIE-ID,
criticality X2ap-Criticality,
value ANY
}
X2AP-PDU ::= CHOICE {
initiatingMessage X2ap-InitiatingMessage,
successfulOutcome X2ap-SuccessfulOutcome,
unsuccessfulOutcome X2ap-UnsuccessfulOutcome,
...
}
X2ap-InitiatingMessage ::= SEQUENCE {
procedureCode X2ap-ProcedureCode,
criticality X2ap-Criticality,
value ANY
}
X2ap-SuccessfulOutcome ::= SEQUENCE {
procedureCode X2ap-ProcedureCode,
criticality X2ap-Criticality,
value ANY
}
X2ap-UnsuccessfulOutcome ::= SEQUENCE {
procedureCode X2ap-ProcedureCode,
criticality X2ap-Criticality,
value ANY
}
X2ap-HandoverRequest ::= SEQUENCE {
x2ap-HandoverRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-HandoverRequestAcknowledge ::= SEQUENCE {
x2ap-HandoverRequestAcknowledge-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-HandoverPreparationFailure ::= SEQUENCE {
x2ap-HandoverPreparationFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-SNStatusTransfer ::= SEQUENCE {
x2ap-SNStatusTransfer-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-UEContextRelease ::= SEQUENCE {
x2ap-UEContextRelease-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-HandoverCancel ::= SEQUENCE {
x2ap-HandoverCancel-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-HandoverReport ::= SEQUENCE {
x2ap-HandoverReport-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ErrorIndication ::= SEQUENCE {
x2ap-ErrorIndication-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ResetRequest ::= SEQUENCE {
x2ap-ResetRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ResetResponse ::= SEQUENCE {
x2ap-ResetResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2SetupRequest ::= SEQUENCE {
x2SetupRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2SetupResponse ::= SEQUENCE {
x2SetupResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2SetupFailure ::= SEQUENCE {
x2SetupFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-LoadInformation ::= SEQUENCE {
x2ap-LoadInformation-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ENBConfigurationUpdate ::= SEQUENCE {
x2ap-ENBConfigurationUpdate-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
x2ap-ENBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ENBConfigurationUpdateFailure ::= SEQUENCE {
x2ap-ENBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ResourceStatusRequest ::= SEQUENCE {
x2ap-ResourceStatusRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ResourceStatusResponse ::= SEQUENCE {
x2ap-ResourceStatusResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ResourceStatusFailure ::= SEQUENCE {
x2ap-ResourceStatusFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-ResourceStatusUpdate ::= SEQUENCE {
x2ap-ResourceStatusUpdate-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-RLFIndication ::= SEQUENCE {
x2ap-RLFIndication-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-PrivateMessage ::= SEQUENCE {
x2ap-PrivateMessage-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-MobilityChangeRequest ::= SEQUENCE {
x2ap-MobilityChangeRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-MobilityChangeAcknowledge ::= SEQUENCE {
x2ap-MobilityChangeAcknowledge-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-MobilityChangeFailure ::= SEQUENCE {
x2ap-MobilityChangeFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-CellActivationRequest ::= SEQUENCE {
x2ap-CellActivationRequest-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-CellActivationResponse ::= SEQUENCE {
x2ap-CellActivationResponse-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
X2ap-CellActivationFailure ::= SEQUENCE {
x2ap-CellActivationFailure-ies SEQUENCE (SIZE (0..x2ap-maxProtocolIEs)) OF X2ap-IE,
...
}
END
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
+23 -64
View File
@@ -29,7 +29,7 @@
#include <stdint.h>
#include "x2ap_common.h"
#include "X2AP-PDU.h"
#include "X2AP_X2AP-PDU.h"
int asn_debug = 0;
int asn1_xer_print = 0;
@@ -55,29 +55,27 @@ inline void ASN_DEBUG(const char *fmt, ...)
ssize_t x2ap_generate_initiating_message(
uint8_t **buffer,
uint32_t *length,
X2ap_ProcedureCode_t procedureCode,
X2ap_Criticality_t criticality,
X2AP_ProcedureCode_t procedureCode,
X2AP_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr)
{
X2AP_PDU_t pdu;
X2AP_X2AP_PDU_t pdu;
ssize_t encoded;
memset(&pdu, 0, sizeof(X2AP_PDU_t));
pdu.present = X2AP_PDU_PR_initiatingMessage;
memset(&pdu, 0, sizeof(X2AP_X2AP_PDU_t));
pdu.present = X2AP_X2AP_PDU_PR_initiatingMessage;
pdu.choice.initiatingMessage.procedureCode = procedureCode;
pdu.choice.initiatingMessage.criticality = criticality;
ANY_fromType_aper(&pdu.choice.initiatingMessage.value, td, sptr);
if (asn1_xer_print) {
xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)&pdu);
xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu);
}
/* We can safely free list of IE from sptr */
ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr);
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, &pdu,
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, &pdu,
(void **)buffer)) < 0) {
return -1;
}
@@ -89,107 +87,68 @@ ssize_t x2ap_generate_initiating_message(
ssize_t x2ap_generate_successfull_outcome(
uint8_t **buffer,
uint32_t *length,
X2ap_ProcedureCode_t procedureCode,
X2ap_Criticality_t criticality,
X2AP_ProcedureCode_t procedureCode,
X2AP_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr)
{
X2AP_PDU_t pdu;
X2AP_X2AP_PDU_t pdu;
ssize_t encoded;
memset(&pdu, 0, sizeof(X2AP_PDU_t));
pdu.present = X2AP_PDU_PR_successfulOutcome;
memset(&pdu, 0, sizeof(X2AP_X2AP_PDU_t));
pdu.present = X2AP_X2AP_PDU_PR_successfulOutcome;
pdu.choice.successfulOutcome.procedureCode = procedureCode;
pdu.choice.successfulOutcome.criticality = criticality;
ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr);
if (asn1_xer_print) {
xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)&pdu);
xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu);
}
/* We can safely free list of IE from sptr */
ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr);
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, &pdu,
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, &pdu,
(void **)buffer)) < 0) {
return -1;
}
*length = encoded;
return encoded;
}
ssize_t x2ap_generate_unsuccessfull_outcome(
uint8_t **buffer,
uint32_t *length,
X2ap_ProcedureCode_t procedureCode,
X2ap_Criticality_t criticality,
X2AP_ProcedureCode_t procedureCode,
X2AP_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr)
{
X2AP_PDU_t pdu;
X2AP_X2AP_PDU_t pdu;
ssize_t encoded;
memset(&pdu, 0, sizeof(X2AP_PDU_t));
pdu.present = X2AP_PDU_PR_unsuccessfulOutcome;
memset(&pdu, 0, sizeof(X2AP_X2AP_PDU_t));
pdu.present = X2AP_X2AP_PDU_PR_unsuccessfulOutcome;
pdu.choice.successfulOutcome.procedureCode = procedureCode;
pdu.choice.successfulOutcome.criticality = criticality;
ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr);
if (asn1_xer_print) {
xer_fprint(stdout, &asn_DEF_X2AP_PDU, (void *)&pdu);
xer_fprint(stdout, &asn_DEF_X2AP_X2AP_PDU, (void *)&pdu);
}
/* We can safely free list of IE from sptr */
ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr);
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_PDU, 0, &pdu,
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_X2AP_X2AP_PDU, 0, &pdu,
(void **)buffer)) < 0) {
return -1;
}
*length = encoded;
return encoded;
}
X2ap_IE_t *x2ap_new_ie(
X2ap_ProtocolIE_ID_t id,
X2ap_Criticality_t criticality,
asn_TYPE_descriptor_t *type,
void *sptr)
{
X2ap_IE_t *buff;
if ((buff = malloc(sizeof(X2ap_IE_t))) == NULL) {
// Possible error on malloc
return NULL;
}
memset((void *)buff, 0, sizeof(X2ap_IE_t));
buff->id = id;
buff->criticality = criticality;
if (ANY_fromType_aper(&buff->value, type, sptr) < 0) {
fprintf(stderr, "Encoding of %s failed\n", type->name);
free(buff);
return NULL;
}
if (asn1_xer_print)
if (xer_fprint(stdout, &asn_DEF_X2ap_IE, buff) < 0) {
free(buff);
return NULL;
}
return buff;
}
void x2ap_handle_criticality(X2ap_Criticality_t criticality)
void x2ap_handle_criticality(X2AP_Criticality_t criticality)
{
}
+33 -261
View File
@@ -23,247 +23,17 @@
# include "config.h"
#endif
#include "X2ap-ABSInformationFDD.h"
#include "X2ap-ABSInformation.h"
#include "X2ap-ABSInformationTDD.h"
#include "X2ap-ABS-Status.h"
#include "X2ap-ActivatedCellList.h"
#include "X2ap-AllocationAndRetentionPriority.h"
#include "X2ap-AreaScopeOfMDT.h"
#include "X2ap-AS-SecurityInformation.h"
#include "X2ap-BandInfo.h"
#include "X2ap-BitRate.h"
#include "X2ap-BroadcastPLMNs-Item.h"
#include "X2ap-CapacityValue.h"
#include "X2ap-Cause.h"
#include "X2ap-CauseMisc.h"
#include "X2ap-CauseProtocol.h"
#include "X2ap-CauseRadioNetwork.h"
#include "X2ap-CauseTransport.h"
#include "X2ap-CellActivationFailure.h"
#include "X2ap-CellActivationRequest.h"
#include "X2ap-CellActivationResponse.h"
#include "X2ap-CellBasedMDT.h"
#include "X2ap-CellCapacityClassValue.h"
#include "X2ap-CellIdListforMDT.h"
#include "X2ap-CellInformation-Item.h"
#include "X2ap-CellInformation-List.h"
#include "X2ap-Cell-Size.h"
#include "X2ap-CellToReport-Item.h"
#include "X2ap-CellToReport-List.h"
#include "X2ap-CellType.h"
#include "X2ap-CellMeasurementResult-Item.h"
#include "X2ap-CellMeasurementResult-List.h"
#include "X2ap-CompleteFailureCauseInformation-Item.h"
#include "X2ap-CompleteFailureCauseInformation-List.h"
#include "X2ap-CompositeAvailableCapacityGroup.h"
#include "X2ap-CompositeAvailableCapacity.h"
#include "X2ap-COUNTvalue.h"
#include "X2ap-CriticalityDiagnostics.h"
#include "X2ap-CriticalityDiagnostics-IE-List.h"
#include "X2ap-Criticality.h"
#include "X2ap-CRNTI.h"
#include "X2ap-CSG-Id.h"
#include "X2ap-CSGMembershipStatus.h"
#include "X2ap-CyclicPrefixDL.h"
#include "X2ap-CyclicPrefixUL.h"
#include "X2ap-DeactivationIndication.h"
#include "X2ap-DL-ABS-status.h"
#include "X2ap-DL-Forwarding.h"
#include "X2ap-DL-GBR-PRB-usage.h"
#include "X2ap-DL-non-GBR-PRB-usage.h"
#include "X2ap-DL-Total-PRB-usage.h"
#include "X2ap-EARFCN.h"
#include "X2ap-ECGI.h"
#include "X2ap-ENB-ID.h"
#include "X2ap-ENBConfigurationUpdateFailure.h"
#include "X2ap-ENBConfigurationUpdateAcknowledge.h"
#include "X2ap-ENBConfigurationUpdate.h"
#include "X2ap-EncryptionAlgorithms.h"
#include "X2ap-EPLMNs.h"
#include "X2ap-E-RAB-ID.h"
#include "X2ap-E-RAB-Item.h"
#include "X2ap-E-RABs-Admitted-List.h"
#include "X2ap-E-RAB-Level-QoS-Parameters.h"
#include "X2ap-E-RAB-List.h"
#include "X2ap-E-RABs-SubjectToStatusTransfer-Item.h"
#include "X2ap-E-RABs-Admitted-Item.h"
#include "X2ap-E-RABs-SubjectToStatusTransfer-List.h"
#include "X2ap-ErrorIndication.h"
#include "X2ap-EUTRA-Mode-Info.h"
#include "X2ap-EUTRANCellIdentifier.h"
#include "X2ap-EUTRANTraceID.h"
#include "X2ap-EventType.h"
#include "X2ap-FDD-Info.h"
#include "X2ap-ForbiddenInterRATs.h"
#include "X2ap-ForbiddenLACs.h"
#include "X2ap-ForbiddenLAs.h"
#include "X2ap-ForbiddenLAs-Item.h"
#include "X2ap-ForbiddenTACs.h"
#include "X2ap-ForbiddenTAs.h"
#include "X2ap-ForbiddenTAs-Item.h"
#include "X2ap-Fourframes.h"
#include "X2ap-FreqBandIndicator.h"
#include "X2ap-GBR-QosInformation.h"
#include "X2ap-GlobalENB-ID.h"
#include "X2ap-GTP-TEI.h"
#include "X2ap-GTPtunnelEndpoint.h"
#include "X2ap-GU-Group-ID.h"
#include "X2ap-GUGroupIDList.h"
#include "X2ap-GUMMEI.h"
#include "X2ap-HandoverCancel.h"
#include "X2ap-HandoverReportType.h"
#include "X2ap-HandoverRequest.h"
#include "X2ap-HandoverReport.h"
#include "X2ap-HandoverRestrictionList.h"
#include "X2ap-HandoverPreparationFailure.h"
#include "X2ap-HandoverRequestAcknowledge.h"
#include "X2ap-HFN.h"
#include "X2ap-HWLoadIndicator.h"
#include "X2ap-IE-Extensions.h"
#include "X2ap-IE.h"
#include "X2ap-IntegrityProtectionAlgorithms.h"
#include "X2ap-InterfacesToTrace.h"
#include "X2ap-InvokeIndication.h"
#include "X2ap-Key-eNodeB-Star.h"
#include "X2ap-LAC.h"
#include "X2ap-LastVisitedCell-Item.h"
#include "X2ap-LastVisitedEUTRANCellInformation.h"
#include "X2ap-LastVisitedGERANCellInformation.h"
#include "X2ap-LastVisitedUTRANCellInformation.h"
#include "X2ap-LoadIndicator.h"
#include "X2ap-LoadInformation.h"
#include "X2ap-LocationReportingInformation.h"
#include "X2ap-ManagementBasedMDTallowed.h"
#include "X2ap-MBMS-Service-Area-Identity.h"
#include "X2ap-MBMS-Service-Area-Identity-List.h"
#include "X2ap-MBSFN-Subframe-Info.h"
#include "X2ap-MBSFN-Subframe-Infolist.h"
#include "X2ap-MDT-Activation.h"
#include "X2ap-MDT-Configuration.h"
#include "X2ap-Measurement-ID.h"
#include "X2ap-MeasurementsToActivate.h"
#include "X2ap-MeasurementThresholdA2.h"
#include "X2ap-MeasurementInitiationResult-Item.h"
#include "X2ap-MeasurementInitiationResult-List.h"
#include "X2ap-MeasurementFailureCause-Item.h"
#include "X2ap-MME-Code.h"
#include "X2ap-MME-Group-ID.h"
#include "X2ap-MobilityChangeAcknowledge.h"
#include "X2ap-MobilityChangeFailure.h"
#include "X2ap-MobilityChangeRequest.h"
#include "X2ap-MobilityParametersInformation.h"
#include "X2ap-MobilityParametersModificationRange.h"
#include "X2ap-MultibandInfoList.h"
#include "X2ap-Neighbour-Information.h"
#include "X2ap-NextHopChainingCount.h"
#include "X2ap-Number-of-Antennaports.h"
#include "X2ap-Oneframe.h"
#include "X2ap-Old-ECGIs.h"
#include "X2ap-PartialSuccessIndicator.h"
#include "X2ap-PCI.h"
#include "X2ap-PDCP-SN.h"
#include "X2AP-PDU.h"
#include "X2ap-PeriodicReportingMDT.h"
#include "X2ap-PLMN-Identity.h"
#include "X2ap-PRACH-Configuration.h"
#include "X2ap-Pre-emptionCapability.h"
#include "X2ap-Pre-emptionVulnerability.h"
#include "X2ap-Presence.h"
#include "X2ap-PriorityLevel.h"
#include "X2ap-PrivateIE-ID.h"
#include "X2ap-ProcedureCode.h"
#include "X2ap-ProtocolIE-ID.h"
#include "X2ap-QCI.h"
#include "X2ap-RadioframeAllocationOffset.h"
#include "X2ap-RadioframeAllocationPeriod.h"
#include "X2ap-RadioResourceStatus.h"
#include "X2ap-ReceiveStatusofULPDCPSDUs.h"
#include "X2ap-Registration-Request.h"
#include "X2ap-RelativeNarrowbandTxPower.h"
#include "X2ap-ReportAmountMDT.h"
#include "X2ap-ReportArea.h"
#include "X2ap-ReportCharacteristics.h"
#include "X2ap-ReportingTriggerMDT.h"
#include "X2ap-ReportIntervalMDT.h"
#include "X2ap-ReportingPeriodicity.h"
#include "X2ap-ResourceStatusFailure.h"
#include "X2ap-ResourceStatusResponse.h"
#include "X2ap-ResourceStatusUpdate.h"
#include "X2ap-RNTP-Threshold.h"
#include "X2ap-RRCConnReestabIndicator.h"
#include "X2ap-RRCConnSetupIndicator.h"
#include "X2ap-RRC-Context.h"
#include "X2ap-RLFIndication.h"
#include "X2ap-ResourceStatusRequest.h"
#include "X2ap-S1TNLLoadIndicator.h"
//nclude "X2ap-ServedCellInformation.h"
#include "X2ap-ServedCells.h"
#include "X2ap-ServedCellsToModify.h"
#include "X2ap-ServedCellsToActivate.h"
#include "X2ap-ShortMAC-I.h"
#include "X2ap-SpecialSubframe-Info.h"
#include "X2ap-SpecialSubframePatterns.h"
#include "X2ap-SRVCCOperationPossible.h"
#include "X2ap-SubframeAllocation.h"
#include "X2ap-SubframeAssignment.h"
#include "X2ap-SubscriberProfileIDforRFP.h"
#include "X2ap-SNStatusTransfer.h"
#include "X2ap-TABasedMDT.h"
#include "X2ap-TAC.h"
#include "X2ap-TAListforMDT.h"
#include "X2ap-TargetCellInUTRAN.h"
#include "X2ap-TargeteNBtoSource-eNBTransparentContainer.h"
#include "X2ap-TDD-Info.h"
#include "X2ap-ThresholdEventA2.h"
#include "X2ap-Threshold-RSRP.h"
#include "X2ap-Threshold-RSRQ.h"
#include "X2ap-TimeToWait.h"
#include "X2ap-Time-UE-StayedInCell-EnhancedGranularity.h"
#include "X2ap-Time-UE-StayedInCell.h"
#include "X2ap-E-RABs-ToBeSetup-Item.h"
#include "X2ap-TraceActivation.h"
#include "X2ap-TraceCollectionEntityIPAddress.h"
#include "X2ap-TraceDepth.h"
#include "X2ap-Transmission-Bandwidth.h"
#include "X2ap-TransportLayerAddress.h"
#include "X2ap-TriggeringMessage.h"
#include "X2ap-TypeOfError.h"
#include "X2ap-UEAggregateMaximumBitRate.h"
#include "X2ap-UE-ContextInformation.h"
#include "X2ap-UE-HistoryInformation.h"
#include "X2ap-UE-RLF-Report-Container.h"
#include "X2ap-UE-S1AP-ID.h"
#include "X2ap-UE-X2AP-ID.h"
#include "X2ap-UEContextRelease.h"
#include "X2ap-UESecurityCapabilities.h"
#include "X2ap-UL-GBR-PRB-usage.h"
#include "X2ap-UL-HighInterferenceIndication.h"
#include "X2ap-UL-HighInterferenceIndicationInfo.h"
#include "X2ap-UL-HighInterferenceIndicationInfo-Item.h"
#include "X2ap-UL-InterferenceOverloadIndication.h"
#include "X2ap-UL-InterferenceOverloadIndication-Item.h"
#include "X2ap-UL-non-GBR-PRB-usage.h"
#include "X2ap-UL-Total-PRB-usage.h"
#include "X2ap-UsableABSInformationFDD.h"
#include "X2ap-UsableABSInformation.h"
#include "X2ap-UsableABSInformationTDD.h"
#include "X2ap-ResetResponse.h"
#include "X2ap-ResetRequest.h"
#include "X2SetupFailure.h"
#include "X2SetupRequest.h"
#include "X2SetupResponse.h"
#include "X2ap-Old-ECGIs.h"
#include "X2ap-Criticality.h"
#include "X2ap-ProcedureCode.h"
#include "X2AP_ProtocolIE-Field.h"
#include "X2AP_X2AP-PDU.h"
#include "X2AP_InitiatingMessage.h"
#include "X2AP_SuccessfulOutcome.h"
#include "X2AP_UnsuccessfulOutcome.h"
#include "X2AP_ProtocolIE-Field.h"
#include "X2AP_ProtocolIE-FieldPair.h"
#include "X2AP_ProtocolIE-ContainerPair.h"
#include "X2AP_ProtocolExtensionField.h"
#include "X2AP_ProtocolExtensionContainer.h"
#include "X2AP_asn_constant.h"
#ifndef X2AP_COMMON_H_
#define X2AP_COMMON_H_
@@ -301,6 +71,21 @@ extern int asn1_xer_print;
# define X2AP_DEBUG(x, args...) do { fprintf(stdout, "[X2AP][D]"x, ##args); } while(0)
#endif
#define X2AP_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID, mandatory) \
do {\
IE_TYPE **ptr; \
ie = NULL; \
for (ptr = container->protocolIEs.list.array; \
ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \
ptr++) { \
if((*ptr)->id == IE_ID) { \
ie = *ptr; \
break; \
} \
} \
if (mandatory) DevAssert(ie != NULL); \
} while(0)
//Forward declaration
struct x2ap_message_s;
@@ -323,8 +108,8 @@ typedef int (*x2ap_message_decoded_callback)(
ssize_t x2ap_generate_successfull_outcome(
uint8_t **buffer,
uint32_t *length,
X2ap_ProcedureCode_t procedureCode,
X2ap_Criticality_t criticality,
X2AP_ProcedureCode_t procedureCode,
X2AP_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr);
@@ -340,8 +125,8 @@ ssize_t x2ap_generate_successfull_outcome(
ssize_t x2ap_generate_initiating_message(
uint8_t **buffer,
uint32_t *length,
X2ap_ProcedureCode_t procedureCode,
X2ap_Criticality_t criticality,
X2AP_ProcedureCode_t procedureCode,
X2AP_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr);
@@ -357,28 +142,15 @@ ssize_t x2ap_generate_initiating_message(
ssize_t x2ap_generate_unsuccessfull_outcome(
uint8_t **buffer,
uint32_t *length,
X2ap_ProcedureCode_t procedureCode,
X2ap_Criticality_t criticality,
X2AP_ProcedureCode_t procedureCode,
X2AP_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr);
/** \brief Generate a new IE
\param id Protocol ie id of the IE
\param criticality Criticality of the IE
\param type ASN1 type descriptor of the IE value
\param sptr Structure to be encoded in the value field
@returns a pointer to the newly created IE structure or NULL in case of failure
**/
X2ap_IE_t *x2ap_new_ie(
X2ap_ProtocolIE_ID_t id,
X2ap_Criticality_t criticality,
asn_TYPE_descriptor_t *type,
void *sptr);
/** \brief Handle criticality
\param criticality Criticality of the IE
@returns void
**/
void x2ap_handle_criticality(X2ap_Criticality_t criticality);
void x2ap_handle_criticality(X2AP_Criticality_t criticality);
#endif /* X2AP_COMMON_H_ */
+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)
+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_
@@ -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
@@ -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
+3 -141
View File
@@ -22,7 +22,7 @@
/*! \file s1ap_common.c
* \brief s1ap procedures for both eNB and MME
* \author Sebastien ROUX and Navid Nikaein
* \email navid.nikaein@eurecom.fr
* \email navid.nikaein@eurecom.fr
* \date 2012-2015
* \version 0.1
*/
@@ -30,7 +30,7 @@
#include <stdint.h>
#include "s1ap_common.h"
#include "S1AP-PDU.h"
#include "S1AP_S1AP-PDU.h"
int asn_debug = 0;
int asn1_xer_print = 0;
@@ -53,144 +53,6 @@ inline void ASN_DEBUG(const char *fmt, ...)
}
#endif
ssize_t s1ap_generate_initiating_message(
uint8_t **buffer,
uint32_t *length,
e_S1ap_ProcedureCode procedureCode,
S1ap_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr)
void s1ap_handle_criticality(S1AP_Criticality_t criticality)
{
S1AP_PDU_t pdu;
ssize_t encoded;
memset(&pdu, 0, sizeof(S1AP_PDU_t));
pdu.present = S1AP_PDU_PR_initiatingMessage;
pdu.choice.initiatingMessage.procedureCode = procedureCode;
pdu.choice.initiatingMessage.criticality = criticality;
ANY_fromType_aper(&pdu.choice.initiatingMessage.value, td, sptr);
if (asn1_xer_print) {
xer_fprint(stdout, &asn_DEF_S1AP_PDU, (void *)&pdu);
}
/* We can safely free list of IE from sptr */
ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr);
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_S1AP_PDU, 0, &pdu,
(void **)buffer)) < 0) {
return -1;
}
*length = encoded;
return encoded;
}
ssize_t s1ap_generate_successfull_outcome(
uint8_t **buffer,
uint32_t *length,
e_S1ap_ProcedureCode procedureCode,
S1ap_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr)
{
S1AP_PDU_t pdu;
ssize_t encoded;
memset(&pdu, 0, sizeof(S1AP_PDU_t));
pdu.present = S1AP_PDU_PR_successfulOutcome;
pdu.choice.successfulOutcome.procedureCode = procedureCode;
pdu.choice.successfulOutcome.criticality = criticality;
ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr);
if (asn1_xer_print) {
xer_fprint(stdout, &asn_DEF_S1AP_PDU, (void *)&pdu);
}
/* We can safely free list of IE from sptr */
ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr);
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_S1AP_PDU, 0, &pdu,
(void **)buffer)) < 0) {
return -1;
}
*length = encoded;
return encoded;
}
ssize_t s1ap_generate_unsuccessfull_outcome(
uint8_t **buffer,
uint32_t *length,
e_S1ap_ProcedureCode procedureCode,
S1ap_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr)
{
S1AP_PDU_t pdu;
ssize_t encoded;
memset(&pdu, 0, sizeof(S1AP_PDU_t));
pdu.present = S1AP_PDU_PR_unsuccessfulOutcome;
pdu.choice.successfulOutcome.procedureCode = procedureCode;
pdu.choice.successfulOutcome.criticality = criticality;
ANY_fromType_aper(&pdu.choice.successfulOutcome.value, td, sptr);
if (asn1_xer_print) {
xer_fprint(stdout, &asn_DEF_S1AP_PDU, (void *)&pdu);
}
/* We can safely free list of IE from sptr */
ASN_STRUCT_FREE_CONTENTS_ONLY(*td, sptr);
if ((encoded = aper_encode_to_new_buffer(&asn_DEF_S1AP_PDU, 0, &pdu,
(void **)buffer)) < 0) {
return -1;
}
*length = encoded;
return encoded;
}
S1ap_IE_t *s1ap_new_ie(
S1ap_ProtocolIE_ID_t id,
S1ap_Criticality_t criticality,
asn_TYPE_descriptor_t *type,
void *sptr)
{
S1ap_IE_t *buff;
if ((buff = malloc(sizeof(S1ap_IE_t))) == NULL) {
// Possible error on malloc
return NULL;
}
memset((void *)buff, 0, sizeof(S1ap_IE_t));
buff->id = id;
buff->criticality = criticality;
if (ANY_fromType_aper(&buff->value, type, sptr) < 0) {
fprintf(stderr, "Encoding of %s failed\n", type->name);
free(buff);
return NULL;
}
if (asn1_xer_print)
if (xer_fprint(stdout, &asn_DEF_S1ap_IE, buff) < 0) {
free(buff);
return NULL;
}
return buff;
}
void s1ap_handle_criticality(S1ap_Criticality_t criticality)
{
}
+31 -406
View File
@@ -39,343 +39,19 @@ extern int asn_debug;
inline void ASN_DEBUG(const char *fmt, ...);
#endif
#include "S1ap-Criticality.h"
#include "S1ap-Presence.h"
#include "S1ap-PrivateIE-ID.h"
#include "S1ap-ProcedureCode.h"
#include "S1ap-ProtocolExtensionID.h"
#include "S1ap-ProtocolIE-ID.h"
#include "S1ap-TriggeringMessage.h"
#include "S1ap-AllocationAndRetentionPriority.h"
#include "S1ap-Bearers-SubjectToStatusTransfer-List.h"
#include "S1ap-Bearers-SubjectToStatusTransfer-Item.h"
#include "S1ap-BitRate.h"
#include "S1ap-BPLMNs.h"
#include "S1ap-BroadcastCompletedAreaList.h"
#include "S1ap-Cause.h"
#include "S1ap-CauseMisc.h"
#include "S1ap-CauseProtocol.h"
#include "S1ap-CauseRadioNetwork.h"
#include "S1ap-CauseTransport.h"
#include "S1ap-CauseNas.h"
#include "S1ap-CellIdentity.h"
#include "S1ap-CellID-Broadcast.h"
#include "S1ap-CellID-Broadcast-Item.h"
#include "S1ap-Cdma2000PDU.h"
#include "S1ap-Cdma2000RATType.h"
#include "S1ap-Cdma2000SectorID.h"
#include "S1ap-Cdma2000HOStatus.h"
#include "S1ap-Cdma2000HORequiredIndication.h"
#include "S1ap-Cdma2000OneXSRVCCInfo.h"
#include "S1ap-Cdma2000OneXMEID.h"
#include "S1ap-Cdma2000OneXMSI.h"
#include "S1ap-Cdma2000OneXPilot.h"
#include "S1ap-Cdma2000OneXRAND.h"
#include "S1ap-Cell-Size.h"
#include "S1ap-CellType.h"
#include "S1ap-CGI.h"
#include "S1ap-CI.h"
#include "S1ap-CNDomain.h"
#include "S1ap-CSFallbackIndicator.h"
#include "S1ap-CSG-Id.h"
#include "S1ap-CSG-IdList.h"
#include "S1ap-CSG-IdList-Item.h"
#include "S1ap-COUNTvalue.h"
#include "S1ap-DataCodingScheme.h"
#include "S1ap-DL-Forwarding.h"
#include "S1ap-Direct-Forwarding-Path-Availability.h"
#include "S1ap-ECGIList.h"
#include "S1ap-EmergencyAreaIDList.h"
#include "S1ap-EmergencyAreaID.h"
#include "S1ap-EmergencyAreaID-Broadcast.h"
#include "S1ap-EmergencyAreaID-Broadcast-Item.h"
#include "S1ap-CompletedCellinEAI.h"
#include "S1ap-CompletedCellinEAI-Item.h"
#include "S1ap-ENB-ID.h"
#include "S1ap-GERAN-Cell-ID.h"
#include "S1ap-Global-ENB-ID.h"
#include "S1ap-ENB-StatusTransfer-TransparentContainer.h"
#include "S1ap-ENBname.h"
#include "S1ap-ENBX2TLAs.h"
#include "S1ap-EncryptionAlgorithms.h"
#include "S1ap-EPLMNs.h"
#include "S1ap-EventType.h"
#include "S1ap-E-RAB-ID.h"
#include "S1ap-E-RABInformationList.h"
#include "S1ap-E-RABInformationListItem.h"
#include "S1ap-E-RABList.h"
#include "S1ap-E-RABItem.h"
#include "S1ap-E-RABLevelQoSParameters.h"
#include "S1ap-EUTRAN-CGI.h"
#include "S1ap-ExtendedRNC-ID.h"
#include "S1ap-ForbiddenInterRATs.h"
#include "S1ap-ForbiddenTAs.h"
#include "S1ap-ForbiddenTAs-Item.h"
#include "S1ap-ForbiddenTACs.h"
#include "S1ap-ForbiddenLAs.h"
#include "S1ap-ForbiddenLAs-Item.h"
#include "S1ap-ForbiddenLACs.h"
#include "S1ap-GBR-QosInformation.h"
#include "S1ap-GTP-TEID.h"
#include "S1ap-GUMMEI.h"
#include "S1ap-HandoverRestrictionList.h"
#include "S1ap-HandoverType.h"
#include "S1ap-HFN.h"
#include "S1ap-IMSI.h"
#include "S1ap-IntegrityProtectionAlgorithms.h"
#include "S1ap-InterfacesToTrace.h"
#include "S1ap-LAC.h"
#include "S1ap-LAI.h"
#include "S1ap-LastVisitedCell-Item.h"
#include "S1ap-LastVisitedEUTRANCellInformation.h"
#include "S1ap-LastVisitedUTRANCellInformation.h"
#include "S1ap-LastVisitedGERANCellInformation.h"
#include "S1ap-L3-Information.h"
#include "S1ap-MessageIdentifier.h"
#include "S1ap-MMEname.h"
#include "S1ap-MME-Group-ID.h"
#include "S1ap-MME-Code.h"
#include "S1ap-M-TMSI.h"
#include "S1ap-MSClassmark2.h"
#include "S1ap-MSClassmark3.h"
#include "S1ap-NAS-PDU.h"
#include "S1ap-NASSecurityParametersfromE-UTRAN.h"
#include "S1ap-NASSecurityParameterstoE-UTRAN.h"
#include "S1ap-NumberofBroadcastRequest.h"
#include "S1ap-NumberOfBroadcasts.h"
#include "S1ap-OldBSS-ToNewBSS-Information.h"
#include "S1ap-OverloadAction.h"
#include "S1ap-OverloadResponse.h"
#include "S1ap-PagingDRX.h"
#include "S1ap-PDCP-SN.h"
#include "S1ap-PLMNidentity.h"
#include "S1ap-Pre-emptionCapability.h"
#include "S1ap-Pre-emptionVulnerability.h"
#include "S1ap-PriorityLevel.h"
#include "S1ap-QCI.h"
#include "S1ap-ReceiveStatusofULPDCPSDUs.h"
#include "S1ap-RelativeMMECapacity.h"
#include "S1ap-RAC.h"
#include "S1ap-RequestType.h"
#include "S1ap-RIMTransfer.h"
#include "S1ap-RIMInformation.h"
#include "S1ap-RIMRoutingAddress.h"
#include "S1ap-ReportArea.h"
#include "S1ap-RepetitionPeriod.h"
#include "S1ap-RNC-ID.h"
#include "S1ap-RRC-Container.h"
#include "S1ap-RRC-Establishment-Cause.h"
#include "S1ap-SecurityKey.h"
#include "S1ap-SecurityContext.h"
#include "S1ap-SerialNumber.h"
#include "S1ap-SONInformation.h"
#include "S1ap-SONInformationRequest.h"
#include "S1ap-SONInformationReply.h"
#include "S1ap-SONConfigurationTransfer.h"
#include "S1ap-Source-ToTarget-TransparentContainer.h"
#include "S1ap-SourceBSS-ToTargetBSS-TransparentContainer.h"
#include "S1ap-SourceeNB-ID.h"
#include "S1ap-SRVCCOperationPossible.h"
#include "S1ap-SRVCCHOIndication.h"
#include "S1ap-SourceeNB-ToTargeteNB-TransparentContainer.h"
#include "S1ap-SourceRNC-ToTargetRNC-TransparentContainer.h"
#include "S1ap-ServedGUMMEIs.h"
#include "S1ap-ServedGUMMEIsItem.h"
#include "S1ap-ServedGroupIDs.h"
#include "S1ap-ServedMMECs.h"
#include "S1ap-ServedPLMNs.h"
#include "S1ap-SubscriberProfileIDforRFP.h"
#include "S1ap-SupportedTAs.h"
#include "S1ap-SupportedTAs-Item.h"
#include "S1ap-S-TMSI.h"
#include "S1ap-TAC.h"
#include "S1ap-TAIItem.h"
#include "S1ap-TAIList.h"
#include "S1ap-TAIListforWarning.h"
#include "S1ap-TAI.h"
#include "S1ap-TAI-Broadcast.h"
#include "S1ap-TAI-Broadcast-Item.h"
#include "S1ap-CompletedCellinTAI.h"
#include "S1ap-CompletedCellinTAI-Item.h"
#include "S1ap-TargetID.h"
#include "S1ap-TargeteNB-ID.h"
#include "S1ap-TargetRNC-ID.h"
#include "S1ap-TargeteNB-ToSourceeNB-TransparentContainer.h"
#include "S1ap-Target-ToSource-TransparentContainer.h"
#include "S1ap-TargetRNC-ToSourceRNC-TransparentContainer.h"
#include "S1ap-TargetBSS-ToSourceBSS-TransparentContainer.h"
#include "S1ap-TimeToWait.h"
#include "S1ap-Time-UE-StayedInCell.h"
#include "S1ap-TransportLayerAddress.h"
#include "S1ap-TraceActivation.h"
#include "S1ap-TraceDepth.h"
#include "S1ap-E-UTRAN-Trace-ID.h"
#include "S1ap-TypeOfError.h"
#include "S1ap-UEAggregateMaximumBitrate.h"
#include "S1ap-UE-associatedLogicalS1-ConnectionItem.h"
#include "S1ap-UEIdentityIndexValue.h"
#include "S1ap-UE-HistoryInformation.h"
#include "S1ap-UEPagingID.h"
#include "S1ap-UERadioCapability.h"
#include "S1ap-UESecurityCapabilities.h"
#include "S1ap-WarningAreaList.h"
#include "S1ap-WarningType.h"
#include "S1ap-WarningSecurityInfo.h"
#include "S1ap-WarningMessageContents.h"
#include "S1ap-X2TNLConfigurationInfo.h"
#include "S1ap-CriticalityDiagnostics.h"
#include "S1ap-CriticalityDiagnostics-IE-List.h"
#include "S1ap-CriticalityDiagnostics-IE-Item.h"
#include "S1ap-ResetType.h"
#include "S1ap-Inter-SystemInformationTransferType.h"
#include "S1ap-UE-S1AP-IDs.h"
#include "S1ap-UE-S1AP-ID-pair.h"
#include "S1ap-MME-UE-S1AP-ID.h"
#include "S1ap-ENB-UE-S1AP-ID.h"
#include "S1ap-TBCD-STRING.h"
#include "S1ap-InitiatingMessage.h"
#include "S1ap-SuccessfulOutcome.h"
#include "S1ap-UnsuccessfulOutcome.h"
#include "S1ap-HandoverRequired.h"
#include "S1ap-HandoverCommand.h"
#include "S1ap-HandoverNotify.h"
#include "S1ap-HandoverPreparationFailure.h"
#include "S1ap-HandoverRequest.h"
#include "S1ap-HandoverRequestAcknowledge.h"
#include "S1ap-HandoverFailure.h"
#include "S1ap-PathSwitchRequest.h"
#include "S1ap-PathSwitchRequestAcknowledge.h"
#include "S1ap-PathSwitchRequestFailure.h"
#include "S1ap-E-RABSetupRequest.h"
#include "S1ap-E-RABSetupResponse.h"
#include "S1ap-E-RABModifyRequest.h"
#include "S1ap-E-RABModifyResponse.h"
#include "S1ap-E-RABReleaseIndication.h"
#include "S1ap-E-RABReleaseCommand.h"
#include "S1ap-E-RABReleaseResponse.h"
#include "S1ap-InitialContextSetupRequest.h"
#include "S1ap-InitialContextSetupResponse.h"
#include "S1ap-InitialContextSetupFailure.h"
#include "S1ap-UEContextReleaseRequest.h"
#include "S1ap-Paging.h"
#include "S1ap-DownlinkNASTransport.h"
#include "S1ap-InitialUEMessage.h"
#include "S1ap-UplinkNASTransport.h"
#include "S1ap-NASNonDeliveryIndication.h"
#include "S1ap-HandoverCancel.h"
#include "S1ap-HandoverCancelAcknowledge.h"
#include "S1ap-Reset.h"
#include "S1ap-ResetAcknowledge.h"
#include "S1ap-S1SetupResponse.h"
#include "S1ap-S1SetupRequest.h"
#include "S1ap-S1SetupFailure.h"
#include "S1ap-ErrorIndication.h"
#include "S1ap-ENBConfigurationUpdate.h"
#include "S1ap-ENBConfigurationUpdateAcknowledge.h"
#include "S1ap-ENBConfigurationUpdateFailure.h"
#include "S1ap-MMEConfigurationUpdate.h"
#include "S1ap-MMEConfigurationUpdateAcknowledge.h"
#include "S1ap-MMEConfigurationUpdateFailure.h"
#include "S1ap-DownlinkS1cdma2000tunneling.h"
#include "S1ap-UplinkS1cdma2000tunneling.h"
#include "S1ap-UEContextModificationRequest.h"
#include "S1ap-UEContextModificationResponse.h"
#include "S1ap-UEContextModificationFailure.h"
#include "S1ap-UECapabilityInfoIndication.h"
#include "S1ap-UEContextReleaseCommand.h"
#include "S1ap-UEContextReleaseComplete.h"
#include "S1ap-ENBStatusTransfer.h"
#include "S1ap-MMEStatusTransfer.h"
#include "S1ap-DeactivateTrace.h"
#include "S1ap-TraceStart.h"
#include "S1ap-TraceFailureIndication.h"
#include "S1ap-CellTrafficTrace.h"
#include "S1ap-LocationReportingControl.h"
#include "S1ap-LocationReportingFailureIndication.h"
#include "S1ap-LocationReport.h"
#include "S1ap-OverloadStart.h"
#include "S1ap-OverloadStop.h"
#include "S1ap-WriteReplaceWarningRequest.h"
#include "S1ap-WriteReplaceWarningResponse.h"
#include "S1ap-ENBDirectInformationTransfer.h"
#include "S1ap-MMEDirectInformationTransfer.h"
#include "S1ap-ENBConfigurationTransfer.h"
#include "S1ap-MMEConfigurationTransfer.h"
#include "S1ap-PrivateMessage.h"
#include "S1ap-E-RABReleaseItemBearerRelComp.h"
#include "S1ap-E-RABToBeSwitchedDLList.h"
#include "S1ap-E-RABToBeSwitchedDLItem.h"
#include "S1ap-E-RABToBeSwitchedULList.h"
#include "S1ap-E-RABToBeSwitchedULItem.h"
#include "S1ap-E-RABToBeSetupListBearerSUReq.h"
#include "S1ap-E-RABToBeSetupItemBearerSUReq.h"
#include "S1ap-E-RABDataForwardingList.h"
#include "S1ap-E-RABDataForwardingItem.h"
#include "S1ap-E-RABToBeSetupListHOReq.h"
#include "S1ap-E-RABToBeSetupItemHOReq.h"
#include "S1ap-E-RABAdmittedList.h"
#include "S1ap-E-RABAdmittedItem.h"
#include "S1ap-E-RABFailedToSetupListHOReqAck.h"
#include "S1ap-E-RABToBeSetupItemCtxtSUReq.h"
#include "S1ap-E-RABToBeSetupListCtxtSUReq.h"
#include "S1ap-E-RABSetupItemBearerSURes.h"
#include "S1ap-E-RABSetupListBearerSURes.h"
#include "S1ap-E-RABSetupItemCtxtSURes.h"
#include "S1ap-E-RABSetupListCtxtSURes.h"
#include "S1ap-E-RABReleaseListBearerRelComp.h"
#include "S1ap-E-RABModifyItemBearerModRes.h"
#include "S1ap-E-RABModifyListBearerModRes.h"
#include "S1ap-E-RABFailedToSetupItemHOReqAck.h"
#include "S1ap-E-RABFailedToSetupListHOReqAck.h"
#include "S1ap-E-RABToBeModifiedItemBearerModReq.h"
#include "S1ap-E-RABToBeModifiedListBearerModReq.h"
#include "S1ap-UE-associatedLogicalS1-ConnectionListResAck.h"
#include "S1ap-IE.h"
#include "S1AP-PDU.h"
#if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0))
# include "S1ap-BroadcastCancelledAreaList.h"
# include "S1ap-CancelledCellinEAI.h"
# include "S1ap-CancelledCellinEAI-Item.h"
# include "S1ap-CancelledCellinTAI.h"
# include "S1ap-CancelledCellinTAI-Item.h"
# include "S1ap-CellAccessMode.h"
# include "S1ap-CellID-Cancelled.h"
# include "S1ap-CellID-Cancelled-Item.h"
# include "S1ap-ConcurrentWarningMessageIndicator.h"
# include "S1ap-CSGMembershipStatus.h"
# include "S1ap-Data-Forwarding-Not-Possible.h"
# include "S1ap-EmergencyAreaID-Cancelled.h"
# include "S1ap-EmergencyAreaID-Cancelled-Item.h"
# include "S1ap-E-RABList.h"
# include "S1ap-EUTRANRoundTripDelayEstimationInfo.h"
# include "S1ap-ExtendedRepetitionPeriod.h"
# include "S1ap-LPPa-PDU.h"
# include "S1ap-PS-ServiceNotAvailable.h"
# include "S1ap-Routing-ID.h"
# include "S1ap-StratumLevel.h"
# include "S1ap-SynchronizationStatus.h"
# include "S1ap-TimeSynchronizationInfo.h"
# include "S1ap-TAI-Cancelled.h"
# include "S1ap-TAI-Cancelled-Item.h"
# include "S1ap-KillRequest.h"
# include "S1ap-KillResponse.h"
# include "S1ap-DownlinkUEAssociatedLPPaTransport.h"
# include "S1ap-UplinkUEAssociatedLPPaTransport.h"
# include "S1ap-DownlinkNonUEAssociatedLPPaTransport.h"
# include "S1ap-UplinkNonUEAssociatedLPPaTransport.h"
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */
#if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0))
# include "S1ap-PagingPriority.h"
# include "S1ap-RelayNode-Indicator.h"
# include "S1ap-GWContextReleaseIndication.h"
# include "S1ap-MMERelaySupportIndicator.h"
# include "S1ap-ManagementBasedMDTAllowed.h"
# include "S1ap-PrivacyIndicator.h"
# include "S1ap-TrafficLoadReductionIndication.h"
# include "S1ap-GUMMEIList.h"
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(10, 0, 0)) */
#include "S1AP_ProtocolIE-Field.h"
#include "S1AP_S1AP-PDU.h"
#include "S1AP_InitiatingMessage.h"
#include "S1AP_SuccessfulOutcome.h"
#include "S1AP_UnsuccessfulOutcome.h"
#include "S1AP_ProtocolIE-Field.h"
#include "S1AP_ProtocolIE-FieldPair.h"
#include "S1AP_ProtocolIE-ContainerPair.h"
#include "S1AP_ProtocolExtensionField.h"
#include "S1AP_ProtocolExtensionContainer.h"
#include "S1AP_asn_constant.h"
#include "S1AP_SupportedTAs-Item.h"
#include "S1AP_ServedGUMMEIsItem.h"
/* Checking version of ASN1C compiler */
#if (ASN1C_ENVIRONMENT_VERSION < ASN1C_MINIMUM_VERSION)
@@ -411,84 +87,33 @@ extern int asn1_xer_print;
# define S1AP_DEBUG(x, args...) do { fprintf(stdout, "[S1AP][D]"x, ##args); } while(0)
#endif
//Forward declaration
struct s1ap_message_s;
#define S1AP_FIND_PROTOCOLIE_BY_ID(IE_TYPE, ie, container, IE_ID, mandatory) \
do {\
IE_TYPE **ptr; \
ie = NULL; \
for (ptr = container->protocolIEs.list.array; \
ptr < &container->protocolIEs.list.array[container->protocolIEs.list.count]; \
ptr++) { \
if((*ptr)->id == IE_ID) { \
ie = *ptr; \
break; \
} \
} \
if (mandatory) DevAssert(ie != NULL); \
} while(0)
/** \brief Function callback prototype.
**/
typedef int (*s1ap_message_decoded_callback)(
uint32_t assoc_id,
uint32_t stream,
struct s1ap_message_s *message_p
uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu
);
/** \brief Encode a successfull outcome message
\param buffer pointer to buffer in which data will be encoded
\param length pointer to the length of buffer
\param procedureCode Procedure code for the message
\param criticality Criticality of the message
\param td ASN1C type descriptor of the sptr
\param sptr Deferenced pointer to the structure to encode
@returns size in bytes encded on success or 0 on failure
**/
ssize_t s1ap_generate_successfull_outcome(
uint8_t **buffer,
uint32_t *length,
e_S1ap_ProcedureCode procedureCode,
S1ap_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr);
/** \brief Encode an initiating message
\param buffer pointer to buffer in which data will be encoded
\param length pointer to the length of buffer
\param procedureCode Procedure code for the message
\param criticality Criticality of the message
\param td ASN1C type descriptor of the sptr
\param sptr Deferenced pointer to the structure to encode
@returns size in bytes encded on success or 0 on failure
**/
ssize_t s1ap_generate_initiating_message(
uint8_t **buffer,
uint32_t *length,
e_S1ap_ProcedureCode procedureCode,
S1ap_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr);
/** \brief Encode an unsuccessfull outcome message
\param buffer pointer to buffer in which data will be encoded
\param length pointer to the length of buffer
\param procedureCode Procedure code for the message
\param criticality Criticality of the message
\param td ASN1C type descriptor of the sptr
\param sptr Deferenced pointer to the structure to encode
@returns size in bytes encded on success or 0 on failure
**/
ssize_t s1ap_generate_unsuccessfull_outcome(
uint8_t **buffer,
uint32_t *length,
e_S1ap_ProcedureCode procedureCode,
S1ap_Criticality_t criticality,
asn_TYPE_descriptor_t *td,
void *sptr);
/** \brief Generate a new IE
\param id Protocol ie id of the IE
\param criticality Criticality of the IE
\param type ASN1 type descriptor of the IE value
\param sptr Structure to be encoded in the value field
@returns a pointer to the newly created IE structure or NULL in case of failure
**/
S1ap_IE_t *s1ap_new_ie(S1ap_ProtocolIE_ID_t id,
S1ap_Criticality_t criticality,
asn_TYPE_descriptor_t *type,
void *sptr);
/** \brief Handle criticality
\param criticality Criticality of the IE
@returns void
**/
void s1ap_handle_criticality(S1ap_Criticality_t criticality);
void s1ap_handle_criticality(S1AP_Criticality_t criticality);
#endif /* S1AP_COMMON_H_ */
+118 -65
View File
@@ -20,8 +20,8 @@
*/
/*! \file s1ap_eNB.c
* \brief S1AP eNB task
* \author S. Roux and Navid Nikaein
* \brief S1AP eNB task
* \author S. Roux and Navid Nikaein
* \date 2010 - 2015
* \email: navid.nikaein@eurecom.fr
* \version 1.0
@@ -42,7 +42,6 @@
#include "s1ap_eNB_default_values.h"
#include "s1ap_common.h"
#include "s1ap_ies_defs.h"
#include "s1ap_eNB_defs.h"
#include "s1ap_eNB.h"
@@ -104,7 +103,7 @@ 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);
@@ -125,25 +124,25 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p,
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.
*/
@@ -156,25 +155,23 @@ static void s1ap_eNB_register_mme(s1ap_eNB_instance_t *instance_p,
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);
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;
s1ap_mme_data_p->assoc_id = -1;
s1ap_mme_data_p->s1ap_eNB_instance = instance_p;
*/
*/
} else {
S1AP_WARN("[eNB %d] MME already registered but not in the waiting state, 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);
instance_p->instance,
mme->state, mme->cnx_id,
instance_p->s1ap_mme_nb, instance_p->s1ap_mme_pending_nb);
}
itti_send_msg_to_task(TASK_SCTP, instance_p->instance, message_p);
}
@@ -188,9 +185,8 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
/* Look if the provided instance already exists */
new_instance = s1ap_eNB_get_instance(instance);
if (new_instance != NULL) {
if (new_instance != NULL) {
/* Checks if it is a retry on the same eNB */
DevCheck(new_instance->eNB_id == s1ap_register_eNB->eNB_id, new_instance->eNB_id, s1ap_register_eNB->eNB_id, 0);
DevCheck(new_instance->cell_type == s1ap_register_eNB->cell_type, new_instance->cell_type, s1ap_register_eNB->cell_type, 0);
@@ -221,9 +217,9 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
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",
s1ap_register_eNB->eNB_id);
instance,
s1ap_register_eNB->cell_type == CELL_MACRO_ENB ? "macro" : "home",
s1ap_register_eNB->eNB_id);
}
DevCheck(s1ap_register_eNB->nb_mme <= S1AP_MAX_NB_MME_IP_ADDRESS,
@@ -232,7 +228,7 @@ void s1ap_eNB_handle_register_eNB(instance_t instance, s1ap_register_enb_req_t *
/* Trying to connect to provided list of MME ip address */
for (index = 0; index < s1ap_register_eNB->nb_mme; index++) {
s1ap_eNB_register_mme(new_instance,
&s1ap_register_eNB->mme_ip_address[index],
&s1ap_register_eNB->mme_ip_address[index],
&s1ap_register_eNB->enb_ip_address,
s1ap_register_eNB->sctp_in_streams,
s1ap_register_eNB->sctp_out_streams);
@@ -425,12 +421,11 @@ void *s1ap_eNB_task(void *arg)
static int s1ap_eNB_generate_s1_setup_request(
s1ap_eNB_instance_t *instance_p, s1ap_eNB_mme_data_t *s1ap_mme_data_p)
{
s1ap_message message;
S1ap_S1SetupRequestIEs_t *s1SetupRequest_p;
S1ap_PLMNidentity_t plmnIdentity;
S1ap_SupportedTAs_Item_t ta;
S1AP_S1AP_PDU_t pdu;
S1AP_S1SetupRequest_t *out;
S1AP_S1SetupRequestIEs_t *ie;
S1AP_SupportedTAs_Item_t *ta;
S1AP_PLMNidentity_t *plmn;
uint8_t *buffer;
uint32_t len;
int ret = 0;
@@ -438,43 +433,101 @@ static int s1ap_eNB_generate_s1_setup_request(
DevAssert(instance_p != NULL);
DevAssert(s1ap_mme_data_p != NULL);
memset(&message, 0, sizeof(s1ap_message));
message.direction = S1AP_PDU_PR_initiatingMessage;
message.procedureCode = S1ap_ProcedureCode_id_S1Setup;
message.criticality = S1ap_Criticality_reject;
s1SetupRequest_p = &message.msg.s1ap_S1SetupRequestIEs;
memset((void *)&plmnIdentity, 0, sizeof(S1ap_PLMNidentity_t));
memset((void *)&ta, 0, sizeof(S1ap_SupportedTAs_Item_t));
s1ap_mme_data_p->state = S1AP_ENB_STATE_WAITING;
s1SetupRequest_p->global_ENB_ID.eNB_ID.present = S1ap_ENB_ID_PR_macroENB_ID;
MACRO_ENB_ID_TO_BIT_STRING(instance_p->eNB_id,
&s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.macroENB_ID);
/* Prepare the S1AP message to encode */
memset(&pdu, 0, sizeof(pdu));
pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage;
pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_S1Setup;
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;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_Global_ENB_ID;
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length,
&s1SetupRequest_p->global_ENB_ID.pLMNidentity);
&ie->value.choice.Global_ENB_ID.pLMNidentity);
ie->value.choice.Global_ENB_ID.eNB_ID.present = S1AP_ENB_ID_PR_macroENB_ID;
MACRO_ENB_ID_TO_BIT_STRING(instance_p->eNB_id,
&ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID);
S1AP_INFO("%d -> %02x%02x%02x\n", instance_p->eNB_id,
ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[0],
ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[1],
ie->value.choice.Global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[2]);
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
S1AP_INFO("%d -> %02x%02x%02x\n", instance_p->eNB_id, s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[0], s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[1],
s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.macroENB_ID.buf[2]);
INT16_TO_OCTET_STRING(instance_p->tac, &ta.tAC);
MCC_MNC_TO_TBCD(instance_p->mcc, instance_p->mnc, instance_p->mnc_digit_length, &plmnIdentity);
ASN_SEQUENCE_ADD(&ta.broadcastPLMNs.list, &plmnIdentity);
ASN_SEQUENCE_ADD(&s1SetupRequest_p->supportedTAs.list, &ta);
s1SetupRequest_p->defaultPagingDRX = instance_p->default_drx;
if (instance_p->eNB_name != NULL) {
s1SetupRequest_p->presenceMask |= S1AP_S1SETUPREQUESTIES_ENBNAME_PRESENT;
OCTET_STRING_fromBuf(&s1SetupRequest_p->eNBname, instance_p->eNB_name,
/* optional */
if (instance_p->eNB_name) {
ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_eNBname;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_ENBname;
OCTET_STRING_fromBuf(&ie->value.choice.ENBname, instance_p->eNB_name,
strlen(instance_p->eNB_name));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
if (s1ap_eNB_encode_pdu(&message, &buffer, &len) < 0) {
/* 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);
}
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;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_PagingDRX;
ie->value.choice.PagingDRX = instance_p->default_drx;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
/* optional */
if (0) {
ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_CSG_IdList;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_CSG_IdList;
// ie->value.choice.CSG_IdList = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
/* 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->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_UE_RetentionInformation;
// ie->value.choice.UE_RetentionInformation = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
/* optional */
if (0) {
ie = (S1AP_S1SetupRequestIEs_t *)calloc(1, sizeof(S1AP_S1SetupRequestIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_NB_IoT_DefaultPagingDRX;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_S1SetupRequestIEs__value_PR_NB_IoT_DefaultPagingDRX;
// 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");
return -1;
}
@@ -20,8 +20,8 @@
*/
/*! \file s1ap_eNB_context_management_procedures.c
* \brief S1AP context management procedures
* \author S. Roux and Navid Nikaein
* \brief S1AP context management procedures
* \author S. Roux and Navid Nikaein
* \date 2010 - 2015
* \email: navid.nikaein@eurecom.fr
* \version 1.0
@@ -41,7 +41,6 @@
#include "s1ap_eNB_itti_messaging.h"
#include "s1ap_ies_defs.h"
#include "s1ap_eNB_encoder.h"
#include "s1ap_eNB_nnsf.h"
#include "s1ap_eNB_ue_context.h"
@@ -54,16 +53,13 @@
int s1ap_ue_context_release_complete(instance_t instance,
s1ap_ue_release_complete_t *ue_release_complete_p)
{
s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL;
struct s1ap_eNB_ue_context_s *ue_context_p = NULL;
S1ap_UEContextReleaseCompleteIEs_t *ue_ctxt_release_complete_ies_p = NULL;
s1ap_message message;
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_UEContextReleaseComplete_t *out;
S1AP_UEContextReleaseComplete_IEs_t *ie;
uint8_t *buffer;
uint32_t length;
int ret = -1;
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
@@ -72,9 +68,9 @@ int s1ap_ue_context_release_complete(instance_t instance,
DevAssert(s1ap_eNB_instance_p != NULL);
/*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);
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);
}*/
if ((ue_context_p = s1ap_eNB_get_ue_context(s1ap_eNB_instance_p,
ue_release_complete_p->eNB_ue_s1ap_id)) == NULL) {
@@ -85,20 +81,71 @@ int s1ap_ue_context_release_complete(instance_t instance,
}
/* Prepare the S1AP message to encode */
memset(&message, 0, sizeof(s1ap_message));
memset(&pdu, 0, sizeof(pdu));
pdu.present = S1AP_S1AP_PDU_PR_successfulOutcome;
pdu.choice.successfulOutcome.procedureCode = S1AP_ProcedureCode_id_UEContextRelease;
pdu.choice.successfulOutcome.criticality = S1AP_Criticality_reject;
pdu.choice.successfulOutcome.value.present = S1AP_SuccessfulOutcome__value_PR_UEContextReleaseComplete;
out = &pdu.choice.successfulOutcome.value.choice.UEContextReleaseComplete;
message.direction = S1AP_PDU_PR_successfulOutcome;
message.procedureCode = S1ap_ProcedureCode_id_UEContextRelease;
//message.criticality = S1ap_Criticality_reject;
/* 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);
ue_ctxt_release_complete_ies_p = &message.msg.s1ap_UEContextReleaseCompleteIEs;
/* 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;
ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_ENB_UE_S1AP_ID;
ie->value.choice.ENB_UE_S1AP_ID = ue_release_complete_p->eNB_ue_s1ap_id;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
ue_ctxt_release_complete_ies_p->eNB_UE_S1AP_ID = ue_release_complete_p->eNB_ue_s1ap_id;
ue_ctxt_release_complete_ies_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id;
//ue_ctxt_release_complete_ies_p->criticalityDiagnostics
//ue_ctxt_release_complete_ies_p->presenceMask
/* optional */
if (0) {
ie = (S1AP_UEContextReleaseComplete_IEs_t *)calloc(1, sizeof(S1AP_UEContextReleaseComplete_IEs_t));
ie->id = S1AP_ProtocolIE_ID_id_CriticalityDiagnostics;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_CriticalityDiagnostics;
// ie->value.choice.CriticalityDiagnostics = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) {
/* 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;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_UserLocationInformation;
// ie->value.choice.UserLocationInformation = ;
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
}
/* 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;
ie->criticality = S1AP_Criticality_ignore;
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;
ie->value.present = S1AP_UEContextReleaseComplete_IEs__value_PR_CellIdentifierAndCELevelForCECapableUEs;
// 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... */
S1AP_ERROR("Failed to encode UE context release complete\n");
return -1;
@@ -111,20 +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;
@@ -138,25 +181,25 @@ int s1ap_ue_context_release_complete(instance_t instance,
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);
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 ret;
return 0;
}
int s1ap_ue_context_release_req(instance_t instance,
s1ap_ue_release_req_t *ue_release_req_p)
{
s1ap_eNB_instance_t *s1ap_eNB_instance_p = NULL;
struct s1ap_eNB_ue_context_s *ue_context_p = NULL;
S1ap_UEContextReleaseRequestIEs_t *ue_ctxt_release_request_ies_p = NULL;
s1ap_message message;
uint8_t *buffer = NULL;
uint32_t length;
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_UEContextReleaseRequest_t *out;
S1AP_UEContextReleaseRequest_IEs_t *ie;
uint8_t *buffer = NULL;
uint32_t length;
/* Retrieve the S1AP eNB instance associated with Mod_id */
s1ap_eNB_instance_p = s1ap_eNB_get_instance(instance);
@@ -172,50 +215,82 @@ int s1ap_ue_context_release_req(instance_t instance,
}
/* Prepare the S1AP message to encode */
memset(&message, 0, sizeof(s1ap_message));
memset(&pdu, 0, sizeof(pdu));
pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage;
pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_UEContextReleaseRequest;
pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore;
pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_UEContextReleaseRequest;
out = &pdu.choice.initiatingMessage.value.choice.UEContextReleaseRequest;
message.direction = S1AP_PDU_PR_initiatingMessage;
message.procedureCode = S1ap_ProcedureCode_id_UEContextReleaseRequest;
//message.criticality = S1ap_Criticality_reject;
/* 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);
ue_ctxt_release_request_ies_p = &message.msg.s1ap_UEContextReleaseRequestIEs;
/* 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);
ue_ctxt_release_request_ies_p->eNB_UE_S1AP_ID = ue_release_req_p->eNB_ue_s1ap_id;
ue_ctxt_release_request_ies_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id;
/* 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;
ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_Cause;
switch (ue_release_req_p->cause) {
case S1AP_CAUSE_NOTHING:
ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_NOTHING;
break;
case S1AP_Cause_PR_radioNetwork:
ie->value.choice.Cause.present = S1AP_Cause_PR_radioNetwork;
ie->value.choice.Cause.choice.radioNetwork = ue_release_req_p->cause_value;
break;
case S1AP_CAUSE_RADIO_NETWORK:
ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_radioNetwork;
ue_ctxt_release_request_ies_p->cause.choice.radioNetwork = ue_release_req_p->cause_value;
break;
case S1AP_Cause_PR_transport:
ie->value.choice.Cause.present = S1AP_Cause_PR_transport;
ie->value.choice.Cause.choice.transport = ue_release_req_p->cause_value;
break;
case S1AP_CAUSE_TRANSPORT:
ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_transport;
ue_ctxt_release_request_ies_p->cause.choice.transport = ue_release_req_p->cause_value;
break;
case S1AP_Cause_PR_nas:
ie->value.choice.Cause.present = S1AP_Cause_PR_nas;
ie->value.choice.Cause.choice.nas = ue_release_req_p->cause_value;
break;
case S1AP_CAUSE_NAS:
ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_nas;
ue_ctxt_release_request_ies_p->cause.choice.nas = ue_release_req_p->cause_value;
break;
case S1AP_Cause_PR_protocol:
ie->value.choice.Cause.present = S1AP_Cause_PR_protocol;
ie->value.choice.Cause.choice.protocol = ue_release_req_p->cause_value;
break;
case S1AP_CAUSE_PROTOCOL:
ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_protocol;
ue_ctxt_release_request_ies_p->cause.choice.protocol = ue_release_req_p->cause_value;
break;
case S1AP_Cause_PR_misc:
ie->value.choice.Cause.present = S1AP_Cause_PR_misc;
ie->value.choice.Cause.choice.misc = ue_release_req_p->cause_value;
break;
case S1AP_CAUSE_MISC:
default:
ue_ctxt_release_request_ies_p->cause.present = S1ap_Cause_PR_misc;
ue_ctxt_release_request_ies_p->cause.choice.misc = ue_release_req_p->cause_value;
break;
case S1AP_Cause_PR_NOTHING:
default:
ie->value.choice.Cause.present = S1AP_Cause_PR_NOTHING;
break;
}
if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) {
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;
ie->criticality = S1AP_Criticality_reject;
ie->value.present = S1AP_UEContextReleaseRequest_IEs__value_PR_GWContextReleaseIndication;
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... */
S1AP_ERROR("Failed to encode UE context release complete\n");
return -1;
@@ -228,8 +303,8 @@ 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,
+148 -219
View File
@@ -34,251 +34,185 @@
#include "intertask_interface.h"
#include "s1ap_common.h"
#include "s1ap_ies_defs.h"
#include "s1ap_eNB_decoder.h"
static int s1ap_eNB_decode_initiating_message(s1ap_message *message,
S1ap_InitiatingMessage_t *initiating_p)
static int s1ap_eNB_decode_initiating_message(S1AP_S1AP_PDU_t *pdu)
{
int ret = -1;
MessageDef *message_p;
char *message_string = NULL;
size_t message_string_size;
MessagesIds message_id;
asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} };
DevAssert(pdu != NULL);
DevAssert(initiating_p != NULL);
switch(pdu->choice.initiatingMessage.procedureCode) {
case S1AP_ProcedureCode_id_downlinkNASTransport:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_DOWNLINK_NAS_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id,
res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_downlink_nas_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_downlink_nas_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
message_string = calloc(10000, sizeof(char));
case S1AP_ProcedureCode_id_InitialContextSetup:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id,
res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_initial_context_setup_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
s1ap_string_total_size = 0;
case S1AP_ProcedureCode_id_UEContextRelease:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_UE_CONTEXT_RELEASE_COMMAND_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id,
res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_ue_context_release_command_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_ue_context_release_command_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
message->procedureCode = initiating_p->procedureCode;
message->criticality = initiating_p->criticality;
case S1AP_ProcedureCode_id_Paging:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_PAGING_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id,
res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_paging_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_paging_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
S1AP_INFO("Paging initiating message\n");
free(res.buffer);
break;
switch(initiating_p->procedureCode) {
case S1ap_ProcedureCode_id_downlinkNASTransport:
ret = s1ap_decode_s1ap_downlinknastransporties(
&message->msg.s1ap_DownlinkNASTransportIEs,
&initiating_p->value);
s1ap_xer_print_s1ap_downlinknastransport(s1ap_xer__print2sp,
message_string,
message);
message_id = S1AP_DOWNLINK_NAS_LOG;
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP,
message_id,
message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_downlink_nas_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_downlink_nas_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
break;
case S1AP_ProcedureCode_id_E_RABSetup:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_E_RAB_SETUP_REQUEST_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id,
res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_setup_request_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_request_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
S1AP_INFO("E_RABSetup initiating message\n");
break;
case S1ap_ProcedureCode_id_InitialContextSetup:
ret = s1ap_decode_s1ap_initialcontextsetuprequesties(
&message->msg.s1ap_InitialContextSetupRequestIEs, &initiating_p->value);
s1ap_xer_print_s1ap_initialcontextsetuprequest(s1ap_xer__print2sp, message_string, message);
message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG;
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP,
message_id,
message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_initial_context_setup_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
break;
case S1AP_ProcedureCode_id_E_RABModify:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_E_RAB_MODIFY_REQUEST_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id,
res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_modify_request_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_request_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
S1AP_INFO("E_RABModify initiating message\n");
break;
case S1ap_ProcedureCode_id_UEContextRelease:
ret = s1ap_decode_s1ap_uecontextreleasecommandies(
&message->msg.s1ap_UEContextReleaseCommandIEs, &initiating_p->value);
s1ap_xer_print_s1ap_uecontextreleasecommand(s1ap_xer__print2sp, message_string, message);
message_id = S1AP_UE_CONTEXT_RELEASE_COMMAND_LOG;
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP,
message_id,
message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_ue_context_release_command_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_ue_context_release_command_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
break;
case S1AP_ProcedureCode_id_E_RABRelease:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_E_RAB_RELEASE_REQUEST_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id,
res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_release_request_log.size = res.result.encoded;
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 initiating message\n");
break;
case S1ap_ProcedureCode_id_Paging:
ret = s1ap_decode_s1ap_pagingies(
&message->msg.s1ap_PagingIEs, &initiating_p->value);
s1ap_xer_print_s1ap_paging(s1ap_xer__print2sp, message_string, message);
message_id = S1AP_PAGING_LOG;
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP,
message_id,
message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_paging_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_paging_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
S1AP_INFO("Paging initiating message\n");
free(message_string);
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;
case S1ap_ProcedureCode_id_E_RABSetup:
ret = s1ap_decode_s1ap_e_rabsetuprequesties(
&message->msg.s1ap_E_RABSetupRequestIEs, &initiating_p->value);
//s1ap_xer_print_s1ap_e_rabsetuprequest(s1ap_xer__print2sp, message_string, message);
message_id = S1AP_E_RAB_SETUP_REQUEST_LOG;
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP,
message_id,
message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_setup_request_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_request_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
S1AP_INFO("E_RABSetup initiating message\n");
break;
case S1ap_ProcedureCode_id_E_RABModify:
ret = s1ap_decode_s1ap_e_rabmodifyrequesties(
&message->msg.s1ap_E_RABModifyRequestIEs, &initiating_p->value);
message_id = S1AP_E_RAB_MODIFY_REQUEST_LOG;
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP,
message_id,
message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_modify_request_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_request_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
S1AP_INFO("E_RABModify initiating message\n");
break;
case S1ap_ProcedureCode_id_E_RABRelease:
ret = s1ap_decode_s1ap_e_rabreleasecommandies(
&message->msg.s1ap_E_RABReleaseCommandIEs, &initiating_p->value);
s1ap_xer_print_s1ap_e_rabreleasecommand(s1ap_xer__print2sp, message_string, message);
message_id = S1AP_E_RAB_RELEASE_REQUEST_LOG;
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP,
message_id,
message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_release_request_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_e_rab_release_request_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
S1AP_INFO("TODO E_RABRelease nitiating message\n");
break;
case S1ap_ProcedureCode_id_ErrorIndication:
ret = s1ap_decode_s1ap_errorindicationies(
&message->msg.s1ap_ErrorIndicationIEs, &initiating_p->value);
s1ap_xer_print_s1ap_errorindication(s1ap_xer__print2sp, message_string, message);
message_id = S1AP_E_RAB_ERROR_INDICATION_LOG;
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP,
message_id,
message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_release_request_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_error_indication_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
S1AP_INFO("ErrorIndication initiating message\n");
break;
default:
S1AP_ERROR("Unknown procedure ID (%d) for initiating message\n",
(int)initiating_p->procedureCode);
AssertFatal( 0 , "Unknown procedure ID (%d) for initiating message\n",
(int)initiating_p->procedureCode);
return -1;
default:
S1AP_ERROR("Unknown procedure ID (%d) for initiating message\n",
(int)pdu->choice.initiatingMessage.procedureCode);
AssertFatal( 0, "Unknown procedure ID (%d) for initiating message\n",
(int)pdu->choice.initiatingMessage.procedureCode);
return -1;
}
return ret;
return 0;
}
static int s1ap_eNB_decode_successful_outcome(s1ap_message *message,
S1ap_SuccessfulOutcome_t *successfullOutcome_p)
static int s1ap_eNB_decode_successful_outcome(S1AP_S1AP_PDU_t *pdu)
{
int ret = -1;
MessageDef *message_p;
char *message_string = NULL;
size_t message_string_size;
MessagesIds message_id;
asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} };
DevAssert(pdu != NULL);
DevAssert(successfullOutcome_p != NULL);
switch(pdu->choice.successfulOutcome.procedureCode) {
case S1AP_ProcedureCode_id_S1Setup:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_S1_SETUP_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_s1_setup_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
message_string = malloc(sizeof(char) * 10000);
memset((void*)message_string,0,sizeof(char) * 10000);
s1ap_string_total_size = 0;
message->procedureCode = successfullOutcome_p->procedureCode;
message->criticality = successfullOutcome_p->criticality;
switch(successfullOutcome_p->procedureCode) {
case S1ap_ProcedureCode_id_S1Setup:
ret = s1ap_decode_s1ap_s1setupresponseies(
&message->msg.s1ap_S1SetupResponseIEs, &successfullOutcome_p->value);
s1ap_xer_print_s1ap_s1setupresponse(s1ap_xer__print2sp, message_string, message);
message_id = S1AP_S1_SETUP_LOG;
break;
default:
S1AP_ERROR("Unknown procedure ID (%d) for successfull outcome message\n",
(int)successfullOutcome_p->procedureCode);
return -1;
default:
S1AP_ERROR("Unknown procedure ID (%d) for successfull outcome message\n",
(int)pdu->choice.successfulOutcome.procedureCode);
return -1;
}
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_s1_setup_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
return ret;
return 0;
}
static int s1ap_eNB_decode_unsuccessful_outcome(s1ap_message *message,
S1ap_UnsuccessfulOutcome_t *unSuccessfullOutcome_p)
static int s1ap_eNB_decode_unsuccessful_outcome(S1AP_S1AP_PDU_t *pdu)
{
int ret = -1;
DevAssert(unSuccessfullOutcome_p != NULL);
MessageDef *message_p;
MessagesIds message_id;
asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} };
DevAssert(pdu != NULL);
message->procedureCode = unSuccessfullOutcome_p->procedureCode;
message->criticality = unSuccessfullOutcome_p->criticality;
switch(pdu->choice.unsuccessfulOutcome.procedureCode) {
case S1AP_ProcedureCode_id_S1Setup:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_S1_SETUP_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_s1_setup_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
switch(unSuccessfullOutcome_p->procedureCode) {
case S1ap_ProcedureCode_id_S1Setup:
return s1ap_decode_s1ap_s1setupfailureies(
&message->msg.s1ap_S1SetupFailureIEs, &unSuccessfullOutcome_p->value);
default:
S1AP_ERROR("Unknown procedure ID (%d) for unsuccessfull outcome message\n",
(int)unSuccessfullOutcome_p->procedureCode);
break;
default:
S1AP_ERROR("Unknown procedure ID (%d) for unsuccessfull outcome message\n",
(int)pdu->choice.unsuccessfulOutcome.procedureCode);
return -1;
}
return ret;
return 0;
}
int s1ap_eNB_decode_pdu(s1ap_message *message, const uint8_t * const buffer,
int s1ap_eNB_decode_pdu(S1AP_S1AP_PDU_t *pdu, const uint8_t *const buffer,
const uint32_t length)
{
S1AP_PDU_t pdu;
S1AP_PDU_t *pdu_p = &pdu;
asn_dec_rval_t dec_ret;
DevAssert(pdu != NULL);
DevAssert(buffer != NULL);
memset((void *)pdu_p, 0, sizeof(S1AP_PDU_t));
dec_ret = aper_decode(NULL,
&asn_DEF_S1AP_PDU,
(void **)&pdu_p,
&asn_DEF_S1AP_S1AP_PDU,
(void **)&pdu,
buffer,
length,
0,
@@ -289,24 +223,19 @@ int s1ap_eNB_decode_pdu(s1ap_message *message, const uint8_t * const buffer,
return -1;
}
message->direction = pdu_p->present;
switch(pdu->present) {
case S1AP_S1AP_PDU_PR_initiatingMessage:
return s1ap_eNB_decode_initiating_message(pdu);
switch(pdu_p->present) {
case S1AP_PDU_PR_initiatingMessage:
return s1ap_eNB_decode_initiating_message(message,
&pdu_p->choice.initiatingMessage);
case S1AP_S1AP_PDU_PR_successfulOutcome:
return s1ap_eNB_decode_successful_outcome(pdu);
case S1AP_PDU_PR_successfulOutcome:
return s1ap_eNB_decode_successful_outcome(message,
&pdu_p->choice.successfulOutcome);
case S1AP_S1AP_PDU_PR_unsuccessfulOutcome:
return s1ap_eNB_decode_unsuccessful_outcome(pdu);
case S1AP_PDU_PR_unsuccessfulOutcome:
return s1ap_eNB_decode_unsuccessful_outcome(message,
&pdu_p->choice.unsuccessfulOutcome);
default:
S1AP_DEBUG("Unknown presence (%d) or not implemented\n", (int)pdu_p->present);
break;
default:
S1AP_DEBUG("Unknown presence (%d) or not implemented\n", (int)pdu->present);
break;
}
return -1;
+1 -2
View File
@@ -20,12 +20,11 @@
*/
#include <stdint.h>
#include "s1ap_ies_defs.h"
#ifndef S1AP_ENB_DECODER_H_
#define S1AP_ENB_DECODER_H_
int s1ap_eNB_decode_pdu(s1ap_message *message, const uint8_t * const buffer,
int s1ap_eNB_decode_pdu(S1AP_S1AP_PDU_t *pdu, const uint8_t *const buffer,
const uint32_t length) __attribute__ ((warn_unused_result));
#endif /* S1AP_ENB_DECODER_H_ */
+180 -544
View File
@@ -32,615 +32,251 @@
#include <stdint.h>
#include "assertions.h"
#include "conversions.h"
#include "intertask_interface.h"
#include "s1ap_common.h"
#include "s1ap_ies_defs.h"
#include "s1ap_eNB_encoder.h"
static inline int s1ap_eNB_encode_initiating(s1ap_message *message,
static inline int s1ap_eNB_encode_initiating(S1AP_S1AP_PDU_t *pdu,
uint8_t **buffer,
uint32_t *len);
static inline int s1ap_eNB_encode_successfull_outcome(s1ap_message *message,
static inline int s1ap_eNB_encode_successfull_outcome(S1AP_S1AP_PDU_t *pdu,
uint8_t **buffer, uint32_t *len);
static inline int s1ap_eNB_encode_unsuccessfull_outcome(s1ap_message *message,
static inline int s1ap_eNB_encode_unsuccessfull_outcome(S1AP_S1AP_PDU_t *pdu,
uint8_t **buffer, uint32_t *len);
static inline int s1ap_eNB_encode_s1_setup_request(
S1ap_S1SetupRequestIEs_t *s1SetupRequestIEs, uint8_t **buffer, uint32_t *length);
static inline int s1ap_eNB_encode_trace_failure(S1ap_TraceFailureIndicationIEs_t
*trace_failure_ies_p, uint8_t **buffer,
uint32_t *length);
static inline int s1ap_eNB_encode_initial_ue_message(S1ap_InitialUEMessageIEs_t
*initialUEmessageIEs_p, uint8_t **buffer,
uint32_t *length);
static inline int s1ap_eNB_encode_uplink_nas_transport(S1ap_UplinkNASTransportIEs_t
*uplinkNASTransportIEs,
uint8_t **buffer,
uint32_t *length);
static inline int s1ap_eNB_encode_ue_capability_info_indication(
S1ap_UECapabilityInfoIndicationIEs_t *ueCapabilityInfoIndicationIEs,
uint8_t **buffer,
uint32_t *length);
static inline int s1ap_eNB_encode_initial_context_setup_response(
S1ap_InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs,
uint8_t **buffer,
uint32_t *length);
static inline
int s1ap_eNB_encode_nas_non_delivery(
S1ap_NASNonDeliveryIndication_IEs_t *nasNonDeliveryIndicationIEs,
uint8_t **buffer,
uint32_t *length);
static inline
int s1ap_eNB_encode_ue_context_release_complete(
S1ap_UEContextReleaseCompleteIEs_t *s1ap_UEContextReleaseCompleteIEs,
uint8_t **buffer,
uint32_t *length);
static inline
int s1ap_eNB_encode_ue_context_release_request(
S1ap_UEContextReleaseRequestIEs_t *s1ap_UEContextReleaseRequestIEs,
uint8_t **buffer,
uint32_t *length);
static inline
int s1ap_eNB_encode_e_rab_setup_response(S1ap_E_RABSetupResponseIEs_t *E_RABSetupResponseIEs,
uint8_t **buffer,
uint32_t *length);
static inline
int s1ap_eNB_encode_e_rab_modify_response(S1ap_E_RABModifyResponseIEs_t *E_RABModifyResponseIEs,
uint8_t **buffer,
uint32_t *length);
static inline
int s1ap_eNB_encode_e_rab_release_response(S1ap_E_RABReleaseResponseIEs_t *s1ap_E_RABReleaseResponseIEs,
uint8_t **buffer,
uint32_t *length);
int s1ap_eNB_encode_pdu(s1ap_message *message, uint8_t **buffer, uint32_t *len)
int s1ap_eNB_encode_pdu(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len)
{
DevAssert(message != NULL);
int ret = -1;
DevAssert(pdu != NULL);
DevAssert(buffer != NULL);
DevAssert(len != NULL);
switch(message->direction) {
case S1AP_PDU_PR_initiatingMessage:
return s1ap_eNB_encode_initiating(message, buffer, len);
switch(pdu->present) {
case S1AP_S1AP_PDU_PR_initiatingMessage:
ret = s1ap_eNB_encode_initiating(pdu, buffer, len);
break;
case S1AP_PDU_PR_successfulOutcome:
return s1ap_eNB_encode_successfull_outcome(message, buffer, len);
case S1AP_S1AP_PDU_PR_successfulOutcome:
ret = s1ap_eNB_encode_successfull_outcome(pdu, buffer, len);
break;
case S1AP_PDU_PR_unsuccessfulOutcome:
return s1ap_eNB_encode_unsuccessfull_outcome(message, buffer, len);
case S1AP_S1AP_PDU_PR_unsuccessfulOutcome:
ret = s1ap_eNB_encode_unsuccessfull_outcome(pdu, buffer, len);
break;
default:
S1AP_DEBUG("Unknown message outcome (%d) or not implemented",
(int)message->direction);
break;
default:
S1AP_DEBUG("Unknown message outcome (%d) or not implemented",
(int)pdu->present);
return -1;
}
return -1;
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_S1AP_PDU, pdu);
return ret;
}
static inline
int s1ap_eNB_encode_initiating(s1ap_message *s1ap_message_p,
int s1ap_eNB_encode_initiating(S1AP_S1AP_PDU_t *pdu,
uint8_t **buffer, uint32_t *len)
{
int ret = -1;
MessageDef *message_p;
char *message_string = NULL;
size_t message_string_size;
MessagesIds message_id;
asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} };
DevAssert(pdu != NULL);
DevAssert(s1ap_message_p != NULL);
switch(pdu->choice.initiatingMessage.procedureCode) {
case S1AP_ProcedureCode_id_S1Setup:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_S1_SETUP_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_s1_setup_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
message_string = calloc(10000, sizeof(char));
case S1AP_ProcedureCode_id_uplinkNASTransport:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_UPLINK_NAS_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_uplink_nas_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_uplink_nas_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
s1ap_string_total_size = 0;
case S1AP_ProcedureCode_id_UECapabilityInfoIndication:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_UE_CAPABILITY_IND_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_ue_capability_ind_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_ue_capability_ind_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
switch(s1ap_message_p->procedureCode) {
case S1ap_ProcedureCode_id_S1Setup:
ret = s1ap_eNB_encode_s1_setup_request(
&s1ap_message_p->msg.s1ap_S1SetupRequestIEs, buffer, len);
s1ap_xer_print_s1ap_s1setuprequest(s1ap_xer__print2sp, message_string, s1ap_message_p);
message_id = S1AP_S1_SETUP_LOG;
break;
case S1AP_ProcedureCode_id_initialUEMessage:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_INITIAL_UE_MESSAGE_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_initial_ue_message_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_initial_ue_message_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
case S1ap_ProcedureCode_id_uplinkNASTransport:
ret = s1ap_eNB_encode_uplink_nas_transport(
&s1ap_message_p->msg.s1ap_UplinkNASTransportIEs, buffer, len);
s1ap_xer_print_s1ap_uplinknastransport(s1ap_xer__print2sp, message_string, s1ap_message_p);
message_id = S1AP_UPLINK_NAS_LOG;
break;
case S1AP_ProcedureCode_id_NASNonDeliveryIndication:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_NAS_NON_DELIVERY_IND_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_nas_non_delivery_ind_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_nas_non_delivery_ind_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
case S1ap_ProcedureCode_id_UECapabilityInfoIndication:
ret = s1ap_eNB_encode_ue_capability_info_indication(
&s1ap_message_p->msg.s1ap_UECapabilityInfoIndicationIEs, buffer, len);
s1ap_xer_print_s1ap_uecapabilityinfoindication(s1ap_xer__print2sp, message_string, s1ap_message_p);
message_id = S1AP_UE_CAPABILITY_IND_LOG;
break;
case S1AP_ProcedureCode_id_UEContextReleaseRequest:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_UE_CONTEXT_RELEASE_REQ_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_ue_context_release_req_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_ue_context_release_req_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
case S1ap_ProcedureCode_id_initialUEMessage:
ret = s1ap_eNB_encode_initial_ue_message(
&s1ap_message_p->msg.s1ap_InitialUEMessageIEs, buffer, len);
s1ap_xer_print_s1ap_initialuemessage(s1ap_xer__print2sp, message_string, s1ap_message_p);
message_id = S1AP_INITIAL_UE_MESSAGE_LOG;
break;
case S1ap_ProcedureCode_id_NASNonDeliveryIndication:
ret = s1ap_eNB_encode_nas_non_delivery(
&s1ap_message_p->msg.s1ap_NASNonDeliveryIndication_IEs, buffer, len);
s1ap_xer_print_s1ap_nasnondeliveryindication_(s1ap_xer__print2sp,
message_string, s1ap_message_p);
message_id = S1AP_NAS_NON_DELIVERY_IND_LOG;
break;
case S1ap_ProcedureCode_id_UEContextReleaseRequest:
ret = s1ap_eNB_encode_ue_context_release_request(
&s1ap_message_p->msg.s1ap_UEContextReleaseRequestIEs, buffer, len);
s1ap_xer_print_s1ap_uecontextreleaserequest(s1ap_xer__print2sp,
message_string, s1ap_message_p);
message_id = S1AP_UE_CONTEXT_RELEASE_REQ_LOG;
break;
default:
S1AP_DEBUG("Unknown procedure ID (%d) for initiating message\n",
(int)s1ap_message_p->procedureCode);
return ret;
break;
default:
S1AP_DEBUG("Unknown procedure ID (%d) for initiating message\n",
(int)pdu->choice.initiatingMessage.procedureCode);
return -1;
}
message_string_size = strlen(message_string);
if (asn1_xer_print) {
xer_fprint(stdout, &asn_DEF_S1AP_S1AP_PDU, (void *)pdu);
}
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_s1_setup_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
return ret;
memset(&res, 0, sizeof(res));
res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER, &asn_DEF_S1AP_S1AP_PDU, pdu);
*buffer = res.buffer;
*len = res.result.encoded;
return 0;
}
static inline
int s1ap_eNB_encode_successfull_outcome(s1ap_message *s1ap_message_p,
int s1ap_eNB_encode_successfull_outcome(S1AP_S1AP_PDU_t *pdu,
uint8_t **buffer, uint32_t *len)
{
int ret = -1;
MessageDef *message_p;
char *message_string = NULL;
size_t message_string_size;
MessagesIds message_id;
asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} };
DevAssert(pdu != NULL);
DevAssert(s1ap_message_p != NULL);
switch(pdu->choice.successfulOutcome.procedureCode) {
case S1AP_ProcedureCode_id_InitialContextSetup:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_initial_context_setup_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
message_string = calloc(10000, sizeof(char));
case S1AP_ProcedureCode_id_UEContextRelease:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_UE_CONTEXT_RELEASE_COMPLETE_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_ue_context_release_complete_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_ue_context_release_complete_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
s1ap_string_total_size = 0;
message_string_size = strlen(message_string);
case S1AP_ProcedureCode_id_E_RABSetup:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_E_RAB_SETUP_RESPONSE_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_setup_response_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_response_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
S1AP_INFO("E_RABSetup successful message\n");
break;
case S1AP_ProcedureCode_id_E_RABModify:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_E_RAB_MODIFY_RESPONSE_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_modify_response_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_response_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
S1AP_INFO("E_RABModify successful message\n");
break;
switch(s1ap_message_p->procedureCode) {
case S1ap_ProcedureCode_id_InitialContextSetup:
ret = s1ap_eNB_encode_initial_context_setup_response(
&s1ap_message_p->msg.s1ap_InitialContextSetupResponseIEs, buffer, len);
case S1AP_ProcedureCode_id_E_RABRelease:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_E_RAB_RELEASE_RESPONSE_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_release_response_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_e_rab_release_response_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
S1AP_INFO("E_RAB Release successful message\n");
break;
s1ap_xer_print_s1ap_initialcontextsetupresponse(s1ap_xer__print2sp, message_string, s1ap_message_p);
message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_initial_context_setup_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
break;
case S1ap_ProcedureCode_id_UEContextRelease:
ret = s1ap_eNB_encode_ue_context_release_complete(
&s1ap_message_p->msg.s1ap_UEContextReleaseCompleteIEs, buffer, len);
s1ap_xer_print_s1ap_uecontextreleasecomplete(s1ap_xer__print2sp, message_string, s1ap_message_p);
message_id = S1AP_UE_CONTEXT_RELEASE_COMPLETE_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_ue_context_release_complete_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_ue_context_release_complete_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
break;
case S1ap_ProcedureCode_id_E_RABSetup:
ret = s1ap_eNB_encode_e_rab_setup_response (
&s1ap_message_p->msg.s1ap_E_RABSetupResponseIEs, buffer, len);
//s1ap_xer_print_s1ap_e_rabsetupresponse (s1ap_xer__print2sp, message_string, s1ap_message_p);
message_id = S1AP_E_RAB_SETUP_RESPONSE_LOG ;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_setup_response_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_response_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
S1AP_INFO("E_RABSetup successful message\n");
break;
case S1ap_ProcedureCode_id_E_RABModify:
ret = s1ap_eNB_encode_e_rab_modify_response (
&s1ap_message_p->msg.s1ap_E_RABModifyResponseIEs, buffer, len);
message_id = S1AP_E_RAB_MODIFY_RESPONSE_LOG ;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_modify_response_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_response_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
S1AP_INFO("E_RABModify successful message\n");
break;
case S1ap_ProcedureCode_id_E_RABRelease:
ret = s1ap_eNB_encode_e_rab_release_response (
&s1ap_message_p->msg.s1ap_E_RABReleaseResponseIEs, buffer, len);
s1ap_xer_print_s1ap_e_rabreleaseresponse(s1ap_xer__print2sp, message_string, s1ap_message_p);
message_id = S1AP_E_RAB_RELEASE_RESPONSE_LOG ;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_e_rab_release_response_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_e_rab_release_response_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
S1AP_INFO("E_RAB Release successful message\n");
break;
default:
S1AP_WARN("Unknown procedure ID (%d) for successfull outcome message\n",
(int)s1ap_message_p->procedureCode);
return ret;
break;
default:
S1AP_WARN("Unknown procedure ID (%d) for successfull outcome message\n",
(int)pdu->choice.successfulOutcome.procedureCode);
return -1;
}
if (asn1_xer_print) {
xer_fprint(stdout, &asn_DEF_S1AP_S1AP_PDU, (void *)pdu);
}
return ret;
memset(&res, 0, sizeof(res));
res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER, &asn_DEF_S1AP_S1AP_PDU, pdu);
*buffer = res.buffer;
*len = res.result.encoded;
return 0;
}
static inline
int s1ap_eNB_encode_unsuccessfull_outcome(s1ap_message *s1ap_message_p,
int s1ap_eNB_encode_unsuccessfull_outcome(S1AP_S1AP_PDU_t *pdu,
uint8_t **buffer, uint32_t *len)
{
int ret = -1;
MessageDef *message_p;
char *message_string = NULL;
size_t message_string_size;
MessagesIds message_id;
asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} };
DevAssert(pdu != NULL);
DevAssert(s1ap_message_p != NULL);
switch(pdu->choice.unsuccessfulOutcome.procedureCode) {
case S1AP_ProcedureCode_id_InitialContextSetup:
res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu);
message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG;
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_initial_context_setup_log.size = res.result.encoded;
memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, res.buffer, res.result.encoded);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(res.buffer);
break;
message_string = calloc(10000, sizeof(char));
s1ap_string_total_size = 0;
switch(s1ap_message_p->procedureCode) {
case S1ap_ProcedureCode_id_InitialContextSetup:
// ret = s1ap_encode_s1ap_initialcontextsetupfailureies(
// &s1ap_message_p->ittiMsg.s1ap_InitialContextSetupFailureIEs, buffer, len);
s1ap_xer_print_s1ap_initialcontextsetupfailure(s1ap_xer__print2sp, message_string, s1ap_message_p);
message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG;
break;
default:
S1AP_DEBUG("Unknown procedure ID (%d) for unsuccessfull outcome message\n",
(int)s1ap_message_p->procedureCode);
return ret;
break;
default:
S1AP_DEBUG("Unknown procedure ID (%d) for unsuccessfull outcome message\n",
(int)pdu->choice.unsuccessfulOutcome.procedureCode);
return -1;
}
message_string_size = strlen(message_string);
message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, message_string_size + sizeof (IttiMsgText));
message_p->ittiMsg.s1ap_initial_context_setup_log.size = message_string_size;
memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, message_string, message_string_size);
itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p);
free(message_string);
return ret;
}
static inline
int s1ap_eNB_encode_ue_capability_info_indication(
S1ap_UECapabilityInfoIndicationIEs_t *ueCapabilityInfoIndicationIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_UECapabilityInfoIndication_t ueCapabilityInfoIndication;
S1ap_UECapabilityInfoIndication_t *ueCapabilityInfoIndication_p =
&ueCapabilityInfoIndication;
memset((void *)ueCapabilityInfoIndication_p, 0, sizeof(ueCapabilityInfoIndication));
if (s1ap_encode_s1ap_uecapabilityinfoindicationies(
ueCapabilityInfoIndication_p, ueCapabilityInfoIndicationIEs) < 0) {
return -1;
if (asn1_xer_print) {
xer_fprint(stdout, &asn_DEF_S1AP_S1AP_PDU, (void *)pdu);
}
return s1ap_generate_initiating_message(buffer,
length,
S1ap_ProcedureCode_id_UECapabilityInfoIndication,
S1ap_Criticality_ignore,
&asn_DEF_S1ap_UECapabilityInfoIndication,
ueCapabilityInfoIndication_p);
}
static inline
int s1ap_eNB_encode_uplink_nas_transport(
S1ap_UplinkNASTransportIEs_t *uplinkNASTransportIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_UplinkNASTransport_t uplinkNASTransport;
S1ap_UplinkNASTransport_t *uplinkNASTransport_p = &uplinkNASTransport;
memset((void *)uplinkNASTransport_p, 0, sizeof(uplinkNASTransport));
if (s1ap_encode_s1ap_uplinknastransporties(
uplinkNASTransport_p, uplinkNASTransportIEs) < 0) {
return -1;
}
return s1ap_generate_initiating_message(buffer,
length,
S1ap_ProcedureCode_id_uplinkNASTransport,
S1ap_Criticality_ignore,
&asn_DEF_S1ap_UplinkNASTransport,
uplinkNASTransport_p);
}
static inline
int s1ap_eNB_encode_nas_non_delivery(
S1ap_NASNonDeliveryIndication_IEs_t *nasNonDeliveryIndicationIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_NASNonDeliveryIndication_t nasNonDeliveryIndication;
S1ap_NASNonDeliveryIndication_t *nasNonDeliveryIndication_p = &nasNonDeliveryIndication;
memset((void *)nasNonDeliveryIndication_p, 0, sizeof(nasNonDeliveryIndication));
if (s1ap_encode_s1ap_nasnondeliveryindication_ies(
nasNonDeliveryIndication_p, nasNonDeliveryIndicationIEs) < 0) {
return -1;
}
return s1ap_generate_initiating_message(buffer,
length,
S1ap_ProcedureCode_id_NASNonDeliveryIndication,
S1ap_Criticality_ignore,
&asn_DEF_S1ap_NASNonDeliveryIndication,
nasNonDeliveryIndication_p);
}
static inline
int s1ap_eNB_encode_s1_setup_request(
S1ap_S1SetupRequestIEs_t *s1SetupRequestIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_S1SetupRequest_t s1SetupRequest;
S1ap_S1SetupRequest_t *s1SetupRequest_p = &s1SetupRequest;
memset((void *)s1SetupRequest_p, 0, sizeof(s1SetupRequest));
if (s1ap_encode_s1ap_s1setuprequesties(s1SetupRequest_p, s1SetupRequestIEs) < 0) {
return -1;
}
return s1ap_generate_initiating_message(buffer,
length,
S1ap_ProcedureCode_id_S1Setup,
S1ap_Criticality_reject,
&asn_DEF_S1ap_S1SetupRequest,
s1SetupRequest_p);
}
static inline
int s1ap_eNB_encode_initial_ue_message(
S1ap_InitialUEMessageIEs_t *initialUEmessageIEs_p,
uint8_t **buffer,
uint32_t *length)
{
S1ap_InitialUEMessage_t initialUEMessage;
S1ap_InitialUEMessage_t *initialUEMessage_p = &initialUEMessage;
memset((void *)initialUEMessage_p, 0, sizeof(initialUEMessage));
if (s1ap_encode_s1ap_initialuemessageies(
initialUEMessage_p, initialUEmessageIEs_p) < 0) {
return -1;
}
return s1ap_generate_initiating_message(buffer,
length,
S1ap_ProcedureCode_id_initialUEMessage,
S1ap_Criticality_ignore,
&asn_DEF_S1ap_InitialUEMessage,
initialUEMessage_p);
}
static inline
int s1ap_eNB_encode_trace_failure(
S1ap_TraceFailureIndicationIEs_t *trace_failure_ies_p,
uint8_t **buffer,
uint32_t *length)
{
S1ap_TraceFailureIndication_t trace_failure;
S1ap_TraceFailureIndication_t *trace_failure_p = &trace_failure;
memset((void *)trace_failure_p, 0, sizeof(trace_failure));
if (s1ap_encode_s1ap_tracefailureindicationies(
trace_failure_p, trace_failure_ies_p) < 0) {
return -1;
}
return s1ap_generate_initiating_message(buffer,
length,
S1ap_ProcedureCode_id_TraceFailureIndication,
S1ap_Criticality_reject,
&asn_DEF_S1ap_TraceFailureIndication,
trace_failure_p);
}
static inline
int s1ap_eNB_encode_initial_context_setup_response(
S1ap_InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_InitialContextSetupResponse_t initial_context_setup_response;
S1ap_InitialContextSetupResponse_t *initial_context_setup_response_p =
&initial_context_setup_response;
memset((void *)initial_context_setup_response_p, 0,
sizeof(initial_context_setup_response));
if (s1ap_encode_s1ap_initialcontextsetupresponseies(
initial_context_setup_response_p, initialContextSetupResponseIEs) < 0) {
return -1;
}
return s1ap_generate_successfull_outcome(buffer,
length,
S1ap_ProcedureCode_id_InitialContextSetup,
S1ap_Criticality_reject,
&asn_DEF_S1ap_InitialContextSetupResponse,
initial_context_setup_response_p);
}
static inline
int s1ap_eNB_encode_ue_context_release_complete(
S1ap_UEContextReleaseCompleteIEs_t *s1ap_UEContextReleaseCompleteIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_UEContextReleaseComplete_t ue_context_release_complete;
S1ap_UEContextReleaseComplete_t *ue_context_release_complete_p =
&ue_context_release_complete;
memset((void *)ue_context_release_complete_p, 0,
sizeof(ue_context_release_complete));
if (s1ap_encode_s1ap_uecontextreleasecompleteies(
ue_context_release_complete_p, s1ap_UEContextReleaseCompleteIEs) < 0) {
return -1;
}
return s1ap_generate_successfull_outcome(buffer,
length,
S1ap_ProcedureCode_id_UEContextRelease,
S1ap_Criticality_reject,
&asn_DEF_S1ap_UEContextReleaseComplete,
ue_context_release_complete_p);
}
static inline
int s1ap_eNB_encode_ue_context_release_request(
S1ap_UEContextReleaseRequestIEs_t *s1ap_UEContextReleaseRequestIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_UEContextReleaseRequest_t ue_context_release_request;
S1ap_UEContextReleaseRequest_t *ue_context_release_request_p =
&ue_context_release_request;
memset((void *)ue_context_release_request_p, 0,
sizeof(ue_context_release_request));
if (s1ap_encode_s1ap_uecontextreleaserequesties(
ue_context_release_request_p, s1ap_UEContextReleaseRequestIEs) < 0) {
return -1;
}
return s1ap_generate_initiating_message(buffer,
length,
S1ap_ProcedureCode_id_UEContextReleaseRequest,
S1ap_Criticality_reject,
&asn_DEF_S1ap_UEContextReleaseRequest,
ue_context_release_request_p);
}
static inline
int s1ap_eNB_encode_e_rab_setup_response(S1ap_E_RABSetupResponseIEs_t *s1ap_E_RABSetupResponseIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_E_RABSetupResponse_t e_rab_setup_response;
S1ap_E_RABSetupResponse_t *e_rab_setup_response_p = &e_rab_setup_response;
memset((void *)e_rab_setup_response_p, 0,
sizeof(e_rab_setup_response));
if (s1ap_encode_s1ap_e_rabsetupresponseies (e_rab_setup_response_p, s1ap_E_RABSetupResponseIEs) < 0) {
return -1;
}
return s1ap_generate_successfull_outcome(buffer,
length,
S1ap_ProcedureCode_id_E_RABSetup,
S1ap_Criticality_reject,
&asn_DEF_S1ap_E_RABSetupResponse,
e_rab_setup_response_p);
}
static inline
int s1ap_eNB_encode_e_rab_modify_response(S1ap_E_RABModifyResponseIEs_t *s1ap_E_RABModifyResponseIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_E_RABModifyResponse_t e_rab_modify_response;
S1ap_E_RABModifyResponse_t *e_rab_modify_response_p = &e_rab_modify_response;
memset((void *)e_rab_modify_response_p, 0,
sizeof(e_rab_modify_response));
if (s1ap_encode_s1ap_e_rabmodifyresponseies (e_rab_modify_response_p, s1ap_E_RABModifyResponseIEs) < 0) {
return -1;
}
return s1ap_generate_successfull_outcome(buffer,
length,
S1ap_ProcedureCode_id_E_RABModify,
S1ap_Criticality_reject,
&asn_DEF_S1ap_E_RABModifyResponse,
e_rab_modify_response_p);
}
static inline
int s1ap_eNB_encode_e_rab_release_response(S1ap_E_RABReleaseResponseIEs_t *s1ap_E_RABReleaseResponseIEs,
uint8_t **buffer,
uint32_t *length)
{
S1ap_E_RABReleaseResponse_t e_rab_release_response;
S1ap_E_RABReleaseResponse_t *e_rab_release_response_p = &e_rab_release_response;
memset((void *)e_rab_release_response_p, 0,
sizeof(e_rab_release_response));
if (s1ap_encode_s1ap_e_rabreleaseresponseies (e_rab_release_response_p, s1ap_E_RABReleaseResponseIEs) < 0) {
return -1;
}
return s1ap_generate_successfull_outcome(buffer,
length,
S1ap_ProcedureCode_id_E_RABRelease,
S1ap_Criticality_reject,
&asn_DEF_S1ap_E_RABReleaseResponse,
e_rab_release_response_p);
memset(&res, 0, sizeof(res));
res = asn_encode_to_new_buffer(NULL, ATS_ALIGNED_CANONICAL_PER, &asn_DEF_S1AP_S1AP_PDU, pdu);
*buffer = res.buffer;
*len = res.result.encoded;
return 0;
}
+1 -1
View File
@@ -22,7 +22,7 @@
#ifndef S1AP_ENB_ENCODER_H_
#define S1AP_ENB_ENCODER_H_
int s1ap_eNB_encode_pdu(s1ap_message *message, uint8_t **buffer, uint32_t *len)
int s1ap_eNB_encode_pdu(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len)
__attribute__ ((warn_unused_result));
#endif /* S1AP_ENB_ENCODER_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);
File diff suppressed because it is too large Load Diff
+7 -7
View File
@@ -23,14 +23,14 @@
#define S1AP_ENB_NAS_PROCEDURES_H_
int s1ap_eNB_handle_nas_downlink(
const uint32_t assoc_id,
const uint32_t stream,
struct s1ap_message_s* message_p);
uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu);
int s1ap_eNB_nas_uplink(instance_t instance, s1ap_uplink_nas_t *s1ap_uplink_nas_p);
void s1ap_eNB_nas_non_delivery_ind(instance_t instance,
s1ap_nas_non_delivery_ind_t *s1ap_nas_non_delivery_ind);
int s1ap_eNB_nas_non_delivery_ind(instance_t instance,
s1ap_nas_non_delivery_ind_t *s1ap_nas_non_delivery_ind);
int s1ap_eNB_handle_nas_first_req(
instance_t instance, s1ap_nas_first_req_t *s1ap_nas_first_req_p);
@@ -45,8 +45,8 @@ int s1ap_eNB_e_rab_setup_resp(instance_t instance,
s1ap_e_rab_setup_resp_t *e_rab_setup_resp_p);
int s1ap_eNB_e_rab_modify_resp(instance_t instance,
s1ap_e_rab_modify_resp_t *e_rab_modify_resp_p);
s1ap_e_rab_modify_resp_t *e_rab_modify_resp_p);
int s1ap_eNB_e_rab_release_resp(instance_t instance,
s1ap_e_rab_release_resp_t *e_rab_release_resp_p);
s1ap_e_rab_release_resp_t *e_rab_release_resp_p);
#endif /* S1AP_ENB_NAS_PROCEDURES_H_ */
+18 -16
View File
@@ -33,7 +33,6 @@
#include "intertask_interface.h"
#include "s1ap_common.h"
#include "s1ap_ies_defs.h"
#include "s1ap_eNB_defs.h"
#include "s1ap_eNB.h"
@@ -44,20 +43,24 @@
#include "assertions.h"
int s1ap_eNB_handle_overload_start(uint32_t assoc_id,
uint32_t stream,
struct s1ap_message_s *message_p)
int s1ap_eNB_handle_overload_start(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu)
{
S1ap_OverloadStartIEs_t *overload_start_p;
s1ap_eNB_mme_data_t *mme_desc_p;
S1AP_OverloadStart_t *container;
S1AP_OverloadStartIEs_t *ie;
DevAssert(message_p != NULL);
DevAssert(pdu != NULL);
overload_start_p = &message_p->msg.s1ap_OverloadStartIEs;
container = &pdu->choice.initiatingMessage.value.choice.OverloadStart;
DevCheck(overload_start_p->overloadResponse.present ==
S1ap_OverloadResponse_PR_overloadAction,
S1ap_OverloadResponse_PR_overloadAction, 0, 0);
S1AP_FIND_PROTOCOLIE_BY_ID(S1AP_OverloadStartIEs_t, ie, container,
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);
@@ -72,21 +75,20 @@ int s1ap_eNB_handle_overload_start(uint32_t assoc_id,
*/
mme_desc_p->state = S1AP_ENB_OVERLOAD;
mme_desc_p->overload_state =
overload_start_p->overloadResponse.choice.overloadAction;
ie->value.choice.OverloadResponse.choice.overloadAction;
return 0;
}
int s1ap_eNB_handle_overload_stop(uint32_t assoc_id,
uint32_t stream,
struct s1ap_message_s *message_p)
int s1ap_eNB_handle_overload_stop(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu)
{
/* We received Overload stop message, meaning that the MME is no more
* overloaded. This is an empty message, with only message header and no
* Information Element.
*/
DevAssert(message_p != NULL);
DevAssert(pdu != NULL);
s1ap_eNB_mme_data_t *mme_desc_p;
+6 -6
View File
@@ -28,9 +28,9 @@
// int s1ap_eNB_handle_overload_start(eNB_mme_desc_t *eNB_desc_p,
// sctp_queue_item_t *packet_p,
// struct s1ap_message_s *message_p);
int s1ap_eNB_handle_overload_start(uint32_t assoc_id,
uint32_t stream,
struct s1ap_message_s *message_p);
int s1ap_eNB_handle_overload_start(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu);
/**
* \brief Handle an overload stop message
@@ -38,8 +38,8 @@ int s1ap_eNB_handle_overload_start(uint32_t assoc_id,
// int s1ap_eNB_handle_overload_stop(eNB_mme_desc_t *eNB_desc_p,
// sctp_queue_item_t *packet_p,
// struct s1ap_message_s *message_p);
int s1ap_eNB_handle_overload_stop(uint32_t assoc_id,
uint32_t stream,
struct s1ap_message_s *message_p);
int s1ap_eNB_handle_overload_stop(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu);
#endif /* S1AP_ENB_OVERLOAD_H_ */
+64 -34
View File
@@ -28,7 +28,6 @@
#include "s1ap_eNB_default_values.h"
#include "s1ap_common.h"
#include "s1ap_ies_defs.h"
#include "s1ap_eNB_defs.h"
#include "s1ap_eNB.h"
@@ -40,29 +39,60 @@
static
void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
S1ap_E_UTRAN_Trace_ID_t *trace_id,
S1ap_Cause_t *cause_p)
S1AP_E_UTRAN_Trace_ID_t *trace_id,
S1AP_Cause_t *cause_p)
{
s1ap_message message;
S1ap_TraceFailureIndicationIEs_t *trace_failure_p;
uint8_t *buffer;
uint32_t length;
S1AP_S1AP_PDU_t pdu;
S1AP_TraceFailureIndication_t *out;
S1AP_TraceFailureIndicationIEs_t *ie;
uint8_t *buffer = NULL;
uint32_t length;
DevAssert(ue_desc_p != NULL);
DevAssert(trace_id != NULL);
DevAssert(cause_p != NULL);
memset(&message, 0, sizeof(s1ap_message));
/* Prepare the S1AP message to encode */
memset(&pdu, 0, sizeof(pdu));
pdu.present = S1AP_S1AP_PDU_PR_initiatingMessage;
pdu.choice.initiatingMessage.procedureCode = S1AP_ProcedureCode_id_TraceFailureIndication;
pdu.choice.initiatingMessage.criticality = S1AP_Criticality_ignore;
pdu.choice.initiatingMessage.value.present = S1AP_InitiatingMessage__value_PR_TraceFailureIndication;
out = &pdu.choice.initiatingMessage.value.choice.TraceFailureIndication;
trace_failure_p = &message.msg.s1ap_TraceFailureIndicationIEs;
/* 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);
trace_failure_p->mme_ue_s1ap_id = ue_desc_p->mme_ue_s1ap_id;
trace_failure_p->eNB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id;
/* 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);
memcpy(&trace_failure_p->e_UTRAN_Trace_ID, trace_id, sizeof(S1ap_E_UTRAN_Trace_ID_t));
memcpy(&trace_failure_p->cause, cause_p, sizeof(S1ap_Cause_t));
/* 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);
if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) {
/* mandatory */
ie = (S1AP_TraceFailureIndicationIEs_t *)calloc(1, sizeof(S1AP_TraceFailureIndicationIEs_t));
ie->id = S1AP_ProtocolIE_ID_id_Cause;
ie->criticality = S1AP_Criticality_ignore;
ie->value.present = S1AP_TraceFailureIndicationIEs__value_PR_Cause;
memcpy(&ie->value.choice.Cause, cause_p, sizeof(S1AP_Cause_t));
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
if (s1ap_eNB_encode_pdu(&pdu, &buffer, &length) < 0) {
return;
}
@@ -71,46 +101,46 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
length, ue_desc_p->tx_stream);
}
int s1ap_eNB_handle_trace_start(uint32_t assoc_id,
uint32_t stream,
struct s1ap_message_s *message_p)
int s1ap_eNB_handle_trace_start(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu)
{
S1ap_TraceStartIEs_t *trace_start_p;
S1AP_TraceStart_t *container;
S1AP_TraceStartIEs_t *ie;
struct s1ap_eNB_ue_context_s *ue_desc_p;
struct s1ap_eNB_mme_data_s *mme_ref_p;
DevAssert(message_p != NULL);
DevAssert(pdu != NULL);
trace_start_p = &message_p->msg.s1ap_TraceStartIEs;
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,
trace_start_p->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.
*/
S1ap_E_UTRAN_Trace_ID_t trace_id;
S1ap_Cause_t cause;
memset(&trace_id, 0, sizeof(S1ap_E_UTRAN_Trace_ID_t));
memset(&cause, 0, sizeof(S1ap_Cause_t));
cause.present = S1ap_Cause_PR_radioNetwork;
cause.choice.radioNetwork = S1ap_CauseRadioNetwork_unknown_pair_ue_s1ap_id;
S1AP_E_UTRAN_Trace_ID_t trace_id;
S1AP_Cause_t cause;
memset(&trace_id, 0, sizeof(S1AP_E_UTRAN_Trace_ID_t));
memset(&cause, 0, sizeof(S1AP_Cause_t));
cause.present = S1AP_Cause_PR_radioNetwork;
cause.choice.radioNetwork = S1AP_CauseRadioNetwork_unknown_pair_ue_s1ap_id;
s1ap_eNB_generate_trace_failure(ue_desc_p, &trace_id, &cause);
}
return 0;
}
int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id,
uint32_t stream,
struct s1ap_message_s *message_p)
int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *message_p)
{
// S1ap_DeactivateTraceIEs_t *deactivate_trace_p;
// S1AP_DeactivateTraceIEs_t *deactivate_trace_p;
//
// deactivate_trace_p = &message_p->msg.deactivateTraceIEs;
+6 -6
View File
@@ -32,15 +32,15 @@
// int s1ap_eNB_handle_trace_start(eNB_mme_desc_t *eNB_desc_p,
// sctp_queue_item_t *packet_p,
// struct s1ap_message_s *message_p);
int s1ap_eNB_handle_trace_start(uint32_t assoc_id,
uint32_t stream,
struct s1ap_message_s *message_p);
int s1ap_eNB_handle_trace_start(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu);
// int s1ap_eNB_handle_deactivate_trace(eNB_mme_desc_t *eNB_desc_p,
// sctp_queue_item_t *packet_p,
// struct s1ap_message_s *message_p);
int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id,
uint32_t stream,
struct s1ap_message_s *message_p);
int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id,
uint32_t stream,
S1AP_S1AP_PDU_t *pdu);
#endif /* S1AP_ENB_TRACE_H_ */
+1 -1
View File
@@ -41,7 +41,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 {\
+7 -145
View File
@@ -29,140 +29,20 @@
#include "intertask_interface.h"
#include "platform_types.h"
#include "s1ap_ies_defs.h"
#include "s1ap_eNB_decoder.h"
#include "assertions.h"
#include "play_scenario.h"
//------------------------------------------------------------------------------
int et_s1ap_decode_initiating_message(s1ap_message *message, S1ap_InitiatingMessage_t *initiating_p)
{
int ret = -1;
DevAssert(initiating_p != NULL);
message->procedureCode = initiating_p->procedureCode;
message->criticality = initiating_p->criticality;
switch(initiating_p->procedureCode) {
case S1ap_ProcedureCode_id_downlinkNASTransport:
ret = s1ap_decode_s1ap_downlinknastransporties(&message->msg.s1ap_DownlinkNASTransportIEs,&initiating_p->value);
break;
case S1ap_ProcedureCode_id_InitialContextSetup:
ret = s1ap_decode_s1ap_initialcontextsetuprequesties(&message->msg.s1ap_InitialContextSetupRequestIEs, &initiating_p->value);
break;
case S1ap_ProcedureCode_id_UEContextRelease:
ret = s1ap_decode_s1ap_uecontextreleasecommandies(&message->msg.s1ap_UEContextReleaseCommandIEs, &initiating_p->value);
break;
case S1ap_ProcedureCode_id_Paging:
ret = s1ap_decode_s1ap_pagingies(&message->msg.s1ap_PagingIEs, &initiating_p->value);
break;
case S1ap_ProcedureCode_id_uplinkNASTransport:
ret = s1ap_decode_s1ap_uplinknastransporties (&message->msg.s1ap_UplinkNASTransportIEs, &initiating_p->value);
break;
case S1ap_ProcedureCode_id_S1Setup:
ret = s1ap_decode_s1ap_s1setuprequesties (&message->msg.s1ap_S1SetupRequestIEs, &initiating_p->value);
break;
case S1ap_ProcedureCode_id_initialUEMessage:
ret = s1ap_decode_s1ap_initialuemessageies (&message->msg.s1ap_InitialUEMessageIEs, &initiating_p->value);
break;
case S1ap_ProcedureCode_id_UEContextReleaseRequest:
ret = s1ap_decode_s1ap_uecontextreleaserequesties (&message->msg.s1ap_UEContextReleaseRequestIEs, &initiating_p->value);
break;
case S1ap_ProcedureCode_id_UECapabilityInfoIndication:
ret = s1ap_decode_s1ap_uecapabilityinfoindicationies (&message->msg.s1ap_UECapabilityInfoIndicationIEs, &initiating_p->value);
break;
case S1ap_ProcedureCode_id_NASNonDeliveryIndication:
ret = s1ap_decode_s1ap_nasnondeliveryindication_ies (&message->msg.s1ap_NASNonDeliveryIndication_IEs, &initiating_p->value);
break;
default:
AssertFatal( 0 , "Unknown procedure ID (%d) for initiating message\n",
(int)initiating_p->procedureCode);
return -1;
}
return ret;
}
//------------------------------------------------------------------------------
int et_s1ap_decode_successful_outcome(s1ap_message *message, S1ap_SuccessfulOutcome_t *successfullOutcome_p)
{
int ret = -1;
DevAssert(successfullOutcome_p != NULL);
message->procedureCode = successfullOutcome_p->procedureCode;
message->criticality = successfullOutcome_p->criticality;
switch(successfullOutcome_p->procedureCode) {
case S1ap_ProcedureCode_id_S1Setup:
ret = s1ap_decode_s1ap_s1setupresponseies(
&message->msg.s1ap_S1SetupResponseIEs, &successfullOutcome_p->value);
break;
case S1ap_ProcedureCode_id_InitialContextSetup:
ret = s1ap_decode_s1ap_initialcontextsetupresponseies (&message->msg.s1ap_InitialContextSetupResponseIEs, &successfullOutcome_p->value);
break;
case S1ap_ProcedureCode_id_UEContextRelease:
ret = s1ap_decode_s1ap_uecontextreleasecompleteies (&message->msg.s1ap_UEContextReleaseCompleteIEs, &successfullOutcome_p->value);
break;
default:
AssertFatal(0, "Unknown procedure ID (%d) for successfull outcome message\n",
(int)successfullOutcome_p->procedureCode);
return -1;
}
return ret;
}
//------------------------------------------------------------------------------
int et_s1ap_decode_unsuccessful_outcome(s1ap_message *message, S1ap_UnsuccessfulOutcome_t *unSuccessfullOutcome_p)
{
int ret = -1;
DevAssert(unSuccessfullOutcome_p != NULL);
message->procedureCode = unSuccessfullOutcome_p->procedureCode;
message->criticality = unSuccessfullOutcome_p->criticality;
switch(unSuccessfullOutcome_p->procedureCode) {
case S1ap_ProcedureCode_id_S1Setup:
ret = s1ap_decode_s1ap_s1setupfailureies(&message->msg.s1ap_S1SetupFailureIEs, &unSuccessfullOutcome_p->value);
break;
case S1ap_ProcedureCode_id_InitialContextSetup:
ret = s1ap_decode_s1ap_initialcontextsetupfailureies (&message->msg.s1ap_InitialContextSetupFailureIEs, &unSuccessfullOutcome_p->value);
break;
default:
AssertFatal(0,"Unknown procedure ID (%d) for unsuccessfull outcome message\n",
(int)unSuccessfullOutcome_p->procedureCode);
break;
}
return ret;
}
//------------------------------------------------------------------------------
int et_s1ap_decode_pdu(S1AP_PDU_t * const pdu, s1ap_message * const message, const uint8_t * const buffer, const uint32_t length)
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_PDU_t));
memset((void *)pdu, 0, sizeof(S1AP_S1AP_PDU_t));
dec_ret = aper_decode(NULL,
&asn_DEF_S1AP_PDU,
&asn_DEF_S1AP_S1AP_PDU,
(void **)&pdu,
buffer,
length,
@@ -174,32 +54,14 @@ int et_s1ap_decode_pdu(S1AP_PDU_t * const pdu, s1ap_message * const message, con
return -1;
}
message->direction = pdu->present;
switch(pdu->present) {
case S1AP_PDU_PR_initiatingMessage:
return et_s1ap_decode_initiating_message(message,
&pdu->choice.initiatingMessage);
case S1AP_PDU_PR_successfulOutcome:
return et_s1ap_decode_successful_outcome(message,
&pdu->choice.successfulOutcome);
case S1AP_PDU_PR_unsuccessfulOutcome:
return et_s1ap_decode_unsuccessful_outcome(message,
&pdu->choice.unsuccessfulOutcome);
default:
AssertFatal(0, "Unknown presence (%d) or not implemented\n", (int)pdu->present);
break;
}
return -1;
return dec_ret.code;
}
//------------------------------------------------------------------------------
void et_decode_s1ap(et_s1ap_t * const s1ap)
void et_decode_s1ap(et_s1ap_t *const s1ap)
{
if (NULL != s1ap) {
if (et_s1ap_decode_pdu(&s1ap->pdu, &s1ap->message, s1ap->binary_stream, s1ap->binary_stream_allocated_size) < 0) {
if (et_s1ap_decode_pdu(&s1ap->pdu, s1ap->binary_stream, s1ap->binary_stream_allocated_size) < 0) {
AssertFatal (0, "ERROR %s() Cannot decode S1AP message!\n", __FUNCTION__);
}
}
+31 -28
View File
@@ -181,15 +181,15 @@ void et_s1ap_eNB_itti_send_sctp_data_req(instance_t instance, int32_t assoc_id,
//------------------------------------------------------------------------------
int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packet_t * const rx_packet)
{
S1ap_MME_UE_S1AP_ID_t scenario_mme_ue_s1ap_id = 0;
S1ap_MME_UE_S1AP_ID_t rx_mme_ue_s1ap_id = 0;
S1AP_MME_UE_S1AP_ID_t scenario_mme_ue_s1ap_id = 0;
S1AP_MME_UE_S1AP_ID_t rx_mme_ue_s1ap_id = 0;
S1AP_PDU_PR present;
present = rx_packet->sctp_hdr.u.data_hdr.payload.pdu.present;
switch (rx_packet->sctp_hdr.u.data_hdr.payload.message.procedureCode) {
case S1ap_ProcedureCode_id_HandoverPreparation:
if (present == S1AP_PDU_PR_initiatingMessage) {
case S1AP_ProcedureCode_id_HandoverPreparation:
if (present == S1AP_S1AP_PDU_PR_initiatingMessage) {
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequiredIEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequiredIEs.mme_ue_s1ap_id;
} else {
@@ -198,36 +198,36 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packe
}
break;
case S1ap_ProcedureCode_id_HandoverResourceAllocation:
if (present == S1AP_PDU_PR_initiatingMessage) {
case S1AP_ProcedureCode_id_HandoverResourceAllocation:
if (present == S1AP_S1AP_PDU_PR_initiatingMessage) {
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequestIEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequestIEs.mme_ue_s1ap_id;
} else if (present == S1AP_PDU_PR_successfulOutcome) {
} else if (present == S1AP_S1AP_PDU_PR_successfulOutcome) {
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequestAcknowledgeIEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverRequestAcknowledgeIEs.mme_ue_s1ap_id;
} else if (present == S1AP_PDU_PR_unsuccessfulOutcome) {
} else if (present == S1AP_S1AP_PDU_PR_unsuccessfulOutcome) {
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverFailureIEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverFailureIEs.mme_ue_s1ap_id;
}
break;
case S1ap_ProcedureCode_id_HandoverNotification:
case S1AP_ProcedureCode_id_HandoverNotification:
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverNotifyIEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverNotifyIEs.mme_ue_s1ap_id;
break;
case S1ap_ProcedureCode_id_PathSwitchRequest:
case S1AP_ProcedureCode_id_PathSwitchRequest:
//rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_PathSwitchRequestIEs.mme_ue_s1ap_id;
//scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_PathSwitchRequestIEs.mme_ue_s1ap_id;
break;
case S1ap_ProcedureCode_id_HandoverCancel:
case S1AP_ProcedureCode_id_HandoverCancel:
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverCancelIEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_HandoverCancelIEs.mme_ue_s1ap_id;
break;
case S1ap_ProcedureCode_id_E_RABSetup:
if (present == S1AP_PDU_PR_initiatingMessage) {
case S1AP_ProcedureCode_id_E_RABSetup:
if (present == S1AP_S1AP_PDU_PR_initiatingMessage) {
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_E_RABSetupRequestIEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_E_RABSetupRequestIEs.mme_ue_s1ap_id;
} else {
@@ -456,29 +456,29 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packe
}*/
break;
case S1ap_ProcedureCode_id_eNBDirectInformationTransfer:
case S1AP_ProcedureCode_id_eNBDirectInformationTransfer:
//rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_ENBDirectInformationTransferIEs.mme_ue_s1ap_id;
//scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_ENBDirectInformationTransferIEs.mme_ue_s1ap_id;
break;
case S1ap_ProcedureCode_id_MMEDirectInformationTransfer:
case S1AP_ProcedureCode_id_MMEDirectInformationTransfer:
//rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_MMEDirectInformationTransferIEs.mme_ue_s1ap_id;
//scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_MMEDirectInformationTransferIEs.mme_ue_s1ap_id;
break;
case S1ap_ProcedureCode_id_PrivateMessage:
case S1ap_ProcedureCode_id_eNBConfigurationTransfer:
case S1ap_ProcedureCode_id_MMEConfigurationTransfer:
case S1AP_ProcedureCode_id_PrivateMessage:
case S1AP_ProcedureCode_id_eNBConfigurationTransfer:
case S1AP_ProcedureCode_id_MMEConfigurationTransfer:
AssertFatal(0, "TODO");
break;
case S1ap_ProcedureCode_id_CellTrafficTrace:
case S1AP_ProcedureCode_id_CellTrafficTrace:
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_CellTrafficTraceIEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_CellTrafficTraceIEs.mme_ue_s1ap_id;
break;
case S1ap_ProcedureCode_id_Kill:
/*if (present == S1AP_PDU_PR_initiatingMessage) {
case S1AP_ProcedureCode_id_Kill:
/*if (present == S1AP_S1AP_PDU_PR_initiatingMessage) {
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_KillRequestIEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_KillRequestIEs.mme_ue_s1ap_id;
} else {
@@ -487,22 +487,22 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packe
}*/
break;
case S1ap_ProcedureCode_id_downlinkUEAssociatedLPPaTransport:
case S1AP_ProcedureCode_id_downlinkUEAssociatedLPPaTransport:
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_DownlinkUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_DownlinkUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id;
break;
case S1ap_ProcedureCode_id_uplinkUEAssociatedLPPaTransport:
case S1AP_ProcedureCode_id_uplinkUEAssociatedLPPaTransport:
rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_UplinkUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id;
scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_UplinkUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id;
break;
case S1ap_ProcedureCode_id_downlinkNonUEAssociatedLPPaTransport:
case S1AP_ProcedureCode_id_downlinkNonUEAssociatedLPPaTransport:
//rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_DownlinkNonUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id;
//scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_DownlinkNonUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id;
break;
case S1ap_ProcedureCode_id_uplinkNonUEAssociatedLPPaTransport:
case S1AP_ProcedureCode_id_uplinkNonUEAssociatedLPPaTransport:
//rx_mme_ue_s1ap_id = rx_packet->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_UplinkNonUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id;
//scenario_mme_ue_s1ap_id = spacket->sctp_hdr.u.data_hdr.payload.message.msg.s1ap_UplinkNonUEAssociatedLPPaTransport_IEs.mme_ue_s1ap_id;
break;
@@ -510,9 +510,11 @@ int et_handle_s1ap_mismatch_mme_ue_s1ap_id(et_packet_t * const spacket, et_packe
default:
AssertFatal(0, "Unknown procedure code %ld", rx_packet->sctp_hdr.u.data_hdr.payload.message.procedureCode);
}
if (scenario_mme_ue_s1ap_id != rx_mme_ue_s1ap_id) {
S1AP_DEBUG("%s() Updating mme_ue_s1ap_id %u -> %u \n", __FUNCTION__, scenario_mme_ue_s1ap_id, rx_mme_ue_s1ap_id);
et_packet_t * p = spacket;
et_packet_t *p = spacket;
while (p) {
et_s1ap_update_mme_ue_s1ap_id(p, scenario_mme_ue_s1ap_id, rx_mme_ue_s1ap_id);
p = p->next;
@@ -672,8 +674,9 @@ int et_s1ap_process_rx_packet(et_event_s1ap_data_ind_t * const s1ap_data_ind)
packet->packet_number, packet->original_frame_number);
while (comp_results) {
S1AP_DEBUG("Result err code %s(%u) ASN1 struct name %s\n",
et_error_match2str(comp_results->err_code), comp_results->err_code, comp_results->name);
// (each asn1 rc <= 166 (enum e_S1ap_ProtocolIE_ID, in generated file S1ap_ProtocolIE_ID.h))
et_error_match2str(comp_results->err_code), comp_results->err_code, comp_results->name);
// (each asn1 rc <= 166 (enum e_S1AP_ProtocolIE_ID, in generated file S1AP_ProtocolIE_ID.h))
if (comp_results->err_code == COMPARE_ERR_CODE_NO_MATCH) {
//TODO MME_UE_S1AP_ID, etc.
// get latest error code
@@ -56,400 +56,9 @@ extern et_scenario_t *g_scenario;
extern uint32_t g_constraints;
//------------------------------------------------------------------------------
asn_comp_rval_t * et_s1ap_ies_is_matching(const S1AP_PDU_PR present, s1ap_message * const m1, s1ap_message * const m2, const uint32_t constraints)
{
asn_comp_rval_t *ret = NULL;
AssertFatal(m1 != NULL, "bad parameter m1");
AssertFatal(m2 != NULL, "bad parameter m2");
AssertFatal((present == S1AP_PDU_PR_initiatingMessage) ||
(present == S1AP_PDU_PR_successfulOutcome) ||
(present == S1AP_PDU_PR_unsuccessfulOutcome) , "Bad parameter S1AP_PDU_PR present ");
AssertFatal( m1->procedureCode == m2->procedureCode, "Bad parameters: no matching procedure codes");
// some cases can never occur since uplink only.
switch (m1->procedureCode) {
case S1ap_ProcedureCode_id_HandoverPreparation:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_handoverrequiredies(
&m1->msg.s1ap_HandoverRequiredIEs,
&m2->msg.s1ap_HandoverRequiredIEs);
} else {
ret = s1ap_compare_s1ap_handovercommandies(
&m1->msg.s1ap_HandoverCommandIEs,
&m2->msg.s1ap_HandoverCommandIEs);
}
break;
case S1ap_ProcedureCode_id_HandoverResourceAllocation:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_handoverrequesties(
&m1->msg.s1ap_HandoverRequestIEs,
&m2->msg.s1ap_HandoverRequestIEs);
} else if (present == S1AP_PDU_PR_successfulOutcome) {
ret = s1ap_compare_s1ap_handoverrequestacknowledgeies(
&m1->msg.s1ap_HandoverRequestAcknowledgeIEs,
&m2->msg.s1ap_HandoverRequestAcknowledgeIEs);
} else if (present == S1AP_PDU_PR_unsuccessfulOutcome) {
ret = s1ap_compare_s1ap_handoverfailureies(
&m1->msg.s1ap_HandoverFailureIEs,
&m2->msg.s1ap_HandoverFailureIEs);
}
break;
case S1ap_ProcedureCode_id_HandoverNotification:
ret = s1ap_compare_s1ap_handovernotifyies(
&m1->msg.s1ap_HandoverNotifyIEs,
&m2->msg.s1ap_HandoverNotifyIEs);
break;
case S1ap_ProcedureCode_id_PathSwitchRequest:
ret = s1ap_compare_s1ap_pathswitchrequesties(
&m1->msg.s1ap_PathSwitchRequestIEs,
&m2->msg.s1ap_PathSwitchRequestIEs);
break;
case S1ap_ProcedureCode_id_HandoverCancel:
ret = s1ap_compare_s1ap_handovercancelies(
&m1->msg.s1ap_HandoverCancelIEs,
&m2->msg.s1ap_HandoverCancelIEs);
break;
case S1ap_ProcedureCode_id_E_RABSetup:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_e_rabsetuprequesties(
&m1->msg.s1ap_E_RABSetupRequestIEs,
&m2->msg.s1ap_E_RABSetupRequestIEs);
} else {
ret = s1ap_compare_s1ap_e_rabsetupresponseies(
&m1->msg.s1ap_E_RABSetupResponseIEs,
&m2->msg.s1ap_E_RABSetupResponseIEs);
}
break;
case S1ap_ProcedureCode_id_E_RABModify:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_e_rabmodifyrequesties(
&m1->msg.s1ap_E_RABModifyRequestIEs,
&m2->msg.s1ap_E_RABModifyRequestIEs);
} else {
ret = s1ap_compare_s1ap_e_rabmodifyresponseies(
&m1->msg.s1ap_E_RABModifyResponseIEs,
&m2->msg.s1ap_E_RABModifyResponseIEs);
}
break;
case S1ap_ProcedureCode_id_E_RABRelease:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_e_rabreleasecommandies(
&m1->msg.s1ap_E_RABReleaseCommandIEs,
&m2->msg.s1ap_E_RABReleaseCommandIEs);
} else {
ret = s1ap_compare_s1ap_e_rabreleaseresponseies(
&m1->msg.s1ap_E_RABReleaseResponseIEs,
&m2->msg.s1ap_E_RABReleaseResponseIEs);
}
break;
case S1ap_ProcedureCode_id_E_RABReleaseIndication:
ret = s1ap_compare_s1ap_e_rabreleaseindicationies(
&m1->msg.s1ap_E_RABReleaseIndicationIEs,
&m2->msg.s1ap_E_RABReleaseIndicationIEs);
break;
case S1ap_ProcedureCode_id_InitialContextSetup:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_initialcontextsetuprequesties(
&m1->msg.s1ap_InitialContextSetupRequestIEs,
&m2->msg.s1ap_InitialContextSetupRequestIEs);
} else {
ret = s1ap_compare_s1ap_initialcontextsetupresponseies(
&m1->msg.s1ap_InitialContextSetupResponseIEs,
&m2->msg.s1ap_InitialContextSetupResponseIEs);
}
break;
case S1ap_ProcedureCode_id_Paging:
ret = s1ap_compare_s1ap_pagingies(
&m1->msg.s1ap_PagingIEs,
&m2->msg.s1ap_PagingIEs);
break;
case S1ap_ProcedureCode_id_downlinkNASTransport:
ret = s1ap_compare_s1ap_downlinknastransporties(
&m1->msg.s1ap_DownlinkNASTransportIEs,
&m2->msg.s1ap_DownlinkNASTransportIEs);
break;
case S1ap_ProcedureCode_id_initialUEMessage:
ret = s1ap_compare_s1ap_initialuemessageies(
&m1->msg.s1ap_InitialUEMessageIEs,
&m2->msg.s1ap_InitialUEMessageIEs);
break;
case S1ap_ProcedureCode_id_uplinkNASTransport:
ret = s1ap_compare_s1ap_uplinknastransporties(
&m1->msg.s1ap_UplinkNASTransportIEs,
&m2->msg.s1ap_UplinkNASTransportIEs);
break;
case S1ap_ProcedureCode_id_Reset:
ret = s1ap_compare_s1ap_reseties(
&m1->msg.s1ap_ResetIEs,
&m2->msg.s1ap_ResetIEs);
break;
case S1ap_ProcedureCode_id_ErrorIndication:
ret = s1ap_compare_s1ap_errorindicationies(
&m1->msg.s1ap_ErrorIndicationIEs,
&m2->msg.s1ap_ErrorIndicationIEs);
break;
case S1ap_ProcedureCode_id_NASNonDeliveryIndication:
ret = s1ap_compare_s1ap_nasnondeliveryindication_ies(
&m1->msg.s1ap_NASNonDeliveryIndication_IEs,
&m2->msg.s1ap_NASNonDeliveryIndication_IEs);
break;
case S1ap_ProcedureCode_id_S1Setup:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_s1setuprequesties(
&m1->msg.s1ap_S1SetupRequestIEs,
&m2->msg.s1ap_S1SetupRequestIEs);
} else if (present == S1AP_PDU_PR_successfulOutcome) {
ret = s1ap_compare_s1ap_s1setupresponseies(
&m1->msg.s1ap_S1SetupResponseIEs,
&m2->msg.s1ap_S1SetupResponseIEs);
} else if (present == S1AP_PDU_PR_unsuccessfulOutcome) {
ret = s1ap_compare_s1ap_s1setupfailureies(
&m1->msg.s1ap_S1SetupFailureIEs,
&m2->msg.s1ap_S1SetupFailureIEs);
}
break;
case S1ap_ProcedureCode_id_UEContextReleaseRequest:
ret = s1ap_compare_s1ap_uecontextreleaserequesties(
&m1->msg.s1ap_UEContextReleaseRequestIEs,
&m2->msg.s1ap_UEContextReleaseRequestIEs);
break;
case S1ap_ProcedureCode_id_DownlinkS1cdma2000tunneling:
ret = s1ap_compare_s1ap_downlinks1cdma2000tunnelingies(
&m1->msg.s1ap_DownlinkS1cdma2000tunnelingIEs,
&m2->msg.s1ap_DownlinkS1cdma2000tunnelingIEs);
break;
case S1ap_ProcedureCode_id_UplinkS1cdma2000tunneling:
ret = s1ap_compare_s1ap_uplinks1cdma2000tunnelingies(
&m1->msg.s1ap_UplinkS1cdma2000tunnelingIEs,
&m2->msg.s1ap_UplinkS1cdma2000tunnelingIEs);
break;
case S1ap_ProcedureCode_id_UEContextModification:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_uecontextmodificationrequesties(
&m1->msg.s1ap_UEContextModificationRequestIEs,
&m2->msg.s1ap_UEContextModificationRequestIEs);
} else if (present == S1AP_PDU_PR_successfulOutcome) {
ret = s1ap_compare_s1ap_uecontextmodificationresponseies(
&m1->msg.s1ap_UEContextModificationResponseIEs,
&m2->msg.s1ap_UEContextModificationResponseIEs);
} else if (present == S1AP_PDU_PR_unsuccessfulOutcome) {
ret = s1ap_compare_s1ap_uecontextmodificationfailureies(
&m1->msg.s1ap_UEContextModificationFailureIEs,
&m2->msg.s1ap_UEContextModificationFailureIEs);
}
break;
case S1ap_ProcedureCode_id_UECapabilityInfoIndication:
ret = s1ap_compare_s1ap_uecapabilityinfoindicationies(
&m1->msg.s1ap_UECapabilityInfoIndicationIEs,
&m2->msg.s1ap_UECapabilityInfoIndicationIEs);
break;
case S1ap_ProcedureCode_id_UEContextRelease:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_uecontextreleasecommandies(
&m1->msg.s1ap_UEContextReleaseCommandIEs,
&m2->msg.s1ap_UEContextReleaseCommandIEs);
} else {
ret = s1ap_compare_s1ap_uecontextreleasecompleteies(
&m1->msg.s1ap_UEContextReleaseCompleteIEs,
&m2->msg.s1ap_UEContextReleaseCompleteIEs);
}
break;
case S1ap_ProcedureCode_id_eNBStatusTransfer:
ret = s1ap_compare_s1ap_enbstatustransferies(
&m1->msg.s1ap_ENBStatusTransferIEs,
&m2->msg.s1ap_ENBStatusTransferIEs);
break;
case S1ap_ProcedureCode_id_MMEStatusTransfer:
ret = s1ap_compare_s1ap_mmestatustransferies(
&m1->msg.s1ap_MMEStatusTransferIEs,
&m2->msg.s1ap_MMEStatusTransferIEs);
break;
case S1ap_ProcedureCode_id_DeactivateTrace:
ret = s1ap_compare_s1ap_deactivatetraceies(
&m1->msg.s1ap_DeactivateTraceIEs,
&m2->msg.s1ap_DeactivateTraceIEs);
break;
case S1ap_ProcedureCode_id_TraceStart:
ret = s1ap_compare_s1ap_tracestarties(
&m1->msg.s1ap_TraceStartIEs,
&m2->msg.s1ap_TraceStartIEs);
break;
case S1ap_ProcedureCode_id_TraceFailureIndication:
ret = s1ap_compare_s1ap_tracefailureindicationies(
&m1->msg.s1ap_TraceFailureIndicationIEs,
&m2->msg.s1ap_TraceFailureIndicationIEs);
break;
case S1ap_ProcedureCode_id_ENBConfigurationUpdate:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_enbconfigurationupdateies(
&m1->msg.s1ap_ENBConfigurationUpdateIEs,
&m2->msg.s1ap_ENBConfigurationUpdateIEs);
} else if (present == S1AP_PDU_PR_successfulOutcome) {
ret = s1ap_compare_s1ap_enbconfigurationupdateacknowledgeies(
&m1->msg.s1ap_ENBConfigurationUpdateAcknowledgeIEs,
&m2->msg.s1ap_ENBConfigurationUpdateAcknowledgeIEs);
} else {
ret = s1ap_compare_s1ap_enbconfigurationupdatefailureies(
&m1->msg.s1ap_ENBConfigurationUpdateFailureIEs,
&m2->msg.s1ap_ENBConfigurationUpdateFailureIEs);
}
break;
case S1ap_ProcedureCode_id_MMEConfigurationUpdate:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_mmeconfigurationupdateies(
&m1->msg.s1ap_MMEConfigurationUpdateIEs,
&m2->msg.s1ap_MMEConfigurationUpdateIEs);
} else if (present == S1AP_PDU_PR_successfulOutcome) {
ret = s1ap_compare_s1ap_mmeconfigurationupdateacknowledgeies(
&m1->msg.s1ap_MMEConfigurationUpdateAcknowledgeIEs,
&m2->msg.s1ap_MMEConfigurationUpdateAcknowledgeIEs);
} else {
ret = s1ap_compare_s1ap_mmeconfigurationupdatefailureies(
&m1->msg.s1ap_MMEConfigurationUpdateFailureIEs,
&m2->msg.s1ap_MMEConfigurationUpdateFailureIEs);
}
break;
case S1ap_ProcedureCode_id_LocationReportingControl:
ret = s1ap_compare_s1ap_locationreportingcontrolies(
&m1->msg.s1ap_LocationReportingControlIEs,
&m2->msg.s1ap_LocationReportingControlIEs);
break;
case S1ap_ProcedureCode_id_LocationReportingFailureIndication:
ret = s1ap_compare_s1ap_locationreportingfailureindicationies(
&m1->msg.s1ap_LocationReportingFailureIndicationIEs,
&m2->msg.s1ap_LocationReportingFailureIndicationIEs);
break;
case S1ap_ProcedureCode_id_LocationReport:
ret = s1ap_compare_s1ap_locationreporties(
&m1->msg.s1ap_LocationReportIEs,
&m2->msg.s1ap_LocationReportIEs);
break;
case S1ap_ProcedureCode_id_OverloadStart:
ret = s1ap_compare_s1ap_overloadstarties(
&m1->msg.s1ap_OverloadStartIEs,
&m2->msg.s1ap_OverloadStartIEs);
break;
case S1ap_ProcedureCode_id_OverloadStop:
ret = s1ap_compare_s1ap_overloadstopies(
&m1->msg.s1ap_OverloadStopIEs,
&m2->msg.s1ap_OverloadStopIEs);
break;
case S1ap_ProcedureCode_id_WriteReplaceWarning:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_writereplacewarningrequesties(
&m1->msg.s1ap_WriteReplaceWarningRequestIEs,
&m2->msg.s1ap_WriteReplaceWarningRequestIEs);
} else {
ret = s1ap_compare_s1ap_writereplacewarningresponseies(
&m1->msg.s1ap_WriteReplaceWarningResponseIEs,
&m2->msg.s1ap_WriteReplaceWarningResponseIEs);
}
break;
case S1ap_ProcedureCode_id_eNBDirectInformationTransfer:
ret = s1ap_compare_s1ap_enbdirectinformationtransferies(
&m1->msg.s1ap_ENBDirectInformationTransferIEs,
&m2->msg.s1ap_ENBDirectInformationTransferIEs);
break;
case S1ap_ProcedureCode_id_MMEDirectInformationTransfer:
ret = s1ap_compare_s1ap_mmedirectinformationtransferies(
&m1->msg.s1ap_MMEDirectInformationTransferIEs,
&m2->msg.s1ap_MMEDirectInformationTransferIEs);
break;
case S1ap_ProcedureCode_id_PrivateMessage:
case S1ap_ProcedureCode_id_eNBConfigurationTransfer:
case S1ap_ProcedureCode_id_MMEConfigurationTransfer:
AssertFatal(0, "TODO");
break;
case S1ap_ProcedureCode_id_CellTrafficTrace:
ret = s1ap_compare_s1ap_celltraffictraceies(
&m1->msg.s1ap_CellTrafficTraceIEs,
&m2->msg.s1ap_CellTrafficTraceIEs);
break;
case S1ap_ProcedureCode_id_Kill:
if (present == S1AP_PDU_PR_initiatingMessage) {
ret = s1ap_compare_s1ap_killrequesties(
&m1->msg.s1ap_KillRequestIEs,
&m2->msg.s1ap_KillRequestIEs);
} else {
ret = s1ap_compare_s1ap_killresponseies(
&m1->msg.s1ap_KillResponseIEs,
&m2->msg.s1ap_KillResponseIEs);
}
break;
case S1ap_ProcedureCode_id_downlinkUEAssociatedLPPaTransport:
ret = s1ap_compare_s1ap_downlinkueassociatedlppatransport_ies(
&m1->msg.s1ap_DownlinkUEAssociatedLPPaTransport_IEs,
&m2->msg.s1ap_DownlinkUEAssociatedLPPaTransport_IEs);
break;
case S1ap_ProcedureCode_id_uplinkUEAssociatedLPPaTransport:
ret = s1ap_compare_s1ap_uplinkueassociatedlppatransport_ies(
&m1->msg.s1ap_UplinkUEAssociatedLPPaTransport_IEs,
&m2->msg.s1ap_UplinkUEAssociatedLPPaTransport_IEs);
break;
case S1ap_ProcedureCode_id_downlinkNonUEAssociatedLPPaTransport:
ret = s1ap_compare_s1ap_downlinknonueassociatedlppatransport_ies(
&m1->msg.s1ap_DownlinkNonUEAssociatedLPPaTransport_IEs,
&m2->msg.s1ap_DownlinkNonUEAssociatedLPPaTransport_IEs);
break;
case S1ap_ProcedureCode_id_uplinkNonUEAssociatedLPPaTransport:
ret = s1ap_compare_s1ap_uplinknonueassociatedlppatransport_ies(
&m1->msg.s1ap_UplinkNonUEAssociatedLPPaTransport_IEs,
&m2->msg.s1ap_UplinkNonUEAssociatedLPPaTransport_IEs);
break;
default:
AssertFatal(0, "Unknown procedure code %ld", m1->procedureCode);
}
return ret;
}
//asn_comp_rval_t * et_s1ap_ies_is_matching(const S1AP_PDU_PR present, s1ap_message * const m1, s1ap_message * const m2, const uint32_t 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)
{
@@ -583,8 +192,6 @@ void update_xpath_nodes_mme_ue_s1ap_id(et_s1ap_t * const s1ap_payload, xmlNodeSe
//------------------------------------------------------------------------------
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;
-1
View File
@@ -35,7 +35,6 @@
#include "s1ap_common.h"
#include "s1ap_eNB.h"
#include "s1ap_mme.h"
#include "s1ap_ies_defs.h"
char ip_addr[] = "127.0.0.1";

Some files were not shown because too many files have changed in this diff Show More