Paging (RRC): refactor NGAP Paging handler in CUCP
RRC now builds F1AP paging messages directly by calling F1AP/direct callbacks and aligning the CU/DU intergace with the F1AP design in the CU. Messages are forwarded based on TAI-based cell matching across DUs. - Remove F1AP_PAGING_IND message def and f1ap_paging_ind_t. RRC no longer sends ITTI F1AP_PAGING_IND; it builds f1ap_paging_t and passes it to the DU path. - rrc_gNB_process_PAGING_IND: new signature (rrc, instance, msg) with const where appropriate; call in rrc_gnb_task() updated. - NGAP handler logic: For each TAI, match (PLMN + TAC) to rrc->configuration; collect matching TAIs. Build one f1ap_paging_t (5G-S-TMSI via nr_construct_5g_s_tmsi(), identity type F1AP_PAGING_IDENTITY_CN_UE, optional drx/priority/origin copied from ngap_paging_ind_t), call rrc_send_paging_to_dus(), then free_f1ap_paging(). Remove the previous AssertFatal stub, CC loop, NODE_IS_CU branch, and UE lookup logic: it is now handled by F1AP/direct CU callbacks. - rrc_gNB_du: Add rrc_send_paging_to_dus(rrc, tais, n_tai, msg). Iterate DUs with RB_FOREACH; for each DU, fill msg->cells from du->cells whose (PLMN + TAC) matches any requested TAI, set n_cells, then call rrc->mac_rrc.paging_transfer(du->assoc_id, msg). Skip DUs with no matching cells. Prevents duplicate paging when multiple TAIs map to the same PLMN.
This commit is contained in:
@@ -65,4 +65,3 @@ MESSAGE_DEF(F1AP_UE_CONTEXT_MODIFICATION_REFUSE, MESSAGE_PRIORITY_MED, f1ap_ue_c
|
||||
|
||||
/* CU -> DU*/
|
||||
MESSAGE_DEF(F1AP_PAGING, MESSAGE_PRIORITY_MED, f1ap_paging_t, f1ap_paging)
|
||||
MESSAGE_DEF(F1AP_PAGING_IND, MESSAGE_PRIORITY_MED, f1ap_paging_ind_t, f1ap_paging_ind)
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
#define F1AP_UE_CONTEXT_RELEASE_CMD(mSGpTR) (mSGpTR)->ittiMsg.f1ap_ue_context_release_cmd
|
||||
#define F1AP_UE_CONTEXT_RELEASE_COMPLETE(mSGpTR) (mSGpTR)->ittiMsg.f1ap_ue_context_release_complete
|
||||
|
||||
#define F1AP_PAGING_IND(mSGpTR) (mSGpTR)->ittiMsg.f1ap_paging_ind
|
||||
#define F1AP_PAGING(mSGpTR) (mSGpTR)->ittiMsg.f1ap_paging
|
||||
|
||||
/* Length of the transport layer address string
|
||||
@@ -633,15 +632,6 @@ typedef struct f1ap_ue_context_rel_cplt_t {
|
||||
uint32_t gNB_DU_ue_id;
|
||||
} f1ap_ue_context_rel_cplt_t;
|
||||
|
||||
typedef struct f1ap_paging_ind_s {
|
||||
uint16_t ueidentityindexvalue;
|
||||
uint64_t fiveg_s_tmsi;
|
||||
uint8_t fiveg_s_tmsi_length;
|
||||
plmn_id_t plmn;
|
||||
uint64_t nr_cellid;
|
||||
uint8_t paging_drx;
|
||||
} f1ap_paging_ind_t;
|
||||
|
||||
typedef struct f1ap_paging_cell_item_s {
|
||||
plmn_id_t plmn;
|
||||
uint64_t nr_cellid;
|
||||
|
||||
Reference in New Issue
Block a user