close GTP-U
This commit is contained in:
+16
-16
@@ -97,7 +97,7 @@ static uint32_t gNB_app_register(uint32_t gnb_id_start, uint32_t gnb_id_end)//,
|
|||||||
|
|
||||||
RCconfig_NR_S1(msg_p, gnb_id);
|
RCconfig_NR_S1(msg_p, gnb_id);
|
||||||
|
|
||||||
if (gnb_id == 0) RCconfig_gtpu();
|
if (gnb_id == 0) RCconfig_nr_gtpu();
|
||||||
|
|
||||||
s1ap_register_gNB = &S1AP_REGISTER_ENB_REQ(msg_p); //Message Temporarily reuse
|
s1ap_register_gNB = &S1AP_REGISTER_ENB_REQ(msg_p); //Message Temporarily reuse
|
||||||
LOG_I(GNB_APP,"default drx %d\n",s1ap_register_gNB->default_drx);
|
LOG_I(GNB_APP,"default drx %d\n",s1ap_register_gNB->default_drx);
|
||||||
@@ -123,8 +123,8 @@ void *gNB_app_task(void *args_p)
|
|||||||
uint32_t gnb_id_start = 0;
|
uint32_t gnb_id_start = 0;
|
||||||
uint32_t gnb_id_end = gnb_id_start + gnb_nb;
|
uint32_t gnb_id_end = gnb_id_start + gnb_nb;
|
||||||
# if defined(ENABLE_USE_MME)
|
# if defined(ENABLE_USE_MME)
|
||||||
uint32_t register_gnb_pending;
|
//uint32_t register_gnb_pending;
|
||||||
uint32_t registered_gnb;
|
//uint32_t registered_gnb;
|
||||||
long gnb_register_retry_timer_id;
|
long gnb_register_retry_timer_id;
|
||||||
# endif
|
# endif
|
||||||
uint32_t gnb_id;
|
uint32_t gnb_id;
|
||||||
@@ -165,8 +165,8 @@ void *gNB_app_task(void *args_p)
|
|||||||
|
|
||||||
# if defined(ENABLE_USE_MME)
|
# if defined(ENABLE_USE_MME)
|
||||||
/* Try to register each gNB */
|
/* Try to register each gNB */
|
||||||
registered_gnb = 0;
|
//registered_gnb = 0;
|
||||||
register_gnb_pending = gNB_app_register (gnb_id_start, gnb_id_end);//, gnb_properties_p);
|
//register_gnb_pending = gNB_app_register (gnb_id_start, gnb_id_end);//, gnb_properties_p);
|
||||||
# else
|
# else
|
||||||
/* Start L2L1 task */
|
/* Start L2L1 task */
|
||||||
msg_p = itti_alloc_new_message(TASK_GNB_APP, INITIALIZE_MESSAGE);
|
msg_p = itti_alloc_new_message(TASK_GNB_APP, INITIALIZE_MESSAGE);
|
||||||
@@ -191,7 +191,7 @@ void *gNB_app_task(void *args_p)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
# if defined(ENABLE_USE_MME)
|
# if defined(ENABLE_USE_MME)
|
||||||
|
/*
|
||||||
case S1AP_REGISTER_ENB_CNF:
|
case S1AP_REGISTER_ENB_CNF:
|
||||||
LOG_I(GNB_APP, "[gNB %d] Received %s: associated MME %d\n", instance, msg_name,
|
LOG_I(GNB_APP, "[gNB %d] Received %s: associated MME %d\n", instance, msg_name,
|
||||||
S1AP_REGISTER_ENB_CNF(msg_p).nb_mme);
|
S1AP_REGISTER_ENB_CNF(msg_p).nb_mme);
|
||||||
@@ -199,15 +199,15 @@ void *gNB_app_task(void *args_p)
|
|||||||
DevAssert(register_gnb_pending > 0);
|
DevAssert(register_gnb_pending > 0);
|
||||||
register_gnb_pending--;
|
register_gnb_pending--;
|
||||||
|
|
||||||
/* Check if at least gNB is registered with one MME */
|
// Check if at least gNB is registered with one MME
|
||||||
if (S1AP_REGISTER_ENB_CNF(msg_p).nb_mme > 0) {
|
if (S1AP_REGISTER_ENB_CNF(msg_p).nb_mme > 0) {
|
||||||
registered_gnb++;
|
registered_gnb++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if all register gNB requests have been processed */
|
// Check if all register gNB requests have been processed
|
||||||
if (register_gnb_pending == 0) {
|
if (register_gnb_pending == 0) {
|
||||||
if (registered_gnb == gnb_nb) {
|
if (registered_gnb == gnb_nb) {
|
||||||
/* If all gNB are registered, start L2L1 task */
|
// If all gNB are registered, start L2L1 task
|
||||||
MessageDef *msg_init_p;
|
MessageDef *msg_init_p;
|
||||||
|
|
||||||
msg_init_p = itti_alloc_new_message (TASK_GNB_APP, INITIALIZE_MESSAGE);
|
msg_init_p = itti_alloc_new_message (TASK_GNB_APP, INITIALIZE_MESSAGE);
|
||||||
@@ -219,13 +219,13 @@ void *gNB_app_task(void *args_p)
|
|||||||
LOG_W(GNB_APP, " %d gNB %s not associated with a MME, retrying registration in %d seconds ...\n",
|
LOG_W(GNB_APP, " %d gNB %s not associated with a MME, retrying registration in %d seconds ...\n",
|
||||||
not_associated, not_associated > 1 ? "are" : "is", GNB_REGISTER_RETRY_DELAY);
|
not_associated, not_associated > 1 ? "are" : "is", GNB_REGISTER_RETRY_DELAY);
|
||||||
|
|
||||||
/* Restart the gNB registration process in GNB_REGISTER_RETRY_DELAY seconds */
|
// Restart the gNB registration process in GNB_REGISTER_RETRY_DELAY seconds
|
||||||
if (timer_setup (GNB_REGISTER_RETRY_DELAY, 0, TASK_GNB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
|
if (timer_setup (GNB_REGISTER_RETRY_DELAY, 0, TASK_GNB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
|
||||||
NULL, &gnb_register_retry_timer_id) < 0) {
|
NULL, &gnb_register_retry_timer_id) < 0) {
|
||||||
LOG_E(GNB_APP, " Can not start gNB register retry timer, use \"sleep\" instead!\n");
|
LOG_E(GNB_APP, " Can not start gNB register retry timer, use \"sleep\" instead!\n");
|
||||||
|
|
||||||
sleep(GNB_REGISTER_RETRY_DELAY);
|
sleep(GNB_REGISTER_RETRY_DELAY);
|
||||||
/* Restart the registration process */
|
// Restart the registration process
|
||||||
registered_gnb = 0;
|
registered_gnb = 0;
|
||||||
register_gnb_pending = gNB_app_register (gnb_id_start, gnb_id_end);//, gnb_properties_p);
|
register_gnb_pending = gNB_app_register (gnb_id_start, gnb_id_end);//, gnb_properties_p);
|
||||||
}
|
}
|
||||||
@@ -233,7 +233,7 @@ void *gNB_app_task(void *args_p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
case S1AP_DEREGISTERED_ENB_IND:
|
case S1AP_DEREGISTERED_ENB_IND:
|
||||||
LOG_W(GNB_APP, "[gNB %d] Received %s: associated MME %d\n", instance, msg_name,
|
LOG_W(GNB_APP, "[gNB %d] Received %s: associated MME %d\n", instance, msg_name,
|
||||||
S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme);
|
S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme);
|
||||||
@@ -244,11 +244,11 @@ void *gNB_app_task(void *args_p)
|
|||||||
case TIMER_HAS_EXPIRED:
|
case TIMER_HAS_EXPIRED:
|
||||||
LOG_I(GNB_APP, " Received %s: timer_id %ld\n", msg_name, TIMER_HAS_EXPIRED(msg_p).timer_id);
|
LOG_I(GNB_APP, " Received %s: timer_id %ld\n", msg_name, TIMER_HAS_EXPIRED(msg_p).timer_id);
|
||||||
|
|
||||||
if (TIMER_HAS_EXPIRED (msg_p).timer_id == gnb_register_retry_timer_id) {
|
//if (TIMER_HAS_EXPIRED (msg_p).timer_id == gnb_register_retry_timer_id) {
|
||||||
/* Restart the registration process */
|
/* Restart the registration process */
|
||||||
registered_gnb = 0;
|
// registered_gnb = 0;
|
||||||
register_gnb_pending = gNB_app_register(gnb_id_start, gnb_id_end);//, gnb_properties_p);
|
// register_gnb_pending = gNB_app_register(gnb_id_start, gnb_id_end);//, gnb_properties_p);
|
||||||
}
|
//}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
# endif
|
# endif
|
||||||
|
|||||||
@@ -395,7 +395,7 @@ void RCconfig_nr_macrlc() {
|
|||||||
}else {// MacRLC_ParamList.numelt > 0
|
}else {// MacRLC_ParamList.numelt > 0
|
||||||
AssertFatal (0,"No " CONFIG_STRING_MACRLC_LIST " configuration found");
|
AssertFatal (0,"No " CONFIG_STRING_MACRLC_LIST " configuration found");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
||||||
@@ -2580,9 +2580,9 @@ int RCconfig_nr_gtpu(void ) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
char* enb_interface_name_for_S1U = NULL;
|
char* gnb_interface_name_for_S1U = NULL;
|
||||||
char* enb_ipv4_address_for_S1U = NULL;
|
char* gnb_ipv4_address_for_S1U = NULL;
|
||||||
uint32_t enb_port_for_S1U = 0;
|
uint32_t gnb_port_for_S1U = 0;
|
||||||
char *address = NULL;
|
char *address = NULL;
|
||||||
char *cidr = NULL;
|
char *cidr = NULL;
|
||||||
char gtpupath[MAX_OPTNAME_SIZE*2 + 8];
|
char gtpupath[MAX_OPTNAME_SIZE*2 + 8];
|
||||||
@@ -2605,7 +2605,7 @@ int RCconfig_nr_gtpu(void ) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
cidr = enb_ipv4_address_for_S1U;
|
cidr = gnb_ipv4_address_for_S1U;
|
||||||
address = strtok(cidr, "/");
|
address = strtok(cidr, "/");
|
||||||
|
|
||||||
if (address) {
|
if (address) {
|
||||||
@@ -2615,7 +2615,7 @@ int RCconfig_nr_gtpu(void ) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RC.gtpv1u_data_g->enb_port_for_S1u_S12_S4_up = enb_port_for_S1U;
|
RC.gtpv1u_data_g->enb_port_for_S1u_S12_S4_up = gnb_port_for_S1U;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -971,9 +971,9 @@ typedef enum {
|
|||||||
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
||||||
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
#define GTPUPARAMS_DESC { \
|
#define GTPUPARAMS_DESC { \
|
||||||
{GNB_CONFIG_STRING_GNB_INTERFACE_NAME_FOR_S1U, NULL, 0, strptr:&enb_interface_name_for_S1U, defstrval:"lo", TYPE_STRING, 0}, \
|
{GNB_CONFIG_STRING_GNB_INTERFACE_NAME_FOR_S1U, NULL, 0, strptr:&gnb_interface_name_for_S1U, defstrval:"lo", TYPE_STRING, 0}, \
|
||||||
{GNB_CONFIG_STRING_GNB_IPV4_ADDR_FOR_S1U, NULL, 0, strptr:&enb_ipv4_address_for_S1U, defstrval:"127.0.0.1", TYPE_STRING, 0}, \
|
{GNB_CONFIG_STRING_GNB_IPV4_ADDR_FOR_S1U, NULL, 0, strptr:&gnb_ipv4_address_for_S1U, defstrval:"127.0.0.1", TYPE_STRING, 0}, \
|
||||||
{GNB_CONFIG_STRING_GNB_PORT_FOR_S1U, NULL, 0, uptr:&enb_port_for_S1U, defintval:2152, TYPE_UINT, 0} \
|
{GNB_CONFIG_STRING_GNB_PORT_FOR_S1U, NULL, 0, uptr:&gnb_port_for_S1U, defintval:2152, TYPE_UINT, 0} \
|
||||||
}
|
}
|
||||||
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ void config_common(int Mod_idP,
|
|||||||
cfg->rf_config.dl_carrierBandwidth.value = dl_BandwidthP;
|
cfg->rf_config.dl_carrierBandwidth.value = dl_BandwidthP;
|
||||||
cfg->rf_config.dl_carrierBandwidth.tl.tag = NFAPI_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG; //temporary
|
cfg->rf_config.dl_carrierBandwidth.tl.tag = NFAPI_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG; //temporary
|
||||||
cfg->num_tlv++;
|
cfg->num_tlv++;
|
||||||
LOG_E(PHY,"%s() dl_BandwidthP:%d\n", __FUNCTION__, dl_BandwidthP);
|
LOG_I(PHY,"%s() dl_BandwidthP:%d\n", __FUNCTION__, dl_BandwidthP);
|
||||||
|
|
||||||
cfg->rf_config.ul_carrierBandwidth.value = dl_BandwidthP;
|
cfg->rf_config.ul_carrierBandwidth.value = dl_BandwidthP;
|
||||||
cfg->rf_config.ul_carrierBandwidth.tl.tag = NFAPI_RF_CONFIG_UL_CHANNEL_BANDWIDTH_TAG; //temporary
|
cfg->rf_config.ul_carrierBandwidth.tl.tag = NFAPI_RF_CONFIG_UL_CHANNEL_BANDWIDTH_TAG; //temporary
|
||||||
@@ -215,7 +215,7 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
LOG_E(MAC, "%s() %s:%d RC.nrmac[Mod_idP]->if_inst->PHY_config_req:%p\n", __FUNCTION__, __FILE__, __LINE__, RC.mac[Mod_idP]->if_inst->PHY_config_req);
|
LOG_E(MAC, "%s() %s:%d RC.nrmac[Mod_idP]->if_inst->PHY_config_req:%p\n", __FUNCTION__, __FILE__, __LINE__, RC.nrmac[Mod_idP]->if_inst->PHY_config_req);
|
||||||
|
|
||||||
// if in nFAPI mode
|
// if in nFAPI mode
|
||||||
if ( (nfapi_mode == 1 || nfapi_mode == 2) && (RC.nrmac[Mod_idP]->if_inst->PHY_config_req == NULL) ){
|
if ( (nfapi_mode == 1 || nfapi_mode == 2) && (RC.nrmac[Mod_idP]->if_inst->PHY_config_req == NULL) ){
|
||||||
|
|||||||
@@ -220,11 +220,11 @@ gNBs =
|
|||||||
NETWORK_INTERFACES :
|
NETWORK_INTERFACES :
|
||||||
{
|
{
|
||||||
|
|
||||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
GNB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
|
GNB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24";
|
||||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
GNB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
|
GNB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24";
|
||||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user