Refactor (F1AP/RRC): convert SIB containers to byte_array_t
Unify SIB container handling by introducing a typed SIB enum and storing SIB payloads as byte_array_t across common NR types, F1AP helpers, MAC, and RRC DU setup code. Changes: - Include byte_array support in nr_common.h, add nr_sib_type_t (NR_SIB_1–NR_SIB_21), and change nr_SIBs_t to hold only nr_sib_type_t SIB_type. - Switch f1ap_sib_msg_t in f1ap_messages_types.h to use a byte_array_t SI_container instead of raw pointer and length fields. - Update F1AP encode/decode, equality, copy, and free helpers in f1ap_interface_management.c to work on SI_container.buf / SI_container.len and use eq_byte_array, copy_byte_array, and free_byte_array. - Adapt F1AP tests in f1ap_lib_test.c to build and inspect SIB containers via SI_container.buf and SI_container.len. - Replace magic SIB numbers with nr_sib_type_t values in gnb_config.c (get_sys_info and fill_du_sibs) to validate and configure DU SIBs. - Rework nr_mac_configure_other_sib in NR_MAC_gNB/config.c to decode SIB2 from a byte_array_t container, fix freeing by releasing the decoded sib2 on failure, and use NR_SIB_2 / NR_SIB_19 for CU/DU SIB selection. - Add an add_si_msg helper in rrc_gNB_du.c and refactor the SIB2 branch of rrc_gNB_process_f1_setup_req to populate cell->SI_msg from encoded local byte array while iterating SIBs with FOR_EACH_SEQ_ARR.
This commit is contained in:
@@ -161,8 +161,7 @@ typedef struct f1ap_du_register_req_s {
|
||||
|
||||
typedef struct f1ap_sib_msg_s {
|
||||
/// RRC container with system information owned by gNB-CU
|
||||
uint8_t *SI_container;
|
||||
int SI_container_length;
|
||||
byte_array_t SI_container;
|
||||
/// SIB block type, e.g. 2 for sibType2
|
||||
int SI_type;
|
||||
} f1ap_sib_msg_t;
|
||||
|
||||
Reference in New Issue
Block a user