Added support for multiple eNBs
This commit is contained in:
@@ -59,13 +59,15 @@ void *receive_thread(void *args);
|
||||
pthread_t new_thread(void *(*f)(void *), void *b);
|
||||
Protocol__ProgranMessage *enb_agent_timeout(void* args);
|
||||
|
||||
|
||||
int agent_task_created = 0;
|
||||
/*
|
||||
* enb agent task mainly wakes up the tx thread for periodic and oneshot messages to the controller
|
||||
* and can interact with other itti tasks
|
||||
*/
|
||||
void *enb_agent_task(void *args){
|
||||
|
||||
enb_agent_instance_t *d = (enb_agent_instance_t *) args;
|
||||
//enb_agent_instance_t *d = (enb_agent_instance_t *) args;
|
||||
Protocol__ProgranMessage *msg;
|
||||
void *data;
|
||||
int size;
|
||||
@@ -76,7 +78,7 @@ void *enb_agent_task(void *args){
|
||||
const char *msg_name = NULL;
|
||||
instance_t instance;
|
||||
int result;
|
||||
|
||||
struct enb_agent_timer_element_s * elem = NULL;
|
||||
|
||||
itti_mark_task_ready(TASK_ENB_AGENT);
|
||||
|
||||
@@ -100,7 +102,8 @@ void *enb_agent_task(void *args){
|
||||
msg = enb_agent_process_timeout(msg_p->ittiMsg.timer_has_expired.timer_id, msg_p->ittiMsg.timer_has_expired.arg);
|
||||
if (msg != NULL){
|
||||
data=enb_agent_pack_message(msg,&size);
|
||||
if (enb_agent_msg_send(d->enb_id, ENB_AGENT_DEFAULT, data, size, priority)) {
|
||||
elem = get_timer_entry(msg_p->ittiMsg.timer_has_expired.timer_id);
|
||||
if (enb_agent_msg_send(elem->agent_id, ENB_AGENT_DEFAULT, data, size, priority)) {
|
||||
err_code = PROTOCOL__PROGRAN_ERR__MSG_ENQUEUING;
|
||||
goto error;
|
||||
}
|
||||
@@ -203,6 +206,7 @@ pthread_t new_thread(void *(*f)(void *), void *b) {
|
||||
return t;
|
||||
}
|
||||
|
||||
int channel_container_init = 0;
|
||||
int enb_agent_start(mid_t mod_id, const Enb_properties_array_t* enb_properties){
|
||||
|
||||
int channel_id;
|
||||
@@ -240,8 +244,10 @@ int enb_agent_start(mid_t mod_id, const Enb_properties_array_t* enb_properties){
|
||||
/*
|
||||
* Initialize the channel container
|
||||
*/
|
||||
enb_agent_init_channel_container();
|
||||
|
||||
if (!channel_container_init) {
|
||||
enb_agent_init_channel_container();
|
||||
channel_container_init = 1;
|
||||
}
|
||||
/*Create the async channel info*/
|
||||
enb_agent_instance_t *channel_info = enb_agent_async_channel_info(mod_id, in_ip, in_port);
|
||||
|
||||
@@ -294,12 +300,14 @@ int enb_agent_start(mid_t mod_id, const Enb_properties_array_t* enb_properties){
|
||||
/*
|
||||
* start the enb agent task for tx and interaction with the underlying network function
|
||||
*/
|
||||
if (!agent_task_created) {
|
||||
if (itti_create_task (TASK_ENB_AGENT, enb_agent_task, (void *) &enb_agent[mod_id]) < 0) {
|
||||
LOG_E(ENB_AGENT, "Create task for eNB Agent failed\n");
|
||||
return -1;
|
||||
}
|
||||
agent_task_created = 1;
|
||||
}
|
||||
|
||||
if (itti_create_task (TASK_ENB_AGENT, enb_agent_task, (void *) &enb_agent[mod_id]) < 0) {
|
||||
LOG_E(ENB_AGENT, "Create task for eNB Agent failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
LOG_I(ENB_AGENT,"client ends\n");
|
||||
return 0;
|
||||
|
||||
|
||||
@@ -2090,11 +2090,14 @@ int enb_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__Progr
|
||||
|
||||
//struct enb_agent_map agent_map;
|
||||
enb_agent_timer_instance_t timer_instance;
|
||||
int agent_timer_init = 0;
|
||||
err_code_t enb_agent_init_timer(void){
|
||||
|
||||
LOG_I(ENB_AGENT, "init RB tree\n");
|
||||
|
||||
RB_INIT(&timer_instance.enb_agent_head);
|
||||
if (!agent_timer_init) {
|
||||
RB_INIT(&timer_instance.enb_agent_head);
|
||||
agent_timer_init = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
struct enb_agent_timer_element_s e;
|
||||
|
||||
@@ -0,0 +1,302 @@
|
||||
Active_eNBs = ( "eNB_Eurecom_LTEBox1", "eNB_Eurecom_LTEBox");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
eNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
eNB_ID = 0x00;
|
||||
|
||||
cell_type = "CELL_MACRO_ENB";
|
||||
|
||||
eNB_name = "eNB_Eurecom_LTEBox";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = "1";
|
||||
|
||||
mobile_country_code = "208";
|
||||
|
||||
mobile_network_code = "10";
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
frame_type = "FDD";
|
||||
tdd_config = 3;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 7;
|
||||
downlink_frequency = 2680000000L;
|
||||
uplink_frequency_offset = -120000000;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50;
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 25;
|
||||
rx_gain = 20;
|
||||
prach_root = 0;
|
||||
prach_config_index = 0;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 1;
|
||||
prach_freq_offset = 2;
|
||||
pucch_delta_shift = 1;
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = 0;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
pusch_hoppingOffset = 0;
|
||||
pusch_groupHoppingEnabled = "ENABLE";
|
||||
pusch_groupAssignment = 0;
|
||||
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||
pusch_nDMRS1 = 0;
|
||||
phich_duration = "NORMAL";
|
||||
phich_resource = "ONESIXTH";
|
||||
srs_enable = "DISABLE";
|
||||
/* srs_BandwidthConfig =;
|
||||
srs_SubframeConfig =;
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -108;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -108;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 2;
|
||||
rach_preambleInitialReceivedTargetPower = -100;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
bcch_modificationPeriodCoeff = 2;
|
||||
ue_TimersAndConstants_t300 = 1000;
|
||||
ue_TimersAndConstants_t301 = 1000;
|
||||
ue_TimersAndConstants_t310 = 1000;
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
}
|
||||
);
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.100.102";
|
||||
ipv6 = "0::0";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth2:1";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.100.103/24";
|
||||
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth2:1";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.100.103/24";
|
||||
ENB_PORT_FOR_S1U = 2153; # Spec 2152
|
||||
};
|
||||
|
||||
NETWORK_CONTROLLER :
|
||||
{
|
||||
ENB_AGENT_INTERFACE_NAME = "eth0";
|
||||
ENB_AGENT_IPV4_ADDRESS = "10.0.0.5/30";
|
||||
ENB_AGENT_PORT = 2210;
|
||||
ENB_AGENT_CACHE = "/mnt/oai_agent_cache";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="trace";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="trace";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="trace";
|
||||
mac_log_verbosity ="medium";
|
||||
rlc_log_level ="trace";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="trace";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="trace";
|
||||
rrc_log_verbosity ="medium";
|
||||
gtpu_log_level ="debug";
|
||||
gtpu_log_verbosity ="medium";
|
||||
udp_log_level ="debug";
|
||||
udp_log_verbosity ="medium";
|
||||
osa_log_level ="debug";
|
||||
osa_log_verbosity ="low";
|
||||
};
|
||||
|
||||
},
|
||||
|
||||
{
|
||||
////////// Identification parameters:
|
||||
eNB_ID = 0x01;
|
||||
|
||||
cell_type = "CELL_MACRO_ENB";
|
||||
|
||||
eNB_name = "eNB_Eurecom_LTEBox1";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = "1";
|
||||
|
||||
mobile_country_code = "208";
|
||||
|
||||
mobile_network_code = "10";
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
frame_type = "FDD";
|
||||
tdd_config = 3;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 7;
|
||||
downlink_frequency = 2680000000L;
|
||||
uplink_frequency_offset = -120000000;
|
||||
Nid_cell = 10;
|
||||
N_RB_DL = 25;
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 25;
|
||||
rx_gain = 20;
|
||||
prach_root = 0;
|
||||
prach_config_index = 0;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 1;
|
||||
prach_freq_offset = 2;
|
||||
pucch_delta_shift = 1;
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = 0;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
pusch_hoppingOffset = 0;
|
||||
pusch_groupHoppingEnabled = "ENABLE";
|
||||
pusch_groupAssignment = 0;
|
||||
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||
pusch_nDMRS1 = 0;
|
||||
phich_duration = "NORMAL";
|
||||
phich_resource = "ONESIXTH";
|
||||
srs_enable = "DISABLE";
|
||||
/* srs_BandwidthConfig =;
|
||||
srs_SubframeConfig =;
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -108;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -108;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 2;
|
||||
rach_preambleInitialReceivedTargetPower = -100;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
bcch_modificationPeriodCoeff = 2;
|
||||
ue_TimersAndConstants_t300 = 1000;
|
||||
ue_TimersAndConstants_t301 = 1000;
|
||||
ue_TimersAndConstants_t310 = 1000;
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
}
|
||||
);
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.100.102";
|
||||
ipv6 = "0::0";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth2:2";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.100.104/24";
|
||||
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth2:2";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.100.104/24";
|
||||
ENB_PORT_FOR_S1U = 2153; # Spec 2152
|
||||
};
|
||||
|
||||
NETWORK_CONTROLLER :
|
||||
{
|
||||
ENB_AGENT_INTERFACE_NAME = "eth0";
|
||||
ENB_AGENT_IPV4_ADDRESS = "10.0.0.5/30";
|
||||
ENB_AGENT_PORT = 2210;
|
||||
ENB_AGENT_CACHE = "/mnt/oai_agent_cache";
|
||||
};
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="trace";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="trace";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="trace";
|
||||
mac_log_verbosity ="medium";
|
||||
rlc_log_level ="trace";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="trace";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="trace";
|
||||
rrc_log_verbosity ="medium";
|
||||
gtpu_log_level ="debug";
|
||||
gtpu_log_verbosity ="medium";
|
||||
udp_log_level ="debug";
|
||||
udp_log_verbosity ="medium";
|
||||
osa_log_level ="debug";
|
||||
osa_log_verbosity ="low";
|
||||
};
|
||||
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user