Commit 09b4c657 authored by Robert Schmidt's avatar Robert Schmidt

Generate and build LTE RRC ASN.1 during build time

parent 8f2e1f66
This diff is collapsed.
...@@ -9,7 +9,7 @@ set(TELNETSRV_SOURCE ...@@ -9,7 +9,7 @@ set(TELNETSRV_SOURCE
add_library(telnetsrv MODULE ${TELNETSRV_SOURCE} ) add_library(telnetsrv MODULE ${TELNETSRV_SOURCE} )
target_link_libraries(telnetsrv PRIVATE history ncurses form ) target_link_libraries(telnetsrv PRIVATE history ncurses form )
target_link_libraries(telnetsrv PRIVATE asn1_nr_rrc) target_link_libraries(telnetsrv PRIVATE asn1_nr_rrc asn1_lte_rrc)
foreach(TELNETLIB enb gnb 4Gue 5Gue) foreach(TELNETLIB enb gnb 4Gue 5Gue)
set(TELNETLIB_SRCS "") set(TELNETLIB_SRCS "")
...@@ -23,7 +23,7 @@ foreach(TELNETLIB enb gnb 4Gue 5Gue) ...@@ -23,7 +23,7 @@ foreach(TELNETLIB enb gnb 4Gue 5Gue)
message("Add ${TELNETLIB} specific telnet functions in libtelnetsrv_${TELNETLIB}.so") message("Add ${TELNETLIB} specific telnet functions in libtelnetsrv_${TELNETLIB}.so")
add_library(telnetsrv_${TELNETLIB} MODULE ${TELNETLIB_SRCS} ) add_library(telnetsrv_${TELNETLIB} MODULE ${TELNETLIB_SRCS} )
add_dependencies(telnetsrv telnetsrv_${TELNETLIB}) add_dependencies(telnetsrv telnetsrv_${TELNETLIB})
target_link_libraries(telnetsrv_${TELNETLIB} PRIVATE asn1_nr_rrc) target_link_libraries(telnetsrv_${TELNETLIB} PRIVATE asn1_nr_rrc asn1_lte_rrc)
install(TARGETS telnetsrv_${TELNETLIB} DESTINATION bin) install(TARGETS telnetsrv_${TELNETLIB} DESTINATION bin)
else() else()
message("No specific telnet functions for ${TELNETLIB}") message("No specific telnet functions for ${TELNETLIB}")
......
...@@ -3,5 +3,5 @@ add_subdirectory(MESSAGES) ...@@ -3,5 +3,5 @@ add_subdirectory(MESSAGES)
add_library(E1AP e1ap.c) add_library(E1AP e1ap.c)
target_link_libraries(E1AP target_link_libraries(E1AP
PUBLIC asn1_e1ap PUBLIC asn1_e1ap
PRIVATE UTIL asn1_nr_rrc) PRIVATE UTIL asn1_nr_rrc asn1_lte_rrc)
target_include_directories(E1AP PUBLIC ${CMAKE_CURRENT_DIR}) target_include_directories(E1AP PUBLIC ${CMAKE_CURRENT_DIR})
add_subdirectory(LTE)
add_subdirectory(NR) add_subdirectory(NR)
add_subdirectory(MESSAGES)
This diff is collapsed.
set(LTE_RRC_VERSION 15 6 0)
make_version(LTE_RRC_cc ${LTE_RRC_VERSION})
string(REPLACE ";" "." LTE_RRC_RELEASE "${LTE_RRC_VERSION}")
if(LTE_RRC_RELEASE VERSION_EQUAL "15.6.0")
include(ASN.1/lte-rrc-15.6.0.cmake)
else()
message(FATAL_ERROR "unknown LTE_RRC_RELEASE ${LTE_RRC_RELEASE}")
endif()
add_custom_command(OUTPUT ${lte_rrc_source} ${lte_rrc_headers}
COMMAND ASN1C_PREFIX=LTE_ asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${LTE_RRC_GRAMMAR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${LTE_RRC_GRAMMAR}
COMMENT "Generating LTE RRC source file from ${CMAKE_CURRENT_SOURCE_DIR}/${LTE_RRC_GRAMMAR}"
)
add_library(asn1_lte_rrc ${lte_rrc_source})
target_include_directories(asn1_lte_rrc PUBLIC "${CMAKE_CURRENT_BINARY_DIR}")
target_compile_options(asn1_lte_rrc
PRIVATE -DASN_DISABLE_OER_SUPPORT -w
PUBLIC -DLTE_RRC_VERSION=${LTE_RRC_RELEASE})
This directory contains the necessary schema files to generate all the LTE configuration data structures based on the ASN.1 RRC
source code from the 36.331 RRC specifications. These structures are used by MAC and PHY for configuration purposes.
It contains the following files
```
README.txt : This file
ASN.1 : Directory to place asn1c package
ASN.1/extract_asn1_from_spec.pl : Pearl script to extract ASN.1 source from 36311-860.txt
ASN.1/*.asn1 : Extracted ASN.1 sources
ASN.1/*.cmake : Definitions of which files the corresponding *.asn1 will generate
CMakeLists.txt : The "driver" to generate and build generated source files at build time
```
Instructions to build data structures from ASN1 sources
The asn.1 files have already been built using the `extract_asn1_from_spec.pl`
Pearl script. This should be used again if a newer version of the RRC spec is
used to synthesize the data structures and encoding/decoding routines. To do
this:
1. use Microsoft WORD to generate a text version of the 3GPP 36.331 document
2. run the script on the text file to generate the `*.asn1` file
You should install the asn1c utility using `./build_oai -I`.
Run
```bash
ASN1C_PREFIX=LTE_ asn1c -pdu=all -fcompound-names -gen-PER -no-gen-OER -no-gen-example -D <dir> <asn.1-file>
```
to generate the files that result from the asn.1-file. Create an `ASN.1/*.cmake` file
with the following structure:
```
set(LTE_RRC_GRAMMAR <path-to-asn.1-file>)
set(lte_rrc_source
<list-of-c-files>
)
set(lte_rrc_headers
<list-of-h-files>
)
```
Modify the CMakeLists.txt to point to the newly generated .cmake file. On the
next LTE RRC compilation, the source files will be automatically generated from
the ASN.1 file and built henceforth.
This directory contains the necessary scripts and Makefiles to generate all the LTE configuration data structures based on the ASN.1 RRC
source code from the 36.331 RRC specifications. These structures are used by MAC and PHY for configuration purposes.
It contains the following files
README.txt : This file
Makefile.inc : Makefile to be included by OpenAir compilation scripts for LTE Data structures
asn1c : Directory to place asn1c package
asn1c/ASN1_files/36331-860.txt : Text file containing 36.331-860 specifications used to generate ASN1 source
asn1c/ASN1_files/extract_asn1_from_spec.pl : Pearl script to extract ASN.1 source from 36311-860.txt
asn1c/ASN1_files/EUTRA-RRC-Definitions.asn : First ASN.1 source (generated from above .txt file)
asn1c/ASN1_files/EUTRA-InterNodeDefinitions.asn .asn : Second ASN.1 source (generated from above .txt file)
asn1c/ASN1_files/EUTRA-UE-Variables.asn : Third ASN.1 source (generated from above .txt file)
Instructions to build data structures from ASN1 sources
The three files have already been built using the extract_asn1_from_spec.pl Pearl script. This should be used again if a newer version
of the RRC spec is used to synthesize the data structures and encoding/decoding routines. To do this:
1. use Microsoft WORD to generate a text version of the 3GPP 36.331 document
2. run the script on the text file to generate the three files.
Now download the asn1c utility (version 0.9.22) from
http://lionet.info/asn1c/blog/
or via svn from sourceforge (version 0.9.22)
For version 0.9.2:
svn co https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk asn1c
For the latest version:
svn co https://github.com/vlm/asn1c/trunk asn1c
and put it in the asn1c directory (you should have a second asn1c directory now). Compile it and install it locally
(or make sure your $PATH can find the asn1c executable) according to the instructions given (see INSTALL file)
by the author. We have validated that 0.9.22 works on Linux and Cygwin. To generate the data structures do the following from the
current directory
asn1c -gen-PER -fcompound-names -fnative-types -fskeletons-copy ./asn1c/ASN1_files/EUTRA-RRC-Definitions.asn
Note this only uses one of the three files from 36.331 (the core of the RRC). After this step you should have many .c and .h files
and one new Makefile, the latter of which is not used.
If you want to compile the ASN1 sources as a kernel module you need to apply the patch asn1_patch
patch -p1 < asn1_patch
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
HandoverCommand ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverCommand-r8 HandoverCommand-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverCommand-r8-IEs ::= SEQUENCE {
handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
HandoverPreparationInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
as-Config AS-Config OPTIONAL, -- Cond HO
rrm-Config RRM-Config OPTIONAL,
as-Context AS-Context OPTIONAL, -- Cond HO
nonCriticalExtension SEQUENCE {} OPTIONAL
}
UERadioAccessCapabilityInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioAccessCapabilityInformation-r8
UERadioAccessCapabilityInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
AS-Config ::= SEQUENCE {
sourceMeasConfig MeasConfig,
sourceRadioResourceConfig RadioResourceConfigDedicated,
sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
sourceUE-Identity C-RNTI,
sourceMasterInformationBlock MasterInformationBlock,
sourceSystemInformationBlockType1 SystemInformationBlockType1,
sourceSystemInformationBlockType2 SystemInformationBlockType2,
antennaInfoCommon AntennaInfoCommon,
sourceDl-CarrierFreq ARFCN-ValueEUTRA,
...
}
AS-Context ::= SEQUENCE {
reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
}
ReestablishmentInfo ::= SEQUENCE {
sourcePhysCellId PhysCellId,
targetCellShortMAC-I ShortMAC-I,
additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
...
}
AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
AdditionalReestabInfo ::= SEQUENCE{
cellIdentity CellIdentity,
key-eNodeB-Star Key-eNodeB-Star,
shortMAC-I ShortMAC-I
}
Key-eNodeB-Star ::= BIT STRING (SIZE (256))
RRM-Config ::= SEQUENCE {
ue-InactiveTime ENUMERATED {
s1, s2, s3, s5, s7, s10, s15, s20,
s25, s30, s40, s50, min1, min1s20c, min1s40,
min2, min2s30, min3, min3s30, min4, min5, min6,
min7, min8, min9, min10, min12, min14, min17, min20,
min24, min28, min33, min38, min44, min50, hr1,
hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
day2hr12, day3, day4, day5, day7, day10, day14, day19,
day24, day30, dayMoreThan30} OPTIONAL,
...
}
maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
-- at handover for re-establishment preparation
END
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
HandoverCommand ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverCommand-r8 HandoverCommand-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverCommand-r8-IEs ::= SEQUENCE {
handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
HandoverPreparationInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
as-Config AS-Config OPTIONAL, -- Cond HO
rrm-Config RRM-Config OPTIONAL,
as-Context AS-Context OPTIONAL, -- Cond HO
nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL
}
HandoverPreparationInformation-v920-IEs ::= SEQUENCE {
ue-ConfigRelease-r9 ENUMERATED {
rel9, rel10, spare6, spare5, spare4, spare3,
spare2, spare1, ...} OPTIONAL, -- Cond HO2
nonCriticalExtension SEQUENCE {} OPTIONAL
}
UERadioAccessCapabilityInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioAccessCapabilityInformation-r8
UERadioAccessCapabilityInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
AS-Config ::= SEQUENCE {
sourceMeasConfig MeasConfig,
sourceRadioResourceConfig RadioResourceConfigDedicated,
sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
sourceUE-Identity C-RNTI,
sourceMasterInformationBlock MasterInformationBlock,
sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS
{..., nonCriticalExtension ABSENT}),
sourceSystemInformationBlockType2 SystemInformationBlockType2,
antennaInfoCommon AntennaInfoCommon,
sourceDl-CarrierFreq ARFCN-ValueEUTRA,
...,
[[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING
SystemInformationBlockType1-v890-IEs) OPTIONAL,
sourceOtherConfig-r9 OtherConfig-r9
]],
[[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL
]]
}
AS-Context ::= SEQUENCE {
reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
}
ReestablishmentInfo ::= SEQUENCE {
sourcePhysCellId PhysCellId,
targetCellShortMAC-I ShortMAC-I,
additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
...
}
AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
AdditionalReestabInfo ::= SEQUENCE{
cellIdentity CellIdentity,
key-eNodeB-Star Key-eNodeB-Star,
shortMAC-I ShortMAC-I
}
Key-eNodeB-Star ::= BIT STRING (SIZE (256))
RRM-Config ::= SEQUENCE {
ue-InactiveTime ENUMERATED {
s1, s2, s3, s5, s7, s10, s15, s20,
s25, s30, s40, s50, min1, min1s20c, min1s40,
min2, min2s30, min3, min3s30, min4, min5, min6,
min7, min8, min9, min10, min12, min14, min17, min20,
min24, min28, min33, min38, min44, min50, hr1,
hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
day2hr12, day3, day4, day5, day7, day10, day14, day19,
day24, day30, dayMoreThan30} OPTIONAL,
...,
[[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL
]]
}
CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10
CandidateCellInfo-r10 ::= SEQUENCE {
-- cellIdentification
physCellId-r10 PhysCellId,
dl-CarrierFreq-r10 ARFCN-ValueEUTRA,
-- available measurement results
rsrpResult-r10 RSRP-Range OPTIONAL,
rsrqResult-r10 RSRQ-Range OPTIONAL,
...
}
maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
-- at handover for re-establishment preparation
END
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
HandoverCommand ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverCommand-r8 HandoverCommand-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverCommand-r8-IEs ::= SEQUENCE {
handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
HandoverPreparationInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
as-Config AS-Config OPTIONAL, -- Cond HO
rrm-Config RRM-Config OPTIONAL,
as-Context AS-Context OPTIONAL, -- Cond HO
nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL
}
HandoverPreparationInformation-v920-IEs ::= SEQUENCE {
ue-ConfigRelease-r9 ENUMERATED {
rel9, rel10, spare6, spare5, spare4, spare3,
spare2, spare1, ...} OPTIONAL, -- Cond HO2
nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL
}
HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE {
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL
}
HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE {
as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2
nonCriticalExtension SEQUENCE {} OPTIONAL
}
UERadioAccessCapabilityInformation ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
ueRadioAccessCapabilityInformation-r8
UERadioAccessCapabilityInformation-r8-IEs,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
nonCriticalExtension SEQUENCE {} OPTIONAL
}
AS-Config ::= SEQUENCE {
sourceMeasConfig MeasConfig,
sourceRadioResourceConfig RadioResourceConfigDedicated,
sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
sourceUE-Identity C-RNTI,
sourceMasterInformationBlock MasterInformationBlock,
sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS
{..., nonCriticalExtension ABSENT}),
sourceSystemInformationBlockType2 SystemInformationBlockType2,
antennaInfoCommon AntennaInfoCommon,
sourceDl-CarrierFreq ARFCN-ValueEUTRA,
...,
[[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING
SystemInformationBlockType1-v890-IEs) OPTIONAL,
sourceOtherConfig-r9 OtherConfig-r9
]],
[[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL
]]
}
AS-Config-v9e0 ::= SEQUENCE {
sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0
}
AS-Context ::= SEQUENCE {
reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
}
ReestablishmentInfo ::= SEQUENCE {
sourcePhysCellId PhysCellId,
targetCellShortMAC-I ShortMAC-I,
additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
...
}
AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
AdditionalReestabInfo ::= SEQUENCE{
cellIdentity CellIdentity,
key-eNodeB-Star Key-eNodeB-Star,
shortMAC-I ShortMAC-I
}
Key-eNodeB-Star ::= BIT STRING (SIZE (256))
RRM-Config ::= SEQUENCE {
ue-InactiveTime ENUMERATED {
s1, s2, s3, s5, s7, s10, s15, s20,
s25, s30, s40, s50, min1, min1s20c, min1s40,
min2, min2s30, min3, min3s30, min4, min5, min6,
min7, min8, min9, min10, min12, min14, min17, min20,
min24, min28, min33, min38, min44, min50, hr1,
hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
day2hr12, day3, day4, day5, day7, day10, day14, day19,
day24, day30, dayMoreThan30} OPTIONAL,
...,
[[ candidateCellInfoList-r10 CandidateCellInfoList-r10 OPTIONAL
]]
}
CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10
CandidateCellInfo-r10 ::= SEQUENCE {
-- cellIdentification
physCellId-r10 PhysCellId,
dl-CarrierFreq-r10 ARFCN-ValueEUTRA,
-- available measurement results
rsrpResult-r10 RSRP-Range OPTIONAL,
rsrqResult-r10 RSRQ-Range OPTIONAL,
...,
[[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL
]]
}
maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
-- at handover for re-establishment preparation
END
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
VarMeasConfig ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModList OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModList OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
s-Measure RSRP-Range OPTIONAL,
speedStatePars CHOICE {
release NULL,
setup SEQUENCE {
mobilityStateParameters MobilityStateParameters,
timeToTrigger-SF SpeedStateScaleFactors
}
} OPTIONAL
}
VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
cellsTriggeredList CellsTriggeredList OPTIONAL,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellId
VarShortMAC-Input ::= SEQUENCE {
cellIdentity CellIdentity,
physCellId PhysCellId,
c-RNTI C-RNTI
}
END
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
VarLogMeasConfig-r10 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10
}
VarLogMeasReport-r10 ::= SEQUENCE {
traceReference-r10 TraceReference-r10,
traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
tce-Id-r10 OCTET STRING (SIZE (1)),
plmn-Identity-r10 PLMN-Identity,
absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
logMeasInfoList-r10 LogMeasInfoList-r10
}
LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10
VarMeasConfig ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModList OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModList OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
s-Measure INTEGER (-140..-44) OPTIONAL,
speedStatePars CHOICE {
release NULL,
setup SEQUENCE {
mobilityStateParameters MobilityStateParameters,
timeToTrigger-SF SpeedStateScaleFactors
}
} OPTIONAL
}
VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
cellsTriggeredList CellsTriggeredList OPTIONAL,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE {
physCellIdEUTRA PhysCellId,
physCellIdUTRA CHOICE {
fdd PhysCellIdUTRA-FDD,
tdd PhysCellIdUTRA-TDD
},
physCellIdGERAN SEQUENCE {
carrierFreq CarrierFreqGERAN,
physCellId PhysCellIdGERAN
},
physCellIdCDMA2000 PhysCellIdCDMA2000
}
VarRLF-Report-r10 ::= SEQUENCE {
rlf-Report-r10 RLF-Report-r9,
plmn-Identity-r10 PLMN-Identity
}
VarShortMAC-Input ::= SEQUENCE {
cellIdentity CellIdentity,
physCellId PhysCellId,
c-RNTI C-RNTI
}
maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries
-- that can be stored by the UE
END
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
VarLogMeasConfig-r10 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10
}
VarLogMeasReport-r10 ::= SEQUENCE {
traceReference-r10 TraceReference-r10,
traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
tce-Id-r10 OCTET STRING (SIZE (1)),
plmn-Identity-r10 PLMN-Identity,
absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
logMeasInfoList-r10 LogMeasInfoList2-r10
}
LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10
VarMeasConfig ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModList OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModList OPTIONAL,
measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
s-Measure INTEGER (-140..-44) OPTIONAL,
speedStatePars CHOICE {
release NULL,
setup SEQUENCE {
mobilityStateParameters MobilityStateParameters,
timeToTrigger-SF SpeedStateScaleFactors
}
} OPTIONAL
}
VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
cellsTriggeredList CellsTriggeredList OPTIONAL,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE {
physCellIdEUTRA PhysCellId,
physCellIdUTRA CHOICE {
fdd PhysCellIdUTRA-FDD,
tdd PhysCellIdUTRA-TDD
},
physCellIdGERAN SEQUENCE {
carrierFreq CarrierFreqGERAN,
physCellId PhysCellIdGERAN
},
physCellIdCDMA2000 PhysCellIdCDMA2000
}
VarRLF-Report-r10 ::= SEQUENCE {
rlf-Report-r10 RLF-Report-r9,
plmn-Identity-r10 PLMN-Identity
}
VarShortMAC-Input ::= SEQUENCE {
cellIdentity CellIdentity,
physCellId PhysCellId,
c-RNTI C-RNTI
}
maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries
-- that can be stored by the UE
END
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
VarConnEstFailReport-r11 ::= SEQUENCE {
connEstFailReport-r11 ConnEstFailReport-r11,
plmn-Identity-r11 PLMN-Identity
}
VarLogMeasConfig-r10 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10
}
VarLogMeasConfig-r11 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10
}
VarLogMeasConfig-r12 ::= SEQUENCE {
areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
loggingDuration-r10 LoggingDuration-r10,
loggingInterval-r10 LoggingInterval-r10,
targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL
}
VarLogMeasReport-r10 ::= SEQUENCE {
traceReference-r10 TraceReference-r10,
traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
tce-Id-r10 OCTET STRING (SIZE (1)),
plmn-Identity-r10 PLMN-Identity,
absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
logMeasInfoList-r10 LogMeasInfoList2-r10
}
VarLogMeasReport-r11 ::= SEQUENCE {
traceReference-r10 TraceReference-r10,
traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
tce-Id-r10 OCTET STRING (SIZE (1)),
plmn-IdentityList-r11 PLMN-IdentityList3-r11,
absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
logMeasInfoList-r10 LogMeasInfoList2-r10
}
LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10
VarMeasConfig ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModList OPTIONAL,
measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModList OPTIONAL,
measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL,
s-Measure INTEGER (-140..-44) OPTIONAL,
speedStatePars CHOICE {
release NULL,
setup SEQUENCE {
mobilityStateParameters MobilityStateParameters,
timeToTrigger-SF SpeedStateScaleFactors
}
} OPTIONAL,
allowInterruptions-r11 BOOLEAN OPTIONAL
}
VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
measId-v1250 MeasId-v1250 OPTIONAL,
cellsTriggeredList CellsTriggeredList OPTIONAL,
csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE {
physCellIdEUTRA PhysCellId,
physCellIdUTRA CHOICE {
fdd PhysCellIdUTRA-FDD,
tdd PhysCellIdUTRA-TDD
},
physCellIdGERAN SEQUENCE {
carrierFreq CarrierFreqGERAN,
physCellId PhysCellIdGERAN
},
physCellIdCDMA2000 PhysCellIdCDMA2000
}
CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12
VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12
VarRLF-Report-r10 ::= SEQUENCE {
rlf-Report-r10 RLF-Report-r9,
plmn-Identity-r10 PLMN-Identity
}
VarRLF-Report-r11 ::= SEQUENCE {
rlf-Report-r10 RLF-Report-r9,
plmn-IdentityList-r11 PLMN-IdentityList3-r11
}
VarShortMAC-Input ::= SEQUENCE {
cellIdentity CellIdentity,
physCellId PhysCellId,
c-RNTI C-RNTI
}
maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries
-- that can be stored by the UE
END
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment