Minor corrections
This commit is contained in:
@@ -15,7 +15,7 @@ gNBs =
|
|||||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
tracking_area_code = 1;
|
tracking_area_code = 1;
|
||||||
|
|
||||||
plmn_list = ({mcc = 208; mnc = 93; mnc_length = 2;});
|
plmn_list = ({mcc = 208; mnc = 93; mnc_length = 2;});
|
||||||
|
|
||||||
tr_s_preference = "local_mac"
|
tr_s_preference = "local_mac"
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ gNBs =
|
|||||||
|
|
||||||
ssb_SubcarrierOffset = 0;
|
ssb_SubcarrierOffset = 0;
|
||||||
pdsch_AntennaPorts = 1;
|
pdsch_AntennaPorts = 1;
|
||||||
|
|
||||||
servingCellConfigCommon = (
|
servingCellConfigCommon = (
|
||||||
{
|
{
|
||||||
#spCellConfigCommon
|
#spCellConfigCommon
|
||||||
@@ -40,7 +40,7 @@ gNBs =
|
|||||||
#scs-SpecificCarrierList
|
#scs-SpecificCarrierList
|
||||||
dl_offstToCarrier = 0;
|
dl_offstToCarrier = 0;
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
dl_subcarrierSpacing = 1;
|
dl_subcarrierSpacing = 1;
|
||||||
dl_carrierBandwidth = 106;
|
dl_carrierBandwidth = 106;
|
||||||
#initialDownlinkBWP
|
#initialDownlinkBWP
|
||||||
@@ -48,7 +48,7 @@ gNBs =
|
|||||||
# this is RBstart=41,L=24 (275*(L-1))+RBstart
|
# this is RBstart=41,L=24 (275*(L-1))+RBstart
|
||||||
initialDLBWPlocationAndBandwidth = 6366;
|
initialDLBWPlocationAndBandwidth = 6366;
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
initialDLBWPsubcarrierSpacing = 1;
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
#pdcch-ConfigCommon
|
#pdcch-ConfigCommon
|
||||||
initialDLBWPcontrolResourceSetZero = 12;
|
initialDLBWPcontrolResourceSetZero = 12;
|
||||||
@@ -64,12 +64,12 @@ gNBs =
|
|||||||
|
|
||||||
initialDLBWPk0_1 = 0;
|
initialDLBWPk0_1 = 0;
|
||||||
initialDLBWPmappingType_1 = 0;
|
initialDLBWPmappingType_1 = 0;
|
||||||
#this is SS=2,L=12
|
#this is SS=2,L=12
|
||||||
initialDLBWPstartSymbolAndLength_1 = 53;
|
initialDLBWPstartSymbolAndLength_1 = 53;
|
||||||
|
|
||||||
initialDLBWPk0_2 = 0;
|
initialDLBWPk0_2 = 0;
|
||||||
initialDLBWPmappingType_2 = 0;
|
initialDLBWPmappingType_2 = 0;
|
||||||
#this is SS=1,L=12
|
#this is SS=1,L=12
|
||||||
initialDLBWPstartSymbolAndLength_2 = 54;
|
initialDLBWPstartSymbolAndLength_2 = 54;
|
||||||
|
|
||||||
initialDLBWPk0_3 = 0;
|
initialDLBWPk0_3 = 0;
|
||||||
@@ -77,13 +77,13 @@ gNBs =
|
|||||||
#this is SS=1,L=5
|
#this is SS=1,L=5
|
||||||
initialDLBWPstartSymbolAndLength_3 = 57;
|
initialDLBWPstartSymbolAndLength_3 = 57;
|
||||||
|
|
||||||
#uplinkConfigCommon
|
#uplinkConfigCommon
|
||||||
#frequencyInfoUL
|
#frequencyInfoUL
|
||||||
ul_frequencyBand = 78;
|
ul_frequencyBand = 78;
|
||||||
#scs-SpecificCarrierList
|
#scs-SpecificCarrierList
|
||||||
ul_offstToCarrier = 0;
|
ul_offstToCarrier = 0;
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
ul_subcarrierSpacing = 1;
|
ul_subcarrierSpacing = 1;
|
||||||
ul_carrierBandwidth = 106;
|
ul_carrierBandwidth = 106;
|
||||||
pMax = 20;
|
pMax = 20;
|
||||||
@@ -91,7 +91,7 @@ gNBs =
|
|||||||
#genericParameters
|
#genericParameters
|
||||||
initialULBWPlocationAndBandwidth = 6366;
|
initialULBWPlocationAndBandwidth = 6366;
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
initialULBWPsubcarrierSpacing = 1;
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
#rach-ConfigCommon
|
#rach-ConfigCommon
|
||||||
#rach-ConfigGeneric
|
#rach-ConfigGeneric
|
||||||
@@ -124,7 +124,7 @@ gNBs =
|
|||||||
prach_RootSequenceIndex_PR = 2;
|
prach_RootSequenceIndex_PR = 2;
|
||||||
prach_RootSequenceIndex = 1;
|
prach_RootSequenceIndex = 1;
|
||||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||||
#
|
#
|
||||||
msg1_SubcarrierSpacing = 1,
|
msg1_SubcarrierSpacing = 1,
|
||||||
# restrictedSetConfig
|
# restrictedSetConfig
|
||||||
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||||
@@ -161,7 +161,7 @@ gNBs =
|
|||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
ssb_periodicityServingCell = 2;
|
ssb_periodicityServingCell = 2;
|
||||||
|
|
||||||
# dmrs_TypeA_position
|
# dmrs_TypeA_position
|
||||||
@@ -169,15 +169,15 @@ gNBs =
|
|||||||
dmrs_TypeA_Position = 0;
|
dmrs_TypeA_Position = 0;
|
||||||
|
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
subcarrierSpacing = 1;
|
subcarrierSpacing = 1;
|
||||||
|
|
||||||
|
|
||||||
#tdd-UL-DL-ConfigurationCommon
|
#tdd-UL-DL-ConfigurationCommon
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
referenceSubcarrierSpacing = 1;
|
referenceSubcarrierSpacing = 1;
|
||||||
# pattern1
|
# pattern1
|
||||||
# dl_UL_TransmissionPeriodicity
|
# dl_UL_TransmissionPeriodicity
|
||||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||||
dl_UL_TransmissionPeriodicity = 6;
|
dl_UL_TransmissionPeriodicity = 6;
|
||||||
@@ -227,18 +227,18 @@ MACRLCs = (
|
|||||||
num_cc = 1;
|
num_cc = 1;
|
||||||
tr_s_preference = "local_L1";
|
tr_s_preference = "local_L1";
|
||||||
tr_n_preference = "local_RRC";
|
tr_n_preference = "local_RRC";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
L1s = (
|
L1s = (
|
||||||
{
|
{
|
||||||
num_cc = 1;
|
num_cc = 1;
|
||||||
tr_n_preference = "local_mac";
|
tr_n_preference = "local_mac";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
RUs = (
|
RUs = (
|
||||||
{
|
{
|
||||||
local_rf = "yes"
|
local_rf = "yes"
|
||||||
nb_tx = 1
|
nb_tx = 1
|
||||||
nb_rx = 1
|
nb_rx = 1
|
||||||
@@ -253,7 +253,7 @@ RUs = (
|
|||||||
sdr_addrs = "addr=192.168.10.2,mgmt_addr=192.168.10.2,second_addr=192.168.20.2";
|
sdr_addrs = "addr=192.168.10.2,mgmt_addr=192.168.10.2,second_addr=192.168.20.2";
|
||||||
clock_src = "external";
|
clock_src = "external";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ gNBs =
|
|||||||
|
|
||||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
tracking_area_code = 1;
|
tracking_area_code = 1;
|
||||||
plmn_list = ({mcc = 222; mnc = 01; mnc_length = 2;});
|
plmn_list = ({mcc = 222; mnc = 01; mnc_length = 2;});
|
||||||
|
|
||||||
tr_s_preference = "local_mac"
|
tr_s_preference = "local_mac"
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ gNBs =
|
|||||||
|
|
||||||
ssb_SubcarrierOffset = 31; //0;
|
ssb_SubcarrierOffset = 31; //0;
|
||||||
pdsch_AntennaPorts = 1;
|
pdsch_AntennaPorts = 1;
|
||||||
|
|
||||||
servingCellConfigCommon = (
|
servingCellConfigCommon = (
|
||||||
{
|
{
|
||||||
#spCellConfigCommon
|
#spCellConfigCommon
|
||||||
@@ -38,7 +38,7 @@ gNBs =
|
|||||||
#scs-SpecificCarrierList
|
#scs-SpecificCarrierList
|
||||||
dl_offstToCarrier = 0;
|
dl_offstToCarrier = 0;
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
dl_subcarrierSpacing = 1;
|
dl_subcarrierSpacing = 1;
|
||||||
dl_carrierBandwidth = 106;
|
dl_carrierBandwidth = 106;
|
||||||
#initialDownlinkBWP
|
#initialDownlinkBWP
|
||||||
@@ -46,7 +46,7 @@ gNBs =
|
|||||||
# this is RBstart=84,L=13 (275*(L-1))+RBstart
|
# this is RBstart=84,L=13 (275*(L-1))+RBstart
|
||||||
initialDLBWPlocationAndBandwidth = 6366; //28875; //6366; #6407; #3384;
|
initialDLBWPlocationAndBandwidth = 6366; //28875; //6366; #6407; #3384;
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
initialDLBWPsubcarrierSpacing = 1;
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
#pdcch-ConfigCommon
|
#pdcch-ConfigCommon
|
||||||
initialDLBWPcontrolResourceSetZero = 0;
|
initialDLBWPcontrolResourceSetZero = 0;
|
||||||
@@ -62,25 +62,25 @@ gNBs =
|
|||||||
|
|
||||||
initialDLBWPk0_1 = 0;
|
initialDLBWPk0_1 = 0;
|
||||||
initialDLBWPmappingType_1 = 0;
|
initialDLBWPmappingType_1 = 0;
|
||||||
#this is SS=2,L=12
|
#this is SS=2,L=12
|
||||||
initialDLBWPstartSymbolAndLength_1 = 53;
|
initialDLBWPstartSymbolAndLength_1 = 53;
|
||||||
|
|
||||||
initialDLBWPk0_2 = 0;
|
initialDLBWPk0_2 = 0;
|
||||||
initialDLBWPmappingType_2 = 0;
|
initialDLBWPmappingType_2 = 0;
|
||||||
#this is SS=1,L=12
|
#this is SS=1,L=12
|
||||||
initialDLBWPstartSymbolAndLength_2 = 54;
|
initialDLBWPstartSymbolAndLength_2 = 54;
|
||||||
|
|
||||||
initialDLBWPk0_3 = 0;
|
initialDLBWPk0_3 = 0;
|
||||||
initialDLBWPmappingType_3 = 0;
|
initialDLBWPmappingType_3 = 0;
|
||||||
#this is SS=1,L=4 //5 (4 is for 43, 5 is for 57)
|
#this is SS=1,L=4 //5 (4 is for 43, 5 is for 57)
|
||||||
initialDLBWPstartSymbolAndLength_3 = 57; //43; //57;
|
initialDLBWPstartSymbolAndLength_3 = 57; //43; //57;
|
||||||
#uplinkConfigCommon
|
#uplinkConfigCommon
|
||||||
#frequencyInfoUL
|
#frequencyInfoUL
|
||||||
ul_frequencyBand = 78;
|
ul_frequencyBand = 78;
|
||||||
#scs-SpecificCarrierList
|
#scs-SpecificCarrierList
|
||||||
ul_offstToCarrier = 0;
|
ul_offstToCarrier = 0;
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
ul_subcarrierSpacing = 1;
|
ul_subcarrierSpacing = 1;
|
||||||
ul_carrierBandwidth = 106;
|
ul_carrierBandwidth = 106;
|
||||||
pMax = 20;
|
pMax = 20;
|
||||||
@@ -88,7 +88,7 @@ gNBs =
|
|||||||
#genericParameters
|
#genericParameters
|
||||||
initialULBWPlocationAndBandwidth = 6366; //28875; //6366; #6407; #3384;
|
initialULBWPlocationAndBandwidth = 6366; //28875; //6366; #6407; #3384;
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
initialULBWPsubcarrierSpacing = 1;
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
#rach-ConfigCommon
|
#rach-ConfigCommon
|
||||||
#rach-ConfigGeneric
|
#rach-ConfigGeneric
|
||||||
@@ -106,7 +106,7 @@ gNBs =
|
|||||||
powerRampingStep = 1;
|
powerRampingStep = 1;
|
||||||
#ra_ReponseWindow
|
#ra_ReponseWindow
|
||||||
#1,2,4,8,10,20,40,80
|
#1,2,4,8,10,20,40,80
|
||||||
ra_ResponseWindow = 4;
|
ra_ResponseWindow = 5;
|
||||||
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||||
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||||
@@ -121,7 +121,7 @@ gNBs =
|
|||||||
prach_RootSequenceIndex_PR = 2;
|
prach_RootSequenceIndex_PR = 2;
|
||||||
prach_RootSequenceIndex = 1;
|
prach_RootSequenceIndex = 1;
|
||||||
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||||
#
|
#
|
||||||
msg1_SubcarrierSpacing = 1,
|
msg1_SubcarrierSpacing = 1,
|
||||||
|
|
||||||
# restrictedSetConfig
|
# restrictedSetConfig
|
||||||
@@ -132,7 +132,7 @@ gNBs =
|
|||||||
initialULBWPmappingType_0 = 1
|
initialULBWPmappingType_0 = 1
|
||||||
# this is SS=0 L=11
|
# this is SS=0 L=11
|
||||||
initialULBWPstartSymbolAndLength_0 = 55;
|
initialULBWPstartSymbolAndLength_0 = 55;
|
||||||
|
|
||||||
initialULBWPk2_1 = 2;
|
initialULBWPk2_1 = 2;
|
||||||
initialULBWPmappingType_1 = 1;
|
initialULBWPmappingType_1 = 1;
|
||||||
# this is SS=0 L=12
|
# this is SS=0 L=12
|
||||||
@@ -158,7 +158,7 @@ gNBs =
|
|||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
ssb_periodicityServingCell = 2;
|
ssb_periodicityServingCell = 2;
|
||||||
|
|
||||||
# dmrs_TypeA_position
|
# dmrs_TypeA_position
|
||||||
@@ -166,15 +166,15 @@ gNBs =
|
|||||||
dmrs_TypeA_Position = 0;
|
dmrs_TypeA_Position = 0;
|
||||||
|
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
subcarrierSpacing = 1;
|
subcarrierSpacing = 1;
|
||||||
|
|
||||||
|
|
||||||
#tdd-UL-DL-ConfigurationCommon
|
#tdd-UL-DL-ConfigurationCommon
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
referenceSubcarrierSpacing = 1;
|
referenceSubcarrierSpacing = 1;
|
||||||
# pattern1
|
# pattern1
|
||||||
# dl_UL_TransmissionPeriodicity
|
# dl_UL_TransmissionPeriodicity
|
||||||
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||||
dl_UL_TransmissionPeriodicity = 6;
|
dl_UL_TransmissionPeriodicity = 6;
|
||||||
@@ -239,18 +239,18 @@ MACRLCs = (
|
|||||||
num_cc = 1;
|
num_cc = 1;
|
||||||
tr_s_preference = "local_L1";
|
tr_s_preference = "local_L1";
|
||||||
tr_n_preference = "local_RRC";
|
tr_n_preference = "local_RRC";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
L1s = (
|
L1s = (
|
||||||
{
|
{
|
||||||
num_cc = 1;
|
num_cc = 1;
|
||||||
tr_n_preference = "local_mac";
|
tr_n_preference = "local_mac";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
RUs = (
|
RUs = (
|
||||||
{
|
{
|
||||||
local_rf = "yes"
|
local_rf = "yes"
|
||||||
nb_tx = 1
|
nb_tx = 1
|
||||||
nb_rx = 1
|
nb_rx = 1
|
||||||
@@ -262,7 +262,7 @@ RUs = (
|
|||||||
eNB_instances = [0];
|
eNB_instances = [0];
|
||||||
clock_src = "external";
|
clock_src = "external";
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ int nr_slot_fep(PHY_VARS_NR_UE *ue,
|
|||||||
(int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
|
(int16_t *)&common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF[aa][frame_parms->ofdm_symbol_size*symbol],
|
||||||
frame_parms->ofdm_symbol_size,
|
frame_parms->ofdm_symbol_size,
|
||||||
15);
|
15);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -770,8 +770,6 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (aarx=0; aarx<ue->frame_parms.nb_antennas_rx; aarx++) {
|
for (aarx=0; aarx<ue->frame_parms.nb_antennas_rx; aarx++) {
|
||||||
pil = (int16_t *)&pilot[rb_offset*((config_type==pdsch_dmrs_type1) ? 6:4)];
|
pil = (int16_t *)&pilot[rb_offset*((config_type==pdsch_dmrs_type1) ? 6:4)];
|
||||||
k = k % ue->frame_parms.ofdm_symbol_size;
|
k = k % ue->frame_parms.ofdm_symbol_size;
|
||||||
@@ -921,7 +919,7 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue,
|
|||||||
ch,
|
ch,
|
||||||
dl_ch,
|
dl_ch,
|
||||||
8);
|
8);
|
||||||
|
|
||||||
// check if PRB crosses DC and improve estimates around DC
|
// check if PRB crosses DC and improve estimates around DC
|
||||||
if ((bwp_start_subcarrier < ue->frame_parms.ofdm_symbol_size) && (bwp_start_subcarrier+nb_rb_pdsch*12 >= ue->frame_parms.ofdm_symbol_size)) {
|
if ((bwp_start_subcarrier < ue->frame_parms.ofdm_symbol_size) && (bwp_start_subcarrier+nb_rb_pdsch*12 >= ue->frame_parms.ofdm_symbol_size)) {
|
||||||
dl_ch = (int16_t *)&dl_ch_estimates[aarx][ch_offset];
|
dl_ch = (int16_t *)&dl_ch_estimates[aarx][ch_offset];
|
||||||
|
|||||||
@@ -679,14 +679,11 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
|
|||||||
uint8_t log2_maxh, aarx;
|
uint8_t log2_maxh, aarx;
|
||||||
int32_t avgs;
|
int32_t avgs;
|
||||||
int32_t avgP[4];
|
int32_t avgP[4];
|
||||||
|
|
||||||
for (int i=0;i<pdcch_vars->nb_search_space;i++) {
|
for (int i=0;i<pdcch_vars->nb_search_space;i++) {
|
||||||
|
|
||||||
rel15 = &pdcch_vars->pdcch_config[i];
|
rel15 = &pdcch_vars->pdcch_config[i];
|
||||||
int n_rb,rb_offset;
|
int n_rb,rb_offset;
|
||||||
|
|
||||||
get_coreset_rballoc(rel15->coreset.frequency_domain_resource,&n_rb,&rb_offset);
|
get_coreset_rballoc(rel15->coreset.frequency_domain_resource,&n_rb,&rb_offset);
|
||||||
|
|
||||||
for (int s=rel15->coreset.StartSymbolIndex; s<(rel15->coreset.StartSymbolIndex+rel15->coreset.duration); s++) {
|
for (int s=rel15->coreset.StartSymbolIndex; s<(rel15->coreset.StartSymbolIndex+rel15->coreset.duration); s++) {
|
||||||
LOG_D(PHY,"in nr_pdcch_extract_rbs_single(rxdataF -> rxdataF_ext || dl_ch_estimates -> dl_ch_estimates_ext)\n");
|
LOG_D(PHY,"in nr_pdcch_extract_rbs_single(rxdataF -> rxdataF_ext || dl_ch_estimates -> dl_ch_estimates_ext)\n");
|
||||||
|
|
||||||
@@ -880,7 +877,7 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint16_t crc = polar_decoder_int16(tmp_e,
|
uint16_t crc = polar_decoder_int16(tmp_e,
|
||||||
dci_estimation,
|
dci_estimation,
|
||||||
1,
|
1,
|
||||||
currentPtrDCI);
|
currentPtrDCI);
|
||||||
|
|
||||||
|
|||||||
@@ -609,8 +609,6 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
|
|||||||
ret = 1 + dlsch->max_ldpc_iterations;
|
ret = 1 + dlsch->max_ldpc_iterations;
|
||||||
}
|
}
|
||||||
|
|
||||||
getchar();
|
|
||||||
|
|
||||||
nb_total_decod++;
|
nb_total_decod++;
|
||||||
if (no_iteration_ldpc > dlsch->max_ldpc_iterations){
|
if (no_iteration_ldpc > dlsch->max_ldpc_iterations){
|
||||||
nb_error_decod++;
|
nb_error_decod++;
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
|
|||||||
LOG_D(PHY,"SS TX: frame %d, slot %d, start_symbol %d\n",frame,slot, ssb_start_symbol);
|
LOG_D(PHY,"SS TX: frame %d, slot %d, start_symbol %d\n",frame,slot, ssb_start_symbol);
|
||||||
nr_generate_pss(gNB->d_pss, &txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
|
nr_generate_pss(gNB->d_pss, &txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
|
||||||
nr_generate_sss(gNB->d_sss, &txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
|
nr_generate_sss(gNB->d_sss, &txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
|
||||||
|
|
||||||
if (cfg->carrier_config.num_tx_ant.value <= 4)
|
if (cfg->carrier_config.num_tx_ant.value <= 4)
|
||||||
nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[n_hf][ssb_index&7],&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
|
nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[n_hf][ssb_index&7],&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
|
|||||||
else if (dl_config->dl_config_list[i].pdu_type == FAPI_NR_DL_CONFIG_TYPE_SI_DLSCH){
|
else if (dl_config->dl_config_list[i].pdu_type == FAPI_NR_DL_CONFIG_TYPE_SI_DLSCH){
|
||||||
dlsch0 = PHY_vars_UE_g[module_id][cc_id]->dlsch_SI[0];
|
dlsch0 = PHY_vars_UE_g[module_id][cc_id]->dlsch_SI[0];
|
||||||
dlsch0->rnti_type = _SI_RNTI_;
|
dlsch0->rnti_type = _SI_RNTI_;
|
||||||
|
dlsch0->harq_processes[dlsch0->current_harq_pid]->status = ACTIVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
fapi_nr_dl_config_dlsch_pdu_rel15_t *dlsch_config_pdu = &dl_config->dl_config_list[i].dlsch_config_pdu.dlsch_config_rel15;
|
fapi_nr_dl_config_dlsch_pdu_rel15_t *dlsch_config_pdu = &dl_config->dl_config_list[i].dlsch_config_pdu.dlsch_config_rel15;
|
||||||
@@ -97,7 +98,6 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
|
|||||||
|
|
||||||
if (dlsch0_harq){
|
if (dlsch0_harq){
|
||||||
|
|
||||||
dlsch0_harq->status = ACTIVE;
|
|
||||||
dlsch0_harq->BWPStart = dlsch_config_pdu->BWPStart;
|
dlsch0_harq->BWPStart = dlsch_config_pdu->BWPStart;
|
||||||
dlsch0_harq->BWPSize = dlsch_config_pdu->BWPSize;
|
dlsch0_harq->BWPSize = dlsch_config_pdu->BWPSize;
|
||||||
dlsch0_harq->nb_rb = dlsch_config_pdu->number_rbs;
|
dlsch0_harq->nb_rb = dlsch_config_pdu->number_rbs;
|
||||||
|
|||||||
@@ -1808,8 +1808,6 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
|
|||||||
0,
|
0,
|
||||||
0);
|
0);
|
||||||
|
|
||||||
fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15;
|
|
||||||
|
|
||||||
dci_cnt = 0;
|
dci_cnt = 0;
|
||||||
for(int n_ss = 0; n_ss<pdcch_vars->nb_search_space; n_ss++) {
|
for(int n_ss = 0; n_ss<pdcch_vars->nb_search_space; n_ss++) {
|
||||||
|
|
||||||
@@ -1817,15 +1815,13 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
|
|||||||
LOG_D(PHY, "pdcch_channel_estimation: first_carrier_offset %d, BWPStart %d, coreset_start_rb %d\n",
|
LOG_D(PHY, "pdcch_channel_estimation: first_carrier_offset %d, BWPStart %d, coreset_start_rb %d\n",
|
||||||
fp->first_carrier_offset, pdcch_vars->pdcch_config[n_ss].BWPStart, coreset_start_rb);
|
fp->first_carrier_offset, pdcch_vars->pdcch_config[n_ss].BWPStart, coreset_start_rb);
|
||||||
|
|
||||||
rel15 = &pdcch_vars->pdcch_config[n_ss];
|
|
||||||
|
|
||||||
if (coreset_nb_rb > 0)
|
if (coreset_nb_rb > 0)
|
||||||
nr_pdcch_channel_estimation(ue,
|
nr_pdcch_channel_estimation(ue,
|
||||||
proc,
|
proc,
|
||||||
0,
|
0,
|
||||||
nr_slot_rx,
|
nr_slot_rx,
|
||||||
l,
|
l,
|
||||||
(pdcch_vars->pdcch_config[n_ss].BWPStart + coreset_start_rb) * 12,
|
fp->first_carrier_offset+(pdcch_vars->pdcch_config[n_ss].BWPStart + coreset_start_rb)*12,
|
||||||
coreset_nb_rb);
|
coreset_nb_rb);
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
|
||||||
|
|||||||
@@ -446,7 +446,7 @@ bool pucch_procedures_ue_nr(PHY_VARS_NR_UE *ue, uint8_t gNB_id, UE_nr_rxtx_proc_
|
|||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
int max_code_rate = 0;
|
//int max_code_rate = 0;
|
||||||
//int Q_m = BITS_PER_SYMBOL_QPSK; /* default pucch modulation type is QPSK with 2 bits per symbol */
|
//int Q_m = BITS_PER_SYMBOL_QPSK; /* default pucch modulation type is QPSK with 2 bits per symbol */
|
||||||
int N_sc_ctrl_RB = 0;
|
int N_sc_ctrl_RB = 0;
|
||||||
int O_CRC = 0;
|
int O_CRC = 0;
|
||||||
@@ -503,7 +503,7 @@ bool pucch_procedures_ue_nr(PHY_VARS_NR_UE *ue, uint8_t gNB_id, UE_nr_rxtx_proc_
|
|||||||
if (format != pucch_format0_nr) {
|
if (format != pucch_format0_nr) {
|
||||||
|
|
||||||
if (mac->ULbwp[bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup->format1 != NULL) {
|
if (mac->ULbwp[bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup->format1 != NULL) {
|
||||||
max_code_rate = code_rate_r_time_100[mac->ULbwp[bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup->format1->choice.setup->maxCodeRate[0]]; /* it is code rate * 10 */
|
//max_code_rate = code_rate_r_time_100[mac->ULbwp[bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup->format1->choice.setup->maxCodeRate[0]]; /* it is code rate * 10 */
|
||||||
|
|
||||||
if ((O_ACK != 0) && (mac->ULbwp[bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup->format1->choice.setup->simultaneousHARQ_ACK_CSI[0] == 0)) {
|
if ((O_ACK != 0) && (mac->ULbwp[bwp_id-1]->bwp_Dedicated->pucch_Config->choice.setup->format1->choice.setup->simultaneousHARQ_ACK_CSI[0] == 0)) {
|
||||||
N_UCI = N_UCI - O_CSI;
|
N_UCI = N_UCI - O_CSI;
|
||||||
|
|||||||
@@ -1024,9 +1024,13 @@ void NRRCConfig(void) {
|
|||||||
paramdef_t GNBSParams[] = GNBSPARAMS_DESC;
|
paramdef_t GNBSParams[] = GNBSPARAMS_DESC;
|
||||||
|
|
||||||
/* get global parameters, defined outside any section in the config file */
|
/* get global parameters, defined outside any section in the config file */
|
||||||
|
|
||||||
LOG_I(GNB_APP, "Getting GNBSParams\n");
|
LOG_I(GNB_APP, "Getting GNBSParams\n");
|
||||||
|
|
||||||
config_get( GNBSParams,sizeof(GNBSParams)/sizeof(paramdef_t),NULL);
|
config_get( GNBSParams,sizeof(GNBSParams)/sizeof(paramdef_t),NULL);
|
||||||
RC.nb_nr_inst = GNBSParams[GNB_ACTIVE_GNBS_IDX].numelt;
|
RC.nb_nr_inst = GNBSParams[GNB_ACTIVE_GNBS_IDX].numelt;
|
||||||
|
|
||||||
|
|
||||||
// Get num MACRLC instances
|
// Get num MACRLC instances
|
||||||
config_getlist( &MACRLCParamList,NULL,0, NULL);
|
config_getlist( &MACRLCParamList,NULL,0, NULL);
|
||||||
RC.nb_macrlc_inst = MACRLCParamList.numelt;
|
RC.nb_macrlc_inst = MACRLCParamList.numelt;
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ int16_t table_6_3_3_2_1[16][5] = {
|
|||||||
/* Function to get number of RBs required for prach occasion based on
|
/* Function to get number of RBs required for prach occasion based on
|
||||||
* 38.211 Table 6.3.3.2-1 */
|
* 38.211 Table 6.3.3.2-1 */
|
||||||
int16_t get_N_RA_RB (int delta_f_RA_PRACH,int delta_f_PUSCH) {
|
int16_t get_N_RA_RB (int delta_f_RA_PRACH,int delta_f_PUSCH) {
|
||||||
|
|
||||||
int8_t index = 0;
|
int8_t index = 0;
|
||||||
switch(delta_f_RA_PRACH) {
|
switch(delta_f_RA_PRACH) {
|
||||||
case 0 : index = 6;
|
case 0 : index = 6;
|
||||||
@@ -206,8 +206,8 @@ int16_t get_N_RA_RB (int delta_f_RA_PRACH,int delta_f_PUSCH) {
|
|||||||
index += 0;
|
index += 0;
|
||||||
else
|
else
|
||||||
index += 1;
|
index += 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: index = 13;
|
case 3: index = 13;
|
||||||
if (delta_f_PUSCH == 2)
|
if (delta_f_PUSCH == 2)
|
||||||
index += 0;
|
index += 0;
|
||||||
@@ -216,11 +216,11 @@ int16_t get_N_RA_RB (int delta_f_RA_PRACH,int delta_f_PUSCH) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default : index = 10;/*30khz prach scs and 30khz pusch scs*/
|
default : index = 10;/*30khz prach scs and 30khz pusch scs*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return table_6_3_3_2_1[index][3];
|
return table_6_3_3_2_1[index][3];
|
||||||
}
|
}
|
||||||
// Table 6.3.3.2-2: Random access configurations for FR1 and paired spectrum/supplementary uplink
|
// Table 6.3.3.2-2: Random access configurations for FR1 and paired spectrum/supplementary uplink
|
||||||
// the column 5, (SFN_nbr is a bitmap where we set bit to '1' in the position of the subframe where the RACH can be sent.
|
// the column 5, (SFN_nbr is a bitmap where we set bit to '1' in the position of the subframe where the RACH can be sent.
|
||||||
// E.g. in row 4, and column 5 we have set value 512 ('1000000000') which means RACH can be sent at subframe 9.
|
// E.g. in row 4, and column 5 we have set value 512 ('1000000000') which means RACH can be sent at subframe 9.
|
||||||
@@ -1131,14 +1131,14 @@ int get_nr_prach_occasion_info_from_index(uint8_t index,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
*N_RA_slot = table_6_3_3_2_4_prachConfig_Index[index][7]; // Number of RACH slots within a subframe
|
*N_RA_slot = table_6_3_3_2_4_prachConfig_Index[index][7]; // Number of RACH slots within a subframe
|
||||||
*max_association_period = 160/(x * 10);
|
*max_association_period = 160/(x * 10);
|
||||||
if (start_symbol != NULL && N_t_slot != NULL && N_dur != NULL && format != NULL){
|
if (start_symbol != NULL && N_t_slot != NULL && N_dur != NULL && format != NULL){
|
||||||
*start_symbol = table_6_3_3_2_4_prachConfig_Index[index][6];//multiple prach occasions in diff slot
|
*start_symbol = table_6_3_3_2_4_prachConfig_Index[index][6];//multiple prach occasions in diff slot
|
||||||
*N_t_slot = table_6_3_3_2_4_prachConfig_Index[index][8];
|
*N_t_slot = table_6_3_3_2_4_prachConfig_Index[index][8];
|
||||||
*N_dur = table_6_3_3_2_4_prachConfig_Index[index][9];
|
*N_dur = table_6_3_3_2_4_prachConfig_Index[index][9];
|
||||||
if (table_6_3_3_2_4_prachConfig_Index[index][1] != -1)
|
if (table_6_3_3_2_4_prachConfig_Index[index][1] != -1)
|
||||||
format2 = (uint8_t) table_6_3_3_2_4_prachConfig_Index[index][1];
|
format2 = (uint8_t) table_6_3_3_2_4_prachConfig_Index[index][1];
|
||||||
|
|
||||||
*format = ((uint8_t) table_6_3_3_2_4_prachConfig_Index[index][0]) | (format2<<8);
|
*format = ((uint8_t) table_6_3_3_2_4_prachConfig_Index[index][0]) | (format2<<8);
|
||||||
LOG_D(MAC,"Getting Total PRACH info from index %d absoluteFrequencyPointA %u mu %u frame_type %u start_symbol %u N_t_slot %u N_dur %u N_RA_sfn = %u\n",
|
LOG_D(MAC,"Getting Total PRACH info from index %d absoluteFrequencyPointA %u mu %u frame_type %u start_symbol %u N_t_slot %u N_dur %u N_RA_sfn = %u\n",
|
||||||
index,
|
index,
|
||||||
@@ -1163,7 +1163,7 @@ int get_nr_prach_occasion_info_from_index(uint8_t index,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
*N_RA_slot = table_6_3_3_2_3_prachConfig_Index[index][6]; // Number of RACH slots within a subframe
|
*N_RA_slot = table_6_3_3_2_3_prachConfig_Index[index][6]; // Number of RACH slots within a subframe
|
||||||
*max_association_period = 160/(x * 10);
|
*max_association_period = 160/(x * 10);
|
||||||
if (start_symbol != NULL && N_t_slot != NULL && N_dur != NULL && format != NULL){
|
if (start_symbol != NULL && N_t_slot != NULL && N_dur != NULL && format != NULL){
|
||||||
*start_symbol = table_6_3_3_2_3_prachConfig_Index[index][5];
|
*start_symbol = table_6_3_3_2_3_prachConfig_Index[index][5];
|
||||||
*N_t_slot = table_6_3_3_2_3_prachConfig_Index[index][7];
|
*N_t_slot = table_6_3_3_2_3_prachConfig_Index[index][7];
|
||||||
@@ -1352,8 +1352,8 @@ int get_nr_prach_info_from_index(uint8_t index,
|
|||||||
*N_RA_slot = table_6_3_3_2_3_prachConfig_Index[index][6]; // Number of RACH slots within a subframe
|
*N_RA_slot = table_6_3_3_2_3_prachConfig_Index[index][6]; // Number of RACH slots within a subframe
|
||||||
if (mu == 1) {
|
if (mu == 1) {
|
||||||
if ( (*N_RA_slot <= 1) && (slot%2 == 0) )
|
if ( (*N_RA_slot <= 1) && (slot%2 == 0) )
|
||||||
return 0; // no prach in even slots @ 30kHz for 1 prach per subframe
|
return 0; // no prach in even slots @ 30kHz for 1 prach per subframe
|
||||||
}
|
}
|
||||||
if (start_symbol != NULL && N_t_slot != NULL && N_dur != NULL && format != NULL){
|
if (start_symbol != NULL && N_t_slot != NULL && N_dur != NULL && format != NULL){
|
||||||
*config_period = x;
|
*config_period = x;
|
||||||
*start_symbol = table_6_3_3_2_3_prachConfig_Index[index][5];
|
*start_symbol = table_6_3_3_2_3_prachConfig_Index[index][5];
|
||||||
@@ -2817,8 +2817,8 @@ int16_t fill_dmrs_mask(NR_PDSCH_Config_t *pdsch_Config,int dmrs_TypeA_Position,i
|
|||||||
if (dmrs_config->dmrs_AdditionalPosition == NULL) pos2=1;
|
if (dmrs_config->dmrs_AdditionalPosition == NULL) pos2=1;
|
||||||
else if (dmrs_config->dmrs_AdditionalPosition && *dmrs_config->dmrs_AdditionalPosition == NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos0 )
|
else if (dmrs_config->dmrs_AdditionalPosition && *dmrs_config->dmrs_AdditionalPosition == NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos0 )
|
||||||
return(1<<l0);
|
return(1<<l0);
|
||||||
|
|
||||||
|
|
||||||
switch (NrOfSymbols) {
|
switch (NrOfSymbols) {
|
||||||
case 2 :
|
case 2 :
|
||||||
case 3 :
|
case 3 :
|
||||||
@@ -3144,7 +3144,7 @@ int get_type0_PDCCH_CSS_config_parameters(NR_Type0_PDCCH_CSS_config_t *type0_PDC
|
|||||||
type0_PDCCH_CSS_config->n_c=UINT_MAX;
|
type0_PDCCH_CSS_config->n_c=UINT_MAX;
|
||||||
type0_PDCCH_CSS_config->number_of_search_space_per_slot=UINT_MAX;
|
type0_PDCCH_CSS_config->number_of_search_space_per_slot=UINT_MAX;
|
||||||
type0_PDCCH_CSS_config->first_symbol_index=UINT_MAX;
|
type0_PDCCH_CSS_config->first_symbol_index=UINT_MAX;
|
||||||
type0_PDCCH_CSS_config->search_space_duration; // element of search space
|
type0_PDCCH_CSS_config->search_space_duration=0; // element of search space
|
||||||
// 38.213 table 10.1-1
|
// 38.213 table 10.1-1
|
||||||
|
|
||||||
/// MUX PATTERN 1
|
/// MUX PATTERN 1
|
||||||
|
|||||||
@@ -789,7 +789,6 @@ void fill_scheduled_response(nr_scheduled_response_t *scheduled_response,
|
|||||||
scheduled_response->thread_id = thread_id;
|
scheduled_response->thread_id = thread_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint8_t table_9_2_2_1[16][8]={
|
uint8_t table_9_2_2_1[16][8]={
|
||||||
{0,12,2, 0, 0,3,0,0},
|
{0,12,2, 0, 0,3,0,0},
|
||||||
{0,12,2, 0, 0,4,8,0},
|
{0,12,2, 0, 0,4,8,0},
|
||||||
@@ -958,10 +957,6 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
|
|||||||
|
|
||||||
NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
|
NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
|
||||||
|
|
||||||
// fill in the elements in config request inside P5 message
|
|
||||||
mac->phy_config.Mod_id = module_id;
|
|
||||||
mac->phy_config.CC_id = cc_id;
|
|
||||||
|
|
||||||
nr_mac_rrc_data_ind_ue( module_id, cc_id, gNB_index, NR_BCCH_BCH, (uint8_t *) pduP, 3 ); // fixed 3 bytes MIB PDU
|
nr_mac_rrc_data_ind_ue( module_id, cc_id, gNB_index, NR_BCCH_BCH, (uint8_t *) pduP, 3 ); // fixed 3 bytes MIB PDU
|
||||||
|
|
||||||
AssertFatal(mac->mib != NULL, "nr_ue_decode_mib() mac->mib == NULL\n");
|
AssertFatal(mac->mib != NULL, "nr_ue_decode_mib() mac->mib == NULL\n");
|
||||||
@@ -970,7 +965,7 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
|
|||||||
uint16_t frame_number_4lsb = 0;
|
uint16_t frame_number_4lsb = 0;
|
||||||
for (int i=0; i<4; i++)
|
for (int i=0; i<4; i++)
|
||||||
frame_number_4lsb |= ((extra_bits>>i)&1)<<(3-i);
|
frame_number_4lsb |= ((extra_bits>>i)&1)<<(3-i);
|
||||||
uint8_t half_frame_bit = ( extra_bits >> 4 ) & 0x1; // extra bits[4]
|
//uint8_t half_frame_bit = ( extra_bits >> 4 ) & 0x1; // extra bits[4]
|
||||||
uint8_t ssb_subcarrier_offset_msb = ( extra_bits >> 5 ) & 0x1; // extra bits[5]
|
uint8_t ssb_subcarrier_offset_msb = ( extra_bits >> 5 ) & 0x1; // extra bits[5]
|
||||||
uint8_t ssb_subcarrier_offset = (uint8_t)mac->mib->ssb_SubcarrierOffset;
|
uint8_t ssb_subcarrier_offset = (uint8_t)mac->mib->ssb_SubcarrierOffset;
|
||||||
|
|
||||||
@@ -997,7 +992,7 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
|
|||||||
LOG_I(MAC,"pdcch config sib1.searchSpaceZero: %d\n", (int)mac->mib->pdcch_ConfigSIB1.searchSpaceZero);
|
LOG_I(MAC,"pdcch config sib1.searchSpaceZero: %d\n", (int)mac->mib->pdcch_ConfigSIB1.searchSpaceZero);
|
||||||
LOG_I(MAC,"cell barred (0=barred,1=notBarred): %d\n", (int)mac->mib->cellBarred);
|
LOG_I(MAC,"cell barred (0=barred,1=notBarred): %d\n", (int)mac->mib->cellBarred);
|
||||||
LOG_I(MAC,"intra frequency reselection (0=allowed,1=notAllowed): %d\n", (int)mac->mib->intraFreqReselection);
|
LOG_I(MAC,"intra frequency reselection (0=allowed,1=notAllowed): %d\n", (int)mac->mib->intraFreqReselection);
|
||||||
LOG_I(MAC,"half frame bit(extra bits): %d\n", (int)half_frame_bit);
|
//LOG_I(MAC,"half frame bit(extra bits): %d\n", (int)half_frame_bit);
|
||||||
LOG_I(MAC,"ssb index(extra bits): %d\n", (int)ssb_index);
|
LOG_I(MAC,"ssb index(extra bits): %d\n", (int)ssb_index);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1010,7 +1005,6 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
|
|||||||
mac->type0_pdcch_ss_n_c = mac->type0_PDCCH_CSS_config.n_c;
|
mac->type0_pdcch_ss_n_c = mac->type0_PDCCH_CSS_config.n_c;
|
||||||
mac->dl_config_request.sfn = mac->type0_PDCCH_CSS_config.frame;
|
mac->dl_config_request.sfn = mac->type0_PDCCH_CSS_config.frame;
|
||||||
mac->dl_config_request.slot = (ssb_index>>1) + ((ssb_index>>4)<<1); // not valid for 240kHz SCS
|
mac->dl_config_request.slot = (ssb_index>>1) + ((ssb_index>>4)<<1); // not valid for 240kHz SCS
|
||||||
channel_bandwidth_t min_channel_bw = bw_10MHz; // default for testing
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1179,9 +1173,6 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
fapi_nr_dl_config_dci_dl_pdu_rel15_t dci_config_rel15 = dl_config->dl_config_list[dl_config->number_pdus].dci_config_pdu.dci_config_rel15;
|
|
||||||
|
|
||||||
} else if (ul_info) {
|
} else if (ul_info) {
|
||||||
|
|
||||||
// ULSCH is handled only in phy-test mode (consistently with OAI gNB)
|
// ULSCH is handled only in phy-test mode (consistently with OAI gNB)
|
||||||
@@ -3372,14 +3363,10 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
|
|||||||
LOG_D(MAC,"dlDmrsSymbPos = 0x%x\n", dlsch_config_pdu_1_0->dlDmrsSymbPos);
|
LOG_D(MAC,"dlDmrsSymbPos = 0x%x\n", dlsch_config_pdu_1_0->dlDmrsSymbPos);
|
||||||
|
|
||||||
/* number of DM-RS CDM groups without data according to subclause 5.1.6.2 of 3GPP TS 38.214 version 15.9.0 Release 15 */
|
/* number of DM-RS CDM groups without data according to subclause 5.1.6.2 of 3GPP TS 38.214 version 15.9.0 Release 15 */
|
||||||
//if (dlsch_config_pdu_1_0->number_symbols == 2)
|
if (dlsch_config_pdu_1_0->number_symbols == 2)
|
||||||
// dlsch_config_pdu_1_0->n_dmrs_cdm_groups = 1;
|
dlsch_config_pdu_1_0->n_dmrs_cdm_groups = 1;
|
||||||
//else
|
else
|
||||||
// dlsch_config_pdu_1_0->n_dmrs_cdm_groups = 2;
|
dlsch_config_pdu_1_0->n_dmrs_cdm_groups = 2;
|
||||||
|
|
||||||
/* TODO: fix number of DM-RS CDM groups without data according to subclause 5.1.6.2 of 3GPP TS 38.214,
|
|
||||||
using tables 7.3.1.2.2-1, 7.3.1.2.2-2, 7.3.1.2.2-3, 7.3.1.2.2-4 of 3GPP TS 38.212 */
|
|
||||||
dlsch_config_pdu_1_0->n_dmrs_cdm_groups = 1;
|
|
||||||
|
|
||||||
/* VRB_TO_PRB_MAPPING */
|
/* VRB_TO_PRB_MAPPING */
|
||||||
dlsch_config_pdu_1_0->vrb_to_prb_mapping = (dci->vrb_to_prb_mapping.val == 0) ? vrb_to_prb_mapping_non_interleaved:vrb_to_prb_mapping_interleaved;
|
dlsch_config_pdu_1_0->vrb_to_prb_mapping = (dci->vrb_to_prb_mapping.val == 0) ? vrb_to_prb_mapping_non_interleaved:vrb_to_prb_mapping_interleaved;
|
||||||
@@ -4013,8 +4000,6 @@ int nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
|
|||||||
LOG_D(MAC,"dci_pdu_rel15->rv = %i\n", dci_pdu_rel15->rv);
|
LOG_D(MAC,"dci_pdu_rel15->rv = %i\n", dci_pdu_rel15->rv);
|
||||||
LOG_D(MAC,"dci_pdu_rel15->system_info_indicator = %i\n", dci_pdu_rel15->system_info_indicator);
|
LOG_D(MAC,"dci_pdu_rel15->system_info_indicator = %i\n", dci_pdu_rel15->system_info_indicator);
|
||||||
|
|
||||||
getchar();
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NR_RNTI_TC:
|
case NR_RNTI_TC:
|
||||||
@@ -4325,8 +4310,8 @@ int nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return dci_format;
|
return dci_format;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -215,9 +215,8 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void schedule_nr_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) {
|
void schedule_nr_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) {
|
||||||
//----------------------------------------
|
//----------------------------------------
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill_ssb_vrb_map (NR_COMMON_channels_t *cc, int rbStart, int CC_id) {
|
void fill_ssb_vrb_map (NR_COMMON_channels_t *cc, int rbStart, int CC_id) {
|
||||||
@@ -236,7 +235,7 @@ void schedule_control_sib1(module_id_t module_id,
|
|||||||
|
|
||||||
gNB_MAC_INST *gNB_mac = RC.nrmac[module_id];
|
gNB_MAC_INST *gNB_mac = RC.nrmac[module_id];
|
||||||
NR_ServingCellConfigCommon_t *servingcellconfigcommon = gNB_mac->common_channels[CC_id].ServingCellConfigCommon;
|
NR_ServingCellConfigCommon_t *servingcellconfigcommon = gNB_mac->common_channels[CC_id].ServingCellConfigCommon;
|
||||||
uint8_t *vrb_map = RC.nrmac[module_id]->common_channels[CC_id].vrb_map;
|
uint16_t *vrb_map = RC.nrmac[module_id]->common_channels[CC_id].vrb_map;
|
||||||
|
|
||||||
if (gNB_mac->sched_ctrlCommon == NULL){
|
if (gNB_mac->sched_ctrlCommon == NULL){
|
||||||
gNB_mac->sched_ctrlCommon = calloc(1,sizeof(*gNB_mac->sched_ctrlCommon));
|
gNB_mac->sched_ctrlCommon = calloc(1,sizeof(*gNB_mac->sched_ctrlCommon));
|
||||||
@@ -444,7 +443,7 @@ void schedule_nr_sib1(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
|
|||||||
int time_domain_allocation = 2; // FIXME: For OAI-UE (2), For 3rd party implementation and 3GPP compliant (4)
|
int time_domain_allocation = 2; // FIXME: For OAI-UE (2), For 3rd party implementation and 3GPP compliant (4)
|
||||||
uint8_t mcsTableIdx = 0;
|
uint8_t mcsTableIdx = 0;
|
||||||
uint8_t mcs = 8;
|
uint8_t mcs = 8;
|
||||||
uint8_t numDmrsCdmGrpsNoData = 1; // FIXME: For OAI-UE (1), For 3rd party implementation and 3GPP compliant (2)
|
uint8_t numDmrsCdmGrpsNoData = 2;
|
||||||
|
|
||||||
gNB_MAC_INST *gNB_mac = RC.nrmac[module_idP];
|
gNB_MAC_INST *gNB_mac = RC.nrmac[module_idP];
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,6 @@
|
|||||||
#define ENABLE_MAC_PAYLOAD_DEBUG
|
#define ENABLE_MAC_PAYLOAD_DEBUG
|
||||||
#define DEBUG_gNB_SCHEDULER 1
|
#define DEBUG_gNB_SCHEDULER 1
|
||||||
|
|
||||||
|
|
||||||
#include "common/ran_context.h"
|
#include "common/ran_context.h"
|
||||||
|
|
||||||
extern RAN_CONTEXT_t RC;
|
extern RAN_CONTEXT_t RC;
|
||||||
@@ -189,7 +188,6 @@ int allocate_nr_CCEs(gNB_MAC_INST *nr_mac,
|
|||||||
cce_list = nr_mac->cce_list[bwp->bwp_Id][coreset_id];
|
cce_list = nr_mac->cce_list[bwp->bwp_Id][coreset_id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int n_rb=0;
|
int n_rb=0;
|
||||||
for (int i=0;i<6;i++)
|
for (int i=0;i<6;i++)
|
||||||
for (int j=0;j<8;j++) {
|
for (int j=0;j<8;j++) {
|
||||||
|
|||||||
@@ -191,7 +191,6 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_
|
|||||||
(dl_info->rx_ind->rx_indication_body+i)->sib_pdu.pdu,
|
(dl_info->rx_ind->rx_indication_body+i)->sib_pdu.pdu,
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->sib_pdu.pdu_length)) << FAPI_NR_RX_PDU_TYPE_SIB;
|
(dl_info->rx_ind->rx_indication_body+i)->sib_pdu.pdu_length)) << FAPI_NR_RX_PDU_TYPE_SIB;
|
||||||
|
|
||||||
LOG_D(MAC,"[L2][IF MODULE][DL INDICATION][RX_IND], SIB case Number of PDUs: %d \n", dl_info->rx_ind->number_pdus);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FAPI_NR_RX_PDU_TYPE_DLSCH:
|
case FAPI_NR_RX_PDU_TYPE_DLSCH:
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ int generate_pdcch_ConfigSIB1(NR_PDCCH_ConfigSIB1_t *pdcch_ConfigSIB1,
|
|||||||
long subCarrierSpacingCommon,
|
long subCarrierSpacingCommon,
|
||||||
channel_bandwidth_t min_channel_bw) {
|
channel_bandwidth_t min_channel_bw) {
|
||||||
|
|
||||||
nr_ssb_and_cset_mux_pattern_type_t mux_pattern;
|
nr_ssb_and_cset_mux_pattern_type_t mux_pattern = 0;
|
||||||
|
|
||||||
switch (ssbSubcarrierSpacing) {
|
switch (ssbSubcarrierSpacing) {
|
||||||
|
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ static void init_NR_SI(gNB_RRC_INST *rrc, gNB_RrcConfigurationReq *configuration
|
|||||||
LOG_D(RRC,"%s()\n\n\n\n",__FUNCTION__);
|
LOG_D(RRC,"%s()\n\n\n\n",__FUNCTION__);
|
||||||
rrc->carrier.MIB = (uint8_t *) malloc16(4);
|
rrc->carrier.MIB = (uint8_t *) malloc16(4);
|
||||||
rrc->carrier.sizeof_MIB = do_MIB_NR(rrc,0);
|
rrc->carrier.sizeof_MIB = do_MIB_NR(rrc,0);
|
||||||
rrc->carrier.sizeof_SIB1 = do_SIB1_NR(&rrc->carrier,configuration);
|
rrc->carrier.sizeof_SIB1 = do_SIB1_NR(&rrc->carrier,configuration);
|
||||||
LOG_I(NR_RRC,"Done init_NR_SI\n");
|
LOG_I(NR_RRC,"Done init_NR_SI\n");
|
||||||
rrc_mac_config_req_gNB(rrc->module_id,
|
rrc_mac_config_req_gNB(rrc->module_id,
|
||||||
rrc->carrier.ssb_SubcarrierOffset,
|
rrc->carrier.ssb_SubcarrierOffset,
|
||||||
|
|||||||
+48
-48
@@ -246,7 +246,7 @@ int8_t nr_rrc_ue_process_rrcReconfiguration(const module_id_t module_id, NR_RRCR
|
|||||||
case NR_RRCReconfiguration__criticalExtensions_PR_rrcReconfiguration:
|
case NR_RRCReconfiguration__criticalExtensions_PR_rrcReconfiguration:
|
||||||
if(rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->radioBearerConfig != NULL){
|
if(rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->radioBearerConfig != NULL){
|
||||||
if(NR_UE_rrc_inst[module_id].radio_bearer_config == NULL){
|
if(NR_UE_rrc_inst[module_id].radio_bearer_config == NULL){
|
||||||
NR_UE_rrc_inst[module_id].radio_bearer_config = rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->radioBearerConfig;
|
NR_UE_rrc_inst[module_id].radio_bearer_config = rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->radioBearerConfig;
|
||||||
}else{
|
}else{
|
||||||
nr_rrc_ue_process_RadioBearerConfig(rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->radioBearerConfig);
|
nr_rrc_ue_process_RadioBearerConfig(rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->radioBearerConfig);
|
||||||
}
|
}
|
||||||
@@ -257,7 +257,7 @@ int8_t nr_rrc_ue_process_rrcReconfiguration(const module_id_t module_id, NR_RRCR
|
|||||||
&asn_DEF_NR_CellGroupConfig, //might be added prefix later
|
&asn_DEF_NR_CellGroupConfig, //might be added prefix later
|
||||||
(void **)&cellGroupConfig,
|
(void **)&cellGroupConfig,
|
||||||
(uint8_t *)rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->secondaryCellGroup->buf,
|
(uint8_t *)rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->secondaryCellGroup->buf,
|
||||||
rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->secondaryCellGroup->size, 0, 0);
|
rrcReconfiguration->criticalExtensions.choice.rrcReconfiguration->secondaryCellGroup->size, 0, 0);
|
||||||
|
|
||||||
xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void*)cellGroupConfig);
|
xer_fprint(stdout, &asn_DEF_NR_CellGroupConfig, (const void*)cellGroupConfig);
|
||||||
|
|
||||||
@@ -287,13 +287,13 @@ int8_t nr_rrc_ue_process_rrcReconfiguration(const module_id_t module_id, NR_RRCR
|
|||||||
// unuse now
|
// unuse now
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NR_RRCReconfiguration__criticalExtensions_PR_NOTHING:
|
case NR_RRCReconfiguration__criticalExtensions_PR_NOTHING:
|
||||||
case NR_RRCReconfiguration__criticalExtensions_PR_criticalExtensionsFuture:
|
case NR_RRCReconfiguration__criticalExtensions_PR_criticalExtensionsFuture:
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//nr_rrc_mac_config_req_ue();
|
//nr_rrc_mac_config_req_ue();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -341,7 +341,7 @@ int8_t nr_rrc_ue_process_scg_config(const module_id_t module_id, NR_CellGroupCon
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -357,8 +357,8 @@ void process_nsa_message(NR_UE_RRC_INST_t *rrc, nsa_message_t nsa_message_type,
|
|||||||
&asn_DEF_NR_RRCReconfiguration,
|
&asn_DEF_NR_RRCReconfiguration,
|
||||||
(void **)&RRCReconfiguration,
|
(void **)&RRCReconfiguration,
|
||||||
(uint8_t *)message,
|
(uint8_t *)message,
|
||||||
msg_len);
|
msg_len);
|
||||||
|
|
||||||
if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
|
if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
|
||||||
LOG_E(RRC,"NR_RRCReconfiguration decode error\n");
|
LOG_E(RRC,"NR_RRCReconfiguration decode error\n");
|
||||||
// free the memory
|
// free the memory
|
||||||
@@ -368,7 +368,7 @@ void process_nsa_message(NR_UE_RRC_INST_t *rrc, nsa_message_t nsa_message_type,
|
|||||||
nr_rrc_ue_process_rrcReconfiguration(module_id,RRCReconfiguration);
|
nr_rrc_ue_process_rrcReconfiguration(module_id,RRCReconfiguration);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case nr_RadioBearerConfigX_r15:
|
case nr_RadioBearerConfigX_r15:
|
||||||
{
|
{
|
||||||
NR_RadioBearerConfig_t *RadioBearerConfig=NULL;
|
NR_RadioBearerConfig_t *RadioBearerConfig=NULL;
|
||||||
@@ -376,8 +376,8 @@ void process_nsa_message(NR_UE_RRC_INST_t *rrc, nsa_message_t nsa_message_type,
|
|||||||
&asn_DEF_NR_RadioBearerConfig,
|
&asn_DEF_NR_RadioBearerConfig,
|
||||||
(void **)&RadioBearerConfig,
|
(void **)&RadioBearerConfig,
|
||||||
(uint8_t *)message,
|
(uint8_t *)message,
|
||||||
msg_len);
|
msg_len);
|
||||||
|
|
||||||
if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
|
if ((dec_rval.code != RC_OK) && (dec_rval.consumed == 0)) {
|
||||||
LOG_E(RRC,"NR_RadioBearerConfig decode error\n");
|
LOG_E(RRC,"NR_RadioBearerConfig decode error\n");
|
||||||
// free the memory
|
// free the memory
|
||||||
@@ -387,7 +387,7 @@ void process_nsa_message(NR_UE_RRC_INST_t *rrc, nsa_message_t nsa_message_type,
|
|||||||
nr_rrc_ue_process_RadioBearerConfig(RadioBearerConfig);
|
nr_rrc_ue_process_RadioBearerConfig(RadioBearerConfig);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
AssertFatal(1==0,"Unknown message %d\n",nsa_message_type);
|
AssertFatal(1==0,"Unknown message %d\n",nsa_message_type);
|
||||||
break;
|
break;
|
||||||
@@ -488,7 +488,7 @@ NR_UE_RRC_INST_t* openair_rrc_top_init_ue_nr(char* rrc_config_path){
|
|||||||
strerror(errno));
|
strerror(errno));
|
||||||
msg_len=fread(buffer,1,1024,fd);
|
msg_len=fread(buffer,1,1024,fd);
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
process_nsa_message(NR_UE_rrc_inst, nr_RadioBearerConfigX_r15, buffer,msg_len);
|
process_nsa_message(NR_UE_rrc_inst, nr_RadioBearerConfigX_r15, buffer,msg_len);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
NR_UE_rrc_inst = NULL;
|
NR_UE_rrc_inst = NULL;
|
||||||
@@ -635,22 +635,22 @@ void nr_dump_sib2( NR_SIB2_t *sib2 ){
|
|||||||
*sib2->cellReselectionServingFreqInfo.s_NonIntraSearchP );
|
*sib2->cellReselectionServingFreqInfo.s_NonIntraSearchP );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "cellReselectionServingFreqInfo->s_NonIntraSearchP : not defined\n" );
|
LOG_I( RRC, "cellReselectionServingFreqInfo->s_NonIntraSearchP : not defined\n" );
|
||||||
|
|
||||||
if( sib2->cellReselectionServingFreqInfo.s_NonIntraSearchQ)
|
if( sib2->cellReselectionServingFreqInfo.s_NonIntraSearchQ)
|
||||||
LOG_I( RRC, "cellReselectionServingFreqInfo.s_NonIntraSearchQ : %ld\n",
|
LOG_I( RRC, "cellReselectionServingFreqInfo.s_NonIntraSearchQ : %ld\n",
|
||||||
*sib2->cellReselectionServingFreqInfo.s_NonIntraSearchQ );
|
*sib2->cellReselectionServingFreqInfo.s_NonIntraSearchQ );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "cellReselectionServingFreqInfo->s_NonIntraSearchQ : not defined\n" );
|
LOG_I( RRC, "cellReselectionServingFreqInfo->s_NonIntraSearchQ : not defined\n" );
|
||||||
|
|
||||||
LOG_I( RRC, "cellReselectionServingFreqInfo.threshServingLowP : %ld\n",
|
LOG_I( RRC, "cellReselectionServingFreqInfo.threshServingLowP : %ld\n",
|
||||||
sib2->cellReselectionServingFreqInfo.threshServingLowP );
|
sib2->cellReselectionServingFreqInfo.threshServingLowP );
|
||||||
|
|
||||||
if( sib2->cellReselectionServingFreqInfo.threshServingLowQ)
|
if( sib2->cellReselectionServingFreqInfo.threshServingLowQ)
|
||||||
LOG_I( RRC, "cellReselectionServingFreqInfo.threshServingLowQ : %ld\n",
|
LOG_I( RRC, "cellReselectionServingFreqInfo.threshServingLowQ : %ld\n",
|
||||||
*sib2->cellReselectionServingFreqInfo.threshServingLowQ );
|
*sib2->cellReselectionServingFreqInfo.threshServingLowQ );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "cellReselectionServingFreqInfo->threshServingLowQ : not defined\n" );
|
LOG_I( RRC, "cellReselectionServingFreqInfo->threshServingLowQ : not defined\n" );
|
||||||
|
|
||||||
LOG_I( RRC, "cellReselectionServingFreqInfo.cellReselectionPriority : %ld\n",
|
LOG_I( RRC, "cellReselectionServingFreqInfo.cellReselectionPriority : %ld\n",
|
||||||
sib2->cellReselectionServingFreqInfo.cellReselectionPriority );
|
sib2->cellReselectionServingFreqInfo.cellReselectionPriority );
|
||||||
if( sib2->cellReselectionServingFreqInfo.cellReselectionSubPriority)
|
if( sib2->cellReselectionServingFreqInfo.cellReselectionSubPriority)
|
||||||
@@ -662,28 +662,28 @@ void nr_dump_sib2( NR_SIB2_t *sib2 ){
|
|||||||
//intraFreqCellReselectionInfo
|
//intraFreqCellReselectionInfo
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.q_RxLevMin : %ld\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.q_RxLevMin : %ld\n",
|
||||||
sib2->intraFreqCellReselectionInfo.q_RxLevMin );
|
sib2->intraFreqCellReselectionInfo.q_RxLevMin );
|
||||||
|
|
||||||
if( sib2->intraFreqCellReselectionInfo.q_RxLevMinSUL)
|
if( sib2->intraFreqCellReselectionInfo.q_RxLevMinSUL)
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.q_RxLevMinSUL : %ld\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.q_RxLevMinSUL : %ld\n",
|
||||||
*sib2->intraFreqCellReselectionInfo.q_RxLevMinSUL );
|
*sib2->intraFreqCellReselectionInfo.q_RxLevMinSUL );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo->q_RxLevMinSUL : not defined\n" );
|
LOG_I( RRC, "intraFreqCellReselectionInfo->q_RxLevMinSUL : not defined\n" );
|
||||||
|
|
||||||
if( sib2->intraFreqCellReselectionInfo.q_QualMin)
|
if( sib2->intraFreqCellReselectionInfo.q_QualMin)
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.q_QualMin : %ld\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.q_QualMin : %ld\n",
|
||||||
*sib2->intraFreqCellReselectionInfo.q_QualMin );
|
*sib2->intraFreqCellReselectionInfo.q_QualMin );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo->q_QualMin : not defined\n" );
|
LOG_I( RRC, "intraFreqCellReselectionInfo->q_QualMin : not defined\n" );
|
||||||
|
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.s_IntraSearchP : %ld\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.s_IntraSearchP : %ld\n",
|
||||||
sib2->intraFreqCellReselectionInfo.s_IntraSearchP );
|
sib2->intraFreqCellReselectionInfo.s_IntraSearchP );
|
||||||
|
|
||||||
if( sib2->intraFreqCellReselectionInfo.s_IntraSearchQ)
|
if( sib2->intraFreqCellReselectionInfo.s_IntraSearchQ)
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.s_IntraSearchQ : %ld\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.s_IntraSearchQ : %ld\n",
|
||||||
*sib2->intraFreqCellReselectionInfo.s_IntraSearchQ );
|
*sib2->intraFreqCellReselectionInfo.s_IntraSearchQ );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo->s_IntraSearchQ : not defined\n" );
|
LOG_I( RRC, "intraFreqCellReselectionInfo->s_IntraSearchQ : not defined\n" );
|
||||||
|
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.t_ReselectionNR : %ld\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.t_ReselectionNR : %ld\n",
|
||||||
sib2->intraFreqCellReselectionInfo.t_ReselectionNR );
|
sib2->intraFreqCellReselectionInfo.t_ReselectionNR );
|
||||||
|
|
||||||
@@ -692,25 +692,25 @@ void nr_dump_sib2( NR_SIB2_t *sib2 ){
|
|||||||
sib2->intraFreqCellReselectionInfo.frequencyBandList );
|
sib2->intraFreqCellReselectionInfo.frequencyBandList );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo->frequencyBandList : not defined\n" );
|
LOG_I( RRC, "intraFreqCellReselectionInfo->frequencyBandList : not defined\n" );
|
||||||
|
|
||||||
if( sib2->intraFreqCellReselectionInfo.frequencyBandListSUL)
|
if( sib2->intraFreqCellReselectionInfo.frequencyBandListSUL)
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.frequencyBandListSUL : %p\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.frequencyBandListSUL : %p\n",
|
||||||
sib2->intraFreqCellReselectionInfo.frequencyBandListSUL );
|
sib2->intraFreqCellReselectionInfo.frequencyBandListSUL );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo->frequencyBandListSUL : not defined\n" );
|
LOG_I( RRC, "intraFreqCellReselectionInfo->frequencyBandListSUL : not defined\n" );
|
||||||
|
|
||||||
if( sib2->intraFreqCellReselectionInfo.p_Max)
|
if( sib2->intraFreqCellReselectionInfo.p_Max)
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.p_Max : %ld\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.p_Max : %ld\n",
|
||||||
*sib2->intraFreqCellReselectionInfo.p_Max );
|
*sib2->intraFreqCellReselectionInfo.p_Max );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo->p_Max : not defined\n" );
|
LOG_I( RRC, "intraFreqCellReselectionInfo->p_Max : not defined\n" );
|
||||||
|
|
||||||
if( sib2->intraFreqCellReselectionInfo.smtc)
|
if( sib2->intraFreqCellReselectionInfo.smtc)
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.smtc : %p\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.smtc : %p\n",
|
||||||
sib2->intraFreqCellReselectionInfo.smtc );
|
sib2->intraFreqCellReselectionInfo.smtc );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo->smtc : not defined\n" );
|
LOG_I( RRC, "intraFreqCellReselectionInfo->smtc : not defined\n" );
|
||||||
|
|
||||||
if( sib2->intraFreqCellReselectionInfo.ss_RSSI_Measurement)
|
if( sib2->intraFreqCellReselectionInfo.ss_RSSI_Measurement)
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.ss_RSSI_Measurement : %p\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.ss_RSSI_Measurement : %p\n",
|
||||||
sib2->intraFreqCellReselectionInfo.ss_RSSI_Measurement );
|
sib2->intraFreqCellReselectionInfo.ss_RSSI_Measurement );
|
||||||
@@ -722,7 +722,7 @@ void nr_dump_sib2( NR_SIB2_t *sib2 ){
|
|||||||
sib2->intraFreqCellReselectionInfo.ssb_ToMeasure );
|
sib2->intraFreqCellReselectionInfo.ssb_ToMeasure );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo->ssb_ToMeasure : not defined\n" );
|
LOG_I( RRC, "intraFreqCellReselectionInfo->ssb_ToMeasure : not defined\n" );
|
||||||
|
|
||||||
LOG_I( RRC, "intraFreqCellReselectionInfo.deriveSSB_IndexFromCell : %d\n",
|
LOG_I( RRC, "intraFreqCellReselectionInfo.deriveSSB_IndexFromCell : %d\n",
|
||||||
sib2->intraFreqCellReselectionInfo.deriveSSB_IndexFromCell );
|
sib2->intraFreqCellReselectionInfo.deriveSSB_IndexFromCell );
|
||||||
|
|
||||||
@@ -732,7 +732,7 @@ void nr_dump_sib3( NR_SIB3_t *sib3 ) {
|
|||||||
//intraFreqNeighCellList
|
//intraFreqNeighCellList
|
||||||
if( sib3->intraFreqNeighCellList){
|
if( sib3->intraFreqNeighCellList){
|
||||||
LOG_I( RRC, "intraFreqNeighCellList : %p\n",
|
LOG_I( RRC, "intraFreqNeighCellList : %p\n",
|
||||||
sib3->intraFreqNeighCellList );
|
sib3->intraFreqNeighCellList );
|
||||||
const int n = sib3->intraFreqNeighCellList->list.count;
|
const int n = sib3->intraFreqNeighCellList->list.count;
|
||||||
for (int i = 0; i < n; ++i){
|
for (int i = 0; i < n; ++i){
|
||||||
LOG_I( RRC, "intraFreqNeighCellList->physCellId : %ld\n",
|
LOG_I( RRC, "intraFreqNeighCellList->physCellId : %ld\n",
|
||||||
@@ -745,13 +745,13 @@ void nr_dump_sib3( NR_SIB3_t *sib3 ) {
|
|||||||
*sib3->intraFreqNeighCellList->list.array[i]->q_RxLevMinOffsetCell );
|
*sib3->intraFreqNeighCellList->list.array[i]->q_RxLevMinOffsetCell );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqNeighCellList->q_RxLevMinOffsetCell : not defined\n" );
|
LOG_I( RRC, "intraFreqNeighCellList->q_RxLevMinOffsetCell : not defined\n" );
|
||||||
|
|
||||||
if( sib3->intraFreqNeighCellList->list.array[i]->q_RxLevMinOffsetCellSUL)
|
if( sib3->intraFreqNeighCellList->list.array[i]->q_RxLevMinOffsetCellSUL)
|
||||||
LOG_I( RRC, "intraFreqNeighCellList->q_RxLevMinOffsetCellSUL : %ld\n",
|
LOG_I( RRC, "intraFreqNeighCellList->q_RxLevMinOffsetCellSUL : %ld\n",
|
||||||
*sib3->intraFreqNeighCellList->list.array[i]->q_RxLevMinOffsetCellSUL );
|
*sib3->intraFreqNeighCellList->list.array[i]->q_RxLevMinOffsetCellSUL );
|
||||||
else
|
else
|
||||||
LOG_I( RRC, "intraFreqNeighCellList->q_RxLevMinOffsetCellSUL : not defined\n" );
|
LOG_I( RRC, "intraFreqNeighCellList->q_RxLevMinOffsetCellSUL : not defined\n" );
|
||||||
|
|
||||||
if( sib3->intraFreqNeighCellList->list.array[i]->q_QualMinOffsetCell)
|
if( sib3->intraFreqNeighCellList->list.array[i]->q_QualMinOffsetCell)
|
||||||
LOG_I( RRC, "intraFreqNeighCellList->q_QualMinOffsetCell : %ld\n",
|
LOG_I( RRC, "intraFreqNeighCellList->q_QualMinOffsetCell : %ld\n",
|
||||||
*sib3->intraFreqNeighCellList->list.array[i]->q_QualMinOffsetCell );
|
*sib3->intraFreqNeighCellList->list.array[i]->q_QualMinOffsetCell );
|
||||||
@@ -765,7 +765,7 @@ void nr_dump_sib3( NR_SIB3_t *sib3 ) {
|
|||||||
//intraFreqBlackCellList
|
//intraFreqBlackCellList
|
||||||
if( sib3->intraFreqBlackCellList){
|
if( sib3->intraFreqBlackCellList){
|
||||||
LOG_I( RRC, "intraFreqBlackCellList : %p\n",
|
LOG_I( RRC, "intraFreqBlackCellList : %p\n",
|
||||||
sib3->intraFreqBlackCellList );
|
sib3->intraFreqBlackCellList );
|
||||||
const int n = sib3->intraFreqBlackCellList->list.count;
|
const int n = sib3->intraFreqBlackCellList->list.count;
|
||||||
for (int i = 0; i < n; ++i){
|
for (int i = 0; i < n; ++i){
|
||||||
LOG_I( RRC, "intraFreqBlackCellList->start : %ld\n",
|
LOG_I( RRC, "intraFreqBlackCellList->start : %ld\n",
|
||||||
@@ -983,7 +983,7 @@ int nr_decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t gNB_index
|
|||||||
memcpy( NR_UE_rrc_inst[ctxt_pP->module_id].sib12[gNB_index], typeandinfo->choice.sib14_v1610, sizeof(NR_SIB14_r16_t) );
|
memcpy( NR_UE_rrc_inst[ctxt_pP->module_id].sib12[gNB_index], typeandinfo->choice.sib14_v1610, sizeof(NR_SIB14_r16_t) );
|
||||||
LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB14 from gNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, gNB_index );
|
LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB14 from gNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, gNB_index );
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -991,10 +991,10 @@ int nr_decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t gNB_index
|
|||||||
}
|
}
|
||||||
if (new_sib == 1) {
|
if (new_sib == 1) {
|
||||||
NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].SIcnt++;
|
NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].SIcnt++;
|
||||||
|
|
||||||
if (NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].SIcnt == sib1->si_SchedulingInfo->schedulingInfoList.list.count)
|
if (NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].SIcnt == sib1->si_SchedulingInfo->schedulingInfoList.list.count)
|
||||||
nr_rrc_set_sub_state( ctxt_pP->module_id, RRC_SUB_STATE_IDLE_SIB_COMPLETE );
|
nr_rrc_set_sub_state( ctxt_pP->module_id, RRC_SUB_STATE_IDLE_SIB_COMPLETE );
|
||||||
|
|
||||||
LOG_I(RRC,"SIStatus %x, SIcnt %d/%d\n",
|
LOG_I(RRC,"SIStatus %x, SIcnt %d/%d\n",
|
||||||
NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].SIStatus,
|
NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].SIStatus,
|
||||||
NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].SIcnt,
|
NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].SIcnt,
|
||||||
@@ -1346,7 +1346,7 @@ static void rrc_ue_generate_RRCSetupComplete(
|
|||||||
const uint8_t gNB_index,
|
const uint8_t gNB_index,
|
||||||
const uint8_t Transaction_id,
|
const uint8_t Transaction_id,
|
||||||
uint8_t sel_plmn_id){
|
uint8_t sel_plmn_id){
|
||||||
|
|
||||||
uint8_t buffer[100];
|
uint8_t buffer[100];
|
||||||
uint8_t size;
|
uint8_t size;
|
||||||
const char *nas_msg;
|
const char *nas_msg;
|
||||||
@@ -1405,17 +1405,17 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
|
|||||||
(void **)&dl_ccch_msg,
|
(void **)&dl_ccch_msg,
|
||||||
(uint8_t *)Srb_info->Rx_buffer.Payload,
|
(uint8_t *)Srb_info->Rx_buffer.Payload,
|
||||||
100,0,0);
|
100,0,0);
|
||||||
|
|
||||||
// if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
|
// if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) {
|
||||||
xer_fprint(stdout,&asn_DEF_NR_DL_CCCH_Message,(void *)dl_ccch_msg);
|
xer_fprint(stdout,&asn_DEF_NR_DL_CCCH_Message,(void *)dl_ccch_msg);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if ((dec_rval.code != RC_OK) && (dec_rval.consumed==0)) {
|
if ((dec_rval.code != RC_OK) && (dec_rval.consumed==0)) {
|
||||||
LOG_E(RRC,"[UE %d] Frame %d : Failed to decode DL-CCCH-Message (%zu bytes)\n",ctxt_pP->module_id,ctxt_pP->frame,dec_rval.consumed);
|
LOG_E(RRC,"[UE %d] Frame %d : Failed to decode DL-CCCH-Message (%zu bytes)\n",ctxt_pP->module_id,ctxt_pP->frame,dec_rval.consumed);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH, VCD_FUNCTION_OUT);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dl_ccch_msg->message.present == NR_DL_CCCH_MessageType_PR_c1) {
|
if (dl_ccch_msg->message.present == NR_DL_CCCH_MessageType_PR_c1) {
|
||||||
if (NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].State == NR_RRC_SI_RECEIVED) {
|
if (NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].State == NR_RRC_SI_RECEIVED) {
|
||||||
switch (dl_ccch_msg->message.choice.c1->present) {
|
switch (dl_ccch_msg->message.choice.c1->present) {
|
||||||
@@ -1425,7 +1425,7 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
|
|||||||
ctxt_pP->frame);
|
ctxt_pP->frame);
|
||||||
rval = 0;
|
rval = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NR_DL_CCCH_MessageType__c1_PR_rrcReject:
|
case NR_DL_CCCH_MessageType__c1_PR_rrcReject:
|
||||||
LOG_I(NR_RRC,
|
LOG_I(NR_RRC,
|
||||||
"[UE%d] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionReject \n",
|
"[UE%d] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionReject \n",
|
||||||
@@ -1433,7 +1433,7 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
|
|||||||
ctxt_pP->frame);
|
ctxt_pP->frame);
|
||||||
rval = 0;
|
rval = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NR_DL_CCCH_MessageType__c1_PR_rrcSetup:
|
case NR_DL_CCCH_MessageType__c1_PR_rrcSetup:
|
||||||
LOG_I(NR_RRC,
|
LOG_I(NR_RRC,
|
||||||
"[UE%d][RAPROC] Frame %d : Logical Channel DL-CCCH (SRB0), Received NR_RRCSetup RNTI %x\n",
|
"[UE%d][RAPROC] Frame %d : Logical Channel DL-CCCH (SRB0), Received NR_RRCSetup RNTI %x\n",
|
||||||
@@ -1443,7 +1443,7 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
|
|||||||
// Get configuration
|
// Get configuration
|
||||||
// Release T300 timer
|
// Release T300 timer
|
||||||
NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].T300_active = 0;
|
NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].T300_active = 0;
|
||||||
|
|
||||||
nr_rrc_ue_process_masterCellGroup(
|
nr_rrc_ue_process_masterCellGroup(
|
||||||
ctxt_pP,
|
ctxt_pP,
|
||||||
gNB_index,
|
gNB_index,
|
||||||
@@ -1462,7 +1462,7 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
|
|||||||
NR_UE_rrc_inst[ctxt_pP->module_id].selected_plmn_identity);
|
NR_UE_rrc_inst[ctxt_pP->module_id].selected_plmn_identity);
|
||||||
rval = 0;
|
rval = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
LOG_E(NR_RRC, "[UE%d] Frame %d : Unknown message\n",
|
LOG_E(NR_RRC, "[UE%d] Frame %d : Unknown message\n",
|
||||||
ctxt_pP->module_id,
|
ctxt_pP->module_id,
|
||||||
@@ -1472,7 +1472,7 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH, VCD_FUNCTION_OUT);
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
@@ -1522,13 +1522,13 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
|
|||||||
const uint8_t *bufferP,
|
const uint8_t *bufferP,
|
||||||
const uint32_t buffer_len ){
|
const uint32_t buffer_len ){
|
||||||
// uper_decode by nr R15 rrc_connection_reconfiguration
|
// uper_decode by nr R15 rrc_connection_reconfiguration
|
||||||
|
|
||||||
int32_t i;
|
int32_t i;
|
||||||
NR_DL_DCCH_Message_t *nr_dl_dcch_msg = NULL;
|
NR_DL_DCCH_Message_t *nr_dl_dcch_msg = NULL;
|
||||||
MessageDef *msg_p;
|
MessageDef *msg_p;
|
||||||
|
|
||||||
asn_dec_rval_t dec_rval = uper_decode( NULL,
|
asn_dec_rval_t dec_rval = uper_decode( NULL,
|
||||||
&asn_DEF_NR_DL_DCCH_Message,
|
&asn_DEF_NR_DL_DCCH_Message,
|
||||||
(void**)&nr_dl_dcch_msg,
|
(void**)&nr_dl_dcch_msg,
|
||||||
(uint8_t *)bufferP,
|
(uint8_t *)bufferP,
|
||||||
buffer_len, 0, 0);
|
buffer_len, 0, 0);
|
||||||
@@ -1543,7 +1543,7 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(nr_dl_dcch_msg != NULL){
|
if(nr_dl_dcch_msg != NULL){
|
||||||
switch(nr_dl_dcch_msg->message.present){
|
switch(nr_dl_dcch_msg->message.present){
|
||||||
case NR_DL_DCCH_MessageType_PR_c1:
|
case NR_DL_DCCH_MessageType_PR_c1:
|
||||||
switch(nr_dl_dcch_msg->message.choice.c1->present){
|
switch(nr_dl_dcch_msg->message.choice.c1->present){
|
||||||
case NR_DL_DCCH_MessageType__c1_PR_rrcReconfiguration:
|
case NR_DL_DCCH_MessageType__c1_PR_rrcReconfiguration:
|
||||||
@@ -1563,7 +1563,7 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
|
|||||||
}
|
}
|
||||||
itti_send_msg_to_task(TASK_RRC_NRUE,module_id,msg_p);
|
itti_send_msg_to_task(TASK_RRC_NRUE,module_id,msg_p);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NR_DL_DCCH_MessageType__c1_PR_rrcReestablishment:
|
case NR_DL_DCCH_MessageType__c1_PR_rrcReestablishment:
|
||||||
case NR_DL_DCCH_MessageType__c1_PR_securityModeCommand:
|
case NR_DL_DCCH_MessageType__c1_PR_securityModeCommand:
|
||||||
case NR_DL_DCCH_MessageType__c1_PR_dlInformationTransfer:
|
case NR_DL_DCCH_MessageType__c1_PR_dlInformationTransfer:
|
||||||
@@ -1588,7 +1588,7 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
|
|||||||
// not supported or unused
|
// not supported or unused
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// release memory allocation
|
// release memory allocation
|
||||||
SEQUENCE_free( &asn_DEF_NR_DL_DCCH_Message, (void *)nr_dl_dcch_msg, 1 );
|
SEQUENCE_free( &asn_DEF_NR_DL_DCCH_Message, (void *)nr_dl_dcch_msg, 1 );
|
||||||
}else{
|
}else{
|
||||||
@@ -2546,7 +2546,7 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
|
|||||||
|
|
||||||
NR_UE_rrc_inst[ctxt_pP->module_id].UECap = UECap;
|
NR_UE_rrc_inst[ctxt_pP->module_id].UECap = UECap;
|
||||||
NR_UE_rrc_inst[ctxt_pP->module_id].UECapability = UECap->sdu;
|
NR_UE_rrc_inst[ctxt_pP->module_id].UECapability = UECap->sdu;
|
||||||
NR_UE_rrc_inst[ctxt_pP->module_id].UECapability_size = UECap->sdu_size;
|
NR_UE_rrc_inst[ctxt_pP->module_id].UECapability_size = UECap->sdu_size;
|
||||||
OCTET_STRING_fromBuf(&ue_CapabilityRAT_Container.ue_CapabilityRAT_Container,
|
OCTET_STRING_fromBuf(&ue_CapabilityRAT_Container.ue_CapabilityRAT_Container,
|
||||||
(const char *)NR_UE_rrc_inst[ctxt_pP->module_id].UECapability,
|
(const char *)NR_UE_rrc_inst[ctxt_pP->module_id].UECapability,
|
||||||
NR_UE_rrc_inst[ctxt_pP->module_id].UECapability_size);
|
NR_UE_rrc_inst[ctxt_pP->module_id].UECapability_size);
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ typedef struct NR_UE_RRC_INST_s {
|
|||||||
uint8_t kgnb[32];
|
uint8_t kgnb[32];
|
||||||
NR_CipheringAlgorithm_t cipheringAlgorithm;
|
NR_CipheringAlgorithm_t cipheringAlgorithm;
|
||||||
e_NR_IntegrityProtAlgorithm integrityProtAlgorithm;
|
e_NR_IntegrityProtAlgorithm integrityProtAlgorithm;
|
||||||
|
|
||||||
// lists
|
// lists
|
||||||
// CellGroupConfig.rlc-BearerToAddModList
|
// CellGroupConfig.rlc-BearerToAddModList
|
||||||
RRC_LIST_TYPE(NR_RLC_BearerConfig_t, NR_maxLC_ID) RLC_Bearer_Config_list;
|
RRC_LIST_TYPE(NR_RLC_BearerConfig_t, NR_maxLC_ID) RLC_Bearer_Config_list;
|
||||||
|
|||||||
Reference in New Issue
Block a user