Change the default IPv6 prefix from aaaa::/64 to fd00::/64
This commit is contained in:
parent
8b3d220761
commit
dea04c67d7
|
@ -1757,8 +1757,8 @@ sicslowpan_init(void)
|
||||||
#ifdef SICSLOWPAN_CONF_ADDR_CONTEXT_0
|
#ifdef SICSLOWPAN_CONF_ADDR_CONTEXT_0
|
||||||
SICSLOWPAN_CONF_ADDR_CONTEXT_0;
|
SICSLOWPAN_CONF_ADDR_CONTEXT_0;
|
||||||
#else
|
#else
|
||||||
addr_contexts[0].prefix[0] = 0xaa;
|
addr_contexts[0].prefix[0] = UIP_DS6_DEFAULT_PREFIX_0;
|
||||||
addr_contexts[0].prefix[1] = 0xaa;
|
addr_contexts[0].prefix[1] = UIP_DS6_DEFAULT_PREFIX_1;
|
||||||
#endif
|
#endif
|
||||||
#endif /* SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS > 0 */
|
#endif /* SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS > 0 */
|
||||||
|
|
||||||
|
|
|
@ -67,6 +67,36 @@
|
||||||
#endif
|
#endif
|
||||||
#define UIP_DS6_DEFRT_NB UIP_DS6_DEFRT_NBS + UIP_DS6_DEFRT_NBU
|
#define UIP_DS6_DEFRT_NB UIP_DS6_DEFRT_NBS + UIP_DS6_DEFRT_NBU
|
||||||
|
|
||||||
|
/* Default prefix */
|
||||||
|
#ifdef UIP_CONF_DS6_DEFAULT_PREFIX
|
||||||
|
#define UIP_DS6_DEFAULT_PREFIX UIP_CONF_DS6_DEFAULT_PREFIX
|
||||||
|
#else
|
||||||
|
/* From RFC4193, section 3.1:
|
||||||
|
* | 7 bits |1| 40 bits | 16 bits | 64 bits |
|
||||||
|
* +--------+-+------------+-----------+----------------------------+
|
||||||
|
* | Prefix |L| Global ID | Subnet ID | Interface ID |
|
||||||
|
* +--------+-+------------+-----------+----------------------------+
|
||||||
|
* Prefix FC00::/7 prefix to identify Local IPv6 unicast
|
||||||
|
* addresses.
|
||||||
|
* L Set to 1 if the prefix is locally assigned.
|
||||||
|
* Set to 0 may be defined in the future. See
|
||||||
|
* Section 3.2 for additional information.
|
||||||
|
* Global ID 40-bit global identifier used to create a
|
||||||
|
* globally unique prefix. See Section 3.2 for
|
||||||
|
* additional information.
|
||||||
|
*
|
||||||
|
* We set prefix to 0xfc00 and set the local bit, resulting in 0xfd00.
|
||||||
|
* For high probability of network uniqueness, Global ID must be generated
|
||||||
|
* pseudo-randomly. As this is a hard-coded default prefix, we simply use
|
||||||
|
* a Global ID of 0. For real deployments, make sure to install a pseudo-random
|
||||||
|
* Global ID, e.g. in a RPL network, by configuring it at the root.
|
||||||
|
*/
|
||||||
|
#define UIP_DS6_DEFAULT_PREFIX 0xfd00
|
||||||
|
#endif /* UIP_CONF_DS6_DEFAULT_PREFIX */
|
||||||
|
|
||||||
|
#define UIP_DS6_DEFAULT_PREFIX_0 ((UIP_DS6_DEFAULT_PREFIX >> 8) & 0xff)
|
||||||
|
#define UIP_DS6_DEFAULT_PREFIX_1 (UIP_DS6_DEFAULT_PREFIX & 0xff)
|
||||||
|
|
||||||
/* Prefix list */
|
/* Prefix list */
|
||||||
#define UIP_DS6_PREFIX_NBS 1
|
#define UIP_DS6_PREFIX_NBS 1
|
||||||
#ifndef UIP_CONF_DS6_PREFIX_NBU
|
#ifndef UIP_CONF_DS6_PREFIX_NBU
|
||||||
|
|
|
@ -146,7 +146,7 @@ set_global_address(void)
|
||||||
|
|
||||||
/* Assign a unique local address (RFC4193,
|
/* Assign a unique local address (RFC4193,
|
||||||
http://tools.ietf.org/html/rfc4193). */
|
http://tools.ietf.org/html/rfc4193). */
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ rpl_dag_root_init_dag_immediately(void)
|
||||||
dag->instance->def_route = NULL;
|
dag->instance->def_route = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&prefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_set_prefix(dag, &prefix, 64);
|
rpl_set_prefix(dag, &prefix, 64);
|
||||||
PRINTF("rpl_dag_root_init_dag: created a new RPL dag\n");
|
PRINTF("rpl_dag_root_init_dag: created a new RPL dag\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -525,7 +525,7 @@ wpcap_init(void)
|
||||||
// }
|
// }
|
||||||
#else
|
#else
|
||||||
addr.s_addr = inet_addr("10.10.10.10"); //prefer ipv4 default for legacy compatibility
|
addr.s_addr = inet_addr("10.10.10.10"); //prefer ipv4 default for legacy compatibility
|
||||||
// uiplib_ipaddrconv("aaaa::1",(uip_ipaddr_t*) &addr6.s6_addr);
|
// uiplib_ipaddrconv("fd00::1",(uip_ipaddr_t*) &addr6.s6_addr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef UIP_FALLBACK_INTERFACE
|
#ifdef UIP_FALLBACK_INTERFACE
|
||||||
|
|
|
@ -15,6 +15,6 @@ The node will use this address to obtain the network prefix
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
sudo ./tunslip6 aaaa::1/64
|
sudo ./tunslip6 fd00::1/64
|
||||||
|
|
||||||
This will use aaaa:: / 64 as the prefix for the 15.4 network.
|
This will use fd00:: / 64 as the prefix for the 15.4 network.
|
||||||
|
|
|
@ -130,7 +130,7 @@ PROCESS_THREAD(udp_client_process, ev, data)
|
||||||
PRINTF(" local/remote port %u/%u\n",
|
PRINTF(" local/remote port %u/%u\n",
|
||||||
UIP_HTONS(l_conn->lport), UIP_HTONS(l_conn->rport));
|
UIP_HTONS(l_conn->lport), UIP_HTONS(l_conn->rport));
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0x0215, 0x2000, 0x0002, 0x2145);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0x0215, 0x2000, 0x0002, 0x2145);
|
||||||
g_conn = udp_new(&ipaddr, UIP_HTONS(3000), NULL);
|
g_conn = udp_new(&ipaddr, UIP_HTONS(3000), NULL);
|
||||||
if(!g_conn) {
|
if(!g_conn) {
|
||||||
PRINTF("udp_new g_conn error.\n");
|
PRINTF("udp_new g_conn error.\n");
|
||||||
|
|
|
@ -105,7 +105,7 @@ PROCESS_THREAD(ping6_process, ev, data)
|
||||||
PRINTF("ping6 running.\n");
|
PRINTF("ping6 running.\n");
|
||||||
PRINTF("Button 1: 5 pings 16 byte payload.\n");
|
PRINTF("Button 1: 5 pings 16 byte payload.\n");
|
||||||
|
|
||||||
uip_ip6addr(&dest_addr, 0xaaaa, 0, 0, 0, 0x0215, 0x2000, 0x0002, 0x2145);
|
uip_ip6addr(&dest_addr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0x0215, 0x2000, 0x0002, 0x2145);
|
||||||
count = 0;
|
count = 0;
|
||||||
|
|
||||||
icmp6_new(NULL);
|
icmp6_new(NULL);
|
||||||
|
|
|
@ -126,7 +126,7 @@ create_dag()
|
||||||
{
|
{
|
||||||
rpl_dag_t *dag;
|
rpl_dag_t *dag;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ create_dag()
|
||||||
dag = rpl_set_root(RPL_DEFAULT_INSTANCE,
|
dag = rpl_set_root(RPL_DEFAULT_INSTANCE,
|
||||||
&uip_ds6_get_global(ADDR_PREFERRED)->ipaddr);
|
&uip_ds6_get_global(ADDR_PREFERRED)->ipaddr);
|
||||||
if(dag != NULL) {
|
if(dag != NULL) {
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_set_prefix(dag, &ipaddr, 64);
|
rpl_set_prefix(dag, &ipaddr, 64);
|
||||||
PRINTF("Created a new RPL dag with ID: ");
|
PRINTF("Created a new RPL dag with ID: ");
|
||||||
PRINT6ADDR(&dag->dag_id);
|
PRINT6ADDR(&dag->dag_id);
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
#define MQTT_DEMO_PUBLISH_TRIGGER &button_right_sensor
|
#define MQTT_DEMO_PUBLISH_TRIGGER &button_right_sensor
|
||||||
|
|
||||||
/* If undefined, the demo will attempt to connect to IBM's quickstart */
|
/* If undefined, the demo will attempt to connect to IBM's quickstart */
|
||||||
#define MQTT_DEMO_BROKER_IP_ADDR "aaaa::1"
|
#define MQTT_DEMO_BROKER_IP_ADDR "fd00::1"
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
#endif /* PROJECT_CONF_H_ */
|
#endif /* PROJECT_CONF_H_ */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -57,13 +57,13 @@ $(CONTIKI)/tools/tunslip6: $(CONTIKI)/tools/tunslip6.c
|
||||||
(cd $(CONTIKI)/tools && $(MAKE) tunslip6)
|
(cd $(CONTIKI)/tools && $(MAKE) tunslip6)
|
||||||
|
|
||||||
connect-router: $(CONTIKI)/tools/tunslip6
|
connect-router: $(CONTIKI)/tools/tunslip6
|
||||||
sudo $(CONTIKI)/tools/tunslip6 aaaa::1/64
|
sudo $(CONTIKI)/tools/tunslip6 fd00::1/64
|
||||||
|
|
||||||
connect-router-cooja: $(CONTIKI)/tools/tunslip6
|
connect-router-cooja: $(CONTIKI)/tools/tunslip6
|
||||||
sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 -p 60001 aaaa::1/64
|
sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 -p 60001 fd00::1/64
|
||||||
|
|
||||||
connect-router-native: $(CONTIKI)/examples/ipv6/native-border-router/border-router.native
|
connect-router-native: $(CONTIKI)/examples/ipv6/native-border-router/border-router.native
|
||||||
sudo $(CONTIKI)/exmples/ipv6/native-border-router/border-router.native -a 127.0.0.1 -p 60001 aaaa::1/64
|
sudo $(CONTIKI)/exmples/ipv6/native-border-router/border-router.native -a 127.0.0.1 -p 60001 fd00::1/64
|
||||||
|
|
||||||
connect-minimal:
|
connect-minimal:
|
||||||
sudo ip address add fdfd::1/64 dev tap0
|
sudo ip address add fdfd::1/64 dev tap0
|
||||||
|
|
|
@ -23,8 +23,8 @@ PRELIMINARIES
|
||||||
#define NETSTACK_CONF_RDC nullrdc_driver
|
#define NETSTACK_CONF_RDC nullrdc_driver
|
||||||
- Alternatively, you can use the native-border-router together with the slip-radio.
|
- Alternatively, you can use the native-border-router together with the slip-radio.
|
||||||
- For convenience, define the Cooja addresses in /etc/hosts
|
- For convenience, define the Cooja addresses in /etc/hosts
|
||||||
aaaa::0212:7401:0001:0101 cooja1
|
fd00::0212:7401:0001:0101 cooja1
|
||||||
aaaa::0212:7402:0002:0202 cooja2
|
fd00::0212:7402:0002:0202 cooja2
|
||||||
...
|
...
|
||||||
- Get the Copper (Cu) CoAP user-agent from
|
- Get the Copper (Cu) CoAP user-agent from
|
||||||
[https://addons.mozilla.org/en-US/firefox/addon/copper-270430](https://addons.mozilla.org/en-US/firefox/addon/copper-270430)
|
[https://addons.mozilla.org/en-US/firefox/addon/copper-270430](https://addons.mozilla.org/en-US/firefox/addon/copper-270430)
|
||||||
|
@ -82,11 +82,11 @@ TMOTES HOWTO
|
||||||
|
|
||||||
3. Start Copper and discover resources at:
|
3. Start Copper and discover resources at:
|
||||||
|
|
||||||
coap://[aaaa::____:____:____:____]:5683/
|
coap://[fd00::____:____:____:____]:5683/
|
||||||
|
|
||||||
### Add a client:
|
### Add a client:
|
||||||
|
|
||||||
1. Change the hard-coded server address in er-example-client.c to aaaa::____:____:____:____
|
1. Change the hard-coded server address in er-example-client.c to fd00::____:____:____:____
|
||||||
2. Connect a third Tmote Sky
|
2. Connect a third Tmote Sky
|
||||||
|
|
||||||
make TARGET=sky er-example-client.upload MOTE=3
|
make TARGET=sky er-example-client.upload MOTE=3
|
||||||
|
|
|
@ -34,7 +34,7 @@ For example, using a loopback interface with the minimal-net platform:
|
||||||
make UIP_CONF_IPV6=1 TARGET=minimal-net
|
make UIP_CONF_IPV6=1 TARGET=minimal-net
|
||||||
./hello-world.minimal-net
|
./hello-world.minimal-net
|
||||||
Hello, world
|
Hello, world
|
||||||
IPV6 Address: [aaaa::206:98ff:fe00:232]
|
IPV6 Address: [fd00::206:98ff:fe00:232]
|
||||||
IPV6 Address: [fe80::206:98ff:fe00:232]
|
IPV6 Address: [fe80::206:98ff:fe00:232]
|
||||||
^C
|
^C
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
static const char http_content_type_json[] = "application/json";
|
static const char http_content_type_json[] = "application/json";
|
||||||
|
|
||||||
/* Maximum 40 chars in host name?: 5 x 8 */
|
/* Maximum 40 chars in host name?: 5 x 8 */
|
||||||
static char callback_host[40] = "[aaaa::1]";
|
static char callback_host[40] = "[fd00::1]";
|
||||||
static uint16_t callback_port = CALLBACK_PORT;
|
static uint16_t callback_port = CALLBACK_PORT;
|
||||||
static uint16_t callback_interval = SEND_INTERVAL;
|
static uint16_t callback_interval = SEND_INTERVAL;
|
||||||
static char callback_path[80] = "/debug/";
|
static char callback_path[80] = "/debug/";
|
||||||
|
|
|
@ -111,7 +111,7 @@ set_own_addresses(void)
|
||||||
rpl_dag_t *dag;
|
rpl_dag_t *dag;
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ join_mcast_group(void)
|
||||||
uip_ds6_maddr_t *rv;
|
uip_ds6_maddr_t *rv;
|
||||||
|
|
||||||
/* First, set our v6 global */
|
/* First, set our v6 global */
|
||||||
uip_ip6addr(&addr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&addr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&addr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&addr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&addr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&addr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
|
|
@ -24,4 +24,4 @@ CONTIKI_WITH_IPV6 = 1
|
||||||
include $(CONTIKI)/Makefile.include
|
include $(CONTIKI)/Makefile.include
|
||||||
|
|
||||||
connect-router: border-router.native
|
connect-router: border-router.native
|
||||||
sudo ./border-router.native aaaa::1/64
|
sudo ./border-router.native fd00::1/64
|
||||||
|
|
|
@ -125,7 +125,7 @@ slip_config_handle_arguments(int argc, char **argv)
|
||||||
case 'h':
|
case 'h':
|
||||||
default:
|
default:
|
||||||
fprintf(stderr,"usage: %s [options] ipaddress\n", prog);
|
fprintf(stderr,"usage: %s [options] ipaddress\n", prog);
|
||||||
fprintf(stderr,"example: border-router.native -L -v2 -s ttyUSB1 aaaa::1/64\n");
|
fprintf(stderr,"example: border-router.native -L -v2 -s ttyUSB1 fd00::1/64\n");
|
||||||
fprintf(stderr,"Options are:\n");
|
fprintf(stderr,"Options are:\n");
|
||||||
#ifdef linux
|
#ifdef linux
|
||||||
fprintf(stderr," -B baudrate 9600,19200,38400,57600,115200,921600 (default 115200)\n");
|
fprintf(stderr," -B baudrate 9600,19200,38400,57600,115200,921600 (default 115200)\n");
|
||||||
|
|
|
@ -33,7 +33,7 @@ CFLAGS += -DWEBSERVER=2
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PREFIX),)
|
ifeq ($(PREFIX),)
|
||||||
PREFIX = aaaa::1/64
|
PREFIX = fd00::1/64
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CONTIKI_WITH_IPV6 = 1
|
CONTIKI_WITH_IPV6 = 1
|
||||||
|
|
|
@ -195,12 +195,12 @@ set_global_address(void)
|
||||||
{
|
{
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
/* set server address */
|
/* set server address */
|
||||||
uip_ip6addr(&server_ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 1);
|
uip_ip6addr(&server_ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -145,14 +145,14 @@ PROCESS_THREAD(udp_server_process, ev, data)
|
||||||
PRINTF("UDP server started\n");
|
PRINTF("UDP server started\n");
|
||||||
|
|
||||||
#if UIP_CONF_ROUTER
|
#if UIP_CONF_ROUTER
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 1);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 1);
|
||||||
/* uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr); */
|
/* uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr); */
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_MANUAL);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_MANUAL);
|
||||||
root_if = uip_ds6_addr_lookup(&ipaddr);
|
root_if = uip_ds6_addr_lookup(&ipaddr);
|
||||||
if(root_if != NULL) {
|
if(root_if != NULL) {
|
||||||
rpl_dag_t *dag;
|
rpl_dag_t *dag;
|
||||||
dag = rpl_set_root(RPL_DEFAULT_INSTANCE,(uip_ip6addr_t *)&ipaddr);
|
dag = rpl_set_root(RPL_DEFAULT_INSTANCE,(uip_ip6addr_t *)&ipaddr);
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_set_prefix(dag, &ipaddr, 64);
|
rpl_set_prefix(dag, &ipaddr, 64);
|
||||||
PRINTF("created a new RPL dag\n");
|
PRINTF("created a new RPL dag\n");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -116,7 +116,7 @@ set_global_address(void)
|
||||||
{
|
{
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
@ -125,21 +125,21 @@ set_global_address(void)
|
||||||
* Obviously the choice made here must also be selected in udp-server.c.
|
* Obviously the choice made here must also be selected in udp-server.c.
|
||||||
*
|
*
|
||||||
* For correct Wireshark decoding using a sniffer, add the /64 prefix to the 6LowPAN protocol preferences,
|
* For correct Wireshark decoding using a sniffer, add the /64 prefix to the 6LowPAN protocol preferences,
|
||||||
* e.g. set Context 0 to aaaa::. At present Wireshark copies Context/128 and then overwrites it.
|
* e.g. set Context 0 to fd00::. At present Wireshark copies Context/128 and then overwrites it.
|
||||||
* (Setting Context 0 to aaaa::1111:2222:3333:4444 will report a 16 bit compressed address of aaaa::1111:22ff:fe33:xxxx)
|
* (Setting Context 0 to fd00::1111:2222:3333:4444 will report a 16 bit compressed address of fd00::1111:22ff:fe33:xxxx)
|
||||||
*
|
*
|
||||||
* Note the IPCMV6 checksum verification depends on the correct uncompressed addresses.
|
* Note the IPCMV6 checksum verification depends on the correct uncompressed addresses.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* Mode 1 - 64 bits inline */
|
/* Mode 1 - 64 bits inline */
|
||||||
uip_ip6addr(&server_ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 1);
|
uip_ip6addr(&server_ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 1);
|
||||||
#elif 1
|
#elif 1
|
||||||
/* Mode 2 - 16 bits inline */
|
/* Mode 2 - 16 bits inline */
|
||||||
uip_ip6addr(&server_ipaddr, 0xaaaa, 0, 0, 0, 0, 0x00ff, 0xfe00, 1);
|
uip_ip6addr(&server_ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0x00ff, 0xfe00, 1);
|
||||||
#else
|
#else
|
||||||
/* Mode 3 - derived from server link-local (MAC) address */
|
/* Mode 3 - derived from server link-local (MAC) address */
|
||||||
uip_ip6addr(&server_ipaddr, 0xaaaa, 0, 0, 0, 0x0250, 0xc2ff, 0xfea8, 0xcd1a); //redbee-econotag
|
uip_ip6addr(&server_ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0x0250, 0xc2ff, 0xfea8, 0xcd1a); //redbee-econotag
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -114,20 +114,20 @@ PROCESS_THREAD(udp_server_process, ev, data)
|
||||||
* Obviously the choice made here must also be selected in udp-client.c.
|
* Obviously the choice made here must also be selected in udp-client.c.
|
||||||
*
|
*
|
||||||
* For correct Wireshark decoding using a sniffer, add the /64 prefix to the 6LowPAN protocol preferences,
|
* For correct Wireshark decoding using a sniffer, add the /64 prefix to the 6LowPAN protocol preferences,
|
||||||
* e.g. set Context 0 to aaaa::. At present Wireshark copies Context/128 and then overwrites it.
|
* e.g. set Context 0 to fd00::. At present Wireshark copies Context/128 and then overwrites it.
|
||||||
* (Setting Context 0 to aaaa::1111:2222:3333:4444 will report a 16 bit compressed address of aaaa::1111:22ff:fe33:xxxx)
|
* (Setting Context 0 to fd00::1111:2222:3333:4444 will report a 16 bit compressed address of fd00::1111:22ff:fe33:xxxx)
|
||||||
* Note Wireshark's IPCMV6 checksum verification depends on the correct uncompressed addresses.
|
* Note Wireshark's IPCMV6 checksum verification depends on the correct uncompressed addresses.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* Mode 1 - 64 bits inline */
|
/* Mode 1 - 64 bits inline */
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 1);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 1);
|
||||||
#elif 1
|
#elif 1
|
||||||
/* Mode 2 - 16 bits inline */
|
/* Mode 2 - 16 bits inline */
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0x00ff, 0xfe00, 1);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0x00ff, 0xfe00, 1);
|
||||||
#else
|
#else
|
||||||
/* Mode 3 - derived from link local (MAC) address */
|
/* Mode 3 - derived from link local (MAC) address */
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ PROCESS_THREAD(udp_server_process, ev, data)
|
||||||
if(root_if != NULL) {
|
if(root_if != NULL) {
|
||||||
rpl_dag_t *dag;
|
rpl_dag_t *dag;
|
||||||
dag = rpl_set_root(RPL_DEFAULT_INSTANCE,(uip_ip6addr_t *)&ipaddr);
|
dag = rpl_set_root(RPL_DEFAULT_INSTANCE,(uip_ip6addr_t *)&ipaddr);
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_set_prefix(dag, &ipaddr, 64);
|
rpl_set_prefix(dag, &ipaddr, 64);
|
||||||
PRINTF("created a new RPL dag\n");
|
PRINTF("created a new RPL dag\n");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -80,7 +80,7 @@ set_global_address(void)
|
||||||
int i;
|
int i;
|
||||||
uint8_t state;
|
uint8_t state;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ create_rpl_dag(uip_ipaddr_t *ipaddr)
|
||||||
|
|
||||||
rpl_set_root(RPL_DEFAULT_INSTANCE, ipaddr);
|
rpl_set_root(RPL_DEFAULT_INSTANCE, ipaddr);
|
||||||
dag = rpl_get_any_dag();
|
dag = rpl_get_any_dag();
|
||||||
uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&prefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_set_prefix(dag, &prefix, 64);
|
rpl_set_prefix(dag, &prefix, 64);
|
||||||
PRINTF("created a new RPL dag\n");
|
PRINTF("created a new RPL dag\n");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -78,7 +78,7 @@ set_global_address(void)
|
||||||
int i;
|
int i;
|
||||||
uint8_t state;
|
uint8_t state;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ $(CONTIKI)/tools/tunslip6: $(CONTIKI)/tools/tunslip6.c
|
||||||
(cd $(CONTIKI)/tools && $(MAKE) tunslip6)
|
(cd $(CONTIKI)/tools && $(MAKE) tunslip6)
|
||||||
|
|
||||||
connect-router: $(CONTIKI)/tools/tunslip6
|
connect-router: $(CONTIKI)/tools/tunslip6
|
||||||
sudo $(CONTIKI)/tools/tunslip6 aaaa::1/64
|
sudo $(CONTIKI)/tools/tunslip6 fd00::1/64
|
||||||
|
|
||||||
connect-router-cooja: $(CONTIKI)/tools/tunslip6
|
connect-router-cooja: $(CONTIKI)/tools/tunslip6
|
||||||
sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 aaaa::1/64
|
sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 fd00::1/64
|
||||||
|
|
|
@ -17,8 +17,8 @@ To test the example in COOJA under Linux
|
||||||
make connect-router-cooja
|
make connect-router-cooja
|
||||||
|
|
||||||
3. You should now be able to browse to the nodes using your web browser:
|
3. You should now be able to browse to the nodes using your web browser:
|
||||||
Router: http://[aaaa::0212:7401:0001:0101]/
|
Router: http://[fd00::0212:7401:0001:0101]/
|
||||||
Node 2: http://[aaaa::0212:7402:0002:0202]/
|
Node 2: http://[fd00::0212:7402:0002:0202]/
|
||||||
|
|
||||||
|
|
||||||
To run the example on real nodes under Linux
|
To run the example on real nodes under Linux
|
||||||
|
|
|
@ -44,13 +44,13 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
/* The address of the server to register the services for this node */
|
/* The address of the server to register the services for this node */
|
||||||
#define SERVER "[aaaa::1]"
|
#define SERVER "[fd00::1]"
|
||||||
|
|
||||||
/* This command registers two services (/0 and /1) to turn the leds on or off */
|
/* This command registers two services (/0 and /1) to turn the leds on or off */
|
||||||
#define REGISTER_COMMAND "/r?p=0&d=Turn%20off%20leds&p=1&d=Turn%20on%20leds"
|
#define REGISTER_COMMAND "/r?p=0&d=Turn%20off%20leds&p=1&d=Turn%20on%20leds"
|
||||||
|
|
||||||
/* The address of the other node to control */
|
/* The address of the other node to control */
|
||||||
#define OTHER_NODE "[aaaa::1]"
|
#define OTHER_NODE "[fd00::1]"
|
||||||
|
|
||||||
/* The commands to send to the other node */
|
/* The commands to send to the other node */
|
||||||
#define SET_LEDS_ON "/1"
|
#define SET_LEDS_ON "/1"
|
||||||
|
|
|
@ -28,7 +28,7 @@ From a Linux terminal, go to `contiki/examples/jn516x/rpl/border-router` and do
|
||||||
or `make connect-router-sw` if you have **SW flow control**
|
or `make connect-router-sw` if you have **SW flow control**
|
||||||
|
|
||||||
This will start a tunnel interface (tun0) on the host machine.
|
This will start a tunnel interface (tun0) on the host machine.
|
||||||
All traffic towards our network (prefix aaaa::1/64) will now be routed to the border router.
|
All traffic towards our network (prefix fd00::1/64) will now be routed to the border router.
|
||||||
|
|
||||||
## RPL Node
|
## RPL Node
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"
|
||||||
PROJECT_SOURCEFILES += slip-bridge.c slip.c
|
PROJECT_SOURCEFILES += slip-bridge.c slip.c
|
||||||
|
|
||||||
ifeq ($(PREFIX),)
|
ifeq ($(PREFIX),)
|
||||||
PREFIX = aaaa::1/64
|
PREFIX = fd00::1/64
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include $(CONTIKI)/Makefile.include
|
include $(CONTIKI)/Makefile.include
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
*/
|
*/
|
||||||
#include "contiki.h"
|
#include "contiki.h"
|
||||||
#include "net/ip/uip.h"
|
#include "net/ip/uip.h"
|
||||||
|
#include "net/ipv6/uip-ds6.h"
|
||||||
#include "tools/rpl-tools.h"
|
#include "tools/rpl-tools.h"
|
||||||
#include "rest-engine.h"
|
#include "rest-engine.h"
|
||||||
#include "sys/ctimer.h"
|
#include "sys/ctimer.h"
|
||||||
|
@ -130,7 +131,7 @@ PROCESS_THREAD(start_app, ev, data)
|
||||||
/* Start net stack */
|
/* Start net stack */
|
||||||
if(is_coordinator) {
|
if(is_coordinator) {
|
||||||
uip_ipaddr_t prefix;
|
uip_ipaddr_t prefix;
|
||||||
uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&prefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_tools_init(&prefix);
|
rpl_tools_init(&prefix);
|
||||||
} else {
|
} else {
|
||||||
rpl_tools_init(NULL);
|
rpl_tools_init(NULL);
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
|
|
||||||
#include "contiki.h"
|
#include "contiki.h"
|
||||||
#include "net/ip/uip.h"
|
#include "net/ip/uip.h"
|
||||||
|
#include "net/ipv6/uip-ds6.h"
|
||||||
#include "tools/rpl-tools.h"
|
#include "tools/rpl-tools.h"
|
||||||
#include "rest-engine.h"
|
#include "rest-engine.h"
|
||||||
#include "light-sensor.h"
|
#include "light-sensor.h"
|
||||||
|
@ -350,7 +351,7 @@ PROCESS_THREAD(start_app, ev, data)
|
||||||
/* Start net stack */
|
/* Start net stack */
|
||||||
if(is_coordinator) {
|
if(is_coordinator) {
|
||||||
uip_ipaddr_t prefix;
|
uip_ipaddr_t prefix;
|
||||||
uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&prefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_tools_init(&prefix);
|
rpl_tools_init(&prefix);
|
||||||
} else {
|
} else {
|
||||||
rpl_tools_init(NULL);
|
rpl_tools_init(NULL);
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
*/
|
*/
|
||||||
#include "contiki.h"
|
#include "contiki.h"
|
||||||
#include "net/ip/uip.h"
|
#include "net/ip/uip.h"
|
||||||
|
#include "net/ipv6/uip-ds6.h"
|
||||||
#include "tools/rpl-tools.h"
|
#include "tools/rpl-tools.h"
|
||||||
#include "rest-engine.h"
|
#include "rest-engine.h"
|
||||||
#include "dev/leds.h"
|
#include "dev/leds.h"
|
||||||
|
@ -351,7 +352,7 @@ PROCESS_THREAD(start_app, ev, data)
|
||||||
/* Start net stack */
|
/* Start net stack */
|
||||||
if(is_coordinator) {
|
if(is_coordinator) {
|
||||||
uip_ipaddr_t prefix;
|
uip_ipaddr_t prefix;
|
||||||
uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&prefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_tools_init(&prefix);
|
rpl_tools_init(&prefix);
|
||||||
} else {
|
} else {
|
||||||
rpl_tools_init(NULL);
|
rpl_tools_init(NULL);
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "contiki.h"
|
#include "contiki.h"
|
||||||
|
#include "net/ipv6/uip-ds6.h"
|
||||||
#include "net/rpl/rpl.h"
|
#include "net/rpl/rpl.h"
|
||||||
#include "tools/rpl-tools.h"
|
#include "tools/rpl-tools.h"
|
||||||
|
|
||||||
|
@ -98,7 +99,7 @@ PROCESS_THREAD(node_process, ev, data)
|
||||||
|
|
||||||
if(is_coordinator) {
|
if(is_coordinator) {
|
||||||
uip_ipaddr_t prefix;
|
uip_ipaddr_t prefix;
|
||||||
uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&prefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_tools_init(&prefix);
|
rpl_tools_init(&prefix);
|
||||||
} else {
|
} else {
|
||||||
rpl_tools_init(NULL);
|
rpl_tools_init(NULL);
|
||||||
|
|
|
@ -16,7 +16,7 @@ $(CONTIKI)/tools/tunslip6: $(CONTIKI)/tools/tunslip6.c
|
||||||
(cd $(CONTIKI)/tools && $(MAKE) tunslip6)
|
(cd $(CONTIKI)/tools && $(MAKE) tunslip6)
|
||||||
|
|
||||||
connect-router: $(CONTIKI)/tools/tunslip6
|
connect-router: $(CONTIKI)/tools/tunslip6
|
||||||
sudo $(CONTIKI)/tools/tunslip6 aaaa::1/64
|
sudo $(CONTIKI)/tools/tunslip6 fd00::1/64
|
||||||
|
|
||||||
connect-router-cooja: $(CONTIKI)/tools/tunslip6
|
connect-router-cooja: $(CONTIKI)/tools/tunslip6
|
||||||
sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 aaaa::1/64
|
sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 fd00::1/64
|
||||||
|
|
|
@ -107,7 +107,7 @@ set_global_address(void)
|
||||||
{
|
{
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
}
|
}
|
||||||
|
@ -123,7 +123,7 @@ set_connection_address(uip_ipaddr_t *ipaddr)
|
||||||
PRINTF("UDP client failed to parse address '%s'\n", QUOTEME(UDP_CONNECTION_ADDR));
|
PRINTF("UDP client failed to parse address '%s'\n", QUOTEME(UDP_CONNECTION_ADDR));
|
||||||
}
|
}
|
||||||
#elif UIP_CONF_ROUTER
|
#elif UIP_CONF_ROUTER
|
||||||
uip_ip6addr(ipaddr,0xaaaa,0,0,0,0x0280,0xe102,0x0000,0x008a);
|
uip_ip6addr(ipaddr,UIP_DS6_DEFAULT_PREFIX,0,0,0,0x0280,0xe102,0x0000,0x008a);
|
||||||
#else
|
#else
|
||||||
uip_ip6addr(ipaddr,0xfe80,0,0,0,0x0280,0xe102,0x0000,0x008a);
|
uip_ip6addr(ipaddr,0xfe80,0,0,0,0x0280,0xe102,0x0000,0x008a);
|
||||||
#endif /* UDP_CONNECTION_ADDR */
|
#endif /* UDP_CONNECTION_ADDR */
|
||||||
|
|
|
@ -95,7 +95,7 @@ PROCESS_THREAD(udp_server_process, ev, data)
|
||||||
PRINTF("UDP server started\n");
|
PRINTF("UDP server started\n");
|
||||||
|
|
||||||
#if UIP_CONF_ROUTER
|
#if UIP_CONF_ROUTER
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
#endif /* UIP_CONF_ROUTER */
|
#endif /* UIP_CONF_ROUTER */
|
||||||
|
|
|
@ -54,7 +54,7 @@ set_global_address(void)
|
||||||
{
|
{
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ PROCESS_THREAD(example_servreg_server_process, ev, data)
|
||||||
PROCESS_BEGIN();
|
PROCESS_BEGIN();
|
||||||
|
|
||||||
/* Set a global address. */
|
/* Set a global address. */
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ set_global_address(void)
|
||||||
{
|
{
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,7 @@ set_connection_address(uip_ipaddr_t *ipaddr)
|
||||||
#if RESOLV_CONF_SUPPORTS_MDNS
|
#if RESOLV_CONF_SUPPORTS_MDNS
|
||||||
#define UDP_CONNECTION_ADDR contiki-udp-server.local
|
#define UDP_CONNECTION_ADDR contiki-udp-server.local
|
||||||
#elif UIP_CONF_ROUTER
|
#elif UIP_CONF_ROUTER
|
||||||
#define UDP_CONNECTION_ADDR aaaa:0:0:0:0212:7404:0004:0404
|
#define UDP_CONNECTION_ADDR fd00:0:0:0:0212:7404:0004:0404
|
||||||
#else
|
#else
|
||||||
#define UDP_CONNECTION_ADDR fe80:0:0:0:6466:6666:6666:6666
|
#define UDP_CONNECTION_ADDR fe80:0:0:0:6466:6666:6666:6666
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -99,7 +99,7 @@ PROCESS_THREAD(udp_server_process, ev, data)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if UIP_CONF_ROUTER
|
#if UIP_CONF_ROUTER
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
#endif /* UIP_CONF_ROUTER */
|
#endif /* UIP_CONF_ROUTER */
|
||||||
|
|
|
@ -74,7 +74,7 @@ set_global_address(void)
|
||||||
int i;
|
int i;
|
||||||
uint8_t state;
|
uint8_t state;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ create_rpl_dag(uip_ipaddr_t *ipaddr)
|
||||||
|
|
||||||
rpl_set_root(RPL_DEFAULT_INSTANCE, ipaddr);
|
rpl_set_root(RPL_DEFAULT_INSTANCE, ipaddr);
|
||||||
dag = rpl_get_any_dag();
|
dag = rpl_get_any_dag();
|
||||||
uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&prefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_set_prefix(dag, &prefix, 64);
|
rpl_set_prefix(dag, &prefix, 64);
|
||||||
printf("created a new RPL dag\n");
|
printf("created a new RPL dag\n");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -41,7 +41,7 @@ On linux you can set up router advertisements as follows:
|
||||||
|
|
||||||
- You might need to add a route:
|
- You might need to add a route:
|
||||||
|
|
||||||
ip -6 route add aaaa:0000:0000:0000:0206:98ff:fe00:0232/64 dev tap0
|
ip -6 route add fd00:0000:0000:0000:0206:98ff:fe00:0232/64 dev tap0
|
||||||
|
|
||||||
- Then configure a global address by sending a router advertisement (RA) with a
|
- Then configure a global address by sending a router advertisement (RA) with a
|
||||||
prefix option. You can use radvd for example to generate such a packet.
|
prefix option. You can use radvd for example to generate such a packet.
|
||||||
|
|
|
@ -18,10 +18,10 @@ $(CONTIKI)/tools/tunslip6: $(CONTIKI)/tools/tunslip6.c
|
||||||
(cd $(CONTIKI)/tools && $(MAKE) tunslip6)
|
(cd $(CONTIKI)/tools && $(MAKE) tunslip6)
|
||||||
|
|
||||||
connect-router: $(CONTIKI)/tools/tunslip6
|
connect-router: $(CONTIKI)/tools/tunslip6
|
||||||
sudo $(CONTIKI)/tools/tunslip6 aaaa::1/64
|
sudo $(CONTIKI)/tools/tunslip6 fd00::1/64
|
||||||
|
|
||||||
connect-router-cooja: $(CONTIKI)/tools/tunslip6
|
connect-router-cooja: $(CONTIKI)/tools/tunslip6
|
||||||
sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 aaaa::1/64
|
sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 fd00::1/64
|
||||||
|
|
||||||
CUSTOM_RULE_LINK=1
|
CUSTOM_RULE_LINK=1
|
||||||
%.$(TARGET): %.co $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) contiki-$(TARGET).a $(LD) $(LDFLAGS) $(TARGET_STARTFILES) ${filter-out %.a,$^} ${filter %.a,$^} $(TARGET_LIBFILES) -o $@ -lm
|
%.$(TARGET): %.co $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) contiki-$(TARGET).a $(LD) $(LDFLAGS) $(TARGET_STARTFILES) ${filter-out %.a,$^} ${filter %.a,$^} $(TARGET_LIBFILES) -o $@ -lm
|
||||||
|
|
|
@ -19,8 +19,8 @@ To test the example in COOJA under Linux
|
||||||
|
|
||||||
3. You should now be able to browse to the nodes using your web browser:
|
3. You should now be able to browse to the nodes using your web browser:
|
||||||
|
|
||||||
Router: http://[aaaa::0212:7401:0001:0101]/
|
Router: http://[fd00::0212:7401:0001:0101]/
|
||||||
Node 2: http://[aaaa::0212:7402:0002:0202]/
|
Node 2: http://[fd00::0212:7402:0002:0202]/
|
||||||
|
|
||||||
|
|
||||||
To run the example on real nodes under Linux
|
To run the example on real nodes under Linux
|
||||||
|
|
|
@ -45,13 +45,13 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/* The address of the server to register the services for this node */
|
/* The address of the server to register the services for this node */
|
||||||
#define SERVER "aaaa::1"
|
#define SERVER "fd00::1"
|
||||||
|
|
||||||
/* This command registers two services (/0 and /1) to turn the leds on or off */
|
/* This command registers two services (/0 and /1) to turn the leds on or off */
|
||||||
#define REGISTER_COMMAND "/r?p=0&d=Turn%20off%20leds&p=1&d=Turn%20on%20leds"
|
#define REGISTER_COMMAND "/r?p=0&d=Turn%20off%20leds&p=1&d=Turn%20on%20leds"
|
||||||
|
|
||||||
/* The address of the other node to control */
|
/* The address of the other node to control */
|
||||||
#define OTHER_NODE "aaaa::212:7403:3:303"
|
#define OTHER_NODE "fd00::212:7403:3:303"
|
||||||
|
|
||||||
/* The commands to send to the other node */
|
/* The commands to send to the other node */
|
||||||
#define SET_LEDS_ON "/1"
|
#define SET_LEDS_ON "/1"
|
||||||
|
|
|
@ -95,7 +95,7 @@ raven_ping6(void)
|
||||||
/* ping ipv6.google.com*/
|
/* ping ipv6.google.com*/
|
||||||
uip_ip6addr(&ping_addr,0x2001,0x420,0x5FFF,0x7D,0x2D0,0xB7FF,0xFE23,0xE6DB);
|
uip_ip6addr(&ping_addr,0x2001,0x420,0x5FFF,0x7D,0x2D0,0xB7FF,0xFE23,0xE6DB);
|
||||||
//uip_ip6addr(&ping_addr, 0x2001, 0x4860, 0, 0x2001, 0, 0, 0, 0x68);
|
//uip_ip6addr(&ping_addr, 0x2001, 0x4860, 0, 0x2001, 0, 0, 0, 0x68);
|
||||||
//uip_ip6addr(&ping_addr, 0xaaaa, 0, 0, 0, 0, 0, 0, 1);
|
//uip_ip6addr(&ping_addr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 1);
|
||||||
|
|
||||||
UIP_IP_BUF->vtc = 0x60;
|
UIP_IP_BUF->vtc = 0x60;
|
||||||
UIP_IP_BUF->tcflow = 1;
|
UIP_IP_BUF->tcflow = 1;
|
||||||
|
|
|
@ -151,10 +151,10 @@ typedef unsigned short uip_stats_t;
|
||||||
#define UIP_CONF_LLH_LEN 0
|
#define UIP_CONF_LLH_LEN 0
|
||||||
|
|
||||||
/* 10 bytes per stateful address context - see sicslowpan.c */
|
/* 10 bytes per stateful address context - see sicslowpan.c */
|
||||||
/* Default is 1 context with prefix aaaa::/64 */
|
/* Default is 1 context with prefix fd00::/64 */
|
||||||
/* These must agree with all the other nodes or there will be a failure to communicate! */
|
/* These must agree with all the other nodes or there will be a failure to communicate! */
|
||||||
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 {addr_contexts[0].prefix[0]=0xaa;addr_contexts[0].prefix[1]=0xaa;}
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 {addr_contexts[0].prefix[0]=UIP_DS6_DEFAULT_PREFIX_0;addr_contexts[0].prefix[1]=UIP_DS6_DEFAULT_PREFIX_1;}
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_1 {addr_contexts[1].prefix[0]=0xbb;addr_contexts[1].prefix[1]=0xbb;}
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_1 {addr_contexts[1].prefix[0]=0xbb;addr_contexts[1].prefix[1]=0xbb;}
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_2 {addr_contexts[2].prefix[0]=0x20;addr_contexts[2].prefix[1]=0x01;addr_contexts[2].prefix[2]=0x49;addr_contexts[2].prefix[3]=0x78,addr_contexts[2].prefix[4]=0x1d;addr_contexts[2].prefix[5]=0xb1;}
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_2 {addr_contexts[2].prefix[0]=0x20;addr_contexts[2].prefix[1]=0x01;addr_contexts[2].prefix[2]=0x49;addr_contexts[2].prefix[3]=0x78,addr_contexts[2].prefix[4]=0x1d;addr_contexts[2].prefix[5]=0xb1;}
|
||||||
|
|
||||||
|
|
|
@ -340,7 +340,7 @@ uint8_t i;
|
||||||
#if 0
|
#if 0
|
||||||
{
|
{
|
||||||
uip_ip6addr_t ipaddr;
|
uip_ip6addr_t ipaddr;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
// uip_ds6_prefix_add(&ipaddr,64,0);
|
// uip_ds6_prefix_add(&ipaddr,64,0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,7 +95,7 @@ raven_ping6(void)
|
||||||
/* ping ipv6.google.com*/
|
/* ping ipv6.google.com*/
|
||||||
uip_ip6addr(&ping_addr,0x2001,0x420,0x5FFF,0x7D,0x2D0,0xB7FF,0xFE23,0xE6DB);
|
uip_ip6addr(&ping_addr,0x2001,0x420,0x5FFF,0x7D,0x2D0,0xB7FF,0xFE23,0xE6DB);
|
||||||
//uip_ip6addr(&ping_addr, 0x2001, 0x4860, 0, 0x2001, 0, 0, 0, 0x68);
|
//uip_ip6addr(&ping_addr, 0x2001, 0x4860, 0, 0x2001, 0, 0, 0, 0x68);
|
||||||
//uip_ip6addr(&ping_addr, 0xaaaa, 0, 0, 0, 0, 0, 0, 1);
|
//uip_ip6addr(&ping_addr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 1);
|
||||||
|
|
||||||
UIP_IP_BUF->vtc = 0x60;
|
UIP_IP_BUF->vtc = 0x60;
|
||||||
UIP_IP_BUF->tcflow = 1;
|
UIP_IP_BUF->tcflow = 1;
|
||||||
|
|
|
@ -167,10 +167,10 @@ typedef unsigned short uip_stats_t;
|
||||||
#define UIP_CONF_LLH_LEN 0
|
#define UIP_CONF_LLH_LEN 0
|
||||||
|
|
||||||
/* 10 bytes per stateful address context - see sicslowpan.c */
|
/* 10 bytes per stateful address context - see sicslowpan.c */
|
||||||
/* Default is 1 context with prefix aaaa::/64 */
|
/* Default is 1 context with prefix fd00::/64 */
|
||||||
/* These must agree with all the other nodes or there will be a failure to communicate! */
|
/* These must agree with all the other nodes or there will be a failure to communicate! */
|
||||||
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 {addr_contexts[0].prefix[0]=0xaa;addr_contexts[0].prefix[1]=0xaa;}
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 {addr_contexts[0].prefix[0]=UIP_DS6_DEFAULT_PREFIX_0;addr_contexts[0].prefix[1]=UIP_DS6_DEFAULT_PREFIX_1;}
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_1 {addr_contexts[1].prefix[0]=0xbb;addr_contexts[1].prefix[1]=0xbb;}
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_1 {addr_contexts[1].prefix[0]=0xbb;addr_contexts[1].prefix[1]=0xbb;}
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_2 {addr_contexts[2].prefix[0]=0x20;addr_contexts[2].prefix[1]=0x01;addr_contexts[2].prefix[2]=0x49;addr_contexts[2].prefix[3]=0x78,addr_contexts[2].prefix[4]=0x1d;addr_contexts[2].prefix[5]=0xb1;}
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_2 {addr_contexts[2].prefix[0]=0x20;addr_contexts[2].prefix[1]=0x01;addr_contexts[2].prefix[2]=0x49;addr_contexts[2].prefix[3]=0x78,addr_contexts[2].prefix[4]=0x1d;addr_contexts[2].prefix[5]=0xb1;}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ init_net(void)
|
||||||
|
|
||||||
/* uip_ipaddr_t ipprefix;
|
/* uip_ipaddr_t ipprefix;
|
||||||
|
|
||||||
uip_ip6addr(&ipprefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipprefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
|
|
||||||
uip_netif_addr_add(&ipprefix, UIP_DEFAULT_PREFIX_LEN, 0, AUTOCONF);
|
uip_netif_addr_add(&ipprefix, UIP_DEFAULT_PREFIX_LEN, 0, AUTOCONF);
|
||||||
uip_nd6_prefix_add(&ipprefix, UIP_DEFAULT_PREFIX_LEN, 0);
|
uip_nd6_prefix_add(&ipprefix, UIP_DEFAULT_PREFIX_LEN, 0);
|
||||||
|
|
|
@ -357,7 +357,7 @@ uint8_t i;
|
||||||
#if 0
|
#if 0
|
||||||
{
|
{
|
||||||
uip_ip6addr_t ipaddr;
|
uip_ip6addr_t ipaddr;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
// uip_ds6_prefix_add(&ipaddr,64,0);
|
// uip_ds6_prefix_add(&ipaddr,64,0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,10 +236,10 @@ extern void mac_log_802_15_4_rx(const uint8_t* buffer, size_t total_len);
|
||||||
#define UIP_CONF_BUFSIZE UIP_LINK_MTU + UIP_LLH_LEN + 4 /* +4 for vlan on macosx */
|
#define UIP_CONF_BUFSIZE UIP_LINK_MTU + UIP_LLH_LEN + 4 /* +4 for vlan on macosx */
|
||||||
|
|
||||||
/* 10 bytes per stateful address context - see sicslowpan.c */
|
/* 10 bytes per stateful address context - see sicslowpan.c */
|
||||||
/* Default is 1 context with prefix aaaa::/64 */
|
/* Default is 1 context with prefix fd00::/64 */
|
||||||
/* These must agree with all the other nodes or there will be a failure to communicate! */
|
/* These must agree with all the other nodes or there will be a failure to communicate! */
|
||||||
#//define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
#//define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 {addr_contexts[0].prefix[0]=0xaa;addr_contexts[0].prefix[1]=0xaa;}
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 {addr_contexts[0].prefix[0]=UIP_DS6_DEFAULT_PREFIX_0;addr_contexts[0].prefix[1]=UIP_DS6_DEFAULT_PREFIX_1;}
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_1 {addr_contexts[1].prefix[0]=0xbb;addr_contexts[1].prefix[1]=0xbb;}
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_1 {addr_contexts[1].prefix[0]=0xbb;addr_contexts[1].prefix[1]=0xbb;}
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_2 {addr_contexts[2].prefix[0]=0x20;addr_contexts[2].prefix[1]=0x01;addr_contexts[2].prefix[2]=0x49;addr_contexts[2].prefix[3]=0x78,addr_contexts[2].prefix[4]=0x1d;addr_contexts[2].prefix[5]=0xb1;}
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_2 {addr_contexts[2].prefix[0]=0x20;addr_contexts[2].prefix[1]=0x01;addr_contexts[2].prefix[2]=0x49;addr_contexts[2].prefix[3]=0x78,addr_contexts[2].prefix[4]=0x1d;addr_contexts[2].prefix[5]=0xb1;}
|
||||||
|
|
||||||
|
|
|
@ -259,8 +259,8 @@
|
||||||
/* Define our IPv6 prefixes/contexts here */
|
/* Define our IPv6 prefixes/contexts here */
|
||||||
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 { \
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 { \
|
||||||
addr_contexts[0].prefix[0] = 0xaa; \
|
addr_contexts[0].prefix[0] = UIP_DS6_DEFAULT_PREFIX_0; \
|
||||||
addr_contexts[0].prefix[1] = 0xaa; \
|
addr_contexts[0].prefix[1] = UIP_DS6_DEFAULT_PREFIX_1; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAC_CONF_CHANNEL_CHECK_RATE 8
|
#define MAC_CONF_CHANNEL_CHECK_RATE 8
|
||||||
|
|
|
@ -308,14 +308,14 @@ Start by building a border router from `examples/ipv6/rpl-border-router`
|
||||||
* Connect device to Linux or OS X over its XDS port.
|
* Connect device to Linux or OS X over its XDS port.
|
||||||
* `cd $(CONTIKI)/tools`
|
* `cd $(CONTIKI)/tools`
|
||||||
* `make tunslip6`
|
* `make tunslip6`
|
||||||
* `sudo $(CONTIKI)/tools/tunslip6 -s /dev/<device> aaaa::1/64`
|
* `sudo $(CONTIKI)/tools/tunslip6 -s /dev/<device> fd00::1/64`
|
||||||
* The router will print its own IPv6 address. Use it below.
|
* The router will print its own IPv6 address. Use it below.
|
||||||
|
|
||||||
Got configuration message of type P
|
Got configuration message of type P
|
||||||
Setting prefix aaaa::
|
Setting prefix fd00::
|
||||||
created a new RPL dag
|
created a new RPL dag
|
||||||
Server IPv6 addresses:
|
Server IPv6 addresses:
|
||||||
aaaa::212:4b00:89ab:cdef
|
fd00::212:4b00:89ab:cdef
|
||||||
fe80::212:4b00:89ab:cdef
|
fe80::212:4b00:89ab:cdef
|
||||||
|
|
||||||
* `ping6 <address>`
|
* `ping6 <address>`
|
||||||
|
|
|
@ -472,8 +472,8 @@ typedef uint32_t rtimer_clock_t;
|
||||||
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
||||||
#ifndef SICSLOWPAN_CONF_ADDR_CONTEXT_0
|
#ifndef SICSLOWPAN_CONF_ADDR_CONTEXT_0
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 { \
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 { \
|
||||||
addr_contexts[0].prefix[0] = 0xaa; \
|
addr_contexts[0].prefix[0] = UIP_DS6_DEFAULT_PREFIX_0; \
|
||||||
addr_contexts[0].prefix[1] = 0xaa; \
|
addr_contexts[0].prefix[1] = UIP_DS6_DEFAULT_PREFIX_1; \
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -217,7 +217,7 @@ contiki_init(void)
|
||||||
printf("%02x%02x\n", lladdr->ipaddr.u8[14],
|
printf("%02x%02x\n", lladdr->ipaddr.u8[14],
|
||||||
lladdr->ipaddr.u8[15]);
|
lladdr->ipaddr.u8[15]);
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
||||||
printf("Tentative global IPv6 address ");
|
printf("Tentative global IPv6 address ");
|
||||||
|
|
|
@ -304,7 +304,7 @@ contiki_init()
|
||||||
if(1) {
|
if(1) {
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
int i;
|
int i;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
||||||
printf("Tentative global IPv6 address ");
|
printf("Tentative global IPv6 address ");
|
||||||
|
|
|
@ -71,9 +71,9 @@ the SLIP tunnel on the host machine:
|
||||||
|
|
||||||
sudo contiki/tools/tunslip6 \
|
sudo contiki/tools/tunslip6 \
|
||||||
-s /dev/serial/by-id/usb-SEGGER_J-Link_000541011111-if00 \
|
-s /dev/serial/by-id/usb-SEGGER_J-Link_000541011111-if00 \
|
||||||
-B 115200 -v3 aaaa::1/64
|
-B 115200 -v3 fd00::1/64
|
||||||
|
|
||||||
Open the border router's home page at: http://[aaaa::3230:3030:3132:3334]/
|
Open the border router's home page at: http://[fd00::3230:3030:3132:3334]/
|
||||||
|
|
||||||
#### Web Server ####
|
#### Web Server ####
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ router:
|
||||||
adi-cm3sd/cm3sd.py -a contiki/examples/webserver-ipv6/webserver6.ev-aducrf101mkxz.hex \
|
adi-cm3sd/cm3sd.py -a contiki/examples/webserver-ipv6/webserver6.ev-aducrf101mkxz.hex \
|
||||||
/dev/serial/by-id/usb-SEGGER_J-Link_000541022222-if00
|
/dev/serial/by-id/usb-SEGGER_J-Link_000541022222-if00
|
||||||
|
|
||||||
Open the web server's home page at: http://[aaaa::3230:3030:3536:3738]/
|
Open the web server's home page at: http://[fd00::3230:3030:3536:3738]/
|
||||||
|
|
||||||
On Windows:
|
On Windows:
|
||||||
-----------
|
-----------
|
||||||
|
|
|
@ -51,9 +51,9 @@ Build and run the SLIP tunnel on the host machine.
|
||||||
Here it is assumed that the Secondary UART USB port (J3) is attached to /dev/ttyUSB1:
|
Here it is assumed that the Secondary UART USB port (J3) is attached to /dev/ttyUSB1:
|
||||||
|
|
||||||
make -C contiki/tools tunslip6
|
make -C contiki/tools tunslip6
|
||||||
sudo contiki/tools/tunslip6 -B 38400 -s /dev/ttyUSB1 -v3 aaaa::1/64
|
sudo contiki/tools/tunslip6 -B 38400 -s /dev/ttyUSB1 -v3 fd00::1/64
|
||||||
|
|
||||||
Open the border router home page at http://[aaaa::302:304:506:708]/
|
Open the border router home page at http://[fd00::302:304:506:708]/
|
||||||
|
|
||||||
Build and run the IPv6 web server example on another eval board.
|
Build and run the IPv6 web server example on another eval board.
|
||||||
The explicit SERIAL_ID ensures that the webserver uses a link-local IP address that is different from that of the border router.
|
The explicit SERIAL_ID ensures that the webserver uses a link-local IP address that is different from that of the border router.
|
||||||
|
@ -61,7 +61,7 @@ The explicit SERIAL_ID ensures that the webserver uses a link-local IP address t
|
||||||
make -C contiki/examples/webserver-ipv6 TARGET=eval-adf7xxxmb4z SERIAL_ID='"\x01\x02\x03\x04\x05\x06\x07\x09"' webserver6.eval-adf7xxxmb4z.srec
|
make -C contiki/examples/webserver-ipv6 TARGET=eval-adf7xxxmb4z SERIAL_ID='"\x01\x02\x03\x04\x05\x06\x07\x09"' webserver6.eval-adf7xxxmb4z.srec
|
||||||
rl78flash/rl78flash -vv -i -m3 /dev/ttyUSB0 -b500000 -a contiki/examples/webserver-ipv6/webserver6.eval-adf7xxxmb4z.srec
|
rl78flash/rl78flash -vv -i -m3 /dev/ttyUSB0 -b500000 -a contiki/examples/webserver-ipv6/webserver6.eval-adf7xxxmb4z.srec
|
||||||
|
|
||||||
Open the web server's home page at http://[aaaa::7a30:3178:3032:7830]
|
Open the web server's home page at http://[fd00::7a30:3178:3032:7830]
|
||||||
|
|
||||||
|
|
||||||
On Windows:
|
On Windows:
|
||||||
|
|
|
@ -236,7 +236,7 @@ main(int argc, char **argv)
|
||||||
if(!UIP_CONF_IPV6_RPL) {
|
if(!UIP_CONF_IPV6_RPL) {
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
int i;
|
int i;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
||||||
printf("Tentative global IPv6 address ");
|
printf("Tentative global IPv6 address ");
|
||||||
|
|
|
@ -226,7 +226,7 @@ start_uip6(void)
|
||||||
if(!UIP_CONF_IPV6_RPL) {
|
if(!UIP_CONF_IPV6_RPL) {
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
int i;
|
int i;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
||||||
PRINTF("Tentative global IPv6 address ");
|
PRINTF("Tentative global IPv6 address ");
|
||||||
|
|
|
@ -214,7 +214,7 @@ main(void)
|
||||||
if(!UIP_CONF_IPV6_RPL) {
|
if(!UIP_CONF_IPV6_RPL) {
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
int i;
|
int i;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
||||||
printf("Tentative global IPv6 address ");
|
printf("Tentative global IPv6 address ");
|
||||||
|
|
|
@ -177,7 +177,7 @@ init_net(void)
|
||||||
if(!UIP_CONF_IPV6_RPL) {
|
if(!UIP_CONF_IPV6_RPL) {
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
int i;
|
int i;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
||||||
printf_P(PSTR("Tentative global IPv6 address "));
|
printf_P(PSTR("Tentative global IPv6 address "));
|
||||||
|
|
|
@ -289,7 +289,7 @@ main(int argc, char **argv)
|
||||||
#ifdef HARD_CODED_ADDRESS
|
#ifdef HARD_CODED_ADDRESS
|
||||||
uiplib_ipaddrconv(HARD_CODED_ADDRESS, &ipaddr);
|
uiplib_ipaddrconv(HARD_CODED_ADDRESS, &ipaddr);
|
||||||
#else
|
#else
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
#endif
|
#endif
|
||||||
if((ipaddr.u16[0] != 0) ||
|
if((ipaddr.u16[0] != 0) ||
|
||||||
(ipaddr.u16[1] != 0) ||
|
(ipaddr.u16[1] != 0) ||
|
||||||
|
|
|
@ -330,7 +330,7 @@ main(int argc, char **argv)
|
||||||
if(!UIP_CONF_IPV6_RPL) {
|
if(!UIP_CONF_IPV6_RPL) {
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
int i;
|
int i;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
||||||
PRINTF("Tentative global IPv6 address ");
|
PRINTF("Tentative global IPv6 address ");
|
||||||
|
|
|
@ -324,7 +324,7 @@ main(int argc, char **argv)
|
||||||
if(!UIP_CONF_IPV6_RPL) {
|
if(!UIP_CONF_IPV6_RPL) {
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
int i;
|
int i;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
||||||
printf("Tentative global IPv6 address ");
|
printf("Tentative global IPv6 address ");
|
||||||
|
|
|
@ -345,7 +345,7 @@ main(int argc, char **argv)
|
||||||
if(!UIP_CONF_IPV6_RPL) {
|
if(!UIP_CONF_IPV6_RPL) {
|
||||||
uip_ipaddr_t ipaddr;
|
uip_ipaddr_t ipaddr;
|
||||||
int i;
|
int i;
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_TENTATIVE);
|
||||||
printf("Tentative global IPv6 address ");
|
printf("Tentative global IPv6 address ");
|
||||||
|
|
|
@ -540,8 +540,8 @@ typedef uint32_t rtimer_clock_t;
|
||||||
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 1
|
||||||
#ifndef SICSLOWPAN_CONF_ADDR_CONTEXT_0
|
#ifndef SICSLOWPAN_CONF_ADDR_CONTEXT_0
|
||||||
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 { \
|
#define SICSLOWPAN_CONF_ADDR_CONTEXT_0 { \
|
||||||
addr_contexts[0].prefix[0] = 0xaa; \
|
addr_contexts[0].prefix[0] = UIP_DS6_DEFAULT_PREFIX_0; \
|
||||||
addr_contexts[0].prefix[1] = 0xaa; \
|
addr_contexts[0].prefix[1] = UIP_DS6_DEFAULT_PREFIX_1; \
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ PROCESS_THREAD(udp_process, ev, data)
|
||||||
|
|
||||||
PROCESS_BEGIN();
|
PROCESS_BEGIN();
|
||||||
|
|
||||||
uip_ip6addr(&addr, 0xaaaa, 0, 0, 0, 0, 0, 0, 2);
|
uip_ip6addr(&addr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 2);
|
||||||
uip_ds6_addr_add(&addr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&addr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
simple_udp_register(&broadcast_connection, UDP_PORT,
|
simple_udp_register(&broadcast_connection, UDP_PORT,
|
||||||
|
|
|
@ -40,12 +40,12 @@ PROCESS_THREAD(udp_process, ev, data)
|
||||||
|
|
||||||
PROCESS_BEGIN();
|
PROCESS_BEGIN();
|
||||||
|
|
||||||
uip_ip6addr(&addr, 0xaaaa, 0, 0, 0, 0, 0, 0, 3);
|
uip_ip6addr(&addr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 3);
|
||||||
uip_ds6_addr_add(&addr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&addr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
rpl_set_root(RPL_DEFAULT_INSTANCE, &addr);
|
rpl_set_root(RPL_DEFAULT_INSTANCE, &addr);
|
||||||
/* dag = rpl_get_any_dag();
|
/* dag = rpl_get_any_dag();
|
||||||
uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&prefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_set_prefix(dag, &prefix, 64);*/
|
rpl_set_prefix(dag, &prefix, 64);*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ PROCESS_THREAD(udp_process, ev, data)
|
||||||
etimer_reset(&periodic_timer);
|
etimer_reset(&periodic_timer);
|
||||||
|
|
||||||
printf("Sending unicast\n");
|
printf("Sending unicast\n");
|
||||||
uip_ip6addr(&addr, 0xaaaa, 0, 0, 0, 0, 0, 0, 2);
|
uip_ip6addr(&addr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 2);
|
||||||
simple_udp_sendto(&broadcast_connection, buf, sizeof(buf), &addr);
|
simple_udp_sendto(&broadcast_connection, buf, sizeof(buf), &addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ set_global_address(void)
|
||||||
int i;
|
int i;
|
||||||
uint8_t state;
|
uint8_t state;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ set_global_address(void)
|
||||||
int i;
|
int i;
|
||||||
uint8_t state;
|
uint8_t state;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ create_rpl_dag(uip_ipaddr_t *ipaddr)
|
||||||
|
|
||||||
rpl_set_root(RPL_DEFAULT_INSTANCE, ipaddr);
|
rpl_set_root(RPL_DEFAULT_INSTANCE, ipaddr);
|
||||||
dag = rpl_get_any_dag();
|
dag = rpl_get_any_dag();
|
||||||
uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&prefix, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
rpl_set_prefix(dag, &prefix, 64);
|
rpl_set_prefix(dag, &prefix, 64);
|
||||||
PRINTF("created a new RPL dag\n");
|
PRINTF("created a new RPL dag\n");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -72,7 +72,7 @@ set_global_address(void)
|
||||||
int i;
|
int i;
|
||||||
uint8_t state;
|
uint8_t state;
|
||||||
|
|
||||||
uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
|
uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0);
|
||||||
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr);
|
||||||
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF);
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ PROCESS_THREAD(sender_node_process, ev, data)
|
||||||
|
|
||||||
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&send_timer));
|
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&send_timer));
|
||||||
|
|
||||||
uip_ip6addr(&addr, 0xaaaa, 0, 0, 0, 0x0201, 0x001, 0x001, 0x001);
|
uip_ip6addr(&addr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0x0201, 0x001, 0x001, 0x001);
|
||||||
|
|
||||||
{
|
{
|
||||||
static unsigned int message_number;
|
static unsigned int message_number;
|
||||||
|
|
|
@ -181,14 +181,14 @@ PROCESS_CONF_NO_PROCESS_NAMES=1
|
||||||
|
|
||||||
The test script communicates with the REST server via the RPL border router using external commands.
|
The test script communicates with the REST server via the RPL border router using external commands.
|
||||||
(* $ make connect-router-cooja)
|
(* $ make connect-router-cooja)
|
||||||
* $ ping6 -c 10 -I tun0 aaaa::212:7401:1:101
|
* $ ping6 -c 10 -I tun0 fd00::212:7401:1:101
|
||||||
* $ ping6 -c 10 -I tun0 aaaa::212:7402:2:202
|
* $ ping6 -c 10 -I tun0 fd00::212:7402:2:202
|
||||||
* $ wget -t 1 -T 10 -O - http://[aaaa::212:7402:2:202]
|
* $ wget -t 1 -T 10 -O - http://[fd00::212:7402:2:202]
|
||||||
|
|
||||||
The final test uses the CoAP Java implementation by Matthias Kovatsch, downloaded from:
|
The final test uses the CoAP Java implementation by Matthias Kovatsch, downloaded from:
|
||||||
https://github.com/mkovatsc/Californium/blob/master/run/ExampleClient.jar
|
https://github.com/mkovatsc/Californium/blob/master/run/ExampleClient.jar
|
||||||
* $ java -jar ExampleClient.jar DISCOVER coap://[aaaa::212:7402:2:202]
|
* $ java -jar ExampleClient.jar DISCOVER coap://[fd00::212:7402:2:202]
|
||||||
* $ java -jar ExampleClient.jar GET coap://[aaaa::212:7402:2:202]/hello</notes>
|
* $ java -jar ExampleClient.jar GET coap://[fd00::212:7402:2:202]/hello</notes>
|
||||||
<decorations>true</decorations>
|
<decorations>true</decorations>
|
||||||
</plugin_config>
|
</plugin_config>
|
||||||
<width>751</width>
|
<width>751</width>
|
||||||
|
|
|
@ -36,5 +36,5 @@ connect: ../../tapslip6
|
||||||
|
|
||||||
bridge:
|
bridge:
|
||||||
@sudo service radvd restart || echo radvd could not be restarted
|
@sudo service radvd restart || echo radvd could not be restarted
|
||||||
sudo route add -6 aaaa::/64 tap0
|
sudo route add -6 fd00::/64 tap0
|
||||||
sudo ip -6 address add aaaa::1/64 dev tap0
|
sudo ip -6 address add fd00::1/64 dev tap0
|
||||||
|
|
|
@ -14,9 +14,9 @@ rpl-border-router (the latter on Windows Vista and later only).
|
||||||
|
|
||||||
An example of usage with the RPL border router:
|
An example of usage with the RPL border router:
|
||||||
|
|
||||||
wpcapslip6 -s COMXX -b aaaa:: -a aaaa:1::1/128 02-00-00-00-00-01
|
wpcapslip6 -s COMXX -b fd00:: -a fd00:1::1/128 02-00-00-00-00-01
|
||||||
|
|
||||||
where 02-00-00-00-00-01 is the MAC address of the local network adapter.
|
where 02-00-00-00-00-01 is the MAC address of the local network adapter.
|
||||||
|
|
||||||
-a aaaa:1::1/128 can be omitted if an IP address is already set to the network
|
-a fd00:1::1/128 can be omitted if an IP address is already set to the network
|
||||||
adapter.
|
adapter.
|
||||||
|
|
|
@ -837,7 +837,7 @@ main(int argc, char **argv)
|
||||||
case 'h':
|
case 'h':
|
||||||
default:
|
default:
|
||||||
fprintf(stderr,"usage: %s [options] ipaddress\n", prog);
|
fprintf(stderr,"usage: %s [options] ipaddress\n", prog);
|
||||||
fprintf(stderr,"example: tunslip6 -L -v2 -s ttyUSB1 aaaa::1/64\n");
|
fprintf(stderr,"example: tunslip6 -L -v2 -s ttyUSB1 fd00::1/64\n");
|
||||||
fprintf(stderr,"Options are:\n");
|
fprintf(stderr,"Options are:\n");
|
||||||
#ifndef __APPLE__
|
#ifndef __APPLE__
|
||||||
fprintf(stderr," -B baudrate 9600,19200,38400,57600,115200 (default),230400,460800,921600\n");
|
fprintf(stderr," -B baudrate 9600,19200,38400,57600,115200 (default),230400,460800,921600\n");
|
||||||
|
|
Loading…
Reference in a new issue