diff --git a/doc/SW-archi-graph.md b/doc/SW-archi-graph.md index 8f8a6f6e5c..d397d07f43 100644 --- a/doc/SW-archi-graph.md +++ b/doc/SW-archi-graph.md @@ -31,7 +31,6 @@ rx_func_implem[rx_func] --> handle_nr_ulsch subgraph gNB_dlsch_ulsch_scheduler run_pdcp - --> nr_rrc_trigger --> schedule_xxxx end handle_nr_ulsch --> gNB_dlsch_ulsch_scheduler diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c index 2d4cd16eb4..05ee8efe52 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c @@ -40,7 +40,7 @@ #include "common/utils/LOG/vcd_signal_dumper.h" #include "UTIL/OPT/opt.h" -#include "RRC/NR/nr_rrc_extern.h" +#include "openair2/X2AP/x2ap_eNB.h" #include "nr_pdcp/nr_pdcp_oai_api.h" @@ -174,7 +174,8 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frame, sub_frame_ void nr_pdcp_tick(int frame, int subframe); nr_rlc_tick(frame, slot >> *scc->ssbSubcarrierSpacing); nr_pdcp_tick(frame, slot >> *scc->ssbSubcarrierSpacing); - nr_rrc_trigger(&ctxt, 0 /*CC_id*/, frame, slot >> *scc->ssbSubcarrierSpacing); + if (is_x2ap_enabled()) + x2ap_trigger(); /* if none of the above options, it must be NSA */ } for (int CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { diff --git a/openair2/RRC/NR/nr_rrc_proto.h b/openair2/RRC/NR/nr_rrc_proto.h index 8cfc1e9132..384269748a 100644 --- a/openair2/RRC/NR/nr_rrc_proto.h +++ b/openair2/RRC/NR/nr_rrc_proto.h @@ -111,9 +111,6 @@ rrc_gNB_generate_RRCRelease( \param void *args_p Pointer on arguments to start the task. */ void *rrc_gnb_task(void *args_p); -/* Trigger RRC periodic processing. To be called once per ms. */ -void nr_rrc_trigger(protocol_ctxt_t *ctxt, int CC_id, int frame, int subframe); - /**\ Function to set or overwrite PTRS DL RRC parameters. \ *bwp Pointer to dedicated RC config structure \ *ptrsNrb Pointer to K_ptrs N_RB related parameters diff --git a/openair2/RRC/NR/rrc_gNB.c b/openair2/RRC/NR/rrc_gNB.c index bfc3729b61..33ab4437a2 100644 --- a/openair2/RRC/NR/rrc_gNB.c +++ b/openair2/RRC/NR/rrc_gNB.c @@ -2794,17 +2794,6 @@ static int get_dl_mimo_layers(const gNB_RRC_INST *rrc, const NR_UE_NR_Capability return(1); } -void nr_rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) { - - MessageDef *msg; - - /* send a tick to x2ap */ - if (is_x2ap_enabled()){ - msg = itti_alloc_new_message(TASK_RRC_ENB, 0, X2AP_SUBFRAME_PROCESS); - itti_send_msg_to_task(TASK_X2AP, ctxt_pP->module_id, msg); - } -} - int rrc_gNB_process_e1_setup_req(e1ap_setup_req_t *req, instance_t instance) { AssertFatal(req->supported_plmns <= PLMN_LIST_MAX_SIZE, "Supported PLMNs is more than PLMN_LIST_MAX_SIZE\n"); @@ -2993,10 +2982,6 @@ void *rrc_gnb_task(void *args_p) { write_rrc_stats(RC.nrrrc[0]); break; - case RRC_SUBFRAME_PROCESS: - nr_rrc_subframe_process(&RRC_SUBFRAME_PROCESS(msg_p).ctxt, RRC_SUBFRAME_PROCESS(msg_p).CC_id); - break; - case F1AP_INITIAL_UL_RRC_MESSAGE: AssertFatal(NODE_IS_CU(RC.nrrrc[instance]->node_type) || NODE_IS_MONOLITHIC(RC.nrrrc[instance]->node_type), "should not receive F1AP_INITIAL_UL_RRC_MESSAGE, need call by CU!\n"); @@ -3363,14 +3348,3 @@ int rrc_gNB_generate_pcch_msg(uint32_t tmsi, uint8_t paging_drx, instance_t inst return 0; } - -void nr_rrc_trigger(protocol_ctxt_t *ctxt, int CC_id, int frame, int subframe) -{ - MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_RRC_GNB, 0, RRC_SUBFRAME_PROCESS); - RRC_SUBFRAME_PROCESS(message_p).ctxt = *ctxt; - RRC_SUBFRAME_PROCESS(message_p).CC_id = CC_id; - LOG_D(NR_RRC, "Time in RRC: %u/ %u \n", frame, subframe); - itti_send_msg_to_task(TASK_RRC_GNB, ctxt->module_id, message_p); -} - diff --git a/openair2/X2AP/x2ap_eNB.c b/openair2/X2AP/x2ap_eNB.c index c775726e87..831cad4742 100644 --- a/openair2/X2AP/x2ap_eNB.c +++ b/openair2/X2AP/x2ap_eNB.c @@ -767,3 +767,9 @@ mutex_error: LOG_E(X2AP, "mutex error\n"); exit(1); } + +void x2ap_trigger(void) +{ + MessageDef *msg = itti_alloc_new_message(TASK_X2AP, 0, X2AP_SUBFRAME_PROCESS); + itti_send_msg_to_task(TASK_X2AP, 0, msg); +} diff --git a/openair2/X2AP/x2ap_eNB.h b/openair2/X2AP/x2ap_eNB.h index afa6f11b8e..0f83ca64af 100644 --- a/openair2/X2AP/x2ap_eNB.h +++ b/openair2/X2AP/x2ap_eNB.h @@ -47,6 +47,7 @@ int x2ap_eNB_init_sctp (x2ap_eNB_instance_t *instance_p, void *x2ap_task(void *arg); int is_x2ap_enabled(void); +void x2ap_trigger(void); #endif /* X2AP_H_ */