Added the judgment of the NGAP field in the configuration file
This commit is contained in:
@@ -84,6 +84,7 @@ unsigned short config_frames[4] = {2,9,11,13};
|
|||||||
#include "NB_IoT_interface.h"
|
#include "NB_IoT_interface.h"
|
||||||
#include "x2ap_eNB.h"
|
#include "x2ap_eNB.h"
|
||||||
#include "ngap_gNB.h"
|
#include "ngap_gNB.h"
|
||||||
|
#include "gnb_paramdef.h"
|
||||||
|
|
||||||
pthread_cond_t nfapi_sync_cond;
|
pthread_cond_t nfapi_sync_cond;
|
||||||
pthread_mutex_t nfapi_sync_mutex;
|
pthread_mutex_t nfapi_sync_mutex;
|
||||||
@@ -400,6 +401,23 @@ int create_gNB_tasks(uint32_t gnb_nb) {
|
|||||||
LOG_I(X2AP, "X2AP is disabled.\n");
|
LOG_I(X2AP, "X2AP is disabled.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
paramdef_t NETParams[] = GNBNETPARAMS_DESC;
|
||||||
|
char aprefix[MAX_OPTNAME_SIZE*2 + 8];
|
||||||
|
sprintf(aprefix,"%s.[%i].%s",GNB_CONFIG_STRING_GNB_LIST,0,GNB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG);
|
||||||
|
config_get( NETParams,sizeof(NETParams)/sizeof(paramdef_t),aprefix);
|
||||||
|
|
||||||
|
for(int i = GNB_INTERFACE_NAME_FOR_NG_AMF_IDX; i <= GNB_IPV4_ADDRESS_FOR_NG_AMF_IDX; i++){
|
||||||
|
if( NETParams[i].strptr == NULL){
|
||||||
|
LOG_E(NGAP, "No configuration in the file.\n");
|
||||||
|
NGAP_CONF_MODE = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
LOG_D(NGAP, "Configuration in the file: %s.\n",*NETParams[i].strptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (AMF_MODE_ENABLED && (get_softmodem_params()->phy_test==0 && get_softmodem_params()->do_ra==0)) {
|
if (AMF_MODE_ENABLED && (get_softmodem_params()->phy_test==0 && get_softmodem_params()->do_ra==0)) {
|
||||||
if (gnb_nb > 0) {
|
if (gnb_nb > 0) {
|
||||||
@@ -409,10 +427,13 @@ int create_gNB_tasks(uint32_t gnb_nb) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
if(NGAP_CONF_MODE){
|
||||||
if (itti_create_task (TASK_NGAP, ngap_gNB_task, NULL) < 0) {
|
if (itti_create_task (TASK_NGAP, ngap_gNB_task, NULL) < 0) {
|
||||||
LOG_E(S1AP, "Create task for NGAP failed\n");
|
LOG_E(NGAP, "Create task for NGAP failed\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
LOG_E(NGAP, "Ngap task not created\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -825,6 +846,7 @@ int main( int argc, char **argv )
|
|||||||
|
|
||||||
openair0_cfg[0].threequarter_fs = threequarter_fs;
|
openair0_cfg[0].threequarter_fs = threequarter_fs;
|
||||||
AMF_MODE_ENABLED = !IS_SOFTMODEM_NOS1; //!get_softmodem_params()->phy_test;
|
AMF_MODE_ENABLED = !IS_SOFTMODEM_NOS1; //!get_softmodem_params()->phy_test;
|
||||||
|
NGAP_CONF_MODE = !IS_SOFTMODEM_NOS1; //!get_softmodem_params()->phy_test;
|
||||||
|
|
||||||
if (get_softmodem_params()->do_ra)
|
if (get_softmodem_params()->do_ra)
|
||||||
AssertFatal(get_softmodem_params()->phy_test == 0,"RA and phy_test are mutually exclusive\n");
|
AssertFatal(get_softmodem_params()->phy_test == 0,"RA and phy_test are mutually exclusive\n");
|
||||||
|
|||||||
+13
-10
@@ -80,21 +80,24 @@ static uint32_t gNB_app_register(uint32_t gnb_id_start, uint32_t gnb_id_end)//,
|
|||||||
|
|
||||||
for (gnb_id = gnb_id_start; (gnb_id < gnb_id_end) ; gnb_id++) {
|
for (gnb_id = gnb_id_start; (gnb_id < gnb_id_end) ; gnb_id++) {
|
||||||
{
|
{
|
||||||
ngap_register_gnb_req_t *ngap_register_gNB; //Type Temporarily reuse
|
if(NGAP_CONF_MODE){
|
||||||
|
ngap_register_gnb_req_t *ngap_register_gNB; //Type Temporarily reuse
|
||||||
|
|
||||||
|
// note: there is an implicit relationship between the data structure and the message name
|
||||||
|
msg_p = itti_alloc_new_message (TASK_GNB_APP, NGAP_REGISTER_GNB_REQ); //Message Temporarily reuse
|
||||||
|
|
||||||
// note: there is an implicit relationship between the data structure and the message name
|
RCconfig_NR_NG(msg_p, gnb_id);
|
||||||
msg_p = itti_alloc_new_message (TASK_GNB_APP, NGAP_REGISTER_GNB_REQ); //Message Temporarily reuse
|
|
||||||
|
ngap_register_gNB = &NGAP_REGISTER_GNB_REQ(msg_p); //Message Temporarily reuse
|
||||||
|
|
||||||
RCconfig_NR_NG(msg_p, gnb_id);
|
LOG_I(GNB_APP,"default drx %d\n",ngap_register_gNB->default_drx);
|
||||||
|
|
||||||
|
itti_send_msg_to_task (TASK_NGAP, GNB_MODULE_ID_TO_INSTANCE(gnb_id), msg_p);
|
||||||
|
}
|
||||||
|
|
||||||
if (gnb_id == 0) RCconfig_nr_gtpu();
|
if (gnb_id == 0) RCconfig_nr_gtpu();
|
||||||
|
|
||||||
ngap_register_gNB = &NGAP_REGISTER_GNB_REQ(msg_p); //Message Temporarily reuse
|
LOG_I(GNB_APP,"[gNB %d] gNB_app_register for instance %d\n", gnb_id, GNB_MODULE_ID_TO_INSTANCE(gnb_id));
|
||||||
LOG_I(GNB_APP,"default drx %d\n",ngap_register_gNB->default_drx);
|
|
||||||
|
|
||||||
LOG_I(GNB_APP,"[gNB %d] gNB_app_register for instance %d\n", gnb_id, GNB_MODULE_ID_TO_INSTANCE(gnb_id));
|
|
||||||
|
|
||||||
itti_send_msg_to_task (TASK_NGAP, GNB_MODULE_ID_TO_INSTANCE(gnb_id), msg_p);
|
|
||||||
|
|
||||||
register_gnb_pending++;
|
register_gnb_pending++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,11 +42,13 @@
|
|||||||
typedef struct ngap_gNB_config_s {
|
typedef struct ngap_gNB_config_s {
|
||||||
// MME related params
|
// MME related params
|
||||||
unsigned char amf_enabled; ///< AMF enabled ?
|
unsigned char amf_enabled; ///< AMF enabled ?
|
||||||
|
unsigned char ngap_enabled; ///< NGAP enabled ?
|
||||||
} ngap_gNB_config_t;
|
} ngap_gNB_config_t;
|
||||||
|
|
||||||
extern ngap_gNB_config_t ngap_config;
|
extern ngap_gNB_config_t ngap_config;
|
||||||
|
|
||||||
#define AMF_MODE_ENABLED ngap_config.amf_enabled
|
#define AMF_MODE_ENABLED ngap_config.amf_enabled
|
||||||
|
#define NGAP_CONF_MODE ngap_config.ngap_enabled
|
||||||
|
|
||||||
|
|
||||||
void *ngap_gNB_process_itti_msg(void*);
|
void *ngap_gNB_process_itti_msg(void*);
|
||||||
|
|||||||
Reference in New Issue
Block a user