Commit 1d042eab authored by francescomani's avatar francescomani

T311 expiry

parent fbc15ea7
...@@ -1470,8 +1470,7 @@ void *rrc_nrue(void *notUsed) ...@@ -1470,8 +1470,7 @@ void *rrc_nrue(void *notUsed)
case NRRRC_FRAME_PROCESS: case NRRRC_FRAME_PROCESS:
LOG_D(NR_RRC, "Received %s: frame %d\n", ITTI_MSG_NAME(msg_p), NRRRC_FRAME_PROCESS(msg_p).frame); LOG_D(NR_RRC, "Received %s: frame %d\n", ITTI_MSG_NAME(msg_p), NRRRC_FRAME_PROCESS(msg_p).frame);
// increase the timers every 10ms (every new frame) // increase the timers every 10ms (every new frame)
NR_UE_Timers_Constants_t *timers = &NR_UE_rrc_inst[instance].timers_and_constants; nr_rrc_handle_timers(rrc, instance);
nr_rrc_handle_timers(timers);
NR_UE_RRC_SI_INFO *SInfo = &NR_UE_rrc_inst[instance].perNB[NRRRC_FRAME_PROCESS(msg_p).gnb_id].SInfo; NR_UE_RRC_SI_INFO *SInfo = &NR_UE_rrc_inst[instance].perNB[NRRRC_FRAME_PROCESS(msg_p).gnb_id].SInfo;
nr_rrc_SI_timers(SInfo); nr_rrc_SI_timers(SInfo);
break; break;
......
...@@ -105,7 +105,7 @@ void nr_mac_rrc_msg3_ind(const module_id_t mod_id, int rnti); ...@@ -105,7 +105,7 @@ void nr_mac_rrc_msg3_ind(const module_id_t mod_id, int rnti);
void *rrc_nrue_task(void *args_p); void *rrc_nrue_task(void *args_p);
void *rrc_nrue(void *args_p); void *rrc_nrue(void *args_p);
void nr_rrc_handle_timers(NR_UE_Timers_Constants_t *timers); void nr_rrc_handle_timers(NR_UE_RRC_INST_t *rrc, instance_t instance);
/**\brief RRC NSA UE task. /**\brief RRC NSA UE task.
\param void *args_p Pointer on arguments to start the task. */ \param void *args_p Pointer on arguments to start the task. */
......
...@@ -98,8 +98,9 @@ void nr_rrc_SI_timers(NR_UE_RRC_SI_INFO *SInfo) ...@@ -98,8 +98,9 @@ void nr_rrc_SI_timers(NR_UE_RRC_SI_INFO *SInfo)
} }
} }
void nr_rrc_handle_timers(NR_UE_Timers_Constants_t *timers) void nr_rrc_handle_timers(NR_UE_RRC_INST_t *rrc, instance_t instance)
{ {
NR_UE_Timers_Constants_t *timers = &rrc->timers_and_constants;
// T304 // T304
if (timers->T304_active == true) { if (timers->T304_active == true) {
timers->T304_cnt += 10; timers->T304_cnt += 10;
...@@ -120,6 +121,14 @@ void nr_rrc_handle_timers(NR_UE_Timers_Constants_t *timers) ...@@ -120,6 +121,14 @@ void nr_rrc_handle_timers(NR_UE_Timers_Constants_t *timers)
AssertFatal(false, "Radio link failure! Not handled yet!\n"); AssertFatal(false, "Radio link failure! Not handled yet!\n");
} }
} }
if (timers->T311_active == true) {
timers->T311_cnt += 10;
if(timers->T311_cnt >= timers->T311_k) {
// Upon T311 expiry, the UE shall perform the actions upon going to RRC_IDLE
// with release cause 'RRC connection failure'
nr_rrc_going_to_IDLE(instance, RRC_CONNECTION_FAILURE, NULL);
}
}
} }
void nr_rrc_set_T304(NR_UE_Timers_Constants_t *tac, NR_ReconfigurationWithSync_t *reconfigurationWithSync) void nr_rrc_set_T304(NR_UE_Timers_Constants_t *tac, NR_ReconfigurationWithSync_t *reconfigurationWithSync)
......
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