Merge branch 'develop' into contrib/motelist

This commit is contained in:
Simon Duquennoy 2018-08-17 10:54:02 +02:00 committed by GitHub
commit c17d92ea36
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 303 additions and 33 deletions

View File

@ -78,6 +78,19 @@ typedef unsigned int uip_stats_t;
#define NETSTACK_CONF_LINUXRADIO_DEV "wpan0" #define NETSTACK_CONF_LINUXRADIO_DEV "wpan0"
/* configure network size and density */
#ifndef NETSTACK_MAX_ROUTE_ENTRIES
#define NETSTACK_MAX_ROUTE_ENTRIES 300
#endif /* NETSTACK_MAX_ROUTE_ENTRIES */
#ifndef NBR_TABLE_CONF_MAX_NEIGHBORS
#define NBR_TABLE_CONF_MAX_NEIGHBORS 300
#endif /* NBR_TABLE_CONF_MAX_NEIGHBORS */
/* configure queues */
#ifndef QUEUEBUF_CONF_NUM
#define QUEUEBUF_CONF_NUM 64
#endif /* QUEUEBUF_CONF_NUM */
#define UIP_CONF_IPV6_QUEUE_PKT 1 #define UIP_CONF_IPV6_QUEUE_PKT 1
#define UIP_ARCH_IPCHKSUM 1 #define UIP_ARCH_IPCHKSUM 1

View File

@ -108,7 +108,7 @@ print_cell_list(const uint8_t *cell_list, uint16_t cell_list_len)
uint16_t i; uint16_t i;
sf_simple_cell_t cell; sf_simple_cell_t cell;
for(i = 0; i < (cell_list_len / sizeof(cell)); i++) { for(i = 0; i < cell_list_len; i += sizeof(cell)) {
read_cell(&cell_list[i], &cell); read_cell(&cell_list[i], &cell);
PRINTF("%u ", cell.timeslot_offset); PRINTF("%u ", cell.timeslot_offset);
} }
@ -132,7 +132,7 @@ add_links_to_schedule(const linkaddr_t *peer_addr, uint8_t link_option,
return; return;
} }
for(i = 0; i < (cell_list_len / sizeof(cell)); i++) { for(i = 0; i < cell_list_len; i += sizeof(cell)) {
read_cell(&cell_list[i], &cell); read_cell(&cell_list[i], &cell);
if(cell.timeslot_offset == 0xffff) { if(cell.timeslot_offset == 0xffff) {
continue; continue;
@ -166,7 +166,7 @@ remove_links_to_schedule(const uint8_t *cell_list, uint16_t cell_list_len)
return; return;
} }
for(i = 0; i < (cell_list_len / sizeof(cell)); i++) { for(i = 0; i < cell_list_len; i += sizeof(cell)) {
read_cell(&cell_list[i], &cell); read_cell(&cell_list[i], &cell);
if(cell.timeslot_offset == 0xffff) { if(cell.timeslot_offset == 0xffff) {
continue; continue;
@ -335,7 +335,7 @@ delete_req_input(const uint8_t *body, uint16_t body_len,
if(num_cells > 0 && cell_list_len > 0) { if(num_cells > 0 && cell_list_len > 0) {
/* ensure before delete */ /* ensure before delete */
for(i = 0, removed_link = 0; i < (cell_list_len / sizeof(cell)); i++) { for(i = 0, removed_link = 0; i < cell_list_len; i += sizeof(cell)) {
read_cell(&cell_list[i], &cell); read_cell(&cell_list[i], &cell);
if(tsch_schedule_get_link_by_timeslot(slotframe, if(tsch_schedule_get_link_by_timeslot(slotframe,
cell.timeslot_offset) != NULL) { cell.timeslot_offset) != NULL) {

View File

@ -493,6 +493,7 @@ publish(void)
int len; int len;
int remaining = APP_BUFFER_SIZE; int remaining = APP_BUFFER_SIZE;
int i; int i;
char def_rt_str[64];
seq_nr_value++; seq_nr_value++;
@ -519,7 +520,6 @@ publish(void)
buf_ptr += len; buf_ptr += len;
/* Put our Default route's string representation in a buffer */ /* Put our Default route's string representation in a buffer */
char def_rt_str[64];
memset(def_rt_str, 0, sizeof(def_rt_str)); memset(def_rt_str, 0, sizeof(def_rt_str));
ipaddr_sprintf(def_rt_str, sizeof(def_rt_str), uip_ds6_defrt_choose()); ipaddr_sprintf(def_rt_str, sizeof(def_rt_str), uip_ds6_defrt_choose());

View File

@ -49,6 +49,7 @@
#include "contiki.h" #include "contiki.h"
#include "net/ipv6/uip-udp-packet.h" #include "net/ipv6/uip-udp-packet.h"
#include "net/ipv6/uiplib.h" #include "net/ipv6/uiplib.h"
#include "net/routing/routing.h"
#include "coap.h" #include "coap.h"
#include "coap-engine.h" #include "coap-engine.h"
#include "coap-endpoint.h" #include "coap-endpoint.h"
@ -58,10 +59,6 @@
#include "coap-keystore.h" #include "coap-keystore.h"
#include "coap-keystore-simple.h" #include "coap-keystore-simple.h"
#if UIP_CONF_IPV6_RPL
#include "rpl.h"
#endif /* UIP_CONF_IPV6_RPL */
/* Log configuration */ /* Log configuration */
#include "coap-log.h" #include "coap-log.h"
#define LOG_MODULE "coap-uip" #define LOG_MODULE "coap-uip"
@ -260,13 +257,12 @@ coap_endpoint_is_secure(const coap_endpoint_t *ep)
int int
coap_endpoint_is_connected(const coap_endpoint_t *ep) coap_endpoint_is_connected(const coap_endpoint_t *ep)
{ {
#if UIP_CONF_IPV6_RPL
#ifndef CONTIKI_TARGET_NATIVE #ifndef CONTIKI_TARGET_NATIVE
if(rpl_get_any_dag() == NULL) { if(!uip_is_addr_linklocal(&ep->ipaddr)
&& NETSTACK_ROUTING.node_is_reachable() == 0) {
return 0; return 0;
} }
#endif #endif
#endif /* UIP_CONF_IPV6_RPL */
#ifdef WITH_DTLS #ifdef WITH_DTLS
if(ep != NULL && ep->secure != 0) { if(ep != NULL && ep->secure != 0) {

View File

@ -109,7 +109,9 @@ timesync_learn_drift_ticks(uint32_t time_delta_asn, int32_t drift_ticks)
TSCH_LOG_ADD(tsch_log_message, TSCH_LOG_ADD(tsch_log_message,
snprintf(log->message, sizeof(log->message), snprintf(log->message, sizeof(log->message),
"drift %ld", tsch_adaptive_timesync_get_drift_ppm())); "drift %ld ppm (min/max delta seen: %"PRId32"/%"PRId32")",
tsch_adaptive_timesync_get_drift_ppm(),
min_drift_seen, max_drift_seen));
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* Either reset or update the neighbor's drift */ /* Either reset or update the neighbor's drift */
@ -136,6 +138,8 @@ tsch_timesync_update(struct tsch_neighbor *n, uint16_t time_delta_asn, int32_t d
compensated_ticks += drift_correction; compensated_ticks += drift_correction;
} }
} }
min_drift_seen = MIN(drift_correction, min_drift_seen);
max_drift_seen = MAX(drift_correction, max_drift_seen);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* Error-accumulation free compensation algorithm */ /* Error-accumulation free compensation algorithm */

View File

@ -160,6 +160,8 @@ static struct ctimer keepalive_timer;
unsigned long tx_count; unsigned long tx_count;
unsigned long rx_count; unsigned long rx_count;
unsigned long sync_count; unsigned long sync_count;
int32_t min_drift_seen;
int32_t max_drift_seen;
/* TSCH processes and protothreads */ /* TSCH processes and protothreads */
PT_THREAD(tsch_scan(struct pt *pt)); PT_THREAD(tsch_scan(struct pt *pt));
@ -648,6 +650,8 @@ tsch_associate(const struct input_packet *input_eb, rtimer_clock_t timestamp)
tx_count = 0; tx_count = 0;
rx_count = 0; rx_count = 0;
sync_count = 0; sync_count = 0;
min_drift_seen = 0;
max_drift_seen = 0;
/* Start sending keep-alives now that tsch_is_associated is set */ /* Start sending keep-alives now that tsch_is_associated is set */
tsch_schedule_keepalive(); tsch_schedule_keepalive();

View File

@ -175,6 +175,8 @@ extern rtimer_clock_t tsch_timing[tsch_ts_elements_count];
extern unsigned long tx_count; extern unsigned long tx_count;
extern unsigned long rx_count; extern unsigned long rx_count;
extern unsigned long sync_count; extern unsigned long sync_count;
extern int32_t min_drift_seen;
extern int32_t max_drift_seen;
/* TSCH processes */ /* TSCH processes */
PROCESS_NAME(tsch_process); PROCESS_NAME(tsch_process);

View File

@ -4,6 +4,6 @@
CONTIKI=$1 CONTIKI=$1
# Simulation file # Simulation file
BASENAME=01-border-router-cooja BASENAME=$(basename $0 .sh)
bash test-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 60 bash test-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 60

View File

@ -4,7 +4,7 @@
CONTIKI=$1 CONTIKI=$1
# Simulation file # Simulation file
BASENAME=02-border-router-cooja-tsch BASENAME=$(basename $0 .sh)
# Add a little extra initial time to account for TSCH association time # Add a little extra initial time to account for TSCH association time
bash test-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 120 bash test-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 120

View File

@ -4,6 +4,6 @@
CONTIKI=$1 CONTIKI=$1
# Simulation file # Simulation file
BASENAME=03-border-router-sky BASENAME=$(basename $0 .sh)
bash test-border-router.sh $CONTIKI $BASENAME fd00::0212:7404:0004:0404 60 bash test-border-router.sh $CONTIKI $BASENAME fd00::0212:7404:0004:0404 60

View File

@ -5,7 +5,7 @@ source ../utils.sh
CONTIKI=$1 CONTIKI=$1
# Simulation file # Simulation file
BASENAME=04-border-router-traceroute BASENAME=$(basename $0 .sh)
# Destination IPv6 # Destination IPv6
IPADDR=fd00::204:4:4:4 IPADDR=fd00::204:4:4:4

View File

@ -4,7 +4,7 @@ source ../utils.sh
# Contiki directory # Contiki directory
CONTIKI=$1 CONTIKI=$1
# Test basename # Test basename
BASENAME=01-native-ping BASENAME=$(basename $0 .sh)
IPADDR=fd00::302:304:506:708 IPADDR=fd00::302:304:506:708

View File

@ -4,7 +4,7 @@ source ../utils.sh
# Contiki directory # Contiki directory
CONTIKI=$1 CONTIKI=$1
# Test basename # Test basename
BASENAME=06-native-coap BASENAME=$(basename $0 .sh)
IPADDR=fd00::302:304:506:708 IPADDR=fd00::302:304:506:708

View File

@ -4,6 +4,6 @@
CONTIKI=$1 CONTIKI=$1
# Simulation file # Simulation file
BASENAME=07-native-border-router-cooja BASENAME=$(basename $0 .sh)
bash test-native-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 60 bash test-native-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 60

4
tests/17-tun-rpl-br/08-border-router-cooja-frag.sh Normal file → Executable file
View File

@ -4,6 +4,6 @@
CONTIKI=$1 CONTIKI=$1
# Simulation file # Simulation file
BASENAME=01-border-router-cooja BASENAME=$(basename $0 .sh)
bash test-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 60 600 2 bash test-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 60 1200 4

View File

@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8"?>
<simconf>
<project EXPORT="discard">[APPS_DIR]/mrm</project>
<project EXPORT="discard">[APPS_DIR]/mspsim</project>
<project EXPORT="discard">[APPS_DIR]/avrora</project>
<project EXPORT="discard">[APPS_DIR]/serial_socket</project>
<project EXPORT="discard">[APPS_DIR]/powertracker</project>
<simulation>
<title>My simulation</title>
<speedlimit>1.0</speedlimit>
<randomseed>123456</randomseed>
<motedelay_us>1000000</motedelay_us>
<radiomedium>
org.contikios.cooja.radiomediums.UDGM
<transmitting_range>50.0</transmitting_range>
<interference_range>100.0</interference_range>
<success_ratio_tx>1.0</success_ratio_tx>
<success_ratio_rx>1.0</success_ratio_rx>
</radiomedium>
<events>
<logoutput>40000</logoutput>
</events>
<motetype>
org.contikios.cooja.contikimote.ContikiMoteType
<identifier>mtype295</identifier>
<description>Cooja Mote Type #1</description>
<source>[CONTIKI_DIR]/examples/slip-radio/slip-radio.c</source>
<commands>make TARGET=cooja clean
make -j slip-radio.cooja TARGET=cooja</commands>
<moteinterface>org.contikios.cooja.interfaces.Position</moteinterface>
<moteinterface>org.contikios.cooja.interfaces.Battery</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiVib</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiMoteID</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiRS232</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiBeeper</moteinterface>
<moteinterface>org.contikios.cooja.interfaces.RimeAddress</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiIPAddress</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiRadio</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiButton</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiPIR</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiClock</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiLED</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiCFS</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiEEPROM</moteinterface>
<moteinterface>org.contikios.cooja.interfaces.Mote2MoteRelations</moteinterface>
<moteinterface>org.contikios.cooja.interfaces.MoteAttributes</moteinterface>
<symbols>false</symbols>
</motetype>
<motetype>
org.contikios.cooja.contikimote.ContikiMoteType
<identifier>mtype686</identifier>
<description>Cooja Mote Type #2</description>
<source>[CONTIKI_DIR]/examples/hello-world/hello-world.c</source>
<commands>make TARGET=cooja clean
make -j hello-world.cooja TARGET=cooja</commands>
<moteinterface>org.contikios.cooja.interfaces.Position</moteinterface>
<moteinterface>org.contikios.cooja.interfaces.Battery</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiVib</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiMoteID</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiRS232</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiBeeper</moteinterface>
<moteinterface>org.contikios.cooja.interfaces.RimeAddress</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiIPAddress</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiRadio</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiButton</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiPIR</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiClock</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiLED</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiCFS</moteinterface>
<moteinterface>org.contikios.cooja.contikimote.interfaces.ContikiEEPROM</moteinterface>
<moteinterface>org.contikios.cooja.interfaces.Mote2MoteRelations</moteinterface>
<moteinterface>org.contikios.cooja.interfaces.MoteAttributes</moteinterface>
<symbols>false</symbols>
</motetype>
<mote>
<interface_config>
org.contikios.cooja.interfaces.Position
<x>54.36775767371176</x>
<y>24.409055040864118</y>
<z>0.0</z>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiMoteID
<id>1</id>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiRadio
<bitrate>250.0</bitrate>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiEEPROM
<eeprom>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</eeprom>
</interface_config>
<motetype_identifier>mtype295</motetype_identifier>
</mote>
<mote>
<interface_config>
org.contikios.cooja.interfaces.Position
<x>83.54989222799365</x>
<y>52.63050856506214</y>
<z>0.0</z>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiMoteID
<id>2</id>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiRadio
<bitrate>250.0</bitrate>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiEEPROM
<eeprom>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</eeprom>
</interface_config>
<motetype_identifier>mtype686</motetype_identifier>
</mote>
<mote>
<interface_config>
org.contikios.cooja.interfaces.Position
<x>108.91767775240822</x>
<y>78.59778809170032</y>
<z>0.0</z>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiMoteID
<id>3</id>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiRadio
<bitrate>250.0</bitrate>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiEEPROM
<eeprom>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</eeprom>
</interface_config>
<motetype_identifier>mtype686</motetype_identifier>
</mote>
<mote>
<interface_config>
org.contikios.cooja.interfaces.Position
<x>139.91021061864723</x>
<y>98.34190023350419</y>
<z>0.0</z>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiMoteID
<id>4</id>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiRadio
<bitrate>250.0</bitrate>
</interface_config>
<interface_config>
org.contikios.cooja.contikimote.interfaces.ContikiEEPROM
<eeprom>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</eeprom>
</interface_config>
<motetype_identifier>mtype686</motetype_identifier>
</mote>
</simulation>
<plugin>
org.contikios.cooja.plugins.SimControl
<width>280</width>
<z>1</z>
<height>160</height>
<location_x>400</location_x>
<location_y>0</location_y>
</plugin>
<plugin>
org.contikios.cooja.plugins.Visualizer
<plugin_config>
<moterelations>true</moterelations>
<skin>org.contikios.cooja.plugins.skins.UDGMVisualizerSkin</skin>
<skin>org.contikios.cooja.plugins.skins.IDVisualizerSkin</skin>
<viewport>1.9798610460263038 0.0 0.0 1.9798610460263038 -61.112037797038525 -1.2848438586294648</viewport>
</plugin_config>
<width>400</width>
<z>4</z>
<height>400</height>
<location_x>1</location_x>
<location_y>1</location_y>
</plugin>
<plugin>
org.contikios.cooja.plugins.LogListener
<plugin_config>
<filter>ID:4</filter>
<formatted_time />
<coloring />
</plugin_config>
<width>1404</width>
<z>2</z>
<height>240</height>
<location_x>400</location_x>
<location_y>160</location_y>
</plugin>
<plugin>
org.contikios.cooja.plugins.TimeLine
<plugin_config>
<mote>0</mote>
<mote>1</mote>
<mote>2</mote>
<mote>3</mote>
<showRadioRXTX />
<showRadioHW />
<showLEDs />
<zoomfactor>500.0</zoomfactor>
</plugin_config>
<width>1804</width>
<z>6</z>
<height>166</height>
<location_x>0</location_x>
<location_y>753</location_y>
</plugin>
<plugin>
org.contikios.cooja.plugins.Notes
<plugin_config>
<notes>Enter notes here</notes>
<decorations>true</decorations>
</plugin_config>
<width>1124</width>
<z>5</z>
<height>160</height>
<location_x>680</location_x>
<location_y>0</location_y>
</plugin>
<plugin>
org.contikios.cooja.serialsocket.SerialSocketServer
<mote_arg>0</mote_arg>
<plugin_config>
<port>60001</port>
<bound>true</bound>
</plugin_config>
<width>362</width>
<z>3</z>
<height>116</height>
<location_x>13</location_x>
<location_y>414</location_y>
</plugin>
<plugin>
org.contikios.cooja.plugins.ScriptRunner
<plugin_config>
<script>TIMEOUT(10000000000); /* milliseconds. no action at timeout */
/* Set simulaion speed to real time. Required for
* Native BR test, as the Native BR will run as a
* unix process, at real time. */
sim.setSpeedLimit(1.0);</script>
<active>true</active>
</plugin_config>
<width>600</width>
<z>0</z>
<height>700</height>
<location_x>1037</location_x>
<location_y>40</location_y>
</plugin>
</simconf>

View File

@ -4,6 +4,6 @@
CONTIKI=$1 CONTIKI=$1
# Simulation file # Simulation file
BASENAME=07-native-border-router-cooja BASENAME=$(basename $0 .sh)
bash test-native-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 60 600 2 bash test-native-border-router.sh $CONTIKI $BASENAME fd00::204:4:4:4 60 1200 4

0
tests/17-tun-rpl-br/test-native-border-router.sh Normal file → Executable file
View File

@ -1 +1 @@
Subproject commit 22b1262d9e668d9cf6c8eaf70715f1bcd5728642 Subproject commit a5904b98366478bb9e7f7fe9f0bb78fc064914c5

View File

@ -1,15 +1,14 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# i386 binary support on x64 system # Install i386 binary support on x64 system and required tools
sudo dpkg --add-architecture i386 sudo dpkg --add-architecture i386
sudo apt update sudo apt update
sudo apt install -y --no-install-recommends \ sudo apt install -y --no-install-recommends \
libc6:i386 libstdc++6:i386 libncurses5:i386 libz1:i386 libc6:i386 libstdc++6:i386 libncurses5:i386 libz1:i386 \
build-essential doxygen git wget unzip python-serial rlwrap npm \
default-jdk ant srecord python-pip iputils-tracepath uncrustify \
python-magic linux-image-extra-virtual
# Tools
sudo apt-get install -y --no-install-recommends \
build-essential doxygen git wget unzip python-serial rlwrap \
default-jdk ant srecord python-pip iputils-tracepath uncrustify python-magic
sudo apt-get clean sudo apt-get clean
sudo python2 -m pip install intelhex sudo python2 -m pip install intelhex
@ -61,8 +60,6 @@ source ${HOME}/.bashrc
echo "#!/bin/bash\nant -Dbasedir=${COOJA} -f ${COOJA}/build.xml run" > ${HOME}/cooja && chmod +x ${HOME}/cooja echo "#!/bin/bash\nant -Dbasedir=${COOJA} -f ${COOJA}/build.xml run" > ${HOME}/cooja && chmod +x ${HOME}/cooja
# Install coap-cli # Install coap-cli
sudo apt-get install -y npm
sudo apt-get clean
sudo npm install coap-cli -g sudo npm install coap-cli -g
sudo ln -s /usr/bin/nodejs /usr/bin/node sudo ln -s /usr/bin/nodejs /usr/bin/node