diff --git a/openair1/SCHED/phy_procedures_lte_ue.c b/openair1/SCHED/phy_procedures_lte_ue.c
index e35648d9a2b31e755de5f1ffeb21bad33aa239f0..68bd7f8be1f5ca54cbc3af2d9b487de53e8bcc8d 100755
--- a/openair1/SCHED/phy_procedures_lte_ue.c
+++ b/openair1/SCHED/phy_procedures_lte_ue.c
@@ -3311,7 +3311,7 @@ void phy_UE_lte_measurement_thresholds_test_and_report(instance_t instanceP, ral
memcpy(&PHY_MEAS_REPORT_IND (message_p).link_param,
&threshold_phy_pP->link_param,
- sizeof(PHY_MEAS_REPORT_IND (message_p).link_param));\
+ sizeof(PHY_MEAS_REPORT_IND (message_p).link_param));
switch (threshold_phy_pP->link_param.choice) {
case RAL_LINK_PARAM_CHOICE_LINK_PARAM_VAL:
@@ -3322,6 +3322,7 @@ void phy_UE_lte_measurement_thresholds_test_and_report(instance_t instanceP, ral
AssertFatal (1 == 0, "TO DO RAL_LINK_PARAM_CHOICE_QOS_PARAM_VAL\n");
break;
}
+ //LOG_I(PHY,"[XXX] Sending link parameters report msg message to RRC\n");
itti_send_msg_to_task(TASK_RRC_UE, instanceP, message_p);
}
}
@@ -3346,6 +3347,8 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
break;
case RAL_LINK_PARAM_GEN_THROUGHPUT:
break;
+ default:;
+ }
break;
case RAL_LINK_PARAM_TYPE_CHOICE_LTE:
@@ -3378,13 +3381,14 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
break;
case RAL_LINK_PARAM_LTE_NUM_ACTIVE_EMBMS_RECEIVERS_PER_FLOW:
break;
- default:;
+ default:
+ LOG_W(PHY,"unknown message %d\n", threshold_phy_pP->link_param.link_param_type._union.link_param_gen);
}
break;
- default:;
- }
- }
+ default:
+ LOG_W(PHY,"unknown message %d\n", threshold_phy_pP->link_param.link_param_type.choice);
+ }
}
# endif
#endif
@@ -3466,8 +3470,8 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
// check if it is a measurement timer
{
hashtable_rc_t hashtable_rc;
-
hashtable_rc = hashtable_is_key_exists(PHY_vars_UE_g[Mod_id][CC_id]->ral_thresholds_timed, (uint64_t)(TIMER_HAS_EXPIRED(msg_p).timer_id));
+ LOG_I(PHY, "[UE %d] Received TIMER HAS EXPIRED: (hash_rc %d, HASH_TABLE_OK %d)\n", Mod_id, hashtable_rc, HASH_TABLE_OK);
if (hashtable_rc == HASH_TABLE_OK) {
phy_UE_lte_check_measurement_thresholds(instance, (ral_threshold_phy_t*)TIMER_HAS_EXPIRED(msg_p).arg);
}
@@ -3518,6 +3522,7 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
&PHY_vars_UE_g[Mod_id][CC_id]->ral_thresholds_lte_polled[PHY_MEAS_THRESHOLD_REQ(msg_p).cfg_param.link_param_type._union.link_param_lte],
threshold_phy_p,
ral_thresholds);
+//LOG_E(PHY, "[UE %d] NORMAL/ONE SHOT - TIMER NULL - type LTE in %s\n", Mod_id, msg_name);
break;
default:
@@ -3540,6 +3545,7 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
hashtable_rc = hashtable_insert(PHY_vars_UE_g[Mod_id][CC_id]->ral_thresholds_timed, (uint64_t )timer_id, (void*)threshold_phy_p);
if (hashtable_rc == HASH_TABLE_OK) {
threshold_phy_p->timer_id = timer_id;
+ LOG_I(PHY, "[UE %d] NORMAL/ONE SHOT - TIMER CHOICE - OK - in Hash %s\n", Mod_id, msg_name);
} else {
LOG_E(PHY, "[UE %d] %s: Error in hashtable. Could not configure threshold index %d \n",
Mod_id, msg_name, index);
diff --git a/openair2/COMMON/ral_messages_types.h b/openair2/COMMON/ral_messages_types.h
index 1feadd32d0813b55ac5e4773be7bf9db5adff8b4..2fa729a37145214cd9156aafa63d40b545d41e76 100755
--- a/openair2/COMMON/ral_messages_types.h
+++ b/openair2/COMMON/ral_messages_types.h
@@ -252,9 +252,9 @@ typedef MIH_C_LINK_PARAM_LTE_T ral_link_param_lt
#define RAL_LINK_PARAM_LTE_NUM_ACTIVE_EMBMS_RECEIVERS_PER_FLOW MIH_C_LINK_PARAM_LTE_NUM_ACTIVE_EMBMS_RECEIVERS_PER_FLOW
#define RAL_LINK_PARAM_LTE_MAX RAL_LINK_PARAM_LTE_NUM_ACTIVE_EMBMS_RECEIVERS_PER_FLOW
-#define RAL_LINK_PARAM_TYPE_CHOICE_GEN MIH_C_LINK_PARAM_TYPE_CHOICE_GEN
+#define RAL_LINK_PARAM_TYPE_CHOICE_GEN MIH_C_LINK_PARAM_TYPE_CHOICE_GEN // 0
#define RAL_LINK_PARAM_TYPE_CHOICE_QOS MIH_C_LINK_PARAM_TYPE_CHOICE_QOS
-#define RAL_LINK_PARAM_TYPE_CHOICE_LTE MIH_C_LINK_PARAM_TYPE_CHOICE_LTE
+#define RAL_LINK_PARAM_TYPE_CHOICE_LTE MIH_C_LINK_PARAM_TYPE_CHOICE_LTE // 12
typedef struct ral_link_param_type_s {
ral_choice_t choice;
diff --git a/openair2/RRC/LITE/defs.h b/openair2/RRC/LITE/defs.h
index d03d97a80d203775e9fd2faa1c68d9819b83559a..c5db1600d26b893b937ad83a6714dd025534db27 100644
--- a/openair2/RRC/LITE/defs.h
+++ b/openair2/RRC/LITE/defs.h
@@ -418,6 +418,7 @@ typedef struct UE_RRC_INST_s {
uint8_t num_active_cba_groups;
uint16_t cba_rnti[NUM_MAX_CBA_GROUP];
#endif
+ uint8_t num_srb;
struct SRB_ToAddMod *SRB1_config[NB_CNX_UE];
struct SRB_ToAddMod *SRB2_config[NB_CNX_UE];
struct DRB_ToAddMod *DRB_config[NB_CNX_UE][8];
diff --git a/openair2/RRC/LITE/rrc_UE.c b/openair2/RRC/LITE/rrc_UE.c
index f872bcba6a3023dc85dca8d107eb70653c69a7c1..4061efe8b0edb175c214429727835909b7c0c3b8 100644
--- a/openair2/RRC/LITE/rrc_UE.c
+++ b/openair2/RRC/LITE/rrc_UE.c
@@ -910,6 +910,11 @@ rrc_ue_process_radioResourceConfigDedicated(module_id_t ue_mod_idP, frame_t fram
#endif
);
+#ifdef ENABLE_RAL
+ // first msg that includes srb config
+ UE_rrc_inst[ue_mod_idP].num_srb=radioResourceConfigDedicated->srb_ToAddModList->list.count;
+#endif
+
for (cnt=0;cnt<radioResourceConfigDedicated->srb_ToAddModList->list.count;cnt++) {
// connection_reestablishment_ind.num_srb+=1;
SRB_id = radioResourceConfigDedicated->srb_ToAddModList->list.array[cnt]->srb_Identity;
@@ -1389,10 +1394,14 @@ void rrc_ue_process_rrcConnectionReconfiguration(module_id_t ue_mod_idP, frame_t
connection_reestablishment_ind.num_drb = 0;
}
if (rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList != NULL) {
- connection_reestablishment_ind.num_srb = rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count;
+ connection_reestablishment_ind.num_srb = rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count + UE_rrc_inst[ue_mod_idP].num_srb;
+
} else {
- connection_reestablishment_ind.num_srb = 0;
+ connection_reestablishment_ind.num_srb += UE_rrc_inst[ue_mod_idP].num_srb;
}
+ if (connection_reestablishment_ind.num_srb > 2) // fixme: only 2 srbs can exist, adjust the value
+ connection_reestablishment_ind.num_srb =2;
+
memcpy (&message_ral_p->ittiMsg, (void *) &connection_reestablishment_ind, sizeof(rrc_ral_connection_reestablishment_ind_t));
//#warning "ue_mod_idP ? for instance ? => YES"
LOG_I(RRC, "Sending RRC_RAL_CONNECTION_REESTABLISHMENT_IND to mRAL\n");
@@ -1698,10 +1707,12 @@ void rrc_ue_decode_dcch(module_id_t ue_mod_idP, frame_t frameP,uint8_t Srb_id,
connection_reconfiguration_ho_ind.num_drb = 0;
}
if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList != NULL) {
- connection_reconfiguration_ho_ind.num_srb = dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count;
+ connection_reconfiguration_ho_ind.num_srb = dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count + UE_rrc_inst[ue_mod_idP].num_srb;
} else {
- connection_reconfiguration_ho_ind.num_srb = 0;
+ connection_reconfiguration_ho_ind.num_srb += UE_rrc_inst[ue_mod_idP].num_srb;
}
+ if (connection_reconfiguration_ho_ind.num_srb > 2 )
+ connection_reconfiguration_ho_ind.num_srb =2;
memcpy (&message_ral_p->ittiMsg, (void *) &connection_reconfiguration_ho_ind, sizeof(rrc_ral_connection_reconfiguration_ho_ind_t));
//#warning "ue_mod_idP ? for instance ? => YES"
LOG_I(RRC, "Sending RRC_RAL_CONNECTION_RECONFIGURATION_HO_IND to mRAL\n");
@@ -1736,10 +1747,12 @@ void rrc_ue_decode_dcch(module_id_t ue_mod_idP, frame_t frameP,uint8_t Srb_id,
connection_reconfiguration_ind.num_drb = 0;
}
if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList != NULL) {
- connection_reconfiguration_ind.num_srb = dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count;
+ connection_reconfiguration_ind.num_srb = dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count + UE_rrc_inst[ue_mod_idP].num_srb;
} else {
- connection_reconfiguration_ind.num_srb = 0;
+ connection_reconfiguration_ind.num_srb +=UE_rrc_inst[ue_mod_idP].num_srb;
}
+ if (connection_reconfiguration_ind.num_srb > 2 )
+ connection_reconfiguration_ind.num_srb =2;
memcpy (&message_ral_p->ittiMsg, (void *) &connection_reconfiguration_ind, sizeof(rrc_ral_connection_reconfiguration_ind_t));
//#warning "ue_mod_idP ? for instance ? => YES"
LOG_I(RRC, "Sending RRC_RAL_CONNECTION_RECONFIGURATION_IND to mRAL\n");
@@ -3063,7 +3076,7 @@ void *rrc_ue_task(void *args_p) {
LOG_C(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id));
break;
}
- break;
+ break; // PHY_FIND_CELL_IND
case PHY_MEAS_REPORT_IND:
{
@@ -3077,7 +3090,8 @@ void *rrc_ue_task(void *args_p) {
memcpy(&RRC_RAL_MEASUREMENT_REPORT_IND (message_p).link_param,
&PHY_MEAS_REPORT_IND(msg_p).link_param,
sizeof(RRC_RAL_MEASUREMENT_REPORT_IND (message_p).link_param));
-
+
+ LOG_I(RRC, "[UE %d] PHY_MEAS_REPORT_IN: sending msg %s to %s \n", ue_mod_id, "RRC_RAL_MEASUREMENT_REPORT_IND", "TASK_RAL_UE");
itti_send_msg_to_task(TASK_RAL_UE, instance, message_p);
break;
}
diff --git a/openair2/RRC/LITE/rrc_UE_ral.c b/openair2/RRC/LITE/rrc_UE_ral.c
index e7c1c208a3b42c27f8d0cbb99cf366239f5a9732..2487fea3fc2dd4649fd9c9033989798ae6a21565 100755
--- a/openair2/RRC/LITE/rrc_UE_ral.c
+++ b/openair2/RRC/LITE/rrc_UE_ral.c
@@ -223,6 +223,7 @@ int rrc_ue_ral_handle_configure_threshold_request(unsigned int mod_idP, MessageD
rrc_ue_ral_delete_threshold(mod_idP, &link_cfg_param_p->link_param_type, threshold_p);
}
}
+ LOG_E(RRC, "Message RRC_RAL_CONFIGURE_THRESHOLD_REQ with RAL_TH_ACTION_CANCEL_THRESHOLD\n");
break;
default:
LOG_E(RRC, "Message RRC_RAL_CONFIGURE_THRESHOLD_REQ malformed, unknown th_action %d\n", link_cfg_param_p->th_action);
diff --git a/targets/PROJECTS/SPECTRA/build_all.bash b/targets/PROJECTS/SPECTRA/build_all.bash
index 53a02782f59d5de35a2928f728928d7a2c5a85ff..f9bc814e62163a2f25cf13e6c455a5a9f1c22694 100755
--- a/targets/PROJECTS/SPECTRA/build_all.bash
+++ b/targets/PROJECTS/SPECTRA/build_all.bash
@@ -69,8 +69,13 @@ echo_success "\n###############################"
echo_success "# COMPILE oaisim"
echo_success "###############################"
cd $OPENAIR_TARGETS/SIMU/USER
-echo_success "Executing: make oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 USE_3GPP_ADDR_AS_LINK_ADDR=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j`grep -c ^processor /proc/cpuinfo `"
-make --keep-going oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 USE_3GPP_ADDR_AS_LINK_ADDR=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j`grep -c ^processor /proc/cpuinfo `
+#echo_success "Executing: make oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 USE_3GPP_ADDR_AS_LINK_ADDR=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j`grep -c ^processor /proc/cpuinfo `"
+#make --keep-going oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 USE_3GPP_ADDR_AS_LINK_ADDR=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j`grep -c ^processor /proc/cpuinfo `
+
+echo_success "Executing: make oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 USE_3GPP_ADDR_AS_LINK_ADDR=1 RLC_STOP_ON_LOST_PDU=1 -j`grep -c ^processor /proc/cpuinfo `"
+#make --keep-going oaisim NAS=
+make --keep-going oaisim DEBUG=1 NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 USE_3GPP_ADDR_AS_LINK_ADDR=1 RLC_STOP_ON_LOST_PDU=1 -j`grep -c ^processor /proc/cpuinfo `
+
if [[ $? -eq 2 ]] ; then
exit 1
fi
@@ -111,7 +116,7 @@ if [ ! -f $OPENAIR_HOME/common/utils/itti_analyzer/Makefile ]
cd objs
../configure
fi
-make install -j`grep -c ^processor /proc/cpuinfo `
+sudo make install -j`grep -c ^processor /proc/cpuinfo `
diff --git a/targets/PROJECTS/SPECTRA/env_802dot21.bash b/targets/PROJECTS/SPECTRA/env_802dot21.bash
index 2de642efecff00db4c146a90247d33e94fc1fb78..470c2ba163ee14abb60c273f8ba61f2496cf6b97 100755
--- a/targets/PROJECTS/SPECTRA/env_802dot21.bash
+++ b/targets/PROJECTS/SPECTRA/env_802dot21.bash
@@ -37,8 +37,8 @@
#####################################################
# VARIABLES TO BE FILLED WITH RIGHT VALUES:
#####################################################
-export BOOST_ROOT=/usr/local/src/boost_1_49_0
-export ODTONE_ROOT=/usr/local/src/ODTONE
+export BOOST_ROOT=/home/alexandrie/DEMO_SPECTRA/boost_1_49_0
+export ODTONE_ROOT=/home/alexandrie/DEMO_SPECTRA/ODTONE
export MIH_F=odtone-mihf
export ENB_MIH_F_CONF_FILE=odtone_enb.conf
@@ -47,6 +47,8 @@ export UE_MIH_F_CONF_FILE=odtone_ue.conf
export ODTONE_MIH_USER_DIR=$ODTONE_ROOT/app/lte_test_user
export ODTONE_MIH_EXE_DIR=$ODTONE_ROOT/dist
+#export ENB_MIH_USER=enb2_lte_user
+#export ENB_MIH_USER_CONF_FILE=enb2_lte_user.conf
export ENB_MIH_USER=enb_lte_user
export ENB_MIH_USER_CONF_FILE=enb_lte_user.conf
diff --git a/targets/PROJECTS/SPECTRA/start_enb.bash b/targets/PROJECTS/SPECTRA/start_enb.bash
index 83478e37dfd73f740e306923ecba340baa19dbfd..a522b6a70dd58a4935123528e5c7a034b24c00ad 100755
--- a/targets/PROJECTS/SPECTRA/start_enb.bash
+++ b/targets/PROJECTS/SPECTRA/start_enb.bash
@@ -36,12 +36,14 @@
#------------------------------------------------
# ENB CONFIG FILE
#------------------------------------------------
-declare -x ENB_CONFIG_FILE="CONF/enb.sfr.yang.conf"
+#declare -x ENB_CONFIG_FILE="CONF/enb.sfr.yang.conf"
+declare -x ENB_CONFIG_FILE="enb.conf"
#------------------------------------------------
# OAI NETWORKING
#------------------------------------------------
-declare -x EMULATION_DEV_INTERFACE="eth1"
+declare -x EMULATION_DEV_INTERFACE="eth0"
+declare -x EMULATION_DEV_ADDRESS="192.168.13.1"
declare -x IP_DRIVER_NAME="oai_nw_drv"
declare -x LTEIF="oai0"
declare -x ENB_IPv4="10.0.0.1"
@@ -49,7 +51,7 @@ declare -x ENB_IPv6="2001:1::1"
declare -x ENB_IPv6_CIDR=$ENB_IPv6"/64"
declare -x ENB_IPv4_CIDR=$ENB_IPv4"/24"
declare -a NAS_IMEI=( 3 9 1 8 3 6 6 2 0 0 0 0 0 0 )
-declare -x IP_DEFAULT_MARK="3"
+declare -x IP_DEFAULT_MARK="1" # originally 3
#------------------------------------------------
# OAI MIH
#------------------------------------------------
@@ -64,7 +66,7 @@ LOG_FILE="/tmp/oai_sim_enb.log"
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
source $THIS_SCRIPT_PATH/env_802dot21.bash
###########################################################
-
+bash_exec "ifconfig $EMULATION_DEV_INTERFACE up $EMULATION_DEV_ADDRESS netmask 255.255.255.0"
###########################################################
IPTABLES=/sbin/iptables
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
@@ -143,8 +145,7 @@ rotate_log_file $MIH_LOG_FILE
# start MIH-F
-#xterm -hold -e
-$ODTONE_MIH_EXE_DIR/$MIH_F --log 4 --conf.file $ODTONE_MIH_EXE_DIR/$ENB_MIH_F_CONF_FILE > $MIH_LOG_FILE 2>&1 &
+xterm -hold -e $ODTONE_MIH_EXE_DIR/$MIH_F --log 4 --conf.file $ODTONE_MIH_EXE_DIR/$ENB_MIH_F_CONF_FILE > $MIH_LOG_FILE 2>&1 &
wait_process_started $MIH_F
NOW=$(date +"%Y-%m-%d.%Hh_%Mm_%Ss")
@@ -172,7 +173,8 @@ $OPENAIR_TARGETS/SIMU/USER/oaisim -a -K $LOG_FILE -l9 -u0 -b1 -M0 -p2 -g1 -D $
--enb-mihf-remote-port $ENB_MIHF_REMOTE_PORT \
--enb-mihf-ip-address $ENB_MIHF_IP_ADDRESS \
--enb-mihf-id $ENB_MIHF_ID \
- -O $ENB_CONFIG_FILE | grep "RAL\|PDCP" &
+ -O $ENB_CONFIG_FILE > log_enb.txt &
+# -O $ENB_CONFIG_FILE | grep "RAL\|PDCP" &
wait_process_started oaisim
diff --git a/targets/PROJECTS/SPECTRA/start_ue.bash b/targets/PROJECTS/SPECTRA/start_ue.bash
index d0a844e1fa736b9e65923a875ea8651bfd238f76..1294df8b77071e5170a0f92bf08dc63bd1765c19 100755
--- a/targets/PROJECTS/SPECTRA/start_ue.bash
+++ b/targets/PROJECTS/SPECTRA/start_ue.bash
@@ -36,7 +36,9 @@
#------------------------------------------------
# OAI NETWORKING
#------------------------------------------------
-declare -x EMULATION_DEV_INTERFACE="eth1"
+declare -x EMULATION_DEV_INTERFACE="eth0"
+declare -x EMULATION_DEV_ADDRESS="192.168.13.2"
+
declare -x IP_DRIVER_NAME="oai_nw_drv"
declare -x LTEIF="oai0"
declare -x UE_IPv4="10.0.0.2"
@@ -44,24 +46,26 @@ declare -x UE_IPv6="2001:1::2"
declare -x UE_IPv6_CIDR=$UE_IPv6"/64"
declare -x UE_IPv4_CIDR=$UE_IPv4"/24"
declare -a NAS_IMEI=( 3 9 1 8 3 6 7 3 0 2 0 0 0 0 )
-declare -x IP_DEFAULT_MARK="3"
+declare -x IP_DEFAULT_MARK="1" # originally 3
#------------------------------------------------
# OAI MIH
#------------------------------------------------
declare -x UE_MIHF_IP_ADDRESS="127.0.0.1"
declare -x UE_RAL_IP_ADDRESS="127.0.0.1"
-LOG_FILE="/tmp/oai_sim_enb.log"
+LOG_FILE="/tmp/oai_sim_ue.log"
#------------------------------------------------
MIH_LOG_FILE="mih-f_ue.log"
+# EXE options
+EXE_MODE="DEBUG" # "PROD"
###########################################################
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
source $THIS_SCRIPT_PATH/env_802dot21.bash
###########################################################
-
+bash_exec "ifconfig $EMULATION_DEV_INTERFACE up $EMULATION_DEV_ADDRESS netmask 255.255.255.0"
###########################################################
IPTABLES=/sbin/iptables
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
@@ -130,9 +134,12 @@ ip route add 239.0.0.160/28 dev $EMULATION_DEV_INTERFACE
rotate_log_file $MIH_LOG_FILE
+echo "printing the MIH file path"
+echo "$ODTONE_MIH_EXE_DIR/$MIH_F $ODTONE_MIH_EXE_DIR/$UE_MIH_F_CONF_FILE"
+echo "$ODTONE_MIH_EXE_DIR/$UE_MIH_USER $ODTONE_MIH_EXE_DIR/$UE_MIH_USER_CONF_FILE"
+
# start MIH-F
-#xterm -hold -e
-$ODTONE_MIH_EXE_DIR/$MIH_F --log 4 --conf.file $ODTONE_MIH_EXE_DIR/$UE_MIH_F_CONF_FILE > $MIH_LOG_FILE 2>&1 &
+xterm -hold -e $ODTONE_MIH_EXE_DIR/$MIH_F --log 4 --conf.file $ODTONE_MIH_EXE_DIR/$UE_MIH_F_CONF_FILE > $MIH_LOG_FILE 2>&1 &
wait_process_started $MIH_F
sleep 3
@@ -153,14 +160,33 @@ UE_MIHF_REMOTE_PORT=`cat $ODTONE_MIH_EXE_DIR/$UE_MIH_F_CONF_FILE | grep local_po
UE_MIHF_ID=`cat $ODTONE_MIH_EXE_DIR/$UE_MIH_F_CONF_FILE | grep id | grep \= | grep -v \# | tr -d " " | cut -d'=' -f2`
#xterm -hold -e gdb --args
-$OPENAIR_TARGETS/SIMU/USER/oaisim -a -K $LOG_FILE -l9 -u1 -b0 -M1 -p2 -g1 -D $EMULATION_DEV_INTERFACE \
+# $EMULATION_DEV_INTERFACE -D192.168.13.2
+#sudo ip route add 239.0.0.160/28 dev $EMULATION_DEV_INTERFACE
+#$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.0.2 -t 10.0.0.1 -r 1
+
+if [ $EXE_MODE = "DEBUG" ] ; then
+ echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -a -K $LOG_FILE -l7 -u1 -b0 -M1 -p2 -g1 -D $EMULATION_DEV_ADDRESS --ue-ral-listening-port $UE_RAL_LISTENING_PORT --ue-ral-link-id $UE_RAL_LINK_ID_STRIPPED --ue-ral-ip-address $UE_RAL_IP_ADDRESS --ue-mihf-remote-port $UE_MIHF_REMOTE_PORT --ue-mihf-ip-address $UE_MIHF_IP_ADDRESS --ue-mihf-id $UE_MIHF_ID "
+
+ $OPENAIR_TARGETS/SIMU/USER/oaisim -a -K $LOG_FILE -l7 -u1 -b0 -M1 -p2 -g1 -D $EMULATION_DEV_ADDRESS \
+ --ue-ral-listening-port $UE_RAL_LISTENING_PORT \
+ --ue-ral-link-id $UE_RAL_LINK_ID_STRIPPED \
+ --ue-ral-ip-address $UE_RAL_IP_ADDRESS \
+ --ue-mihf-remote-port $UE_MIHF_REMOTE_PORT \
+ --ue-mihf-ip-address $UE_MIHF_IP_ADDRESS \
+ --ue-mihf-id $UE_MIHF_ID > log_ue.txt &
+else
+ echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -a -l3 -u1 -b0 -M1 -p2 -g1 -D $EMULATION_DEV_ADDRESS --ue-ral-listening-port $UE_RAL_LISTENING_PORT --ue-ral-link-id $UE_RAL_LINK_ID_STRIPPED --ue-ral-ip-address $UE_RAL_IP_ADDRESS --ue-mihf-remote-port $UE_MIHF_REMOTE_PORT --ue-mihf-ip-address $UE_MIHF_IP_ADDRESS --ue-mihf-id $UE_MIHF_ID "
+
+ $OPENAIR_TARGETS/SIMU/USER/oaisim -a -u1 -b0 -M1 -p2 -g1 -D $EMULATION_DEV_ADDRESS \
--ue-ral-listening-port $UE_RAL_LISTENING_PORT \
--ue-ral-link-id $UE_RAL_LINK_ID_STRIPPED \
--ue-ral-ip-address $UE_RAL_IP_ADDRESS \
--ue-mihf-remote-port $UE_MIHF_REMOTE_PORT \
--ue-mihf-ip-address $UE_MIHF_IP_ADDRESS \
- --ue-mihf-id $UE_MIHF_ID | grep "RAL\|PDCP" &
-
+ --ue-mihf-id $UE_MIHF_ID > /dev/null &
+
+fi
+
wait_process_started oaisim