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