* fix the bugs for the IP connectivity when more than one UE is activated
* add the phy abstraction for eMBMS, and the MCH transport info for distributed simulation * add supports in PDCP to detect the multicast/broadcast packets * update the readme files, and the script start_one_eNB_multi_UE_nas git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5079 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -24,7 +24,7 @@ if [ $1 -ge 2 ]; then
|
||||
sudo ifconfig oai2 10.0.3.3 netmask 255.255.255.0 broadcast 10.0.3.255
|
||||
|
||||
# enb -> ue2
|
||||
$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c1 -i0 -z0 -s 10.0.1.1 -t 10.0.1.3 -r 11
|
||||
$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c1 -i0 -z0 -s 10.0.1.1 -t 10.0.1.3 -r 14
|
||||
# ue2 -> enb
|
||||
$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c1 -i2 -z0 -s 10.0.3.3 -t 10.0.3.1 -r 3
|
||||
fi
|
||||
@@ -34,7 +34,7 @@ if [ $1 -ge 3 ]; then
|
||||
sudo ifconfig oai3 10.0.4.4 netmask 255.255.255.0 broadcast 10.0.4.255
|
||||
|
||||
# enb -> ue2
|
||||
$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c2 -i0 -z0 -s 10.0.1.1 -t 10.0.1.4 -r 19
|
||||
$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c2 -i0 -z0 -s 10.0.1.1 -t 10.0.1.4 -r 25
|
||||
# ue2 -> enb
|
||||
$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c2 -i3 -z0 -s 10.0.4.4 -t 10.0.4.1 -r 3
|
||||
fi
|
||||
|
||||
@@ -951,7 +951,7 @@ void *l2l1_task(void *args_p) {
|
||||
// calibrate at the end of each frame if there is some time left
|
||||
if ((sleep_time_us > 0) && (ethernet_flag == 0)) {
|
||||
LOG_I(EMU, "[TIMING] Adjust average frame duration, sleep for %d us\n", sleep_time_us);
|
||||
usleep (sleep_time_us);
|
||||
//usleep (sleep_time_us);
|
||||
sleep_time_us = 0; // reset the timer, could be done per n SF
|
||||
}
|
||||
#ifdef SMBV
|
||||
|
||||
@@ -142,6 +142,12 @@ mapping otg_distribution_names[] =
|
||||
{"background_dist",13},
|
||||
{NULL, -1}
|
||||
};
|
||||
mapping frame_type_names[] =
|
||||
{
|
||||
{"TDD", 1},
|
||||
{"FDD", 0},
|
||||
{NULL, -1}
|
||||
};
|
||||
|
||||
mapping switch_names[] =
|
||||
{
|
||||
@@ -372,13 +378,14 @@ void init_oai_emulation() {
|
||||
oai_emulation.info.g_log_verbosity = 0x15;
|
||||
oai_emulation.info.g_log_verbosity_option = "medium";
|
||||
|
||||
oai_emulation.info.frame_type=1;
|
||||
oai_emulation.info.tdd_config=3;
|
||||
oai_emulation.info.tdd_config_S=0;
|
||||
oai_emulation.info.extended_prefix_flag=0;
|
||||
oai_emulation.info.N_RB_DL=25;
|
||||
oai_emulation.info.transmission_mode=2;
|
||||
|
||||
oai_emulation.info.frame_type=TDD;
|
||||
oai_emulation.info.frame_type_name="TDD";
|
||||
oai_emulation.info.tdd_config=3;
|
||||
oai_emulation.info.tdd_config_S=0;
|
||||
oai_emulation.info.extended_prefix_flag=0;
|
||||
oai_emulation.info.N_RB_DL=25;
|
||||
oai_emulation.info.transmission_mode=2;
|
||||
|
||||
oai_emulation.profile = "EURECOM";
|
||||
}
|
||||
|
||||
@@ -424,7 +431,6 @@ void oaisim_config() {
|
||||
g_log->log_component[OTG_LATENCY].filelog=1;
|
||||
g_log->log_component[OTG_OWD].filelog = 1;*/
|
||||
ocg_config_app(); // packet generator
|
||||
// oai_emulation.info.frame_type=1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -432,18 +438,11 @@ int olg_config() {
|
||||
int comp;
|
||||
int ocg_log_level = map_str_to_int(log_level_names, oai_emulation.emulation_config.log_emu.level);
|
||||
int ocg_log_verbosity= map_str_to_int(log_verbosity_names, oai_emulation.emulation_config.log_emu.verbosity);
|
||||
LOG_I(EMU, "ocg log level %d, oai log level%d \n ",ocg_log_level, oai_emulation.info.g_log_level);
|
||||
// fix me:
|
||||
oai_emulation.info.g_log_level = ((oai_emulation.info.ocg_enabled == 1) && (ocg_log_level != -1)) ? ocg_log_level : oai_emulation.info.g_log_level;
|
||||
oai_emulation.info.g_log_verbosity = (((oai_emulation.info.ocg_enabled == 1) && (ocg_log_verbosity != -1)) ? ocg_log_verbosity :
|
||||
map_str_to_int(log_verbosity_names, oai_emulation.info.g_log_verbosity_option));
|
||||
|
||||
LOG_N(EMU, "global log level is set to (%s,%d) with vebosity (%s, 0x%x) and frequency %d\n",
|
||||
map_int_to_str (log_level_names, oai_emulation.info.g_log_level),
|
||||
oai_emulation.info.g_log_level,
|
||||
map_int_to_str (log_verbosity_names, oai_emulation.info.g_log_verbosity),
|
||||
oai_emulation.info.g_log_verbosity,
|
||||
oai_emulation.emulation_config.log_emu.interval );
|
||||
set_glog(oai_emulation.info.g_log_level, oai_emulation.info.g_log_verbosity ); //g_glog
|
||||
// component, log level, log interval
|
||||
for (comp = PHY; comp < MAX_LOG_COMPONENTS ; comp++)
|
||||
@@ -451,7 +450,15 @@ int olg_config() {
|
||||
oai_emulation.info.g_log_level,
|
||||
oai_emulation.info.g_log_verbosity,
|
||||
oai_emulation.emulation_config.log_emu.interval);
|
||||
|
||||
LOG_I(EMU, "OCG log level %d, oai log level%d \n ",ocg_log_level, oai_emulation.info.g_log_level);
|
||||
LOG_N(EMU,"global log level is set to (%s,%d) with vebosity (%s, 0x%x) and frequency %d\n",
|
||||
map_int_to_str (log_level_names, oai_emulation.info.g_log_level),
|
||||
oai_emulation.info.g_log_level,
|
||||
map_int_to_str (log_verbosity_names,oai_emulation.info.g_log_verbosity),
|
||||
oai_emulation.info.g_log_verbosity,
|
||||
oai_emulation.emulation_config.log_emu.interval );
|
||||
|
||||
/*
|
||||
// if perf eval then reset the otg log level
|
||||
set_comp_log(PHY, LOG_EMERG, 0x15,1);
|
||||
set_comp_log(EMU, LOG_EMERG, 0x15,1);
|
||||
@@ -470,7 +477,7 @@ int olg_config() {
|
||||
set_log(RAL_ENB, LOG_DEBUG, 1);
|
||||
set_log(RAL_UE, LOG_DEBUG, 1);
|
||||
#endif
|
||||
|
||||
|
||||
//set_log(OCG, LOG_DEBUG, 1);
|
||||
//set_log(EMU, LOG_INFO, 20);
|
||||
set_log(MAC, LOG_DEBUG, 1);
|
||||
@@ -491,14 +498,31 @@ int olg_config() {
|
||||
set_comp_log(OTG, LOG_ERR, 0x15,1);
|
||||
set_comp_log(OMG, LOG_ERR, 0x15,1);
|
||||
set_comp_log(OPT, LOG_ERR, 0x15,1);
|
||||
|
||||
*/
|
||||
// set_comp_log(MAC, LOG_TRACE, LOG_FULL,1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int ocg_config_env() {
|
||||
// int func related to channel desc from oaisim.c could be moved here
|
||||
return 1;
|
||||
|
||||
if (oai_emulation.info.ocg_enabled){
|
||||
oai_emulation.info.frame_type = map_str_to_int(frame_type_names, oai_emulation.info.frame_type_name);
|
||||
if (oai_emulation.info.frame_type == -1){
|
||||
LOG_E(EMU,"frame type incorrect %s, set it to TDD \n",oai_emulation.info.frame_type_name);
|
||||
oai_emulation.info.frame_type=TDD;
|
||||
}
|
||||
else
|
||||
LOG_I(EMU,"Frame type is %s \n",oai_emulation.info.frame_type_name);
|
||||
if (oai_emulation.info.frame_type == TDD ){
|
||||
if ((oai_emulation.info.tdd_config > 6) || (oai_emulation.info.tdd_config < 0)) {
|
||||
LOG_E(EMU,"TDD config %d out of range, set it to 3\n",oai_emulation.info.tdd_config);
|
||||
oai_emulation.info.tdd_config=3;
|
||||
} else
|
||||
LOG_I(EMU,"TDD config is set to \n",oai_emulation.info.tdd_config);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
int ocg_config_topo() {
|
||||
|
||||
|
||||
@@ -1175,9 +1175,14 @@ void update_otg_UE(int UE_id, unsigned int ctime) {
|
||||
src_id = module_id;
|
||||
|
||||
for (dst_id=0;dst_id<NUMBER_OF_eNB_MAX;dst_id++) {
|
||||
if (mac_get_rrc_status(UE_id, 0/*eNB_flag*/, dst_id ) > 2 /*RRC_CONNECTED*/) {
|
||||
if (mac_get_rrc_status(UE_id, 0, dst_id ) > 2 /*RRC_CONNECTED*/) {
|
||||
Packet_otg_elt *otg_pkt = malloc (sizeof(Packet_otg_elt));
|
||||
// Manage to add this packet to the tail of your list
|
||||
if (otg_pkt!=NULL)
|
||||
memset(otg_pkt,0,sizeof(Packet_otg_elt));
|
||||
else {
|
||||
LOG_E(OTG,"not enough memory\n");
|
||||
exit(-1);
|
||||
}// Manage to add this packet to the tail of your list
|
||||
(otg_pkt->otg_pkt).sdu_buffer = (u8*) packet_gen(src_id, dst_id, 0, ctime, &((otg_pkt->otg_pkt).sdu_buffer_size));
|
||||
|
||||
if ((otg_pkt->otg_pkt).sdu_buffer != NULL) {
|
||||
|
||||
Reference in New Issue
Block a user