From 15a5f27080a1c4c8f8212a636e2959373911afe5 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Mon, 1 Feb 2016 10:57:49 +0100 Subject: [PATCH] Adding TSCH to examples/jn516x/rpl --- examples/jn516x/rpl/common-conf.h | 71 ++++++++++++++++++++++++++++++- examples/jn516x/rpl/node/node.c | 2 +- 2 files changed, 71 insertions(+), 2 deletions(-) diff --git a/examples/jn516x/rpl/common-conf.h b/examples/jn516x/rpl/common-conf.h index 5c936ff7f..299fd0e79 100644 --- a/examples/jn516x/rpl/common-conf.h +++ b/examples/jn516x/rpl/common-conf.h @@ -36,8 +36,9 @@ #define MAC_CONFIG_NULLRDC 0 #define MAC_CONFIG_CONTIKIMAC 1 +#define MAC_CONFIG_TSCH 2 /* Select a MAC configuration */ -#define MAC_CONFIG MAC_CONFIG_NULLRDC +#define MAC_CONFIG MAC_CONFIG_TSCH #undef NETSTACK_CONF_MAC #undef NETSTACK_CONF_RDC @@ -57,6 +58,74 @@ #undef MICROMAC_CONF_AUTOACK #define MICROMAC_CONF_AUTOACK 1 +#elif MAC_CONFIG == MAC_CONFIG_TSCH + +/* Set to run orchestra */ +#ifndef WITH_ORCHESTRA +#define WITH_ORCHESTRA 0 +#endif /* WITH_ORCHESTRA */ + +/* Set to enable TSCH security */ +#ifndef WITH_SECURITY +#define WITH_SECURITY 0 +#endif /* WITH_SECURITY */ + +#define NETSTACK_CONF_MAC tschmac_driver +#define NETSTACK_CONF_RDC nordc_driver +#define NETSTACK_CONF_FRAMER framer_802154 + +/* IEEE802.15.4 frame version */ +#undef FRAME802154_CONF_VERSION +#define FRAME802154_CONF_VERSION FRAME802154_IEEE802154E_2012 + +/* TSCH and RPL callbacks */ +#define RPL_CALLBACK_PARENT_SWITCH tsch_rpl_callback_parent_switch +#define RPL_CALLBACK_NEW_DIO_INTERVAL tsch_rpl_callback_new_dio_interval +#define TSCH_CALLBACK_JOINING_NETWORK tsch_rpl_callback_joining_network +#define TSCH_CALLBACK_LEAVING_NETWORK tsch_rpl_callback_leaving_network + +/* TSCH logging. 0: disabled. 1: basic log. 2: with delayed + * log messages from interrupt */ +#undef TSCH_LOG_CONF_LEVEL +#define TSCH_LOG_CONF_LEVEL 2 + +/* Do not start TSCH at init, wait for NETSTACK_MAC.on() */ +#undef TSCH_CONF_AUTOSTART +#define TSCH_CONF_AUTOSTART 0 + +/* 6TiSCH minimal schedule length. + * Larger values result in less frequent active slots: reduces capacity and saves energy. */ +#undef TSCH_SCHEDULE_CONF_DEFAULT_LENGTH +#define TSCH_SCHEDULE_CONF_DEFAULT_LENGTH 3 + +#if WITH_SECURITY + +/* Enable security */ +#undef LLSEC802154_CONF_SECURITY_LEVEL +#define LLSEC802154_CONF_SECURITY_LEVEL 1 +/* TSCH uses explicit keys to identify k1 and k2 */ +#undef LLSEC802154_CONF_USES_EXPLICIT_KEYS +#define LLSEC802154_CONF_USES_EXPLICIT_KEYS 1 +/* TSCH uses the ASN rather than frame counter to construct the Nonce */ +#undef LLSEC802154_CONF_USES_FRAME_COUNTER +#define LLSEC802154_CONF_USES_FRAME_COUNTER 0 + +#endif /* WITH_SECURITY */ + +#if WITH_ORCHESTRA + +/* See apps/orchestra/README.md for more Orchestra configuration options */ +#define TSCH_SCHEDULE_CONF_WITH_6TISCH_MINIMAL 0 /* No 6TiSCH minimal schedule */ +#define TSCH_CONF_WITH_LINK_SELECTOR 1 /* Orchestra requires per-packet link selection */ +/* Orchestra callbacks */ +#define TSCH_CALLBACK_NEW_TIME_SOURCE orchestra_callback_new_time_source +#define TSCH_CALLBACK_PACKET_READY orchestra_callback_packet_ready +#define NETSTACK_CONF_ROUTING_NEIGHBOR_ADDED_CALLBACK orchestra_callback_child_added +#define NETSTACK_CONF_ROUTING_NEIGHBOR_REMOVED_CALLBACK orchestra_callback_child_removed + +#endif /* WITH_ORCHESTRA */ + + #else #error Unsupported MAC configuration diff --git a/examples/jn516x/rpl/node/node.c b/examples/jn516x/rpl/node/node.c index 143abc18f..59b812357 100644 --- a/examples/jn516x/rpl/node/node.c +++ b/examples/jn516x/rpl/node/node.c @@ -71,7 +71,7 @@ PROCESS_THREAD(node_process, ev, data) #if CONFIG_VIA_BUTTON { -#define CONFIG_WAIT_TIME 10 +#define CONFIG_WAIT_TIME 5 SENSORS_ACTIVATE(button_sensor); etimer_set(&et, CLOCK_SECOND * CONFIG_WAIT_TIME);