Commit 1f31fff8 authored by lfarizav's avatar lfarizav

Some updates for multi RRU

parent fb887794
...@@ -93,7 +93,7 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param ...@@ -93,7 +93,7 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
oai_device_initfunc_t dp ; oai_device_initfunc_t dp ;
oai_transport_initfunc_t tp ; oai_transport_initfunc_t tp ;
int ret=0; int ret=0;
printf("transport_init device->Mod_id %d, addr %s, addr(ifdevice) %s\n",device->Mod_id,cfg->my_addr,openair0_cfg->my_addr); //printf("transport_init device->Mod_id %d, addr %s, addr(ifdevice) %s\n",device->Mod_id,cfg->my_addr,openair0_cfg->my_addr);
if (flag == BBU_LOCAL_RADIO_HEAD) { if (flag == BBU_LOCAL_RADIO_HEAD) {
lib_handle = dlopen(OAI_RF_LIBNAME, RTLD_LAZY); lib_handle = dlopen(OAI_RF_LIBNAME, RTLD_LAZY);
if (!lib_handle) { if (!lib_handle) {
...@@ -124,7 +124,7 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param ...@@ -124,7 +124,7 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
tp = dlsym(lib_handle,"transport_init"); tp = dlsym(lib_handle,"transport_init");
if (tp != NULL ) { if (tp != NULL ) {
printf("device->device->Mod_id %d, cfg->addr %s\n",device->Mod_id,cfg->my_addr); //printf("device->device->Mod_id %d, cfg->addr %s\n",device->Mod_id,cfg->my_addr);
tp(device,openair0_cfg,cfg); tp(device,openair0_cfg,cfg);
} else { } else {
fprintf(stderr, "%s %d:oai device intializing function not found %s\n", __FILE__, __LINE__, dlerror()); fprintf(stderr, "%s %d:oai device intializing function not found %s\n", __FILE__, __LINE__, dlerror());
...@@ -150,10 +150,10 @@ int openair0_device_load(openair0_device *device, openair0_config_t *openair0_cf ...@@ -150,10 +150,10 @@ int openair0_device_load(openair0_device *device, openair0_config_t *openair0_cf
return rc; return rc;
} }
int openair0_transport_load(openair0_device *device, openair0_config_t *openair0_cfg, eth_params_t * eth_params, int eNB) { int openair0_transport_load(openair0_device *device, openair0_config_t *openair0_cfg, eth_params_t * eth_params) {
int rc; int rc;
printf("eNB %d\n",eNB); //printf("eNB %d\n",eNB);
printf("device eNB %d, addr %s\n",device->Mod_id,eth_params->my_addr); //printf("device eNB %d, addr %s\n",device->Mod_id,eth_params->my_addr);
rc=load_lib(device, openair0_cfg, eth_params, BBU_REMOTE_RADIO_HEAD); rc=load_lib(device, openair0_cfg, eth_params, BBU_REMOTE_RADIO_HEAD);
if ( rc >= 0) { if ( rc >= 0) {
if ( set_transport(device) < 0) { if ( set_transport(device) < 0) {
......
...@@ -382,7 +382,7 @@ extern "C" ...@@ -382,7 +382,7 @@ extern "C"
/*! \brief Initialize openair RF target. It returns 0 if OK */ /*! \brief Initialize openair RF target. It returns 0 if OK */
int openair0_device_load(openair0_device *device, openair0_config_t *openair0_cfg); int openair0_device_load(openair0_device *device, openair0_config_t *openair0_cfg);
/*! \brief Initialize transport protocol . It returns 0 if OK */ /*! \brief Initialize transport protocol . It returns 0 if OK */
int openair0_transport_load(openair0_device *device, openair0_config_t *openair0_cfg, eth_params_t * eth_params,int eNB); int openair0_transport_load(openair0_device *device, openair0_config_t *openair0_cfg, eth_params_t * eth_params);
/*! \brief Get current timestamp of USRP /*! \brief Get current timestamp of USRP
......
...@@ -67,20 +67,20 @@ int eth_socket_init_udp(openair0_device *device) { ...@@ -67,20 +67,20 @@ int eth_socket_init_udp(openair0_device *device) {
int sock_type=0; int sock_type=0;
int sock_proto=0; int sock_proto=0;
int enable=1; int enable=1;
printf("RRH %d\n",device->Mod_id); //printf("RRH %d\n",device->Mod_id);
printf("local %s, remote %s\n",device->openair0_cfg->my_addr,device->openair0_cfg->remote_addr); printf("local %s, remote %s\n",device->openair0_cfg->my_addr,device->openair0_cfg->remote_addr);
if (device->host_type == RRH_HOST ) { if (device->host_type == RRH_HOST ) {
local_ip = device->openair0_cfg->my_addr; local_ip = device->openair0_cfg->my_addr;
local_port = device->openair0_cfg->my_port; local_port = device->openair0_cfg->my_port;
remote_ip = "0.0.0.0"; remote_ip = "0.0.0.0";
remote_port = 0; remote_port = 0;
printf("[%s] local ip addr %s port %d\n", "RRH %d", local_ip, local_port,device->Mod_id); printf("[%s] local ip addr %s port %d\n", "RRH", local_ip, local_port,device->Mod_id);
} else { } else {
local_ip = device->openair0_cfg->my_addr; local_ip = device->openair0_cfg->my_addr;
local_port = device->openair0_cfg->my_port; local_port = device->openair0_cfg->my_port;
remote_ip = device->openair0_cfg->remote_addr; remote_ip = device->openair0_cfg->remote_addr;
remote_port = device->openair0_cfg->remote_port; remote_port = device->openair0_cfg->remote_port;
printf("[%s] local ip addr %s port %d\n","BBU %d", local_ip, local_port,device->Mod_id); printf("[%s] local ip addr %s port %d\n","BBU", local_ip, local_port,device->Mod_id);
} }
/* Open socket to send on */ /* Open socket to send on */
......
...@@ -56,7 +56,7 @@ int dest_addr_len[MAX_INST]; ...@@ -56,7 +56,7 @@ int dest_addr_len[MAX_INST];
int trx_eth_start(openair0_device *device) { int trx_eth_start(openair0_device *device) {
eth_state_t *eth = (eth_state_t*)device->priv; eth_state_t *eth = (eth_state_t*)device->priv;
printf("trx_eth_start device->Mod_id %d\n",device->Mod_id); //printf("trx_eth_start device->Mod_id %d\n",device->Mod_id);
/* initialize socket */ /* initialize socket */
if (eth->flags == ETH_RAW_MODE) { if (eth->flags == ETH_RAW_MODE) {
printf("Setting ETHERNET to ETH_RAW_IF5_MODE\n"); printf("Setting ETHERNET to ETH_RAW_IF5_MODE\n");
...@@ -395,7 +395,7 @@ int transport_init(openair0_device *device, openair0_config_t *openair0_cfg, eth ...@@ -395,7 +395,7 @@ int transport_init(openair0_device *device, openair0_config_t *openair0_cfg, eth
device->openair0_cfg=&openair0_cfg[0]; device->openair0_cfg=&openair0_cfg[0];
printf("[ETHERNET]: Initializing openair0_device for %s of eNB %d ...\n", ((device->host_type == BBU_HOST) ? "BBU": "RRH"),num_devices_eth); printf("[ETHERNET]: Initializing openair0_device for %s of eNB %d ...\n", ((device->host_type == BBU_HOST) ? "BBU": "RRH"),num_devices_eth);
device->Mod_id = num_devices_eth; device->Mod_id = num_devices_eth;
printf("num_devices_eth %d, device->Mod_id %d, addr %s, local_if_name %s, addr(ifdevice) %s\n",num_devices_eth,device->Mod_id,eth_params->my_addr,eth_params->local_if_name,openair0_cfg->my_addr); //printf("num_devices_eth %d, device->Mod_id %d, addr %s, local_if_name %s, addr(ifdevice) %s\n",num_devices_eth,device->Mod_id,eth_params->my_addr,eth_params->local_if_name,openair0_cfg->my_addr);
num_devices_eth++; num_devices_eth++;
device->transp_type = ETHERNET_TP; device->transp_type = ETHERNET_TP;
device->trx_start_func = trx_eth_start; device->trx_start_func = trx_eth_start;
......
Active_eNBs = ("eNB_Eurecom_LTEBox","eNB_Eurecom_LTEBox1");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
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 = "93";
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RRU_IF4p5";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2685000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 120;
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 = -27;
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 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -95;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
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 = 4;
rach_preambleInitialReceivedTargetPower = -104;
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;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.13.11";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eno2";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.170/24";
ENB_INTERFACE_NAME_FOR_S1U = "eno2";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.170/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
rrh_gw_config = (
{
local_if_name = "eno2";
remote_address = "192.168.12.171";
local_address = "192.168.12.170";
local_port = 50000; #for raw option local port must be the same to remote
remote_port = 50000;
rrh_gw_active = "yes";
tr_preference = "udp_if4p5";
rf_preference = "usrp_b200";
iq_txshift = 4;
tx_sample_advance = 80;
tx_scheduling_advance = 9;
if_compression = "alaw";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
,
{
////////// Identification parameters:
eNB_ID = 0xe01;
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 = "93";
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RRU_IF4p5";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2685000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 120;
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 = -27;
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 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -95;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
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 = 4;
rach_preambleInitialReceivedTargetPower = -104;
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;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.13.11";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "enxd8eb97b9c06c";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.14.170/24";
ENB_INTERFACE_NAME_FOR_S1U = "enxd8eb97b9c06c";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.14.170/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
rrh_gw_config = (
{
local_if_name = "enxd8eb97b9c06c";
remote_address = "192.168.14.171";
local_address = "192.168.14.170";
local_port = 50001; #for raw option local port must be the same to remote
remote_port = 50001;
rrh_gw_active = "yes";
tr_preference = "udp_if4p5";
rf_preference = "usrp_b200";
iq_txshift = 4;
tx_sample_advance = 80;
tx_scheduling_advance = 9;
if_compression = "alaw";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
}
);
...@@ -2330,7 +2330,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst ...@@ -2330,7 +2330,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
int ret; int ret;
for (inst=0;inst<nb_inst;inst++) { for (inst=0;inst<nb_inst;inst++) {
for (CC_id=0;CC_id<MAX_NUM_CCs;CC_id++) { for (CC_id=0;CC_id<MAX_NUM_CCs;CC_id++) {
printf("Number of inst %d, eNB %d, rfdevice %d, ifdevice %d, addr %s\n",inst,PHY_vars_eNB_g[inst][CC_id]->Mod_id,PHY_vars_eNB_g[inst][CC_id]->rfdevice.Mod_id,PHY_vars_eNB_g[inst][CC_id]->ifdevice.Mod_id,(eth_params+inst+CC_id)->my_addr); //printf("Number of inst %d, eNB %d, rfdevice %d, ifdevice %d, addr %s\n",inst,PHY_vars_eNB_g[inst][CC_id]->Mod_id,PHY_vars_eNB_g[inst][CC_id]->rfdevice.Mod_id,PHY_vars_eNB_g[inst][CC_id]->ifdevice.Mod_id,(eth_params+inst+CC_id)->my_addr);
eNB = PHY_vars_eNB_g[inst][CC_id]; eNB = PHY_vars_eNB_g[inst][CC_id];
eNB->node_function = node_function[CC_id]; eNB->node_function = node_function[CC_id];
eNB->node_timing = node_timing[CC_id]; eNB->node_timing = node_timing[CC_id];
...@@ -2369,7 +2369,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst ...@@ -2369,7 +2369,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
} }
eNB->rfdevice.host_type = RRH_HOST; eNB->rfdevice.host_type = RRH_HOST;
eNB->ifdevice.host_type = RRH_HOST; eNB->ifdevice.host_type = RRH_HOST;
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id], eNB->eth_params,eNB->Mod_id); ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id+inst], eNB->eth_params);
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id); printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
if (ret<0) { if (ret<0) {
printf("Exiting, cannot initialize transport protocol\n"); printf("Exiting, cannot initialize transport protocol\n");
...@@ -2400,8 +2400,8 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst ...@@ -2400,8 +2400,8 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
} }
eNB->rfdevice.host_type = RRH_HOST; eNB->rfdevice.host_type = RRH_HOST;
eNB->ifdevice.host_type = RRH_HOST; eNB->ifdevice.host_type = RRH_HOST;
printf("loading transport interface eNB %d, rfdevice %d, ifdevice %d, addr (ifdevice) ...\n",eNB->Mod_id,eNB->rfdevice.Mod_id,eNB->ifdevice.Mod_id); printf("loading transport interface eNB %d, rfdevice %d, ifdevice %d ...\n",eNB->Mod_id,eNB->rfdevice.Mod_id,eNB->ifdevice.Mod_id);
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id+inst], eNB->eth_params,eNB->Mod_id); ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id+inst], eNB->eth_params);
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id); printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
if (ret<0) { if (ret<0) {
printf("Exiting, cannot initialize transport protocol\n"); printf("Exiting, cannot initialize transport protocol\n");
...@@ -2465,7 +2465,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst ...@@ -2465,7 +2465,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB->ifdevice.host_type = BBU_HOST; eNB->ifdevice.host_type = BBU_HOST;
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id], eNB->eth_params,eNB->Mod_id); ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id+inst], eNB->eth_params);
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id); printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
if (ret<0) { if (ret<0) {
printf("Exiting, cannot initialize transport protocol\n"); printf("Exiting, cannot initialize transport protocol\n");
...@@ -2488,7 +2488,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst ...@@ -2488,7 +2488,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB->fh_asynch = (eNB->node_timing == synch_to_other) ? fh_if4p5_asynch_UL : NULL; eNB->fh_asynch = (eNB->node_timing == synch_to_other) ? fh_if4p5_asynch_UL : NULL;
eNB->rfdevice.host_type = BBU_HOST; eNB->rfdevice.host_type = BBU_HOST;
eNB->ifdevice.host_type = BBU_HOST; eNB->ifdevice.host_type = BBU_HOST;
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id], eNB->eth_params,eNB->Mod_id); ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id+inst], eNB->eth_params);
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id); printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
if (ret<0) { if (ret<0) {
printf("Exiting, cannot initialize transport protocol\n"); printf("Exiting, cannot initialize transport protocol\n");
...@@ -2514,7 +2514,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst ...@@ -2514,7 +2514,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB->rfdevice.host_type = BBU_HOST; eNB->rfdevice.host_type = BBU_HOST;
eNB->ifdevice.host_type = BBU_HOST; eNB->ifdevice.host_type = BBU_HOST;
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id], eNB->eth_params,eNB->Mod_id); ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id+inst], eNB->eth_params);
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id); printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
if (ret<0) { if (ret<0) {
printf("Exiting, cannot initialize transport protocol\n"); printf("Exiting, cannot initialize transport protocol\n");
......
...@@ -189,6 +189,8 @@ int oaisim_flag=1; ...@@ -189,6 +189,8 @@ int oaisim_flag=1;
void get_simulation_options(int argc, char *argv[]) void get_simulation_options(int argc, char *argv[])
{ {
int option; int option;
int CC_id;
int k;
char *conf_config_file_name = NULL; char *conf_config_file_name = NULL;
enum long_option_e { enum long_option_e {
LONG_OPTION_START = 0x100, /* Start after regular single char options */ LONG_OPTION_START = 0x100, /* Start after regular single char options */
...@@ -827,18 +829,22 @@ void get_simulation_options(int argc, char *argv[]) ...@@ -827,18 +829,22 @@ void get_simulation_options(int argc, char *argv[])
} }
} }
} }
}
/* Update some simulation parameters */ /* Update some simulation parameters */
oai_emulation.info.frame_type[0] = enb_properties->properties[0]->frame_type[0]; for (CC_id=0;CC_id<MAX_NUM_CCs;CC_id++){
oai_emulation.info.tdd_config[0] = enb_properties->properties[0]->tdd_config[0]; oai_emulation.info.frame_type[CC_id] = enb_properties->properties[i]->frame_type[CC_id];
oai_emulation.info.tdd_config_S[0] = enb_properties->properties[0]->tdd_config_s[0]; oai_emulation.info.tdd_config[CC_id] = enb_properties->properties[i]->tdd_config[CC_id];
oai_emulation.info.extended_prefix_flag[0] = enb_properties->properties[0]->prefix_type[0]; oai_emulation.info.tdd_config_S[CC_id] = enb_properties->properties[i]->tdd_config_s[CC_id];
oai_emulation.info.extended_prefix_flag[CC_id] = enb_properties->properties[i]->prefix_type[CC_id];
oai_emulation.info.node_function[0] = enb_properties->properties[0]->cc_node_function[0]; oai_emulation.info.N_RB_DL[CC_id] = enb_properties->properties[i]->N_RB_DL[CC_id];
oai_emulation.info.node_timing[0] = enb_properties->properties[0]->cc_node_timing[0];
downlink_frequency[0][0] = enb_properties->properties[0]->downlink_frequency[0]; oai_emulation.info.node_function[CC_id] = enb_properties->properties[i]->cc_node_function[CC_id];
uplink_frequency_offset[0][0] = enb_properties->properties[0]->uplink_frequency_offset[0]; oai_emulation.info.node_timing[CC_id] = enb_properties->properties[i]->cc_node_timing[CC_id];
oai_emulation.info.N_RB_DL[0] = enb_properties->properties[0]->N_RB_DL[0]; for (k=0;k<4;k++){
downlink_frequency[CC_id][0] = enb_properties->properties[i]->downlink_frequency[CC_id];
uplink_frequency_offset[CC_id][0] = enb_properties->properties[i]->uplink_frequency_offset[CC_id];
}
}
}
} }
free(conf_config_file_name); free(conf_config_file_name);
conf_config_file_name = 0; conf_config_file_name = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment