Commit 35e9d1e0 authored by francescomani's avatar francescomani

tentative fix for double sib1 decoding

parent 766619aa
This diff is collapsed.
......@@ -104,53 +104,59 @@ typedef enum RA_trigger_e {
BEAM_FAILURE_RECOVERY,
} RA_trigger_t;
typedef enum {
SIB_NOT_VALID,
SIB_VALID,
SIB_REQUESTED,
} SIB_validity_t;
typedef struct UE_RRC_SI_INFO_NR_r17_s {
uint32_t default_otherSI_map_r17;
bool sib15_validity;
SIB_validity_t sib15_validity;
NR_timer_t sib15_timer;
bool sib16_validity;
SIB_validity_t sib16_validity;
NR_timer_t sib16_timer;
bool sib17_validity;
SIB_validity_t sib17_validity;
NR_timer_t sib17_timer;
bool sib18_validity;
SIB_validity_t sib18_validity;
NR_timer_t sib18_timer;
bool sib19_validity;
SIB_validity_t sib19_validity;
NR_timer_t sib19_timer;
bool sib20_validity;
SIB_validity_t sib20_validity;
NR_timer_t sib20_timer;
bool sib21_validity;
SIB_validity_t sib21_validity;
NR_timer_t sib21_timer;
} NR_UE_RRC_SI_INFO_r17;
typedef struct UE_RRC_SI_INFO_NR_s {
uint32_t default_otherSI_map;
bool sib1_validity;
SIB_validity_t sib1_validity;
NR_timer_t sib1_timer;
bool sib2_validity;
SIB_validity_t sib2_validity;
NR_timer_t sib2_timer;
bool sib3_validity;
SIB_validity_t sib3_validity;
NR_timer_t sib3_timer;
bool sib4_validity;
SIB_validity_t sib4_validity;
NR_timer_t sib4_timer;
bool sib5_validity;
SIB_validity_t sib5_validity;
NR_timer_t sib5_timer;
bool sib6_validity;
SIB_validity_t sib6_validity;
NR_timer_t sib6_timer;
bool sib7_validity;
SIB_validity_t sib7_validity;
NR_timer_t sib7_timer;
bool sib8_validity;
SIB_validity_t sib8_validity;
NR_timer_t sib8_timer;
bool sib9_validity;
SIB_validity_t sib9_validity;
NR_timer_t sib9_timer;
bool sib10_validity;
SIB_validity_t sib10_validity;
NR_timer_t sib10_timer;
bool sib11_validity;
SIB_validity_t sib11_validity;
NR_timer_t sib11_timer;
bool sib12_validity;
SIB_validity_t sib12_validity;
NR_timer_t sib12_timer;
bool sib13_validity;
SIB_validity_t sib13_validity;
NR_timer_t sib13_timer;
bool sib14_validity;
SIB_validity_t sib14_validity;
NR_timer_t sib14_timer;
NR_UE_RRC_SI_INFO_r17 SInfo_r17;
} NR_UE_RRC_SI_INFO;
......
......@@ -43,83 +43,33 @@ void init_SI_timers(NR_UE_RRC_SI_INFO *SInfo)
nr_timer_setup(&SInfo->SInfo_r17.sib19_timer, 10800000, 10);
}
void nr_rrc_SI_timers(NR_UE_RRC_SI_INFO *SInfo)
static SIB_validity_t check_sib_timer_validity(SIB_validity_t sib_validity, NR_timer_t *sib_timer)
{
if (SInfo->sib1_validity) {
bool sib1_expired = nr_timer_tick(&SInfo->sib1_timer);
if (sib1_expired)
SInfo->sib1_validity = false;
}
if (SInfo->sib2_validity) {
bool sib2_expired = nr_timer_tick(&SInfo->sib2_timer);
if (sib2_expired)
SInfo->sib2_validity = false;
}
if (SInfo->sib3_validity) {
bool sib3_expired = nr_timer_tick(&SInfo->sib3_timer);
if (sib3_expired)
SInfo->sib3_validity = false;
}
if (SInfo->sib4_validity) {
bool sib4_expired = nr_timer_tick(&SInfo->sib4_timer);
if (sib4_expired)
SInfo->sib4_validity = false;
}
if (SInfo->sib5_validity) {
bool sib5_expired = nr_timer_tick(&SInfo->sib5_timer);
if (sib5_expired)
SInfo->sib5_validity = false;
}
if (SInfo->sib6_validity) {
bool sib6_expired = nr_timer_tick(&SInfo->sib6_timer);
if (sib6_expired)
SInfo->sib6_validity = false;
}
if (SInfo->sib7_validity) {
bool sib7_expired = nr_timer_tick(&SInfo->sib7_timer);
if (sib7_expired)
SInfo->sib7_validity = false;
}
if (SInfo->sib8_validity) {
bool sib8_expired = nr_timer_tick(&SInfo->sib8_timer);
if (sib8_expired)
SInfo->sib8_validity = false;
}
if (SInfo->sib9_validity) {
bool sib9_expired = nr_timer_tick(&SInfo->sib9_timer);
if (sib9_expired)
SInfo->sib9_validity = false;
}
if (SInfo->sib10_validity) {
bool sib10_expired = nr_timer_tick(&SInfo->sib10_timer);
if (sib10_expired)
SInfo->sib10_validity = false;
}
if (SInfo->sib11_validity) {
bool sib11_expired = nr_timer_tick(&SInfo->sib11_timer);
if (sib11_expired)
SInfo->sib11_validity = false;
}
if (SInfo->sib12_validity) {
bool sib12_expired = nr_timer_tick(&SInfo->sib12_timer);
if (sib12_expired)
SInfo->sib12_validity = false;
}
if (SInfo->sib13_validity) {
bool sib13_expired = nr_timer_tick(&SInfo->sib13_timer);
if (sib13_expired)
SInfo->sib13_validity = false;
}
if (SInfo->sib14_validity) {
bool sib14_expired = nr_timer_tick(&SInfo->sib14_timer);
if (sib14_expired)
SInfo->sib14_validity = false;
}
if (SInfo->SInfo_r17.sib19_validity) {
bool sib19_expired = nr_timer_tick(&SInfo->SInfo_r17.sib19_timer);
if (sib19_expired)
SInfo->SInfo_r17.sib19_validity = false;
if (sib_validity == SIB_VALID) {
bool sib_expired = nr_timer_tick(sib_timer);
if (sib_expired)
return SIB_NOT_VALID;
}
return sib_validity;
}
void nr_rrc_SI_timers(NR_UE_RRC_SI_INFO *SInfo)
{
SInfo->sib1_validity = check_sib_timer_validity(SInfo->sib1_validity, &SInfo->sib1_timer);
SInfo->sib2_validity = check_sib_timer_validity(SInfo->sib2_validity, &SInfo->sib2_timer);
SInfo->sib3_validity = check_sib_timer_validity(SInfo->sib3_validity, &SInfo->sib3_timer);
SInfo->sib4_validity = check_sib_timer_validity(SInfo->sib4_validity, &SInfo->sib4_timer);
SInfo->sib5_validity = check_sib_timer_validity(SInfo->sib5_validity, &SInfo->sib5_timer);
SInfo->sib6_validity = check_sib_timer_validity(SInfo->sib6_validity, &SInfo->sib6_timer);
SInfo->sib7_validity = check_sib_timer_validity(SInfo->sib7_validity, &SInfo->sib7_timer);
SInfo->sib8_validity = check_sib_timer_validity(SInfo->sib8_validity, &SInfo->sib8_timer);
SInfo->sib9_validity = check_sib_timer_validity(SInfo->sib9_validity, &SInfo->sib9_timer);
SInfo->sib10_validity = check_sib_timer_validity(SInfo->sib10_validity, &SInfo->sib10_timer);
SInfo->sib11_validity = check_sib_timer_validity(SInfo->sib11_validity, &SInfo->sib11_timer);
SInfo->sib12_validity = check_sib_timer_validity(SInfo->sib12_validity, &SInfo->sib12_timer);
SInfo->sib13_validity = check_sib_timer_validity(SInfo->sib13_validity, &SInfo->sib13_timer);
SInfo->sib14_validity = check_sib_timer_validity(SInfo->sib14_validity, &SInfo->sib14_timer);
SInfo->SInfo_r17.sib19_validity = check_sib_timer_validity(SInfo->SInfo_r17.sib19_validity, &SInfo->SInfo_r17.sib19_timer);
}
void nr_rrc_handle_timers(NR_UE_RRC_INST_t *rrc)
......
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