diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index affed224bc7b736fef744c20c81aae0435c6d83b..8ad41fe3f4d623f4551031b339cc7d30f021586e 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -663,6 +663,8 @@ static void rrc_eNB_generate_defaultRRCConnectionReconfiguration( MeasIdToAddMod_t *MeasId0, *MeasId1, *MeasId2, *MeasId3, *MeasId4, *MeasId5; #if Rel10 long *sr_ProhibitTimer_r9 = NULL; +// uint8_t sCellIndexToAdd = rrc_find_free_SCell_index(enb_mod_idP, ue_mod_idP, 1); + uint8_t sCellIndexToAdd = 0; #endif long *logicalchannelgroup, *logicalchannelgroup_drb; @@ -1186,6 +1188,62 @@ static void rrc_eNB_generate_defaultRRCConnectionReconfiguration( pdcp_rrc_data_req(enb_mod_idP, ue_mod_idP, frameP, 1, DCCH, rrc_eNB_mui++, 0, size, buffer, 1); } + + +int rrc_eNB_generate_RRCConnectionReconfiguration_SCell(module_id_t enb_mod_idP, module_id_t ue_mod_idP, frame_t frame, uint32_t dl_CarrierFreq_r10) { + + uint8_t size; + uint8_t buffer[100]; + +#ifdef Rel10 + uint8_t sCellIndexToAdd = 0; //one SCell so far +// uint8_t sCellIndexToAdd; +// sCellIndexToAdd = rrc_find_free_SCell_index(enb_mod_idP, ue_mod_idP, 1); + if (eNB_rrc_inst[enb_mod_idP].sCell_config[ue_mod_idP][sCellIndexToAdd]) { + eNB_rrc_inst[enb_mod_idP].sCell_config[ue_mod_idP][sCellIndexToAdd]->cellIdentification_r10->dl_CarrierFreq_r10 = dl_CarrierFreq_r10; + } + else { + LOG_E(RRC,"Scell not configured!\n"); + return(-1); + } +#endif + size = do_RRCConnectionReconfiguration(enb_mod_idP, + buffer, + ue_mod_idP, + /*0*/rrc_eNB_get_next_transaction_identifier(enb_mod_idP),//Transaction_id, + (SRB_ToAddModList_t*)NULL, + (DRB_ToAddModList_t*)NULL, + (DRB_ToReleaseList_t*)NULL, + (struct SPS_Config*)NULL, + (struct PhysicalConfigDedicated*)NULL, +#ifdef Rel10 + eNB_rrc_inst[enb_mod_idP].sCell_config[ue_mod_idP][sCellIndexToAdd], +#endif + (MeasObjectToAddModList_t*)NULL, + (ReportConfigToAddModList_t*)NULL, + (QuantityConfig_t*)NULL, + (MeasIdToAddModList_t*)NULL, + (MAC_MainConfig_t*)NULL, + (MeasGapConfig_t*)NULL, + (MobilityControlInfo_t*)NULL, + (struct MeasConfig__speedStatePars*)NULL, + (RSRP_Range_t*)NULL, + (C_RNTI_t*)NULL, + (struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList*)NULL); + + LOG_I(RRC,"[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration (bytes %d, UE id %d)\n", + enb_mod_idP,frame, size, ue_mod_idP); + + LOG_D(RRC, "[MSC_MSG][FRAME %05d][RRC_eNB][MOD %02d][][--- PDCP_DATA_REQ/%d Bytes (rrcConnectionReconfiguration to UE %d MUI %d) --->][PDCP][MOD %02d][RB %02d]\n", + frame, enb_mod_idP, size, ue_mod_idP, rrc_eNB_mui, enb_mod_idP, /*(ue_mod_idP*MAX_NUM_RB)+*/DCCH); + //rrc_rlc_data_req(Mod_id,frame, 1,(UE_index*MAX_NUM_RB)+DCCH,rrc_eNB_mui++,0,size,(char*)buffer); +// pdcp_data_req(enb_mod_idP, ue_mod_idP, frame, 1, /*(UE_index * MAX_NUM_RB) + */DCCH, rrc_eNB_mui++, 0, size, (char*)buffer, 1); + pdcp_rrc_data_req(enb_mod_idP, ue_mod_idP, frame, 1, DCCH, rrc_eNB_mui++, 0, size, buffer, 1); + + return(0); +} + + /*------------------------------------------------------------------------------*/ void rrc_eNB_process_MeasurementReport( module_id_t enb_mod_idP, @@ -3198,6 +3256,7 @@ void *rrc_enb_task( MessageDef *msg_p; const char *msg_name_p; instance_t instance; + unsigned int ue_mod_id; int result; SRB_INFO *srb_info_p; @@ -3287,6 +3346,18 @@ void *rrc_enb_task( break; # endif + //SPECTRA: Add the RRC connection reconfiguration with Second cell configuration + case RRC_RAL_CONNECTION_RECONFIGURATION_REQ: +// ue_mod_id = 0; /* TODO force ue_mod_id to first UE, NAS UE not virtualized yet */ + LOG_I(RRC, "[eNB %d] Send RRC_RAL_CONNECTION_RECONFIGURATION_REQ to UE %s\n", instance, msg_name_p); + //Method RRC connection reconfiguration command with Second cell configuration +# ifdef ENABLE_RAL + rrc_eNB_generate_RRCConnectionReconfiguration_SCell(instance, 0/* TODO put frameP number ! */, /*ue_mod_id force ue_mod_id to first UE*/0, 36126); +# else + rrc_eNB_generate_defaultRRCConnectionReconfiguration(instance, 0/* TODO put frameP number ! */, /*ue_mod_id force ue_mod_id to first UE*/0, eNB_rrc_inst[instance].HO_flag); +# endif + break; + default: LOG_E(RRC, "[eNB %d] Received unexpected message %s\n", instance, msg_name_p); break; diff --git a/targets/PROJECTS/SPECTRA/CRMClient b/targets/PROJECTS/SPECTRA/CRMClient new file mode 100755 index 0000000000000000000000000000000000000000..29465e592af164bb52a3340f0900e1acead09fa9 Binary files /dev/null and b/targets/PROJECTS/SPECTRA/CRMClient differ diff --git a/targets/PROJECTS/SPECTRA/CRMClientmain b/targets/PROJECTS/SPECTRA/CRMClientmain new file mode 100755 index 0000000000000000000000000000000000000000..be19a635600fc47563ad483372126d486aa6876a Binary files /dev/null and b/targets/PROJECTS/SPECTRA/CRMClientmain differ diff --git a/targets/PROJECTS/SPECTRA/enb.conf b/targets/PROJECTS/SPECTRA/enb.conf index db55f791500f4c724ba440a7772f1d970290f532..8acd6d84afc6530bc1c366e11e4424a3913ed2bb 100644 --- a/targets/PROJECTS/SPECTRA/enb.conf +++ b/targets/PROJECTS/SPECTRA/enb.conf @@ -188,10 +188,10 @@ eNBs = NETWORK_INTERFACES : { - ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_INTERFACE_NAME_FOR_S1_MME = "eth1"; ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.13.10/24"; - ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_INTERFACE_NAME_FOR_S1U = "eth1"; ENB_IPV4_ADDRESS_FOR_S1U = "192.168.13.10/24"; }; diff --git a/targets/PROJECTS/SPECTRA/env_802dot21.bash b/targets/PROJECTS/SPECTRA/env_802dot21.bash index 470c2ba163ee14abb60c273f8ba61f2496cf6b97..0c181ed384161a3dcddd6b5fbca22d9f4ea257e3 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=/home/alexandrie/DEMO_SPECTRA/boost_1_49_0 -export ODTONE_ROOT=/home/alexandrie/DEMO_SPECTRA/ODTONE +export BOOST_ROOT=/home/nikaia/DEMO_SPECTRA/boost_1_49_0/ +export ODTONE_ROOT=/home/nikaia/DEMO_SPECTRA/ODTONE/ export MIH_F=odtone-mihf export ENB_MIH_F_CONF_FILE=odtone_enb.conf diff --git a/targets/PROJECTS/SPECTRA/libcasablanca.so b/targets/PROJECTS/SPECTRA/libcasablanca.so new file mode 120000 index 0000000000000000000000000000000000000000..791d37512c419afe0dccdc87fad1a6d530052109 --- /dev/null +++ b/targets/PROJECTS/SPECTRA/libcasablanca.so @@ -0,0 +1 @@ +/opt/casablanca/Binaries/Release32/libcasablanca.so \ No newline at end of file diff --git a/targets/PROJECTS/SPECTRA/libcrmclient.so b/targets/PROJECTS/SPECTRA/libcrmclient.so new file mode 120000 index 0000000000000000000000000000000000000000..6d8d7fc711b9c8146734d27ef18a5cb02d769d53 --- /dev/null +++ b/targets/PROJECTS/SPECTRA/libcrmclient.so @@ -0,0 +1 @@ +libcrmclient.so.1.0 \ No newline at end of file diff --git a/targets/PROJECTS/SPECTRA/libcrmclient.so.1 b/targets/PROJECTS/SPECTRA/libcrmclient.so.1 new file mode 120000 index 0000000000000000000000000000000000000000..6d8d7fc711b9c8146734d27ef18a5cb02d769d53 --- /dev/null +++ b/targets/PROJECTS/SPECTRA/libcrmclient.so.1 @@ -0,0 +1 @@ +libcrmclient.so.1.0 \ No newline at end of file diff --git a/targets/PROJECTS/SPECTRA/libcrmclient.so.1.0 b/targets/PROJECTS/SPECTRA/libcrmclient.so.1.0 new file mode 100755 index 0000000000000000000000000000000000000000..de5d84398b36a3371677ea4d09665256699814f7 Binary files /dev/null and b/targets/PROJECTS/SPECTRA/libcrmclient.so.1.0 differ diff --git a/targets/PROJECTS/SPECTRA/loadcasablancalib b/targets/PROJECTS/SPECTRA/loadcasablancalib new file mode 100755 index 0000000000000000000000000000000000000000..1b968dfef5d0c041bf111180753ca3d6a34cfb8c --- /dev/null +++ b/targets/PROJECTS/SPECTRA/loadcasablancalib @@ -0,0 +1,3 @@ +#!/bin/bash + +export LD_LIBRARY_PATH=/usr/local/lib/:/usr/lib/:/opt/casablanca/Binaries/Release32 diff --git a/targets/PROJECTS/SPECTRA/start_enb.bash b/targets/PROJECTS/SPECTRA/start_enb.bash index a522b6a70dd58a4935123528e5c7a034b24c00ad..1b6fb32c97992caf334a6cfab0b3112bb79e984c 100755 --- a/targets/PROJECTS/SPECTRA/start_enb.bash +++ b/targets/PROJECTS/SPECTRA/start_enb.bash @@ -42,7 +42,7 @@ declare -x ENB_CONFIG_FILE="enb.conf" #------------------------------------------------ # OAI NETWORKING #------------------------------------------------ -declare -x EMULATION_DEV_INTERFACE="eth0" +declare -x EMULATION_DEV_INTERFACE="eth1" declare -x EMULATION_DEV_ADDRESS="192.168.13.1" declare -x IP_DRIVER_NAME="oai_nw_drv" declare -x LTEIF="oai0" @@ -115,6 +115,8 @@ assert " `sysctl -n net.ipv4.conf.all.log_martians` -eq 1" $LINENO bash_exec "sysctl -w net.ipv4.conf.all.rp_filter=0" assert " `sysctl -n net.ipv4.conf.all.rp_filter` -eq 0" $LINENO bash_exec "ip route flush cache" +bash_exec "sysctl -w net.ipv4.ip_forward=1" +assert " `sysctl -n net.ipv4.ip_forward` -eq 1" $LINENO # Check table 200 lte in /etc/iproute2/rt_tables fgrep lte /etc/iproute2/rt_tables > /dev/null @@ -145,7 +147,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 -title "[RELAY][eNB1] MIHF" -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") @@ -181,9 +183,11 @@ wait_process_started oaisim # start MIH-USER # wait for emulation start tshark -c 150 -i $EMULATION_DEV_INTERFACE > /dev/null 2>&1 -xterm -hold -e $ODTONE_MIH_EXE_DIR/$ENB_MIH_USER --conf.file $ODTONE_MIH_EXE_DIR/$ENB_MIH_USER_CONF_FILE & +sudo xterm -hold -title "[RELAY][eNB1] MIH_USER" -e $ODTONE_MIH_EXE_DIR/$ENB_MIH_USER --conf.file $ODTONE_MIH_EXE_DIR/$ENB_MIH_USER_CONF_FILE & wait_process_started $ENB_MIH_USER +xterm -hold -title "[RELAY][eNB1] CRM Client" -e tail -f outputGET.txt & + sleep 100000