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";
} 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";
while(<INPUT_FILE>) {
if( m/NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_ \n";
syswrite OUTPUT_FILE,"BEGIN\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";
while(<INPUT_FILE>) {
if( m/NR-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_ \n";
syswrite OUTPUT_FILE,"BEGIN\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";
while(<INPUT_FILE>) {
if( m/NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=/){
syswrite OUTPUT_FILE,"$_ \n";
syswrite OUTPUT_FILE,"BEGIN\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(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 source diff could not be displayed because it is too large. You can view the blob instead.
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