fix for SSB larger than 7 at UE

This commit is contained in:
francescomani
2026-01-21 03:48:17 +01:00
parent 64091c9a51
commit 5e6d9dbbc6
2 changed files with 9 additions and 7 deletions
+1 -4
View File
@@ -195,10 +195,7 @@ void nr_ue_decode_mib(NR_UE_MAC_INST_t *mac, int cc_id)
frame = frame << 4;
mac->mib_frame = frame | frame_number_4lsb;
if (mac->frequency_range == FR2) {
for (int i = 0; i < 3; i++)
mac->mib_ssb += (((extra_bits >> (7 - i)) & 0x01) << (3 + i));
} else{
if (mac->frequency_range == FR1) {
if(ssb_subcarrier_offset_msb)
ssb_subcarrier_offset = ssb_subcarrier_offset | 0x10;
}
+8 -3
View File
@@ -108,18 +108,23 @@ static int handle_bcch_bch(NR_UE_MAC_INST_t *mac,
void *phy_data,
uint8_t *pduP,
unsigned int additional_bits,
uint32_t ssb_index,
uint32_t ssb_index_mod8,
uint32_t ssb_length,
uint16_t ssb_start_subcarrier,
long ssb_arfcn,
uint16_t cell_id)
{
mac->mib_ssb = ssb_index;
mac->mib_ssb = ssb_index_mod8;
mac->physCellId = cell_id;
mac->mib_additional_bits = additional_bits;
mac->ssb_start_subcarrier = ssb_start_subcarrier;
if(ssb_length == 64)
if(ssb_length == 64) {
mac->frequency_range = FR2;
uint8_t ab = additional_bits & 0xff;
uint8_t out;
reverse_bits_u8(&ab, 1, &out);
mac->mib_ssb += (out & 0x7) << 3;
}
else
mac->frequency_range = FR1;
// fixed 3 bytes MIB PDU