Separate F1 Setup Request and network configuration
This branch series implements the usage of the F1 Setup Request internally at the gNB, even if CU and DU run in the same process. Until now, the F1 Setup Request contained struct fields to pass IP configuration to the F1AP module; this information is not necessary in monolithic, nor should it be relevant when passing the information in F1 Setup Request. Therefore, this commit moves all IP connection-related information out of the F1 Setup Request and into a separate structure instead. In order to give the F1AP module the necessary connection information, the DU_REGISTER_REQ message is introduced that combines the F1 Setup Request and IP configuration, such that the F1AP module can setup the SCTP connection and then send the F1 Setup Request message. In a later commit, there will be a callback for F1 Setup Request at MAC to simply register the DU at the CU. The monolithic callback will simply forward the F1 Setup Request The F1AP callback will look up the IP configuration and create DU_REGISTER_REQ message containing IP configuration and F1 Setup Request, which is then handled by the F1AP module. To this end, a separate function in gnb_config.c allows to read IP information from configuration.
This commit is contained in:
@@ -19,6 +19,9 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
/* To setup F1 at DU */
|
||||
MESSAGE_DEF(F1AP_DU_REGISTER_REQ, MESSAGE_PRIORITY_MED, f1ap_du_register_req_t, f1ap_du_register_req)
|
||||
|
||||
/* eNB_DU application layer -> F1AP messages or CU F1AP -> RRC*/
|
||||
MESSAGE_DEF(F1AP_SETUP_REQ , MESSAGE_PRIORITY_MED, f1ap_setup_req_t , f1ap_setup_req)
|
||||
MESSAGE_DEF(F1AP_GNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE , MESSAGE_PRIORITY_MED, f1ap_gnb_cu_configuration_update_acknowledge_t , f1ap_gnb_cu_configuration_update_acknowledge)
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
|
||||
#define F1AP_CU_SCTP_REQ(mSGpTR) (mSGpTR)->ittiMsg.f1ap_cu_sctp_req
|
||||
|
||||
#define F1AP_DU_REGISTER_REQ(mSGpTR) (mSGpTR)->ittiMsg.f1ap_du_register_req
|
||||
|
||||
#define F1AP_SETUP_REQ(mSGpTR) (mSGpTR)->ittiMsg.f1ap_setup_req
|
||||
#define F1AP_SETUP_RESP(mSGpTR) (mSGpTR)->ittiMsg.f1ap_setup_resp
|
||||
#define F1AP_GNB_CU_CONFIGURATION_UPDATE(mSGpTR) (mSGpTR)->ittiMsg.f1ap_gnb_cu_configuration_update
|
||||
@@ -75,6 +77,13 @@ typedef struct f1ap_net_ip_address_s {
|
||||
char ipv6_address[46];
|
||||
} f1ap_net_ip_address_t;
|
||||
|
||||
typedef struct f1ap_net_config_t {
|
||||
f1ap_net_ip_address_t CU_f1_ip_address;
|
||||
f1ap_net_ip_address_t DU_f1_ip_address;
|
||||
uint16_t CUport;
|
||||
uint16_t DUport;
|
||||
} f1ap_net_config_t;
|
||||
|
||||
typedef struct cellIDs_s {
|
||||
|
||||
// Served Cell Information
|
||||
@@ -100,24 +109,6 @@ typedef struct cellIDs_s {
|
||||
|
||||
typedef struct f1ap_setup_req_s {
|
||||
|
||||
// Midhaul networking parameters
|
||||
|
||||
/* Connexion id used between SCTP/F1AP */
|
||||
uint16_t cnx_id;
|
||||
|
||||
/* SCTP association id */
|
||||
int32_t assoc_id;
|
||||
|
||||
/* The eNB IP address to bind */
|
||||
f1ap_net_ip_address_t CU_f1_ip_address;
|
||||
f1ap_net_ip_address_t DU_f1_ip_address;
|
||||
uint16_t CUport;
|
||||
uint16_t DUport;
|
||||
|
||||
/* Number of SCTP streams used for a mme association */
|
||||
uint16_t sctp_in_streams;
|
||||
uint16_t sctp_out_streams;
|
||||
|
||||
// F1_Setup_Req payload
|
||||
uint64_t gNB_DU_id;
|
||||
char *gNB_DU_name;
|
||||
@@ -184,6 +175,11 @@ typedef struct f1ap_setup_req_s {
|
||||
|
||||
} f1ap_setup_req_t;
|
||||
|
||||
typedef struct f1ap_du_register_req_t {
|
||||
f1ap_setup_req_t setup_req;
|
||||
f1ap_net_config_t net_config;
|
||||
} f1ap_du_register_req_t;
|
||||
|
||||
typedef struct served_cells_to_activate_s {
|
||||
/// mcc of DU cells
|
||||
uint16_t mcc;
|
||||
|
||||
Reference in New Issue
Block a user