introduce dedicated nr pdcp tick thread for F1 split
Currently, NR PDCP ticks are active only with monolithic gNB, triggered by the MAC scheduler in gNB_scheduler.c. In F1 split mode, as there is no MAC, there’s no source to advance the NR PDCP timer via "nr_pdcp_wakeup_timer_thread()". This commit introduces a dedicated thread for NR PDCP ticks in gNB-CU and CU-UP mode. Without it, packet losses at the F1 uplink would cause indefinite buffering, as t-Reordering won't expire due to the lack of NR PDCP timer ticks.
This commit is contained in:
@@ -168,7 +168,7 @@ int main(int argc, char **argv)
|
||||
AssertFatal(rc >= 0, "Create task for GTPV1U failed\n");
|
||||
rc = itti_create_task(TASK_CUUP_E1, E1AP_CUUP_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for CUUP E1 failed\n");
|
||||
nr_pdcp_layer_init(true);
|
||||
nr_pdcp_layer_init();
|
||||
cu_init_f1_ue_data(); // for CU-UP/CP mapping: we use the same
|
||||
E1_t e1type = UPtype;
|
||||
MessageDef *msg = RCconfig_NR_CU_E1(&e1type);
|
||||
|
||||
@@ -532,7 +532,7 @@ void init_pdcp(void) {
|
||||
uint32_t pdcp_initmask = IS_SOFTMODEM_NOS1 ? ENB_NAS_USE_TUN_BIT : LINK_ENB_PDCP_TO_GTPV1U_BIT;
|
||||
|
||||
if (!NODE_IS_DU(get_node_type())) {
|
||||
nr_pdcp_layer_init(get_node_type() == ngran_gNB_CUCP);
|
||||
nr_pdcp_layer_init();
|
||||
nr_pdcp_module_init(pdcp_initmask, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -317,7 +317,7 @@ static void init_pdcp(int ue_id)
|
||||
if (get_softmodem_params()->nsa && rlc_module_init(0) != 0) {
|
||||
LOG_I(RLC, "Problem at RLC initiation \n");
|
||||
}
|
||||
nr_pdcp_layer_init(false);
|
||||
nr_pdcp_layer_init();
|
||||
nr_pdcp_module_init(pdcp_initmask, ue_id);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user