NR PDCP ticks for F1 split
Currently, NR PDCP ticks are only active when using the monolithic gNB, i.e., nr_pdcp_tick is invoked by the MAC scheduler at gNB_scheduler.c.
In F1 split, there are no sources of NR PDCP ticks to “advance” the timer using “nr_pdcp_wakeup_timer_thread”, since the MAC is not there. To that end, this MR introduces a dedicated thread to perform NR PDCP ticks when operating in gNB-CU and CU-UP mode.
Without this MR, whenever there are packet losses at the F1 interface in the uplink direction, packets will be buffered indefinitely as t-Reordering will never expire (see attached "nr_pdcp_reordering_stuck.log"), since there are no ticks to advance the NR PDCP timer. For the expected behaviour, see attached "nr_pdcp_reordering_patched.log".
nr_pdcp_reordering_stuck.log nr_pdcp_reordering_patched.log
On a side note, maybe we should think about streamlining the NR PDCP tick source for both monolithic/split cases? Maybe move it out from the gNB_scheduler.c for the monolithic gNB, and use the new nr_pdcp_tick_thread too?