Added SPECTRA modifications for demo polishing and bug fixing (v1.13)
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5891 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
# Rui Costa <ferreira@eurecom.fr>
|
# Rui Costa <ferreira@eurecom.fr>
|
||||||
#
|
#
|
||||||
# v1.12 (13 Oct 2014)
|
# v1.13 (15 Oct 2014)
|
||||||
#
|
#
|
||||||
########################################
|
########################################
|
||||||
|
|
||||||
@@ -83,6 +83,14 @@
|
|||||||
2.3. CRM
|
2.3. CRM
|
||||||
This component of the demo MUST be compiled and installed separately.
|
This component of the demo MUST be compiled and installed separately.
|
||||||
Check <spectra_root_folder>/CRM/ for more details.
|
Check <spectra_root_folder>/CRM/ for more details.
|
||||||
|
There is a google app that must be running in the google cloud,
|
||||||
|
and it's url configured in the source code. The local client is based
|
||||||
|
on the C++ REST framework codenamed "Casablanca".
|
||||||
|
Furthermore you need to compile the local client components
|
||||||
|
(CRMClient and CRMMain).
|
||||||
|
In the CRM client you will find a folder <tosend> which includes some
|
||||||
|
basic scripts that populate the google app database, and show how to
|
||||||
|
interact with it.
|
||||||
|
|
||||||
2.4. TVWS Sensing Measurements
|
2.4. TVWS Sensing Measurements
|
||||||
There is a server and client for simulating the TVWS measurements and
|
There is a server and client for simulating the TVWS measurements and
|
||||||
@@ -180,7 +188,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
########################################
|
################################################################################
|
||||||
CHANGELOG
|
CHANGELOG
|
||||||
|
|
||||||
v0.99 (03/09/2014)
|
v0.99 (03/09/2014)
|
||||||
@@ -248,4 +256,15 @@ v1.12 (13/10/2014)
|
|||||||
- Added final version to openair svn
|
- Added final version to openair svn
|
||||||
- Reworked README file.
|
- Reworked README file.
|
||||||
|
|
||||||
|
v1.13 (15/10/2014)
|
||||||
|
- Polishing of the demo
|
||||||
|
- Added bug fixes on launch scripts for enb1
|
||||||
|
- Added feature to put measurements on CRM from enb1
|
||||||
|
- Changed readable output of received measurement reports on enb2
|
||||||
|
- Added more informative output on the sensingClient (TVWS)
|
||||||
|
- Demonstration now stops at end of MIH_Link_Actions.confirm
|
||||||
|
message on MIH_User of enb2
|
||||||
|
- Added info on sensing client and CRM
|
||||||
|
- Reworked README file.
|
||||||
|
|
||||||
|
################################################################################ EOF
|
||||||
|
|||||||
Binary file not shown.
+9
-8
@@ -109,10 +109,10 @@ void *connection_handler(int fd) {
|
|||||||
|
|
||||||
/* now loop, receiving data and printing what we received */
|
/* now loop, receiving data and printing what we received */
|
||||||
for (;;) {
|
for (;;) {
|
||||||
printf("---\n Waiting on port %d\n", PORT);
|
printf("\n[SPECTRA Sensing Module] Started!\n[SPECTRA Sensing Module] ---\n[SPECTRA Sensing Module] Waiting on port %d\n", PORT);
|
||||||
recvlen = recvfrom(fd, rawPacket, MAX_PACKET_SIZE, 0,
|
recvlen = recvfrom(fd, rawPacket, MAX_PACKET_SIZE, 0,
|
||||||
(struct sockaddr *) &remaddr, &addrlen);
|
(struct sockaddr *) &remaddr, &addrlen);
|
||||||
printf("Received %d bytes > ", recvlen);
|
printf("\n[SPECTRA Sensing Module] Received Data (%d bytes) > ", recvlen);
|
||||||
|
|
||||||
for (i=0; i<recvlen;i++){
|
for (i=0; i<recvlen;i++){
|
||||||
printf("%x ", (rawPacket[i] & 0xff));
|
printf("%x ", (rawPacket[i] & 0xff));
|
||||||
@@ -126,7 +126,7 @@ void *connection_handler(int fd) {
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
request = assembleMessage(&rawPacket);
|
request = assembleMessage(&rawPacket);
|
||||||
printf(" > Received spectra packet %i of type %i for function %i with %i parameters\n",
|
printf("\n[SPECTRA Sensing Module] > Received spectra packet %i of type %i for function %i with %i parameters\n",
|
||||||
request.messageID,
|
request.messageID,
|
||||||
(uint32_t) request.type, (uint32_t) request.function,
|
(uint32_t) request.type, (uint32_t) request.function,
|
||||||
(uint32_t) request.numberOfparameters);
|
(uint32_t) request.numberOfparameters);
|
||||||
@@ -135,7 +135,7 @@ void *connection_handler(int fd) {
|
|||||||
if (request.type == EndProcessing) {
|
if (request.type == EndProcessing) {
|
||||||
|
|
||||||
returnMessage = createReturnPacket(&request, 0, EndProcessing);
|
returnMessage = createReturnPacket(&request, 0, EndProcessing);
|
||||||
printf("End processing!!!\n");
|
printf("\n[SPECTRA Sensing Module] Received: End of cognitive algorithm processing!\n");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
} else {
|
} else {
|
||||||
if (request.function == EnergyDetection) {
|
if (request.function == EnergyDetection) {
|
||||||
@@ -143,11 +143,11 @@ void *connection_handler(int fd) {
|
|||||||
// circular loop over the score list
|
// circular loop over the score list
|
||||||
scoreIndex = (scoreIndex < (sizeof(scoresList)/ sizeof(scoresList[0]))) ?
|
scoreIndex = (scoreIndex < (sizeof(scoresList)/ sizeof(scoresList[0]))) ?
|
||||||
scoreIndex : 0;
|
scoreIndex : 0;
|
||||||
|
printf("\n[SPECTRA Sensing Module] Received: Energy Detection Request!\n");
|
||||||
printf("Score value: %16llx (%lld)\n",
|
printf("\n[SPECTRA Sensing Module] Processing Score value: %16llx (%lld)\n",
|
||||||
(long long int)scoresList[scoreIndex],
|
(long long int)scoresList[scoreIndex],
|
||||||
(long long int)scoresList[scoreIndex]);
|
(long long int)scoresList[scoreIndex]);
|
||||||
printf("Score host to network value: 0x%016llx (%lld)\n",
|
printf("\n[SPECTRA Sensing Module] Processing Score host to network value: 0x%016llx (%lld)\n",
|
||||||
(long long int)htonll(scoresList[scoreIndex]),
|
(long long int)htonll(scoresList[scoreIndex]),
|
||||||
(long long int)htonll(scoresList[scoreIndex]));
|
(long long int)htonll(scoresList[scoreIndex]));
|
||||||
|
|
||||||
@@ -157,6 +157,7 @@ void *connection_handler(int fd) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Sends the answer
|
// Sends the answer
|
||||||
|
printf("\n[SPECTRA Sensing Module] Sending: Reply Message!\n");
|
||||||
int retError = returnSpectraPacket(returnMessage, fd, remaddr);
|
int retError = returnSpectraPacket(returnMessage, fd, remaddr);
|
||||||
if (retError == -1) {
|
if (retError == -1) {
|
||||||
perror("Send failed!!!\n");
|
perror("Send failed!!!\n");
|
||||||
@@ -203,7 +204,7 @@ int socketBind() {
|
|||||||
perror("bind failed");
|
perror("bind failed");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
puts("bind done");
|
puts("\n[SPECTRA Sensing Module] Initialization done");
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+21
-3
@@ -1395,18 +1395,36 @@ void mih_user::receive_MIH_Link_Parameters_Report(odtone::mih::message& msg, con
|
|||||||
log_(0, "[MSC_MSG]["+getTimeStamp4Log()+"]["+ msg.source().to_string() +"][--- MIH_Link_Parameters_Report.indication --->]["+msg.destination().to_string()+"]\n");
|
log_(0, "[MSC_MSG]["+getTimeStamp4Log()+"]["+ msg.source().to_string() +"][--- MIH_Link_Parameters_Report.indication --->]["+msg.destination().to_string()+"]\n");
|
||||||
log_(0, " - LINK_TUPLE_ID - Link identifier: ", link_id2string(link).c_str());
|
log_(0, " - LINK_TUPLE_ID - Link identifier: ", link_id2string(link).c_str());
|
||||||
std::cout<<"LINK_TUPLE_ID - Link identifier: "<<link<<std::endl;
|
std::cout<<"LINK_TUPLE_ID - Link identifier: "<<link<<std::endl;
|
||||||
|
|
||||||
for (odtone::mih::link_param_rpt_list::iterator i=lprl.begin(); i!=lprl.end(); i++)
|
for (odtone::mih::link_param_rpt_list::iterator i=lprl.begin(); i!=lprl.end(); i++)
|
||||||
{
|
{
|
||||||
log_(0, "Meausrement Type: --- 0 => RSRP ----- 1=>RSRQ ---- 2=>CQI ", i->param.type);
|
log_(0, "Meausrement Type: --- 0 => RSRP ----- 1=>RSRQ ---- 2=>CQI ", i->param.type);
|
||||||
if(odtone::mih::link_param_val *value = boost::get<odtone::mih::link_param_val>(&i->param.value))
|
if(odtone::mih::link_param_val *value = boost::get<odtone::mih::link_param_val>(&i->param.value))
|
||||||
{
|
{
|
||||||
log_(0, "Meausrement Value: ", (short) *value );
|
log_(0, "Meausrement Value: ", (short) *value );
|
||||||
|
// ferreira: Upload of measurements to gae-spectra.com
|
||||||
|
// FIXME This will not work for: more than 3 types of measurements OR out of sequence types of measurements
|
||||||
|
std::string crmc_cmd_str;
|
||||||
|
std::stringstream crmc_ss;
|
||||||
|
std::string result;
|
||||||
|
if (count % 10 == 0) // All measures at CRM are outdated! do server cleanup!
|
||||||
|
result = exec ("./CRMClient DEL 2");
|
||||||
|
if (count % 3 == 0) // Add 1st measurement (RSRP)
|
||||||
|
crmc_ss << "./CRMClient PUT 2 meas_no." << count << " " << msg.source().to_string() << "_" << link_id2string(link).c_str() << " RSRP dB " << (short) *value << " 3" ;
|
||||||
|
if (count % 3 == 1) // Add 2nd measurement (RSRQ)
|
||||||
|
crmc_ss << "./CRMClient PUT 2 meas_no." << count << " " << msg.source().to_string() << "_" << link_id2string(link).c_str() << " RSRQ dB " << (short) *value << " 3" ;
|
||||||
|
if (count % 3 == 2) // Add 3rd measurement (CQI)
|
||||||
|
crmc_ss << "./CRMClient PUT 2 meas_no." << count << " " << msg.source().to_string() << "_" << link_id2string(link).c_str() << " CQI - " << (short) *value << " 3" ;
|
||||||
|
crmc_cmd_str = crmc_ss.str();
|
||||||
|
const char* crmc_cmd_cstr = crmc_cmd_str.c_str();
|
||||||
|
char* crmc_cmd_char = new char [strlen(crmc_cmd_cstr)+1];
|
||||||
|
strcpy(crmc_cmd_char, crmc_cmd_cstr);
|
||||||
|
result = exec (crmc_cmd_char);
|
||||||
|
delete [] crmc_cmd_char;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log_(0, "MIH_Link_Parameters_Report.indication - End");
|
log_(0, "MIH_Link_Parameters_Report.indication - End");
|
||||||
|
|
||||||
|
|
||||||
//eNB1: Forward the message to UE 2
|
//eNB1: Forward the message to UE 2
|
||||||
forward_Parameters_Report_indication(msg);
|
forward_Parameters_Report_indication(msg);
|
||||||
|
|
||||||
|
|||||||
@@ -68,8 +68,8 @@ source $THIS_SCRIPT_PATH/env_802dot21.bash
|
|||||||
###########################################################
|
###########################################################
|
||||||
bash_exec "ifconfig $EMULATION_DEV_INTERFACE up $EMULATION_DEV_ADDRESS netmask 255.255.255.0"
|
bash_exec "ifconfig $EMULATION_DEV_INTERFACE up $EMULATION_DEV_ADDRESS netmask 255.255.255.0"
|
||||||
bash_exec "ifconfig eth2 up 192.168.14.3 netmask 255.255.255.0"
|
bash_exec "ifconfig eth2 up 192.168.14.3 netmask 255.255.255.0"
|
||||||
#bash_exec "ip r d default dev eth0"
|
bash_exec "ip r d default via 192.168.14.4 dev eth2"
|
||||||
#bash_exec "ip r a default via 192.168.14.4 dev eth2"
|
bash_exec "ip r a default via 192.168.12.100 dev eth0"
|
||||||
###########################################################
|
###########################################################
|
||||||
IPTABLES=/sbin/iptables
|
IPTABLES=/sbin/iptables
|
||||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||||
|
|||||||
+54
-24
@@ -1372,13 +1372,15 @@ void mih_user::receive_MIH_Link_Actions_confirm(odtone::mih::message& msg)
|
|||||||
// #endif // SCENARIO_2
|
// #endif // SCENARIO_2
|
||||||
|
|
||||||
log_(0, "MIH_Link_Actions.confirm - End\n");
|
log_(0, "MIH_Link_Actions.confirm - End\n");
|
||||||
|
// ferreira: Added sleep time + exit + output to make visible the end of SPECTRA demo
|
||||||
if( second_link_activated == 1 )
|
if( second_link_activated == 1 )
|
||||||
{
|
{
|
||||||
unsigned int pause_time = 30; // in seconds to show the result of the demo then proceed
|
unsigned int pause_time = 30; // in seconds to show the result of the demo then proceed
|
||||||
log_(0, "\n\n\n\n\t----- Confirmed Configuration of LTE Link for TVWS -----\n");
|
log_(0, "\n\n\n\n\t----- Confirmed Configuration of LTE Link for TVWS -----\n");
|
||||||
log_(0, "\n\t----- END OF SPECTRA DEMO ! -----\n");
|
log_(0, "\n\t----- END OF SPECTRA DEMO ! -----\n");
|
||||||
log_(0, "\n\n MIH User regular function will resume in (secs) : ", pause_time );
|
// log_(0, "\n\n MIH User regular function will resume in (secs) : ", pause_time );
|
||||||
usleep(pause_time * 1000000);
|
// usleep(pause_time * 1000000);
|
||||||
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1422,20 +1424,34 @@ void mih_user::receive_MIH_MN_HO_Candidate_Query_request(odtone::mih::message& m
|
|||||||
& odtone::mih::tlv_link_identifier(link)
|
& odtone::mih::tlv_link_identifier(link)
|
||||||
& odtone::mih::tlv_link_param_rpt_list(lprl);
|
& odtone::mih::tlv_link_param_rpt_list(lprl);
|
||||||
|
|
||||||
log_(0, "MIH_MN_HO_Candidate_Query.request - RECEIVED - Begin");
|
// log_(0, "MIH_MN_HO_Candidate_Query.request - RECEIVED - Begin");
|
||||||
log_(0, "\t- LINK CFG STATUS LIST - Length: ", lprl.size());
|
// log_(0, "\t- LINK CFG STATUS LIST - Length: ", lprl.size());
|
||||||
log_(0, "[MSC_MSG]["+getTimeStamp4Log()+"]["+ msg.source().to_string() +"][--- MIH_Link_Parameters_Report.indication --->]["+msg.destination().to_string()+"]\n");
|
// log_(0, "[MSC_MSG]["+getTimeStamp4Log()+"]["+ msg.source().to_string() +"][--- MIH_Link_Parameters_Report.indication --->]["+msg.destination().to_string()+"]\n");
|
||||||
log_(0, " - LINK_TUPLE_ID - Link identifier: ", link_id2string(link).c_str());
|
// log_(0, " - LINK_TUPLE_ID - Link identifier: ", link_id2string(link).c_str());
|
||||||
|
//
|
||||||
|
// for (odtone::mih::link_param_rpt_list::iterator i=lprl.begin(); i!=lprl.end(); i++)
|
||||||
|
// {
|
||||||
|
// log_(0, "Meausrement Type: --- 0 => RSRP ----- 1=>RSRQ ---- 2=>CQI ", i->param.type);
|
||||||
|
// if(odtone::mih::link_param_val *value = boost::get<odtone::mih::link_param_val>(&i->param.value))
|
||||||
|
// {
|
||||||
|
// log_(0, "Meausrement Value: ", (short) *value );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// ferreira: changed output of message for better readability!
|
||||||
|
log_(0, "\n["+getTimeStamp4Log()+"] [RX] [FROM: "+ msg.source().to_string() +"] [Link ID: "+ link_id2string(link).c_str() +"]");
|
||||||
|
log_(0, "\t[MIH_MN_HO_Candidate_Query [MIH_Link_Parameters_Report]]");
|
||||||
|
|
||||||
for (odtone::mih::link_param_rpt_list::iterator i=lprl.begin(); i!=lprl.end(); i++)
|
for (odtone::mih::link_param_rpt_list::iterator i=lprl.begin(); i!=lprl.end(); i++)
|
||||||
{
|
{
|
||||||
log_(0, "Meausrement Type: --- 0 => RSRP ----- 1=>RSRQ ---- 2=>CQI ", i->param.type);
|
if(odtone::mih::link_param_val *value = boost::get<odtone::mih::link_param_val>(&i->param.value))
|
||||||
if(odtone::mih::link_param_val *value = boost::get<odtone::mih::link_param_val>(&i->param.value))
|
{
|
||||||
{
|
log_(0, "\t[Measurement Types: RSRP 0|RSRQ 1|CQI 2] [type: ", i->param.type, "| value: ", (short) *value, "]" );
|
||||||
log_(0, "Meausrement Value: ", (short) *value );
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//eNB2 : Action Power Up the TVWS Link after running the cognitive algorithm
|
//eNB2 : Action Power Up the TVWS Link after running the cognitive algorithm
|
||||||
|
|
||||||
//First Phase: Collect the data as input fot the cognitive algorithm
|
//First Phase: Collect the data as input fot the cognitive algorithm
|
||||||
@@ -1461,12 +1477,13 @@ void mih_user::receive_MIH_MN_HO_Candidate_Query_request(odtone::mih::message& m
|
|||||||
// link1.type = type;
|
// link1.type = type;
|
||||||
// send_MIH_Link_Actions_request(link, odtone::mih::link_ac_type_power_up);
|
// send_MIH_Link_Actions_request(link, odtone::mih::link_ac_type_power_up);
|
||||||
|
|
||||||
|
// ferreira: commented out the count printouts and changed the comparison value (originally count >= 30 )
|
||||||
//Send ONLY ONCE RRC_Connection_Reconfiguration request to the UE on LTE link 0
|
//Send ONLY ONCE RRC_Connection_Reconfiguration request to the UE on LTE link 0
|
||||||
// log_(0, "COUNT: ", count );
|
// log_(0, "COUNT: ", count );
|
||||||
if (second_link_activated==0)
|
if (second_link_activated==0)
|
||||||
{
|
{
|
||||||
// log_(0, "COUNT: ", count );
|
// log_(0, "COUNT: ", count );
|
||||||
if (count >= 750)
|
if (count >= 1500)
|
||||||
{
|
{
|
||||||
// log_(0, "COUNT: ", count );
|
// log_(0, "COUNT: ", count );
|
||||||
send_MIH_Link_Action_Power_Up_request(_link_id_list[0]);//Link LTE
|
send_MIH_Link_Action_Power_Up_request(_link_id_list[0]);//Link LTE
|
||||||
@@ -1497,21 +1514,34 @@ void mih_user::receive_MIH_Link_Parameters_Report(odtone::mih::message& msg, con
|
|||||||
& odtone::mih::tlv_link_identifier(link)
|
& odtone::mih::tlv_link_identifier(link)
|
||||||
& odtone::mih::tlv_link_param_rpt_list(lprl);
|
& odtone::mih::tlv_link_param_rpt_list(lprl);
|
||||||
|
|
||||||
log_(0, "MIH_Link_Parameters_Report.indication - RECEIVED - Begin");
|
// log_(0, "MIH_Link_Parameters_Report.indication - RECEIVED - Begin");
|
||||||
log_(0, "\t- LINK CFG STATUS LIST - Length: ", lprl.size());
|
// log_(0, "\t- LINK CFG STATUS LIST - Length: ", lprl.size());
|
||||||
log_(0, "[MSC_MSG]["+getTimeStamp4Log()+"]["+ msg.source().to_string() +"][--- MIH_Link_Parameters_Report.indication --->]["+msg.destination().to_string()+"]\n");
|
// log_(0, "[MSC_MSG]["+getTimeStamp4Log()+"]["+ msg.source().to_string() +"][--- MIH_Link_Parameters_Report.indication --->]["+msg.destination().to_string()+"]\n");
|
||||||
log_(0, " - LINK_TUPLE_ID - Link identifier: ", link_id2string(link).c_str());
|
// log_(0, " - LINK_TUPLE_ID - Link identifier: ", link_id2string(link).c_str());
|
||||||
std::cout<<"LINK_TUPLE_ID - Link identifier: "<<link<<std::endl;
|
// std::cout<<"LINK_TUPLE_ID - Link identifier: "<<link<<std::endl;
|
||||||
|
//
|
||||||
|
// for (odtone::mih::link_param_rpt_list::iterator i=lprl.begin(); i!=lprl.end(); i++)
|
||||||
|
// {
|
||||||
|
// log_(0, "Meausrement Type: --- 0 => RSRP ----- 1=>RSRQ ---- 2=>CQI ", i->param.type);
|
||||||
|
// if(odtone::mih::link_param_val *value = boost::get<odtone::mih::link_param_val>(&i->param.value))
|
||||||
|
// {
|
||||||
|
// log_(0, "Meausrement Value: ", (short) *value );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// log_(0, "MIH_Link_Parameters_Report.indication - End");
|
||||||
|
|
||||||
|
// ferreira: changed output of message for better readability!
|
||||||
|
log_(0, "\n["+getTimeStamp4Log()+"] [RX] [FROM: "+ msg.source().to_string() +"] [Link ID: "+ link_id2string(link).c_str() +"]");
|
||||||
|
log_(0, "\t[MIH_Link_Parameters_Report]");
|
||||||
|
|
||||||
for (odtone::mih::link_param_rpt_list::iterator i=lprl.begin(); i!=lprl.end(); i++)
|
for (odtone::mih::link_param_rpt_list::iterator i=lprl.begin(); i!=lprl.end(); i++)
|
||||||
{
|
{
|
||||||
log_(0, "Meausrement Type: --- 0 => RSRP ----- 1=>RSRQ ---- 2=>CQI ", i->param.type);
|
if(odtone::mih::link_param_val *value = boost::get<odtone::mih::link_param_val>(&i->param.value))
|
||||||
if(odtone::mih::link_param_val *value = boost::get<odtone::mih::link_param_val>(&i->param.value))
|
{
|
||||||
{
|
log_(0, "\t[Measurement Types: RSRP 0|RSRQ 1|CQI 2] [type: ", i->param.type, "| value: ", (short) *value, "]" );
|
||||||
log_(0, "Meausrement Value: ", (short) *value );
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
log_(0, "MIH_Link_Parameters_Report.indication - End");
|
// log_(0, "MIH_Link_Parameters_Report.indication - End");
|
||||||
|
|
||||||
|
|
||||||
//eNB1: Forward the message to UE 2
|
//eNB1: Forward the message to UE 2
|
||||||
|
|||||||
@@ -68,8 +68,8 @@ source $THIS_SCRIPT_PATH/env_802dot21.bash
|
|||||||
###########################################################
|
###########################################################
|
||||||
bash_exec "ifconfig $EMULATION_DEV_INTERFACE up $EMULATION_DEV_ADDRESS netmask 255.255.255.0"
|
bash_exec "ifconfig $EMULATION_DEV_INTERFACE up $EMULATION_DEV_ADDRESS netmask 255.255.255.0"
|
||||||
bash_exec "ifconfig eth2 up 192.168.14.3 netmask 255.255.255.0"
|
bash_exec "ifconfig eth2 up 192.168.14.3 netmask 255.255.255.0"
|
||||||
#bash_exec "ip r d default dev eth0"
|
bash_exec "ip r d default via 192.168.14.4 dev eth2"
|
||||||
#bash_exec "ip r a default via 192.168.14.4 dev eth2"
|
bash_exec "ip r a default via 192.168.12.100 dev eth0"
|
||||||
###########################################################
|
###########################################################
|
||||||
IPTABLES=/sbin/iptables
|
IPTABLES=/sbin/iptables
|
||||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||||
|
|||||||
Reference in New Issue
Block a user