diff --git a/examples/ipv6/rpl-udp/Makefile b/examples/ipv6/rpl-udp/Makefile
index 9670d71e3..fbf9a589e 100644
--- a/examples/ipv6/rpl-udp/Makefile
+++ b/examples/ipv6/rpl-udp/Makefile
@@ -1,7 +1,8 @@
all: udp-client udp-server
-APPS=servreg-hack
CONTIKI=../../..
+CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"
+
ifdef WITH_COMPOWER
APPS+=powertrace
CFLAGS+= -DCONTIKIMAC_CONF_COMPOWER=1 -DWITH_COMPOWER=1 -DQUEUEBUF_CONF_NUM=4
diff --git a/examples/ipv6/rpl-udp/project-conf.h b/examples/ipv6/rpl-udp/project-conf.h
new file mode 100644
index 000000000..4b39f7de9
--- /dev/null
+++ b/examples/ipv6/rpl-udp/project-conf.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2015, Swedish Institute of Computer Science.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef PROJECT_CONF_H_
+#define PROJECT_CONF_H_
+
+#undef NBR_TABLE_CONF_MAX_NEIGHBORS
+#undef UIP_CONF_MAX_ROUTES
+
+#ifdef TEST_MORE_ROUTES
+/* configure number of neighbors and routes */
+#define NBR_TABLE_CONF_MAX_NEIGHBORS 10
+#define UIP_CONF_MAX_ROUTES 30
+#else
+/* configure number of neighbors and routes */
+#define NBR_TABLE_CONF_MAX_NEIGHBORS 10
+#define UIP_CONF_MAX_ROUTES 10
+#endif /* TEST_MORE_ROUTES */
+
+#undef NETSTACK_CONF_RDC
+#define NETSTACK_CONF_RDC nullrdc_driver
+#undef NULLRDC_CONF_802154_AUTOACK
+#define NULLRDC_CONF_802154_AUTOACK 1
+
+/* Define as minutes */
+#define RPL_CONF_DEFAULT_LIFETIME_UNIT 60
+
+/* 10 minutes lifetime of routes */
+#define RPL_CONF_DEFAULT_LIFETIME 10
+
+#define RPL_CONF_DEFAULT_ROUTE_INFINITE_LIFETIME 1
+
+#endif /* PROJECT_CONF_H_ */
diff --git a/examples/ipv6/rpl-udp/rpl-udp-scale.csc b/examples/ipv6/rpl-udp/rpl-udp-scale.csc
new file mode 100644
index 000000000..292e442c1
--- /dev/null
+++ b/examples/ipv6/rpl-udp/rpl-udp-scale.csc
@@ -0,0 +1,729 @@
+
+
+ [APPS_DIR]/mrm
+ [APPS_DIR]/mspsim
+ [APPS_DIR]/avrora
+ [APPS_DIR]/serial_socket
+ [APPS_DIR]/collect-view
+ [APPS_DIR]/powertracker
+
+ RPL up and downstream scaleability test network using IPv6 and RPL
+ generated
+ 5000000
+
+ org.contikios.cooja.radiomediums.UDGM
+ 50.0
+ 50.0
+ 1.0
+ 1.0
+
+
+ 40000
+
+
+ org.contikios.cooja.mspmote.SkyMoteType
+ sky1
+ Sky Mote Type #sky1
+
+ make SERVER_REPLY=1 clean udp-server.sky TARGET=sky DEFINES=TEST_MORE_ROUTES=1
+ [CONTIKI_DIR]/examples/ipv6/rpl-udp/udp-server.sky
+ org.contikios.cooja.interfaces.Position
+ org.contikios.cooja.interfaces.RimeAddress
+ org.contikios.cooja.interfaces.IPAddress
+ org.contikios.cooja.interfaces.Mote2MoteRelations
+ org.contikios.cooja.interfaces.MoteAttributes
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ org.contikios.cooja.mspmote.interfaces.SkyButton
+ org.contikios.cooja.mspmote.interfaces.SkyFlash
+ org.contikios.cooja.mspmote.interfaces.SkyCoffeeFilesystem
+ org.contikios.cooja.mspmote.interfaces.Msp802154Radio
+ org.contikios.cooja.mspmote.interfaces.MspSerial
+ org.contikios.cooja.mspmote.interfaces.SkyLED
+ org.contikios.cooja.mspmote.interfaces.MspDebugOutput
+ org.contikios.cooja.mspmote.interfaces.SkyTemperature
+
+
+ org.contikios.cooja.mspmote.SkyMoteType
+ sky2
+ Sky Mote Type #sky2
+
+ make SERVER_REPLY=1 clean udp-client.sky TARGET=sky
+ [CONTIKI_DIR]/examples/ipv6/rpl-udp/udp-client.sky
+ org.contikios.cooja.interfaces.Position
+ org.contikios.cooja.interfaces.RimeAddress
+ org.contikios.cooja.interfaces.IPAddress
+ org.contikios.cooja.interfaces.Mote2MoteRelations
+ org.contikios.cooja.interfaces.MoteAttributes
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ org.contikios.cooja.mspmote.interfaces.SkyButton
+ org.contikios.cooja.mspmote.interfaces.SkyFlash
+ org.contikios.cooja.mspmote.interfaces.SkyCoffeeFilesystem
+ org.contikios.cooja.mspmote.interfaces.Msp802154Radio
+ org.contikios.cooja.mspmote.interfaces.MspSerial
+ org.contikios.cooja.mspmote.interfaces.SkyLED
+ org.contikios.cooja.mspmote.interfaces.MspDebugOutput
+ org.contikios.cooja.mspmote.interfaces.SkyTemperature
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 48.435974731198804
+ -66.16503914182063
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 1
+
+ sky1
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ -39.78380986481406
+ -48.10655064098382
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 2
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 127.9689727848476
+ 91.71883780610729
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 3
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 154.92605604103275
+ 40.97896551774433
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 4
+
+
+ org.contikios.cooja.mspmote.interfaces.MspSerial
+ r~;
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 47.34887596588397
+ -30.341495695501195
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 5
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 47.13486576528276
+ 32.944481932122315
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 6
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ -11.42091423859419
+ 17.879870626121914
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 7
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 118.92746659954325
+ 57.05973076244069
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 8
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 53.68872892015448
+ 59.887319605093715
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 9
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 16.45706316609417
+ 23.9075414163248
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 10
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ -13.423161364506493
+ -38.483037144768275
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 11
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ -9.034961217472201
+ 44.411389162165406
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 12
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ -39.298891643282545
+ -3.9704359883635574
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 13
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 66.93880603404335
+ -42.39683727590697
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 14
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 94.81678343873172
+ 26.921376811426246
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 15
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ -43.06618588715935
+ 30.68867105530305
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 16
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ -34.02467970185502
+ -24.313824905298304
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 17
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ -28.750467760427494
+ 48.01822457713635
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 18
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 124.95513738974614
+ 20.140247172447996
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 19
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 15.703604317318808
+ -47.6710492173345
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 20
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 154.43072661267115
+ -3.279765376986134
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 21
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 121.18784314586934
+ -24.313824905298304
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 22
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 88.4612185198951
+ -49.763990463932714
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 23
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 24.745110502623138
+ -1.7100594420374744
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 24
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 94.06332458995635
+ -2.4635182908128352
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 25
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ -4.639784599615941
+ -9.998106778566445
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 26
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 2.4901685804620115
+ -60.89843789583528
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 27
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 103.10483077526068
+ 96.99304974753483
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 28
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 8.922474678340558
+ 59.320107308766765
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 29
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 58.650758697514384
+ 2.8106936506146916
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 30
+
+ sky2
+
+
+
+
+ org.contikios.cooja.interfaces.Position
+ 90.59867707439
+ 67.97632874312737
+ 0.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
+
+ org.contikios.cooja.mspmote.interfaces.MspMoteID
+ 31
+
+ sky2
+
+
+
+ org.contikios.cooja.plugins.SimControl
+ 289
+ 1
+ 184
+ 31
+ 41
+
+
+ org.contikios.cooja.plugins.Visualizer
+
+ org.contikios.cooja.plugins.skins.IDVisualizerSkin
+ org.contikios.cooja.plugins.skins.UDGMVisualizerSkin
+ org.contikios.cooja.plugins.skins.AttributeVisualizerSkin
+ 2.349818846983307 0.0 0.0 2.349818846983307 187.19773526533345 190.95275613586946
+
+ 659
+ 3
+ 523
+ 296
+ 11
+
+
+ org.contikios.cooja.plugins.LogListener
+
+
+
+
+
+ 937
+ 4
+ 349
+ 21
+ 464
+
+
+ org.contikios.cooja.plugins.ScriptRunner
+
+
+ true
+
+ 600
+ 0
+ 700
+ 946
+ 6
+
+
+ org.contikios.cooja.plugins.MoteInterfaceViewer
+ 3
+
+ Serial port
+ 0,0
+
+ 350
+ 2
+ 300
+ 976
+ 36
+
+
diff --git a/examples/ipv6/rpl-udp/rpl-udp.csc b/examples/ipv6/rpl-udp/rpl-udp.csc
index cf7c049f1..3aa9b270e 100644
--- a/examples/ipv6/rpl-udp/rpl-udp.csc
+++ b/examples/ipv6/rpl-udp/rpl-udp.csc
@@ -1,12 +1,13 @@
- [CONTIKI_DIR]/tools/cooja/apps/mrm
- [CONTIKI_DIR]/tools/cooja/apps/mspsim
- [CONTIKI_DIR]/tools/cooja/apps/avrora
- [CONTIKI_DIR]/tools/cooja/apps/mobility
+ [APPS_DIR]/mrm
+ [APPS_DIR]/mspsim
+ [APPS_DIR]/avrora
+ [APPS_DIR]/serial_socket
+ [APPS_DIR]/collect-view
+ [APPS_DIR]/powertracker
Data collection network using IPv6 and RPL
- 0
generated
5000000
@@ -24,7 +25,7 @@
sky1
Sky Mote Type #sky1
- make udp-server.sky TARGET=sky
+ make clean udp-server.sky TARGET=sky DEFINES=TEST_MORE_ROUTES=1
[CONTIKI_DIR]/examples/ipv6/rpl-udp/udp-server.sky
org.contikios.cooja.interfaces.Position
org.contikios.cooja.interfaces.RimeAddress
@@ -47,7 +48,7 @@
sky2
Sky Mote Type #sky2
- make udp-client.sky TARGET=sky
+ make clean udp-client.sky TARGET=sky
[CONTIKI_DIR]/examples/ipv6/rpl-udp/udp-client.sky
org.contikios.cooja.interfaces.Position
org.contikios.cooja.interfaces.RimeAddress
@@ -73,6 +74,10 @@
-66.16503914182063
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
1
@@ -87,6 +92,10 @@
98.28771308774003
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
2
@@ -101,6 +110,10 @@
91.71883780610729
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
3
@@ -115,6 +128,10 @@
92.47229665488265
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
4
@@ -129,6 +146,10 @@
-30.341495695501195
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
5
@@ -143,6 +164,10 @@
32.944481932122315
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
6
@@ -157,6 +182,10 @@
17.879870626121914
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
7
@@ -171,6 +200,10 @@
57.05973076244069
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
8
@@ -185,6 +218,10 @@
59.887319605093715
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
9
@@ -199,6 +236,10 @@
23.9075414163248
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
10
@@ -213,6 +254,10 @@
75.14274313304935
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
11
@@ -227,6 +272,10 @@
85.6911670159044
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
12
@@ -241,6 +290,10 @@
-3.9704359883635574
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
13
@@ -255,6 +308,10 @@
-42.39683727590697
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
14
@@ -269,6 +326,10 @@
26.921376811426246
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
15
@@ -283,6 +344,10 @@
30.68867105530305
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
16
@@ -297,6 +362,10 @@
-24.313824905298304
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
17
@@ -311,6 +380,10 @@
48.01822457713635
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
18
@@ -325,6 +398,10 @@
20.140247172447996
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
19
@@ -339,6 +416,10 @@
-47.6710492173345
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
20
@@ -353,6 +434,10 @@
92.47229665488265
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
21
@@ -367,6 +452,10 @@
-24.313824905298304
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
22
@@ -381,6 +470,10 @@
-44.657213822233054
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
23
@@ -395,6 +488,10 @@
-1.7100594420374744
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
24
@@ -409,6 +506,10 @@
-2.4635182908128352
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
25
@@ -423,6 +524,10 @@
-9.998106778566445
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
26
@@ -437,6 +542,10 @@
-50.684884612435944
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
27
@@ -451,6 +560,10 @@
96.99304974753483
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
28
@@ -465,6 +578,10 @@
59.320107308766765
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
29
@@ -479,6 +596,10 @@
2.8106936506146916
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
30
@@ -493,6 +614,10 @@
67.97632874312737
0.0
+
+ org.contikios.cooja.mspmote.interfaces.MspClock
+ 1.0
+
org.contikios.cooja.mspmote.interfaces.MspMoteID
31
@@ -503,10 +628,10 @@
org.contikios.cooja.plugins.SimControl
259
- 1
+ 3
184
- 0
- 0
+ 3
+ 15
org.contikios.cooja.plugins.Visualizer
@@ -517,21 +642,23 @@
2.349818846983307 0.0 0.0 2.349818846983307 150.19773526533348 176.95275613586946
520
- 3
+ 2
523
- 269
- 14
+ 14
+ 210
org.contikios.cooja.plugins.LogListener
+
+
937
0
213
- 21
- 464
+ 265
+ 16
org.contikios.cooja.plugins.ScriptRunner
@@ -574,11 +701,11 @@ while(1) {
}
true
- 600
- 2
- 700
- 665
- 6
+ 651
+ 1
+ 550
+ 547
+ 181
diff --git a/examples/ipv6/rpl-udp/udp-client.c b/examples/ipv6/rpl-udp/udp-client.c
index 279703880..e5339fc3d 100644
--- a/examples/ipv6/rpl-udp/udp-client.c
+++ b/examples/ipv6/rpl-udp/udp-client.c
@@ -40,12 +40,17 @@
#include
#include
+/* Only for TMOTE Sky? */
+#include "dev/serial-line.h"
+#include "dev/uart1.h"
+#include "net/ipv6/uip-ds6-route.h"
+
#define UDP_CLIENT_PORT 8765
#define UDP_SERVER_PORT 5678
#define UDP_EXAMPLE_ID 190
-#define DEBUG DEBUG_PRINT
+#define DEBUG DEBUG_FULL
#include "net/ip/uip-debug.h"
#ifndef PERIOD
@@ -64,6 +69,9 @@ static uip_ipaddr_t server_ipaddr;
PROCESS(udp_client_process, "UDP client process");
AUTOSTART_PROCESSES(&udp_client_process);
/*---------------------------------------------------------------------------*/
+static int seq_id;
+static int reply;
+
static void
tcpip_handler(void)
{
@@ -72,16 +80,32 @@ tcpip_handler(void)
if(uip_newdata()) {
str = uip_appdata;
str[uip_datalen()] = '\0';
- printf("DATA recv '%s'\n", str);
+ reply++;
+ printf("DATA recv '%s' (s:%d, r:%d)\n", str, seq_id, reply);
}
}
/*---------------------------------------------------------------------------*/
static void
send_packet(void *ptr)
{
- static int seq_id;
char buf[MAX_PAYLOAD_LEN];
+#ifdef SERVER_REPLY
+ uint8_t num_used = 0;
+ uip_ds6_nbr_t *nbr;
+
+ nbr = nbr_table_head(ds6_neighbors);
+ while(nbr != NULL) {
+ nbr = nbr_table_next(ds6_neighbors, nbr);
+ num_used++;
+ }
+
+ if(seq_id > 0) {
+ ANNOTATE("#A r=%d/%d,color=%s,n=%d %d\n", reply, seq_id,
+ reply == seq_id ? "GREEN" : "RED", uip_ds6_route_num_routes(), num_used);
+ }
+#endif /* SERVER_REPLY */
+
seq_id++;
PRINTF("DATA send to %d 'Hello %d'\n",
server_ipaddr.u8[sizeof(server_ipaddr.u8) - 1], seq_id);
@@ -156,8 +180,9 @@ PROCESS_THREAD(udp_client_process, ev, data)
PROCESS_PAUSE();
set_global_address();
-
- PRINTF("UDP client process started\n");
+
+ PRINTF("UDP client process started nbr:%d routes:%d\n",
+ NBR_TABLE_CONF_MAX_NEIGHBORS, UIP_CONF_MAX_ROUTES);
print_local_addresses();
@@ -174,6 +199,11 @@ PROCESS_THREAD(udp_client_process, ev, data)
PRINTF(" local/remote port %u/%u\n",
UIP_HTONS(client_conn->lport), UIP_HTONS(client_conn->rport));
+ /* initialize serial line */
+ uart1_set_input(serial_line_input_byte);
+ serial_line_init();
+
+
#if WITH_COMPOWER
powertrace_sniff(POWERTRACE_ON);
#endif
@@ -184,7 +214,41 @@ PROCESS_THREAD(udp_client_process, ev, data)
if(ev == tcpip_event) {
tcpip_handler();
}
-
+
+ if(ev == serial_line_event_message && data != NULL) {
+ char *str;
+ str = data;
+ if(str[0] == 'r') {
+ uip_ds6_route_t *r;
+ uip_ipaddr_t *nexthop;
+ uip_ds6_defrt_t *defrt;
+ uip_ipaddr_t *ipaddr;
+ defrt = NULL;
+ if((ipaddr = uip_ds6_defrt_choose()) != NULL) {
+ defrt = uip_ds6_defrt_lookup(ipaddr);
+ }
+ if(defrt != NULL) {
+ PRINTF("DefRT: :: -> %02d", defrt->ipaddr.u8[15]);
+ PRINTF(" lt:%lu inf:%d\n", stimer_remaining(&defrt->lifetime),
+ defrt->isinfinite);
+ } else {
+ PRINTF("DefRT: :: -> NULL\n");
+ }
+
+ for(r = uip_ds6_route_head();
+ r != NULL;
+ r = uip_ds6_route_next(r)) {
+ nexthop = uip_ds6_route_nexthop(r);
+ PRINTF("Route: %02d -> %02d", r->ipaddr.u8[15], nexthop->u8[15]);
+ /* PRINT6ADDR(&r->ipaddr); */
+ /* PRINTF(" -> "); */
+ /* PRINT6ADDR(nexthop); */
+ PRINTF(" lt:%lu\n", r->state.lifetime);
+
+ }
+ }
+ }
+
if(etimer_expired(&periodic)) {
etimer_reset(&periodic);
ctimer_set(&backoff_timer, SEND_TIME, send_packet, NULL);
diff --git a/examples/ipv6/rpl-udp/udp-server.c b/examples/ipv6/rpl-udp/udp-server.c
index 17c1b1fb8..ce87d3b8f 100644
--- a/examples/ipv6/rpl-udp/udp-server.c
+++ b/examples/ipv6/rpl-udp/udp-server.c
@@ -107,7 +107,8 @@ PROCESS_THREAD(udp_server_process, ev, data)
SENSORS_ACTIVATE(button_sensor);
- PRINTF("UDP server started\n");
+ PRINTF("UDP server started. nbr:%d routes:%d\n",
+ NBR_TABLE_CONF_MAX_NEIGHBORS, UIP_CONF_MAX_ROUTES);
#if UIP_CONF_ROUTER
/* The choice of server address determines its 6LoPAN header compression.