Commit 5480522a authored by francescomani's avatar francescomani

additional check for absoluteFrequencySSB to be in channel raster and some cleanup of config files

parent 57be6ee2
......@@ -32,7 +32,7 @@ gNBs =
# downlinkConfigCommon
#frequencyInfoDL
# this is 2150 MHz + 43 PRBs@30kHz SCS (same as initial BWP)
absoluteFrequencySSB = 433096;
absoluteFrequencySSB = 432880;
dl_frequencyBand = 66;
# this is 2150 MHz
dl_absoluteFrequencyPointA = 430000;
......
......@@ -23,13 +23,6 @@ gNBs =
do_SRS = 1;
min_rxtxtime = 5;
pdcch_ConfigSIB1 = (
{
controlResourceSetZero = 12;
searchSpaceZero = 0;
}
);
servingCellConfigCommon = (
{
#spCellConfigCommon
......
......@@ -26,13 +26,6 @@ gNBs =
do_CSIRS = 1;
do_SRS = 0;
pdcch_ConfigSIB1 = (
{
controlResourceSetZero = 11;
searchSpaceZero = 0;
}
);
servingCellConfigCommon = (
{
#spCellConfigCommon
......
......@@ -1117,7 +1117,7 @@ void config_security(gNB_RRC_INST *rrc)
}
// Section 5.4.3 of 38.101-1 and -2
void check_ssb_raster(long absolutefreqssb, int band, int scs)
void check_ssb_raster(uint64_t freq, int band, int scs)
{
int start_GSCN = 0, step_GSCN = 0, end_GSCN = 0;
for (int i = 0; i < sizeof(sync_raster) / 20; i++) {
......@@ -1130,7 +1130,6 @@ void check_ssb_raster(long absolutefreqssb, int band, int scs)
}
}
AssertFatal(start_GSCN != 0, "Couldn't find band %d with SCS %d\n", band, scs);
uint64_t freq = from_nrarfcn(band, scs, absolutefreqssb);
int GSCN;
if (freq <= 3000000000) {
int N = 0;
......@@ -1142,29 +1141,29 @@ void check_ssb_raster(long absolutefreqssb, int band, int scs)
break;
}
}
AssertFatal(N != 0, "absoluteFrequencySSB %ld (%lu Hz) not on the synchronization raster (N * 1200kHz + M * 50 kHz)\n",
absolutefreqssb, freq);
AssertFatal(N != 0, "SSB frequency %lu Hz not on the synchronization raster (N * 1200kHz + M * 50 kHz)\n",
freq);
GSCN = (3 * N) + (M - 3) / 2;
}
else if (freq <= 24250000000) {
AssertFatal((freq - 3000000000) % 1440000 == 0,
"absoluteFrequencySSB %ld (%lu Hz) not on the synchronization raster (3000 MHz + N * 1.44 MHz)\n",
absolutefreqssb, freq);
"SSB frequency %lu Hz not on the synchronization raster (3000 MHz + N * 1.44 MHz)\n",
freq);
GSCN = ((freq - 3000000000) / 1440000) + 7499;
}
else {
AssertFatal((freq - 24250080000) % 17280000 == 0,
"absoluteFrequencySSB %ld (%lu Hz) not on the synchronization raster (24250.08 MHz + N * 17.28 MHz)\n",
absolutefreqssb, freq);
"SSB frequency %lu Hz not on the synchronization raster (24250.08 MHz + N * 17.28 MHz)\n",
freq);
GSCN = ((freq - 24250080000) / 17280000) + 22256;
}
AssertFatal(GSCN >= start_GSCN && GSCN <= end_GSCN,
"GSCN %d corresponding to absoluteFrequencySSB %ld does not belong to GSCN range for band %d\n",
GSCN, absolutefreqssb, band);
"GSCN %d corresponding to SSB frequency %lu does not belong to GSCN range for band %d\n",
GSCN, freq, band);
int rel_GSCN = GSCN - start_GSCN;
AssertFatal(rel_GSCN % step_GSCN == 0,
"GSCN %d corresponding to absoluteFrequencySSB %ld not in accordance with GSCN step for band %d\n",
GSCN, absolutefreqssb, band);
"GSCN %d corresponding to SSB freqyency %lu not in accordance with GSCN step for band %d\n",
GSCN, freq, band);
}
void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc)
......@@ -1232,8 +1231,13 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc)
(int)scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth,
(int)scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rach_ConfigGeneric.preambleReceivedTargetPower);
// SSB of the PCell is always on the sync raster
uint64_t ssb_freq = from_nrarfcn(*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0],
*scc->ssbSubcarrierSpacing,
*scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB);
LOG_I(RRC, "absoluteFrequencySSB %ld corresponds to %lu Hz\n",
*scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB, ssb_freq);
if (get_softmodem_params()->sa)
check_ssb_raster(*scc->downlinkConfigCommon->frequencyInfoDL->absoluteFrequencySSB,
check_ssb_raster(ssb_freq,
*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0],
*scc->ssbSubcarrierSpacing);
fix_scc(scc, ssb_bitmap);
......
......@@ -2335,17 +2335,16 @@ uint64_t from_nrarfcn(int nr_bandP,
AssertFatal(nrarfcn >= N_OFFs,"nrarfcn %u < N_OFFs[%d] %llu\n", nrarfcn, nr_bandtable[i].band, (long long unsigned int)N_OFFs);
get_delta_arfcn(i, nrarfcn, N_OFFs);
frequency = 1000*(F_REF_Offs_khz + (nrarfcn - N_REF_Offs) * deltaFglobal);
frequency = 1000 * (F_REF_Offs_khz + (nrarfcn - N_REF_Offs) * deltaFglobal);
LOG_I(NR_MAC, "Computing frequency (pointA %llu => %llu KHz (freq_min %llu KHz, NR band %d N_OFFs %llu))\n",
(unsigned long long)nrarfcn,
(unsigned long long)frequency/1000,
(unsigned long long)freq_min,
nr_bandP,
(unsigned long long)N_OFFs);
LOG_D(NR_MAC, "Computing frequency (nrarfcn %llu => %llu KHz (freq_min %llu KHz, NR band %d N_OFFs %llu))\n",
(unsigned long long)nrarfcn,
(unsigned long long)frequency/1000,
(unsigned long long)freq_min,
nr_bandP,
(unsigned long long)N_OFFs);
return frequency;
}
void nr_get_tbs_dl(nfapi_nr_dl_tti_pdsch_pdu *pdsch_pdu,
......
......@@ -25,13 +25,6 @@ gNBs =
sib1_tda = 15;
min_rxtxtime = 6;
pdcch_ConfigSIB1 = (
{
controlResourceSetZero = 6;
searchSpaceZero = 0;
}
);
servingCellConfigCommon = (
{
#spCellConfigCommon
......
......@@ -38,13 +38,6 @@ gNBs =
min_rxtxtime = 6;
sib1_tda = 0;
pdcch_ConfigSIB1 = (
{
controlResourceSetZero = 12;
searchSpaceZero = 0;
}
);
servingCellConfigCommon = (
{
#spCellConfigCommon
......
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