Commit 0d9268ec authored by Thomas Schlichter's avatar Thomas Schlichter

Update NR RRC to version 17.3.0

parent 7975b90d
......@@ -1937,11 +1937,11 @@ int RCconfig_NR_DU_F1(MessageDef *msg_p, uint32_t i) {
int du_check_plmn_identity(rrc_gNB_carrier_data_t *carrier,uint16_t mcc,uint16_t mnc,uint8_t mnc_digit_length) {
NR_SIB1_t *sib1 = carrier->siblock1->message.choice.c1->choice.systemInformationBlockType1;
AssertFatal(sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->plmn_IdentityList.list.count > 0,
AssertFatal(sib1->cellAccessRelatedInfo.plmn_IdentityInfoList.list.array[0]->plmn_IdentityList.list.count > 0,
"plmn info isn't there\n");
AssertFatal(mnc_digit_length == 2 || mnc_digit_length == 3,
"impossible mnc_digit_length %d\n", mnc_digit_length);
NR_PLMN_Identity_t *plmn_Identity = sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]
NR_PLMN_Identity_t *plmn_Identity = sib1->cellAccessRelatedInfo.plmn_IdentityInfoList.list.array[0]
->plmn_IdentityList.list.array[0];
// check if mcc is different and return failure if so
......
......@@ -312,11 +312,11 @@ int8_t nr_get_DELTA_PREAMBLE(module_id_t mod_id, int CC_id, uint16_t prach_forma
mu = 4;
break;
case NR_SubcarrierSpacing_spare3:
case NR_SubcarrierSpacing_kHz480_v1700:
mu = 5;
break;
case NR_SubcarrierSpacing_spare2:
case NR_SubcarrierSpacing_kHz960_v1700:
mu = 6;
break;
......
......@@ -12,68 +12,62 @@ $NR_asn_output_file = "NR-RRC-38331.asn";
sub extract_asn1;
open(INPUT_FILE, "< $input_file") or die "Can not open file $input_file";
open(OUTPUT_FILE, "> $NR_asn_output_file") or die "Can not open file $NR_asn_output_file";
while (<INPUT_FILE>) {
# Process the NR-RRC-Definitions section
if( m/NR-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=/){
open(OUTPUT_FILE, "> $NR_asn_output_file") or die "Can not open file $NR_asn_output_file";
syswrite OUTPUT_FILE,"$_ \n";
syswrite OUTPUT_FILE,"BEGIN\n\n";
syswrite OUTPUT_FILE,"$_";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
while(<INPUT_FILE>) {
if( m/PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_ \n";
syswrite OUTPUT_FILE,"BEGIN\n\n";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
while(<INPUT_FILE>) {
if( m/NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_ \n";
syswrite OUTPUT_FILE,"BEGIN\n\n";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
while(<INPUT_FILE>) {
if( m/NR-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_ \n";
syswrite OUTPUT_FILE,"BEGIN\n\n";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
while(<INPUT_FILE>) {
if( m/NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_ \n";
syswrite OUTPUT_FILE,"BEGIN\n\n";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
}
}
}
}
}
}
}
}
close(OUTPUT_FILE);
} elsif( m/PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
} elsif( m/NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
} elsif( m/NR-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
} elsif( m/NR-Sidelink-DiscoveryMessage DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
} elsif( m/NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_";
# Get all the text delimited by -- ASN1START and -- ASN1STOP
extract_asn1();
syswrite OUTPUT_FILE,"END\n\n";
}
}
close(OUTPUT_FILE);
close(INPUT_FILE);
# This subroutine copies the text delimited by -- ASN1START and -- ASN1STOP in INPUT_FILE
......@@ -81,7 +75,7 @@ close(INPUT_FILE);
# It stops when it meets the keyword "END"
sub extract_asn1 {
my $line = <INPUT_FILE>;
my $is_asn1 = 0;
my $is_asn1 = 1;
while(($line ne "END\n") && ($line ne "END\r\n")){
if ($line =~ m/-- ASN1STOP/) {
......
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
set(NR_RRC_VERSION 16 4 1)
set(NR_RRC_VERSION 17 3 0)
make_version(NR_RRC_cc ${NR_RRC_VERSION})
string(REPLACE ";" "." NR_RRC_RELEASE "${NR_RRC_VERSION}")
if(NR_RRC_RELEASE VERSION_EQUAL "16.4.1")
include(ASN.1/nr-rrc-16.4.1.cmake)
elseif(NR_RRC_RELEASE VERSION_EQUAL "17.3.0")
include(ASN.1/nr-rrc-17.3.0.cmake)
else()
message(FATAL_ERROR "unknown NR_RRC_RELEASE ${NR_RRC_RELEASE}")
endif()
......
......@@ -321,7 +321,7 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
// cellAccessRelatedInfo
// TODO : Add support for more than one PLMN
int num_plmn = 1; // int num_plmn = configuration->num_plmn;
asn1cSequenceAdd(sib1->cellAccessRelatedInfo.plmn_IdentityList.list, struct NR_PLMN_IdentityInfo, nr_plmn_info);
asn1cSequenceAdd(sib1->cellAccessRelatedInfo.plmn_IdentityInfoList.list, struct NR_PLMN_IdentityInfo, nr_plmn_info);
for (int i = 0; i < num_plmn; ++i) {
asn1cSequenceAdd(nr_plmn_info->plmn_IdentityList.list, struct NR_PLMN_Identity, nr_plmn);
asn1cCalloc(nr_plmn->mcc, mcc);
......
......@@ -763,22 +763,22 @@ void nr_dump_sib3( NR_SIB3_t *sib3 ) {
}
//intraFreqBlackCellList
if( sib3->intraFreqBlackCellList){
LOG_I( RRC, "intraFreqBlackCellList : %p\n",
sib3->intraFreqBlackCellList );
const int n = sib3->intraFreqBlackCellList->list.count;
if( sib3->intraFreqExcludedCellList){
LOG_I( RRC, "intraFreqExcludedCellList : %p\n",
sib3->intraFreqExcludedCellList );
const int n = sib3->intraFreqExcludedCellList->list.count;
for (int i = 0; i < n; ++i){
LOG_I( RRC, "intraFreqBlackCellList->start : %ld\n",
sib3->intraFreqBlackCellList->list.array[i]->start );
LOG_I( RRC, "intraFreqExcludedCellList->start : %ld\n",
sib3->intraFreqExcludedCellList->list.array[i]->start );
if( sib3->intraFreqBlackCellList->list.array[i]->range)
LOG_I( RRC, "intraFreqBlackCellList->range : %ld\n",
*sib3->intraFreqBlackCellList->list.array[i]->range );
if( sib3->intraFreqExcludedCellList->list.array[i]->range)
LOG_I( RRC, "intraFreqExcludedCellList->range : %ld\n",
*sib3->intraFreqExcludedCellList->list.array[i]->range );
else
LOG_I( RRC, "intraFreqBlackCellList->range : not defined\n" );
LOG_I( RRC, "intraFreqExcludedCellList->range : not defined\n" );
}
} else{
LOG_I( RRC, "intraFreqBlackCellList : not defined\n" );
LOG_I( RRC, "intraFreqExcludedCellList : not defined\n" );
}
//lateNonCriticalExtension
......
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