From bacdfcb253afec5ecb5aa3cfcdf98eb5305f5725 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Sat, 7 Apr 2018 14:54:07 +0200 Subject: [PATCH 01/31] Doxygen for tsch.h --- os/net/mac/tsch/tsch.h | 52 +++++++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/os/net/mac/tsch/tsch.h b/os/net/mac/tsch/tsch.h index 5f2289c66..4a153f464 100644 --- a/os/net/mac/tsch/tsch.h +++ b/os/net/mac/tsch/tsch.h @@ -180,21 +180,57 @@ PROCESS_NAME(tsch_pending_events_process); /********** Functions *********/ -/* The the TSCH join priority */ +/** + * Set the TSCH join priority (JP) + * + * \param jp the new join priority + */ void tsch_set_join_priority(uint8_t jp); -/* The period at which EBs are sent */ +/** + * Set the period at wich TSCH enhanced beacons (EBs) are sent. The period can + * not be set to exceed TSCH_MAX_EB_PERIOD. Set to 0 to stop sending EBs. + * Actual transmissions are jittered, spaced by a random number within + * [period*0.75, period[ + * + * \param period The period in Clock ticks. + */ void tsch_set_eb_period(uint32_t period); -/* The keep-alive timeout */ +/** + * Set the desynchronization timeout after which a node sends a unicasst + * keep-alive (KA) to its time source. Set to 0 to stop sending KAs. The + * actual timeout is a random number within + * [timeout*0.9, timeout[ + * + * \param timeout The timeout in Clock ticks. + */ void tsch_set_ka_timeout(uint32_t timeout); -/* Set the node as PAN coordinator */ +/** + * Set the node as PAN coordinator + * + * \param enable 1 to be coordinator, 0 to be a node + */ void tsch_set_coordinator(int enable); -/* Set the pan as secured or not */ +/** + * Enable/disable security. If done at the coordinator, the Information + * will be included in EBs, and all nodes will adopt the same security level. + * Enabling requires compilation with LLSEC802154_ENABLED set. + * Note: when LLSEC802154_ENABLED is set, nodes boot with security enabled. + * + * \param enable 1 to enable security, 0 to disable it + */ void tsch_set_pan_secured(int enable); -/* Set TSCH to send a keepalive message after TSCH_KEEPALIVE_TIMEOUT */ +/** + * Schedule a keep-alive transmission within [timeout*0.9, timeout[ + * @see tsch_set_ka_timeout + */ void tsch_schedule_keepalive(void); -/* Set TSCH to send a keepalive message immediately */ +/** + * Schedule a keep-alive immediately + */ void tsch_schedule_keepalive_immediately(void); -/* Leave the TSCH network */ +/** + * Leave the TSCH network we are currently in + */ void tsch_disassociate(void); #endif /* __TSCH_H__ */ From 533351f4dd8adf21437947cac245d45d9fbb86aa Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Sat, 7 Apr 2018 14:54:16 +0200 Subject: [PATCH 02/31] Doxygen for tsch-types.h --- os/net/mac/tsch/tsch-types.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/os/net/mac/tsch/tsch-types.h b/os/net/mac/tsch/tsch-types.h index 6bc8895a2..6eb0f19a9 100644 --- a/os/net/mac/tsch/tsch-types.h +++ b/os/net/mac/tsch/tsch-types.h @@ -53,10 +53,10 @@ /********** Data types **********/ -/* 802.15.4e link types. - * LINK_TYPE_ADVERTISING_ONLY is an extra one: for EB-only links. */ +/** \brief 802.15.4e link types. LINK_TYPE_ADVERTISING_ONLY is an extra one: for EB-only links. */ enum link_type { LINK_TYPE_NORMAL, LINK_TYPE_ADVERTISING, LINK_TYPE_ADVERTISING_ONLY }; +/** \brief An IEEE 802.15.4-2015 TSCH link (also called cell or slot) */ struct tsch_link { /* Links are stored as a list: "next" must be the first field */ struct tsch_link *next; @@ -83,7 +83,7 @@ struct tsch_link { void *data; }; -/* 802.15.4e slotframe (contains links) */ +/** \brief 802.15.4e slotframe (contains links) */ struct tsch_slotframe { /* Slotframes are stored as a list: "next" must be the first field */ struct tsch_slotframe *next; @@ -96,7 +96,7 @@ struct tsch_slotframe { LIST_STRUCT(links_list); }; -/* TSCH packet information */ +/** \brief TSCH packet information */ struct tsch_packet { struct queuebuf *qb; /* pointer to the queuebuf to be sent */ mac_callback_t sent; /* callback for this packet */ @@ -108,7 +108,7 @@ struct tsch_packet { uint8_t tsch_sync_ie_offset; /* Offset within the frame used for quick update of EB ASN and join priority */ }; -/* TSCH neighbor information */ +/** \brief TSCH neighbor information */ struct tsch_neighbor { /* Neighbors are stored as a list: "next" must be the first field */ struct tsch_neighbor *next; @@ -127,7 +127,7 @@ struct tsch_neighbor { struct ringbufindex tx_ringbuf; }; -/* TSCH timeslot timing elements. Used to index timeslot timing +/** \brief TSCH timeslot timing elements. Used to index timeslot timing * of different units, such as rtimer tick or micro-second */ enum tsch_timeslot_timing_elements { tsch_ts_cca_offset, @@ -145,7 +145,7 @@ enum tsch_timeslot_timing_elements { tsch_ts_elements_count, /* Not a timing element */ }; -/* Stores data about an incoming packet */ +/** \brief Stores data about an incoming packet */ struct input_packet { uint8_t payload[TSCH_PACKET_MAX_LEN]; /* Packet payload */ struct tsch_asn_t rx_asn; /* ASN when the packet was received */ From a48bf54668f80249762f7af912e631adb906eb94 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Sat, 7 Apr 2018 14:54:26 +0200 Subject: [PATCH 03/31] Doxygen for tsch-slot-operation.h --- os/net/mac/tsch/tsch-slot-operation.h | 40 ++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/os/net/mac/tsch/tsch-slot-operation.h b/os/net/mac/tsch/tsch-slot-operation.h index 1702ce199..63a9fbb51 100644 --- a/os/net/mac/tsch/tsch-slot-operation.h +++ b/os/net/mac/tsch/tsch-slot-operation.h @@ -58,19 +58,45 @@ extern clock_time_t last_sync_time; /********** Functions *********/ -/* Returns a 802.15.4 channel from an ASN and channel offset */ +/** + * Returns a 802.15.4 channel from an ASN and channel offset. Basically adds + * The offset to the ASN and performs a hopping sequence lookup. + * + * \param asn A given ASN + * \param channel_offset A given channel offset + * \return The resulting channel + */ uint8_t tsch_calculate_channel(struct tsch_asn_t *asn, uint8_t channel_offset); -/* Is TSCH locked? */ +/** + * Checks if the TSCH lock is set. Accesses to global structures outside of + * interrupts must be done through the lock, unless the sturcutre has + * atomic read/write + * + * \return 1 if the lock is taken, 0 otherwise + */ int tsch_is_locked(void); -/* Lock TSCH (no link operation) */ +/** + * Takes the TSCH lock. When the lock is taken, slot operation will be skipped + * until release. + * + * \return 1 if the lock was successfully taken, 0 otherwise + */ int tsch_get_lock(void); -/* Release TSCH lock */ +/** + * Releases the TSCH lock. + */ void tsch_release_lock(void); -/* Set global time before starting slot operation, - * with a rtimer time and an ASN */ +/** + * Set global time before starting slot operation, with a rtimer time and an ASN + * + * \param next_slot_start the time to the start of the next slot, in rtimer ticks + * \param next_slot_asn the ASN of the next slot + */ void tsch_slot_operation_sync(rtimer_clock_t next_slot_start, struct tsch_asn_t *next_slot_asn); -/* Start actual slot operation */ +/** + * Start actual slot operation + */ void tsch_slot_operation_start(void); #endif /* __TSCH_SLOT_OPERATION_H__ */ From 8be446d0ea9bc57ac9753fd423c64b2b61f88de1 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Sat, 14 Apr 2018 12:09:16 -0700 Subject: [PATCH 04/31] Doxygen for tsch-schedule.h --- os/net/mac/tsch/tsch-schedule.h | 105 +++++++++++++++++++++++++++----- 1 file changed, 89 insertions(+), 16 deletions(-) diff --git a/os/net/mac/tsch/tsch-schedule.h b/os/net/mac/tsch/tsch-schedule.h index 2a2cf5e25..9a9a7330f 100644 --- a/os/net/mac/tsch/tsch-schedule.h +++ b/os/net/mac/tsch/tsch-schedule.h @@ -45,42 +45,115 @@ /********** Functions *********/ -/* Module initialization, call only once at startup. Returns 1 is success, 0 if failure. */ +/** + * \brief Module initialization, call only once at init + * \return 1 if success, 0 if failure + */ int tsch_schedule_init(void); -/* Create a 6TiSCH minimal schedule */ +/** + * \brief Create a 6tisch minimal schedule with length TSCH_SCHEDULE_DEFAULT_LENGTH + */ void tsch_schedule_create_minimal(void); -/* Prints out the current schedule (all slotframes and links) */ +/** + * \brief Prints out the current schedule (all slotframes and links) + */ void tsch_schedule_print(void); -/* Adds and returns a slotframe (NULL if failure) */ + +/** + * \brief Creates and adds a new slotframe + * \param handle the slotframe handle + * \param size the slotframe size + * \return the new slotframe, NULL if failure + */ struct tsch_slotframe *tsch_schedule_add_slotframe(uint16_t handle, uint16_t size); -/* Looks for a slotframe from a handle */ + +/** + * \brief Looks up a slotframe by handle + * \param handle the slotframe handle + * \return the slotframe with required handle, if any. NULL otherwise. + */ struct tsch_slotframe *tsch_schedule_get_slotframe_by_handle(uint16_t handle); -/* Removes a slotframe Return 1 if success, 0 if failure */ + +/** + * \brief Removes a slotframe + * \param slotframe The slotframe to be removed + * \return 1 if success, 0 if failure + */ int tsch_schedule_remove_slotframe(struct tsch_slotframe *slotframe); -/* Removes all slotframes, resulting in an empty schedule */ + +/** + * \brief Removes all slotframes, resulting in an empty schedule + * \return 1 if success, 0 if failure + */ int tsch_schedule_remove_all_slotframes(void); -/* Returns next slotframe */ -struct tsch_slotframe *tsch_schedule_slotframes_next(struct tsch_slotframe *sf); -/* Adds a link to a slotframe, return a pointer to it (NULL if failure) */ +/** + * \brief Adds a link to a slotframe + * \param slotframe The slotframe that will contain the new link + * \param link_options The link options, as a bitfield (LINK_OPTION_* flags) + * \param link_type The link type (advertising, normal) + * \param address The link address of the intended destination. Use &tsch_broadcast_address for a slot towards any neighbor + * \param timeslot The link timeslot within the slotframe + * \param channel_offset The link channel offset + * \return A pointer to the new link, NULL if failure + */ struct tsch_link *tsch_schedule_add_link(struct tsch_slotframe *slotframe, uint8_t link_options, enum link_type link_type, const linkaddr_t *address, uint16_t timeslot, uint16_t channel_offset); -/* Looks for a link from a handle */ +/** +* \brief Looks for a link from a handle +* \param handle The target handle +* \return The link with required handle, if any. Otherwise, NULL +*/ struct tsch_link *tsch_schedule_get_link_by_handle(uint16_t handle); -/* Looks within a slotframe for a link with a given timeslot */ + +/** + * \brief Looks within a slotframe for a link with a given timeslot + * \param slotframe The desired slotframe + * \param timeslot The desired timeslot + * \return The link if found, NULL otherwise + */ struct tsch_link *tsch_schedule_get_link_by_timeslot(struct tsch_slotframe *slotframe, uint16_t timeslot); -/* Removes a link. Return 1 if success, 0 if failure */ + +/** + * \brief Removes a link + * \param slotframe The slotframe the link belongs to + * \param l The link to be removed + * \return 1 if success, 0 if failure + */ int tsch_schedule_remove_link(struct tsch_slotframe *slotframe, struct tsch_link *l); -/* Removes a link from slotframe and timeslot. Return a 1 if success, 0 if failure */ + +/** + * \brief Removes a link from a slotframe and timeslot + * \param slotframe The slotframe where to look for the link + * \param timeslot The timeslot where to look for the link within the target slotframe + * \return 1 if success, 0 if failure + */ int tsch_schedule_remove_link_by_timeslot(struct tsch_slotframe *slotframe, uint16_t timeslot); -/* Returns the next active link after a given ASN, and a backup link (for the same ASN, with Rx flag) */ + +/** + * \brief Returns the next active link after a given ASN, and a backup link (for the same ASN, with Rx flag) + * \param asn The base ASN, from which we look for the next active link + * \param time_offset A pointer to uint16_t where to store the time offset between base ASN and link found + * \param backup_link A pointer where to write the address of a backup link, to be executed should the original be no longer active at wakeup + * \return The next active link if any, NULL otherwise + */ struct tsch_link * tsch_schedule_get_next_active_link(struct tsch_asn_t *asn, uint16_t *time_offset, struct tsch_link **backup_link); -/* Access to slotframe list */ + +/** + * \brief Access the first item in the list of slotframes + * \return The first slotframe in the schedule if any, NULL otherwise + */ struct tsch_slotframe *tsch_schedule_slotframe_head(void); + +/** + * \brief Access the next item in the list of slotframes + * \param sf The current slotframe (item in the list) + * \return The next slotframe if any, NULL otherwise + */ struct tsch_slotframe *tsch_schedule_slotframe_next(struct tsch_slotframe *sf); #endif /* __TSCH_SCHEDULE_H__ */ From 68ec94e0fb2af8e5cc54c7d7b5241b4b938e1634 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Sat, 14 Apr 2018 12:10:25 -0700 Subject: [PATCH 05/31] Doxygen for tsch-asn.h --- os/net/mac/tsch/tsch-asn.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/os/net/mac/tsch/tsch-asn.h b/os/net/mac/tsch/tsch-asn.h index 9895cdcf4..d58e7b27e 100644 --- a/os/net/mac/tsch/tsch-asn.h +++ b/os/net/mac/tsch/tsch-asn.h @@ -48,13 +48,13 @@ /************ Types ***********/ -/* The ASN is an absolute slot number over 5 bytes. */ +/** \brief The ASN is an absolute slot number over 5 bytes. */ struct tsch_asn_t { uint32_t ls4b; /* least significant 4 bytes */ uint8_t ms1b; /* most significant 1 byte */ }; -/* For quick modulo operation on ASN */ +/** \brief For quick modulo operation on ASN */ struct tsch_asn_divisor_t { uint16_t val; /* Divisor value */ uint16_t asn_ms1b_remainder; /* Remainder of the operation 0x100000000 / val */ @@ -62,37 +62,37 @@ struct tsch_asn_divisor_t { /************ Macros **********/ -/* Initialize ASN */ +/** \brief Initialize ASN */ #define TSCH_ASN_INIT(asn, ms1b_, ls4b_) do { \ (asn).ms1b = (ms1b_); \ (asn).ls4b = (ls4b_); \ } while(0); -/* Increment an ASN by inc (32 bits) */ +/** \brief Increment an ASN by inc (32 bits) */ #define TSCH_ASN_INC(asn, inc) do { \ uint32_t new_ls4b = (asn).ls4b + (inc); \ if(new_ls4b < (asn).ls4b) { (asn).ms1b++; } \ (asn).ls4b = new_ls4b; \ } while(0); -/* Decrement an ASN by inc (32 bits) */ +/** \brief Decrement an ASN by inc (32 bits) */ #define TSCH_ASN_DEC(asn, dec) do { \ uint32_t new_ls4b = (asn).ls4b - (dec); \ if(new_ls4b > (asn).ls4b) { (asn).ms1b--; } \ (asn).ls4b = new_ls4b; \ } while(0); -/* Returns the 32-bit diff between asn1 and asn2 */ +/** \brief Returns the 32-bit diff between asn1 and asn2 */ #define TSCH_ASN_DIFF(asn1, asn2) \ ((asn1).ls4b - (asn2).ls4b) -/* Initialize a struct asn_divisor_t */ +/** \brief Initialize a struct asn_divisor_t */ #define TSCH_ASN_DIVISOR_INIT(div, val_) do { \ (div).val = (val_); \ (div).asn_ms1b_remainder = ((0xffffffff % (val_)) + 1) % (val_); \ } while(0); -/* Returns the result (16 bits) of a modulo operation on ASN, +/** \brief Returns the result (16 bits) of a modulo operation on ASN, * with divisor being a struct asn_divisor_t */ #define TSCH_ASN_MOD(asn, div) \ ((uint16_t)((asn).ls4b % (div).val) \ From eb814872672350e1305988b2e02d07705da73703 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Sat, 14 Apr 2018 12:15:55 -0700 Subject: [PATCH 06/31] Doxygen for tsch-rpl.h --- os/net/mac/tsch/tsch-rpl.h | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/os/net/mac/tsch/tsch-rpl.h b/os/net/mac/tsch/tsch-rpl.h index 64e31166c..0c71b0076 100644 --- a/os/net/mac/tsch/tsch-rpl.h +++ b/os/net/mac/tsch/tsch-rpl.h @@ -47,20 +47,35 @@ /********** Functions *********/ -/* Keep-alives packet sent callback. - * To use, set #define TSCH_CALLBACK_KA_SENT tsch_rpl_callback_ka_sent */ +/** +* \brief Report statiscs from KA packet sent in RPL. +* To use, set TSCH_CALLBACK_KA_SENT to tsch_rpl_callback_ka_sent +* \param status The packet sent status +* \param transmissions The total number of transmissions +*/ void tsch_rpl_callback_ka_sent(int status, int transmissions); -/* To use, set #define TSCH_CALLBACK_JOINING_NETWORK tsch_rpl_callback_joining_network */ +/** + * \brief Let RPL know that TSCH joined a new network. + * To use, set TSCH_CALLBACK_JOINING_NETWORK to tsch_rpl_callback_joining_network + */ void tsch_rpl_callback_joining_network(void); -/* Upon leaving a TSCH network, perform a local repair - * (cleanup neighbor state, reset Trickle timer etc) - * To use, set #define TSCH_CALLBACK_LEAVING_NETWORK tsch_rpl_callback_leaving_network */ +/** + * \brief Let RPL know that TSCH joined a new network. Triggers a local repair. + * To use, set TSCH_CALLBACK_LEAVING_NETWORK to tsch_rpl_callback_leaving_network + */ void tsch_rpl_callback_leaving_network(void); -/* Set TSCH EB period based on current RPL DIO period. - * To use, set #define RPL_CALLBACK_NEW_DIO_INTERVAL tsch_rpl_callback_new_dio_interval */ +/** + * \brief Set TSCH EB period based on current RPL DIO period. + * To use, set RPL_CALLBACK_NEW_DIO_INTERVAL to tsch_rpl_callback_new_dio_interval + * \param dio_interval The new DIO interval in clock ticks + */ void tsch_rpl_callback_new_dio_interval(clock_time_t dio_interval); -/* Set TSCH time source based on current RPL preferred parent. - * To use, set #define RPL_CALLBACK_PARENT_SWITCH tsch_rpl_callback_parent_switch */ +/** + * \brief Set TSCH time source based on current RPL preferred parent. + * To use, set RPL_CALLBACK_PARENT_SWITCH to tsch_rpl_callback_parent_switch + * \param old The old RPL parent + * \param new The new RPL parent + */ void tsch_rpl_callback_parent_switch(rpl_parent_t *old, rpl_parent_t *new); #endif /* __TSCH_RPL_H__ */ From 5734b32a6f75f021ff96ae9a896add5367fbf611 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Sat, 14 Apr 2018 12:18:14 -0700 Subject: [PATCH 07/31] Doxygen for tsch-log.h --- os/net/mac/tsch/tsch-log.h | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/os/net/mac/tsch/tsch-log.h b/os/net/mac/tsch/tsch-log.h index 198304b43..a16747cc0 100644 --- a/os/net/mac/tsch/tsch-log.h +++ b/os/net/mac/tsch/tsch-log.h @@ -70,7 +70,7 @@ /************ Types ***********/ -/* Structure for a log. Union of different types of logs */ +/** \brief Structure for a log. Union of different types of logs */ struct tsch_log_t { enum { tsch_log_tx, tsch_log_rx, @@ -107,21 +107,31 @@ struct tsch_log_t { /********** Functions *********/ -/* Prepare addition of a new log. - * Returns pointer to log structure if success, NULL otherwise */ +/** + * \brief Prepare addition of a new log. + * \return A pointer to log structure if success, NULL otherwise + */ struct tsch_log_t *tsch_log_prepare_add(void); -/* Actually add the previously prepared log */ +/** + * \brief Actually add the previously prepared log + */ void tsch_log_commit(void); -/* Initialize log module */ +/** + * \brief Initialize log module + */ void tsch_log_init(void); -/* Process pending log messages */ +/** + * \brief Process pending log messages + */ void tsch_log_process_pending(void); -/* Stop logging module */ +/** + * \brief Stop logging module + */ void tsch_log_stop(void); /************ Macros **********/ -/* Use this macro to add a log to the queue (will be printed out +/** \brief Use this macro to add a log to the queue (will be printed out * later, after leaving interrupt context) */ #define TSCH_LOG_ADD(log_type, init_code) do { \ struct tsch_log_t *log = tsch_log_prepare_add(); \ From 3728350ad4a91d248766540c92d98b415a757e5a Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Sat, 14 Apr 2018 12:25:04 -0700 Subject: [PATCH 08/31] Doxygen for tsch-adaptive-sync.h --- os/net/mac/tsch/tsch-adaptive-timesync.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/os/net/mac/tsch/tsch-adaptive-timesync.h b/os/net/mac/tsch/tsch-adaptive-timesync.h index be61b9514..574add542 100644 --- a/os/net/mac/tsch/tsch-adaptive-timesync.h +++ b/os/net/mac/tsch/tsch-adaptive-timesync.h @@ -44,15 +44,30 @@ /***** External Variables *****/ -/* The neighbor last used as our time source */ +/** \brief The neighbor last used as our time source */ extern struct tsch_neighbor *last_timesource_neighbor; /********** Functions *********/ +/** + * \brief Updates timesync information for a given neighbor + * \param n The neighbor + * \param time_delta_asn ASN time delta since last synchronization, i.e. number of slots elapsed + * \param drift_correction The measured drift in ticks since last synchronization + */ void tsch_timesync_update(struct tsch_neighbor *n, uint16_t time_delta_asn, int32_t drift_correction); +/** + * \brief Computes time compensation for a given point in the future + * \param delta_ticks The number of ticks in the future we want to calculate compensation for + * \return The time compensation + */ int32_t tsch_timesync_adaptive_compensate(rtimer_clock_t delta_ticks); +/** + * \brief Gives the estimated clock drift w.r.t. the time source in PPM (parts per million) + * \return The time drift in PPM + */ long int tsch_adaptive_timesync_get_drift_ppm(void); #endif /* __TSCH_ADAPTIVE_TIMESYNC_H__ */ From 0f41b9d1a6bde678bd716fed37300ff475817573 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Tue, 17 Apr 2018 12:36:43 -0700 Subject: [PATCH 09/31] tsch_packet_update_eb: fix return value to indicate failures --- os/net/mac/tsch/tsch-packet.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/os/net/mac/tsch/tsch-packet.c b/os/net/mac/tsch/tsch-packet.c index e0e253a3f..64f03b588 100644 --- a/os/net/mac/tsch/tsch-packet.c +++ b/os/net/mac/tsch/tsch-packet.c @@ -390,8 +390,7 @@ tsch_packet_update_eb(uint8_t *buf, int buf_size, uint8_t tsch_sync_ie_offset) struct ieee802154_ies ies; ies.ie_asn = tsch_current_asn; ies.ie_join_priority = tsch_join_priority; - frame80215e_create_ie_tsch_synchronization(buf+tsch_sync_ie_offset, buf_size-tsch_sync_ie_offset, &ies); - return 1; + return frame80215e_create_ie_tsch_synchronization(buf+tsch_sync_ie_offset, buf_size-tsch_sync_ie_offset, &ies) != -1; } /*---------------------------------------------------------------------------*/ /* Parse a IEEE 802.15.4e TSCH Enhanced Beacon (EB) */ From 6dc34c128fd0f45685a64030ccdb5a7c4fc07455 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Tue, 17 Apr 2018 12:36:59 -0700 Subject: [PATCH 10/31] Doxygen for tsch-packet.h --- os/net/mac/tsch/tsch-packet.h | 48 +++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/os/net/mac/tsch/tsch-packet.h b/os/net/mac/tsch/tsch-packet.h index 4dfbcbe72..1706ad97d 100644 --- a/os/net/mac/tsch/tsch-packet.h +++ b/os/net/mac/tsch/tsch-packet.h @@ -46,18 +46,56 @@ /********** Functions *********/ -/* Construct enhanced ACK packet and return ACK length */ +/** + * \brief Construct Enhanced ACK packet + * \param buf The buffer where to build the EACK + * \param buf_size The buffer size + * \param dest_addr The link-layer address of the neighbor we are ACKing + * \param seqno The sequence number we are ACKing + * \param drift The time offset in usec measured at Rx of the packer we are ACKing + * \param nack Value of the NACK bit + * \return The length of the packet that was created. -1 if failure. + */ int tsch_packet_create_eack(uint8_t *buf, uint16_t buf_size, const linkaddr_t *dest_addr, uint8_t seqno, int16_t drift, int nack); -/* Parse enhanced ACK packet, extract drift and nack */ +/** + * \brief Parse enhanced ACK packet + * \param buf The buffer where to parse the EACK from + * \param buf_size The buffer size + * \param seqno The sequence number we are expecting + * \param frame The frame structure where to store parsed fields + * \param ies The IE structure where to store parsed IEs + * \param hdr_len A pointer where to store the length of the parsed header + * \return 1 if the EACK is correct and acknowledges the specified frame, 0 otherwise + */ int tsch_packet_parse_eack(const uint8_t *buf, int buf_size, uint8_t seqno, frame802154_t *frame, struct ieee802154_ies *ies, uint8_t *hdr_len); -/* Create an EB packet */ +/** + * \brief Create an EB packet directly in packetbuf + * \param hdr_len A pointer where to store the length of the created header + * \param tsch_sync_ie_ptr A pointer where to store the address of the TSCH synchronization IE + * \return The total length of the EB + */ int tsch_packet_create_eb(uint8_t *hdr_len, uint8_t *tsch_sync_ie_ptr); -/* Update ASN in EB packet */ +/** + * \brief Update ASN in EB packet + * \param buf The buffer that contains the EB + * \param buf_size The buffer size + * \param tsch_sync_ie_offset The offset of the TSCH synchronization IE, in which the ASN is to be written + * \return 1 if success, 0 otherwise + */ int tsch_packet_update_eb(uint8_t *buf, int buf_size, uint8_t tsch_sync_ie_offset); -/* Parse EB and extract ASN and join priority */ +/** + * \brief Parse EB + * \param buf The buffer where to parse the EB from + * \param buf_size The buffer sizecting + * \param frame The frame structure where to store parsed fields + * \param ies The IE structure where to store parsed IEs + * \param hdrlen A pointer where to store the length of the parsed header + * \param frame_without_mic When set, the security MIC will not be parsed + * \return The length of the parsed EB + */ int tsch_packet_parse_eb(const uint8_t *buf, int buf_size, frame802154_t *frame, struct ieee802154_ies *ies, uint8_t *hdrlen, int frame_without_mic); From 10ada6084927b460654c209917e0c9e4a70b7c06 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Tue, 17 Apr 2018 12:58:43 -0700 Subject: [PATCH 11/31] Doxygen for tsch-queue.h --- os/net/mac/tsch/tsch-queue.h | 124 ++++++++++++++++++++++++++++------- 1 file changed, 101 insertions(+), 23 deletions(-) diff --git a/os/net/mac/tsch/tsch-queue.h b/os/net/mac/tsch/tsch-queue.h index 8c7dceb37..fcf460c97 100644 --- a/os/net/mac/tsch/tsch-queue.h +++ b/os/net/mac/tsch/tsch-queue.h @@ -53,50 +53,128 @@ extern struct tsch_neighbor *n_eb; /********** Functions *********/ -/* Add a TSCH neighbor */ +/** + * \brief Add a TSCH neighbor queue + * \param addr The link-layer address of the neighbor to be added + */ struct tsch_neighbor *tsch_queue_add_nbr(const linkaddr_t *addr); -/* Get a TSCH neighbor */ +/** + * \brief Get a TSCH neighbor + * \param addr The link-layer address of the neighbor we are looking for + * \return A pointer to the neighbor queue, NULL if not found + */ struct tsch_neighbor *tsch_queue_get_nbr(const linkaddr_t *addr); -/* Get a TSCH time source (we currently assume there is only one) */ +/** + * \brief Get the TSCH time source (we currently assume there is only one) + * \return The neighbor queue associated to the time source + */ struct tsch_neighbor *tsch_queue_get_time_source(void); -/* Update TSCH time source */ +/** + * \brief Update TSCH time source + * \param new_addr The address of the new TSCH time source + */ int tsch_queue_update_time_source(const linkaddr_t *new_addr); -/* Add packet to neighbor queue. Use same lockfree implementation as ringbuf.c (put is atomic) */ +/** + * \brief Add packet to neighbor queue. Use same lockfree implementation as ringbuf.c (put is atomic) + * \param addr The address of the targetted neighbor, &tsch_broadcast_address for broadcast + * \param max_transmissions The number of MAC retries + * \param sent The MAC packet sent callback + * \param ptr The MAC packet send callback parameter + * \return The newly created packet if any, NULL otherwise + */ struct tsch_packet *tsch_queue_add_packet(const linkaddr_t *addr, uint8_t max_transmissions, mac_callback_t sent, void *ptr); -/* Returns the number of packets currently in any TSCH queue */ +/** + * \brief Returns the number of packets currently in all TSCH queues + * \return The number of packets currently in all TSCH queues + */ int tsch_queue_global_packet_count(void); -/* Returns the number of packets currently a given neighbor queue */ +/** + * \brief Returns the number of packets currently a given neighbor queue + * \param addr The link-layer address of the neighbor we are interested in + * \return The number of packets in the neighbor's queue + */ int tsch_queue_packet_count(const linkaddr_t *addr); -/* Remove first packet from a neighbor queue. The packet is stored in a separate - * dequeued packet list, for later processing. Return the packet. */ +/** + * \brief Remove first packet from a neighbor queue. The packet is stored in a separate + * dequeued packet list, for later processing. + * \param n The neighbor queue + * \return The packet that was removed if any, NULL otherwise + */ struct tsch_packet *tsch_queue_remove_packet_from_queue(struct tsch_neighbor *n); -/* Free a packet */ +/** + * \brief Free a packet + * \param p The packet to be freed + */ void tsch_queue_free_packet(struct tsch_packet *p); -/* Updates neighbor queue state after a transmission */ +/** + * \brief Updates neighbor queue state after a transmission + * \param n The neighbor queue we just sent from + * \param p The packet that was just sent + * \param link The TSCH link used for Tx + * \param mac_tx_status The MAC status (see mac.h) + * \return 1 if the packet remains in queue after the call, 0 if it was removed + */ int tsch_queue_packet_sent(struct tsch_neighbor *n, struct tsch_packet *p, struct tsch_link *link, uint8_t mac_tx_status); -/* Reset neighbor queues */ +/** + * \brief Reset neighbor queues module + */ void tsch_queue_reset(void); -/* Deallocate neighbors with empty queue */ +/** + * \brief Deallocate all neighbors with empty queue + */ void tsch_queue_free_unused_neighbors(void); -/* Is the neighbor queue empty? */ +/** + * \brief Is the neighbor queue empty? + * \param n The neighbor queue + * \return 1 if empty, 0 otherwise + */ int tsch_queue_is_empty(const struct tsch_neighbor *n); -/* Returns the first packet from a neighbor queue */ +/** + * \brief Returns the first packet that can be sent from a queue on a given link + * \param n The neighbor queue + * \param link The link + * \return The next packet to be sent for the neighbor on the given link, if any, else NULL + */ struct tsch_packet *tsch_queue_get_packet_for_nbr(const struct tsch_neighbor *n, struct tsch_link *link); -/* Returns the head packet from a neighbor queue (from neighbor address) */ +/** + * \brief Returns the first packet that can be sent to a given address on a given link + * \param addr The target link-layer address + * \param link The link + * \return The next packet to be sent for to the given address on the given link, if any, else NULL + */ struct tsch_packet *tsch_queue_get_packet_for_dest_addr(const linkaddr_t *addr, struct tsch_link *link); -/* Returns the head packet of any neighbor queue with zero backoff counter. - * Writes pointer to the neighbor in *n */ +/** + * \brief Gets the head packet of any neighbor queue with zero backoff counter. + * \param n A pointer where to store the neighbor queue to be used for Tx + * \param link The link to be used for Tx + * \return The packet if any, else NULL + */ struct tsch_packet *tsch_queue_get_unicast_packet_for_any(struct tsch_neighbor **n, struct tsch_link *link); -/* May the neighbor transmit over a share link? */ +/** + * \brief Is the neighbor backoff timer expired? + * \param n The neighbor queue + * \return 1 if the backoff has expired (neighbor ready to transmit on a shared link), 0 otherwise + */ int tsch_queue_backoff_expired(const struct tsch_neighbor *n); -/* Reset neighbor backoff */ +/** + * \brief Reset neighbor backoff + * \param n The neighbor queue + */ void tsch_queue_backoff_reset(struct tsch_neighbor *n); -/* Increment backoff exponent, pick a new window */ +/** + * \brief Increment backoff exponent of a given neighbor queue, pick a new window + * \param n The neighbor queue + */ void tsch_queue_backoff_inc(struct tsch_neighbor *n); -/* Decrement backoff window for all queues directed at dest_addr */ +/** + * \brief Decrement backoff window for the queue(s) able to Tx to a given address + * \param dest_addr The target address, &tsch_broadcast_address for broadcast + */ void tsch_queue_update_all_backoff_windows(const linkaddr_t *dest_addr); -/* Initialize TSCH queue module */ +/** + * \brief Initialize TSCH queue module + */ void tsch_queue_init(void); #endif /* __TSCH_QUEUE_H__ */ From c5e8c2097f2494cf37767d4beabae34e935658d4 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Fri, 20 Apr 2018 05:24:07 -0700 Subject: [PATCH 12/31] Remove leftover COOJA_IP64 flags --- os/net/mac/csma/csma-output.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/os/net/mac/csma/csma-output.c b/os/net/mac/csma/csma-output.c index 59949c040..9c88d569d 100644 --- a/os/net/mac/csma/csma-output.c +++ b/os/net/mac/csma/csma-output.c @@ -50,10 +50,10 @@ #include "lib/list.h" #include "lib/memb.h" -#if CONTIKI_TARGET_COOJA || CONTIKI_TARGET_COOJA_IP64 +#if CONTIKI_TARGET_COOJA #include "lib/simEnvChange.h" #include "sys/cooja_mt.h" -#endif /* CONTIKI_TARGET_COOJA || CONTIKI_TARGET_COOJA_IP64 */ +#endif /* CONTIKI_TARGET_COOJA */ /* Log configuration */ #include "sys/log.h" @@ -207,10 +207,10 @@ send_one_packet(void *ptr) wt = RTIMER_NOW(); watchdog_periodic(); while(RTIMER_CLOCK_LT(RTIMER_NOW(), wt + CSMA_ACK_WAIT_TIME)) { -#if CONTIKI_TARGET_COOJA || CONTIKI_TARGET_COOJA_IP64 +#if CONTIKI_TARGET_COOJA simProcessRunValue = 1; cooja_mt_yield(); -#endif /* CONTIKI_TARGET_COOJA || CONTIKI_TARGET_COOJA_IP64 */ +#endif /* CONTIKI_TARGET_COOJA */ } ret = MAC_TX_NOACK; @@ -225,10 +225,10 @@ send_one_packet(void *ptr) watchdog_periodic(); while(RTIMER_CLOCK_LT(RTIMER_NOW(), wt + CSMA_AFTER_ACK_DETECTED_WAIT_TIME)) { -#if CONTIKI_TARGET_COOJA || CONTIKI_TARGET_COOJA_IP64 +#if CONTIKI_TARGET_COOJA simProcessRunValue = 1; cooja_mt_yield(); -#endif /* CONTIKI_TARGET_COOJA || CONTIKI_TARGET_COOJA_IP64 */ +#endif /* CONTIKI_TARGET_COOJA */ } } From 01a4b38fc8372a485bff4a5cb0ba82ca8f860aa2 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Wed, 25 Apr 2018 02:43:01 +0200 Subject: [PATCH 13/31] uiplib: ensure string is null-terminated when printing unspecified address --- os/net/ipv6/uiplib.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/os/net/ipv6/uiplib.c b/os/net/ipv6/uiplib.c index 693626c87..afe6de42b 100644 --- a/os/net/ipv6/uiplib.c +++ b/os/net/ipv6/uiplib.c @@ -250,9 +250,11 @@ uiplib_ipaddr_snprint(char *buf, size_t size, const uip_ipaddr_t *addr) } } - if(n >= size - 1) { - buf[size - 1] = '\0'; - } + /* + * Make sure the output string is always null-terminated. + */ + buf[MIN(n, size - 1)] = '\0'; + return n; } /*---------------------------------------------------------------------------*/ From a099bda05882a36366f98eb58c49e9bece37f959 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Tue, 24 Apr 2018 09:03:06 -0700 Subject: [PATCH 14/31] Added jool-start.sh script --- tools/ip64/jool-start.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 tools/ip64/jool-start.sh diff --git a/tools/ip64/jool-start.sh b/tools/ip64/jool-start.sh new file mode 100755 index 000000000..b9c0c9850 --- /dev/null +++ b/tools/ip64/jool-start.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +defaultInterface=$(route | grep default | awk '{print $(NF)}') +myIP=$(ifconfig $defaultInterface | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}') +echo "Configuring jool for $myIP" + +sudo sysctl -w net.ipv4.conf.all.forwarding=1 +sudo sysctl -w net.ipv6.conf.all.forwarding=1 + +sudo /sbin/modprobe jool pool6=64:ff9b::/96 disabled + +# Assuming that we are on this IP +sudo jool -4 --add $myIP 15000-25000 +sudo jool --enable From 484e9521ee1b5f08c7182be1f91df9f0af3c05fe Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Thu, 26 Apr 2018 14:39:30 +0100 Subject: [PATCH 15/31] Change the default channel This commit changes the cc26xx web demo to default to channel 26, which is the default everywhere else. --- .../platform-specific/cc26xx/cc26xx-web-demo/project-conf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/platform-specific/cc26xx/cc26xx-web-demo/project-conf.h b/examples/platform-specific/cc26xx/cc26xx-web-demo/project-conf.h index c5078bf38..40a1e8262 100644 --- a/examples/platform-specific/cc26xx/cc26xx-web-demo/project-conf.h +++ b/examples/platform-specific/cc26xx/cc26xx-web-demo/project-conf.h @@ -33,7 +33,7 @@ /*---------------------------------------------------------------------------*/ /* Change to match your configuration */ #define IEEE802154_CONF_PANID 0xABCD -#define RF_CORE_CONF_CHANNEL 25 +#define RF_CORE_CONF_CHANNEL 26 #define RF_BLE_CONF_ENABLED 1 /*---------------------------------------------------------------------------*/ From 274a5daa7ddd7d7df0a010fa97f816c10433cfb8 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Fri, 27 Apr 2018 01:43:19 +0200 Subject: [PATCH 16/31] Updated users of SLIP to respect UIP_LLH_LEN --- examples/slip-radio/slip-radio.c | 9 +++--- os/services/ip64/ip64-slip-interface.c | 20 +++++------- .../rpl-border-router/embedded/slip-bridge.c | 32 +++++++++++-------- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/examples/slip-radio/slip-radio.c b/examples/slip-radio/slip-radio.c index 21779a3dc..b39032d96 100644 --- a/examples/slip-radio/slip-radio.c +++ b/examples/slip-radio/slip-radio.c @@ -187,8 +187,8 @@ slip_radio_cmd_handler(const uint8_t *data, int len) } return 1; } - } else if(uip_buf[0] == '?') { - LOG_DBG("Got request message of type %c\n", uip_buf[1]); + } else if(data[0] == '?') { + LOG_DBG("Got request message of type %c\n", data[1]); if(data[1] == 'M') { /* this is just a test so far... just to see if it works */ uip_buf[0] = '!'; @@ -226,8 +226,9 @@ slip_radio_cmd_handler(const uint8_t *data, int len) static void slip_input_callback(void) { - LOG_DBG("SR-SIN: %u '%c%c'\n", uip_len, uip_buf[0], uip_buf[1]); - if(!cmd_input(uip_buf, uip_len)) { + LOG_DBG("SR-SIN: %u '%c%c'\n", uip_len, + uip_buf[UIP_LLH_LEN], uip_buf[UIP_LLH_LEN + 1]); + if(!cmd_input(&uip_buf[UIP_LLH_LEN], uip_len)) { cmd_send((uint8_t *)"EUnknown command", 16); } uip_clear_buf(); diff --git a/os/services/ip64/ip64-slip-interface.c b/os/services/ip64/ip64-slip-interface.c index 7ad4d4789..10422f2c7 100644 --- a/os/services/ip64/ip64-slip-interface.c +++ b/os/services/ip64/ip64-slip-interface.c @@ -57,24 +57,24 @@ static void input_callback(void) { /*PRINTF("SIN: %u\n", uip_len);*/ - if(uip_buf[0] == '!') { - PRINTF("Got configuration message of type %c\n", uip_buf[1]); + if(uip_buf[UIP_LLH_LEN] == '!') { + PRINTF("Got configuration message of type %c\n", uip_buf[UIP_LLH_LEN + 1]); uip_clear_buf(); #if 0 - if(uip_buf[1] == 'P') { + if(uip_buf[UIP_LLH_LEN + 1] == 'P') { uip_ipaddr_t prefix; /* Here we set a prefix !!! */ memset(&prefix, 0, 16); - memcpy(&prefix, &uip_buf[2], 8); + memcpy(&prefix, &uip_buf[UIP_LLH_LEN + 2], 8); PRINTF("Setting prefix "); PRINT6ADDR(&prefix); PRINTF("\n"); set_prefix_64(&prefix); } #endif - } else if(uip_buf[0] == '?') { - PRINTF("Got request message of type %c\n", uip_buf[1]); - if(uip_buf[1] == 'M') { + } else if(uip_buf[UIP_LLH_LEN] == '?') { + PRINTF("Got request message of type %c\n", uip_buf[UIP_LLH_LEN + 1]); + if(uip_buf[UIP_LLH_LEN + 1] == 'M') { const char *hexchar = "0123456789abcdef"; int j; /* this is just a test so far... just to see if it works */ @@ -84,8 +84,7 @@ input_callback(void) uip_buf[3 + j * 2] = hexchar[uip_lladdr.addr[j] & 15]; } uip_len = 18; - slip_send(); - + slip_write(uip_buf, uip_len); } uip_clear_buf(); } else { @@ -147,6 +146,3 @@ const struct uip_fallback_interface ip64_slip_interface = { init, output }; /*---------------------------------------------------------------------------*/ - - - diff --git a/os/services/rpl-border-router/embedded/slip-bridge.c b/os/services/rpl-border-router/embedded/slip-bridge.c index cb85793f0..c40447d7f 100644 --- a/os/services/rpl-border-router/embedded/slip-bridge.c +++ b/os/services/rpl-border-router/embedded/slip-bridge.c @@ -62,7 +62,7 @@ request_prefix(void) uip_buf[0] = '?'; uip_buf[1] = 'P'; uip_len = 2; - slip_send(); + slip_write(uip_buf, uip_len); uip_clear_buf(); } /*---------------------------------------------------------------------------*/ @@ -70,22 +70,27 @@ static void slip_input_callback(void) { LOG_DBG("SIN: %u\n", uip_len); - if(uip_buf[0] == '!') { - LOG_INFO("Got configuration message of type %c\n", uip_buf[1]); - uip_clear_buf(); - if(uip_buf[1] == 'P') { + if(uip_buf[UIP_LLH_LEN] == '!') { + LOG_INFO("Got configuration message of type %c\n", + uip_buf[UIP_LLH_LEN + 1]); + if(uip_buf[UIP_LLH_LEN + 1] == 'P') { uip_ipaddr_t prefix; /* Here we set a prefix !!! */ memset(&prefix, 0, 16); - memcpy(&prefix, &uip_buf[2], 8); + memcpy(&prefix, &uip_buf[UIP_LLH_LEN + 2], 8); + + uip_clear_buf(); + LOG_INFO("Setting prefix "); LOG_INFO_6ADDR(&prefix); LOG_INFO_("\n"); set_prefix_64(&prefix); } - } else if(uip_buf[0] == '?') { - LOG_INFO("Got request message of type %c\n", uip_buf[1]); - if(uip_buf[1] == 'M') { + uip_clear_buf(); + + } else if(uip_buf[UIP_LLH_LEN] == '?') { + LOG_INFO("Got request message of type %c\n", uip_buf[UIP_LLH_LEN + 1]); + if(uip_buf[UIP_LLH_LEN + 1] == 'M') { char *hexchar = "0123456789abcdef"; int j; /* this is just a test so far... just to see if it works */ @@ -95,13 +100,14 @@ slip_input_callback(void) uip_buf[3 + j * 2] = hexchar[uip_lladdr.addr[j] & 15]; } uip_len = 18; - slip_send(); + slip_write(uip_buf, uip_len); } uip_clear_buf(); + } else { + /* Save the last sender received over SLIP to avoid bouncing the + packet back if no route is found */ + uip_ipaddr_copy(&last_sender, &UIP_IP_BUF->srcipaddr); } - /* Save the last sender received over SLIP to avoid bouncing the - packet back if no route is found */ - uip_ipaddr_copy(&last_sender, &UIP_IP_BUF->srcipaddr); } /*---------------------------------------------------------------------------*/ static void From 6b78522ebb667b3e98a076043f7b997d0e175204 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Thu, 26 Apr 2018 21:11:10 +0200 Subject: [PATCH 17/31] Added a periodic timer to the hello-world example --- examples/hello-world/hello-world.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/examples/hello-world/hello-world.c b/examples/hello-world/hello-world.c index 30724140e..e6d452d9e 100644 --- a/examples/hello-world/hello-world.c +++ b/examples/hello-world/hello-world.c @@ -46,10 +46,21 @@ AUTOSTART_PROCESSES(&hello_world_process); /*---------------------------------------------------------------------------*/ PROCESS_THREAD(hello_world_process, ev, data) { + static struct etimer timer; + PROCESS_BEGIN(); - printf("Hello, world\n"); - + /* Setup a periodic timer that expires after 10 seconds. */ + etimer_set(&timer, CLOCK_SECOND * 10); + + while(1) { + printf("Hello, world\n"); + + /* Wait for the periodic timer to expire and then restart the timer. */ + PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&timer)); + etimer_reset(&timer); + } + PROCESS_END(); } /*---------------------------------------------------------------------------*/ From 08ba4a849d16b255e907c8d514e0d3add4314409 Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Fri, 27 Apr 2018 15:56:02 +0100 Subject: [PATCH 18/31] Fix the multicast example for sensortags --- examples/multicast/project-conf.h | 5 +++ .../multicast/srf06-cc26xx/module-macros.h | 34 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 examples/multicast/srf06-cc26xx/module-macros.h diff --git a/examples/multicast/project-conf.h b/examples/multicast/project-conf.h index 45fe1309e..c1bb6910e 100644 --- a/examples/multicast/project-conf.h +++ b/examples/multicast/project-conf.h @@ -54,7 +54,12 @@ #define UIP_MCAST6_ROUTE_CONF_ROUTES 1 /* Code/RAM footprint savings so that things will fit on our device */ +#ifndef NETSTACK_MAX_ROUTE_ENTRIES #define NETSTACK_MAX_ROUTE_ENTRIES 10 +#endif + +#ifndef NBR_TABLE_CONF_MAX_NEIGHBORS #define NBR_TABLE_CONF_MAX_NEIGHBORS 10 +#endif #endif /* PROJECT_CONF_H_ */ diff --git a/examples/multicast/srf06-cc26xx/module-macros.h b/examples/multicast/srf06-cc26xx/module-macros.h new file mode 100644 index 000000000..460688ebd --- /dev/null +++ b/examples/multicast/srf06-cc26xx/module-macros.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2018, University of Bristol - http://www.bristol.ac.uk/ + * 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 copyright holder 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 COPYRIGHT HOLDER 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 + * COPYRIGHT HOLDER 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. + */ +/*---------------------------------------------------------------------------*/ +/* Code/RAM footprint savings so that things will fit on sensortags */ +#define NETSTACK_MAX_ROUTE_ENTRIES 4 +#define NBR_TABLE_CONF_MAX_NEIGHBORS 4 +#define QUEUEBUF_CONF_NUM 4 From 774a9285fd14abe1d8417b1d03a59f658e20b1b0 Mon Sep 17 00:00:00 2001 From: George Oikonomou Date: Fri, 27 Apr 2018 18:01:28 +0100 Subject: [PATCH 19/31] Update the CoAP section of the cc26xx web demo readme --- .../cc26xx/cc26xx-web-demo/README.md | 39 ++++++++++-------- .../cc26xx-web-demo/img/coap-resources.png | Bin 280210 -> 0 bytes 2 files changed, 22 insertions(+), 17 deletions(-) delete mode 100644 examples/platform-specific/cc26xx/cc26xx-web-demo/img/coap-resources.png diff --git a/examples/platform-specific/cc26xx/cc26xx-web-demo/README.md b/examples/platform-specific/cc26xx/cc26xx-web-demo/README.md index 67b28ba93..6acd69b3a 100644 --- a/examples/platform-specific/cc26xx/cc26xx-web-demo/README.md +++ b/examples/platform-specific/cc26xx/cc26xx-web-demo/README.md @@ -54,33 +54,38 @@ tab, as per the image below. CoAP Server ----------- -For this functionality to work, you will need to install the -[Copper (Cu)](https://addons.mozilla.org/en-US/firefox/addon/copper-270430/) -addon to your browser. +For this functionality to work, you will need to install a CoAP client. +You can achieve this by following the guides on how to set up your system +[in the wiki](https://github.com/contiki-ng/contiki-ng/wiki#setting-up-contiki-ng). -From the sensors tab in the 6lbr web page, click the 'coap' link in the line -corresponding to your CC26xx device. Once the addon fires up, select -".well-known/core" in the left pane and then hit the 'Get' button at the top. +You should start by sending a CoAP GET request for the `.well-known/core` +resource. If you are using libcoap's CoAP client, this can be achieved by: -![CoAP Resources](img/coap-resources.png) +``` +coap-client -m get coap://[]/.well-known/core +``` + +Adjust the above command to match the command line arguments of your CoAP +client. The Device will respond with a list of all available CoAP resources. This list -will be different between the Srf and the SensorTag. The screenshot below shows -a (partial) list of resources exported by the SensorTag CoAP server. Select -a resource on the left pane and hit 'Get' to retrieve its value. Select -`lt/g` and hit 'Post' to toggle the green LED, `lt/r` for the red one. +will be different between the various CC13x0/CC26x0 boards. -You can also use CoAP to enable/disable BLE advertisements! Select -`dev/ble_advd` and then hit the "Outgoing" button in the payload panel. Type in -the desired payload, which can be: +Send a CoAP GET request for any of those resrouces to retrieve its value. + +Send a CoAP POST to the `lt/g` or `lt/r` to toggle the green/red LED +respectively. + +You can also use CoAP to enable/disable BLE advertisements! This can be done +by sending a PUT or POST request to the `dev/ble_advd` resource. Your request +should contain the desired payload, which can be: * `mode=on|off` * `name=` * `interval=` -or a combination of both delimited with an amp. For example, you can set as -payload `mode=on&name=My CC26xx Device 4&interval=5`. Once you have set the -payload, hit either the POST or PUT button. +or a combination of the above delimited with an amp. For example, you can set +as payload `mode=on&name=My CC26xx Device 4&interval=5`. Bear in mind that you must set `name` at least once before enabling BLE advertisements. If you fail to do so, the RF will refuse to enter BLE mode and diff --git a/examples/platform-specific/cc26xx/cc26xx-web-demo/img/coap-resources.png b/examples/platform-specific/cc26xx/cc26xx-web-demo/img/coap-resources.png deleted file mode 100644 index c71c934fe8ab419f03c1ace336352b549e652eca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280210 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

^W%BQh})en4Y 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

-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%0D=VkAz5J-CT~FS`OOwW?JxP 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 Date: Sat, 28 Apr 2018 13:02:11 -0700 Subject: [PATCH 20/31] TSCH: added file descriptions in .h files --- os/net/mac/tsch/tsch-adaptive-timesync.h | 2 ++ os/net/mac/tsch/tsch-asn.h | 8 ++------ os/net/mac/tsch/tsch-conf.h | 7 ++----- os/net/mac/tsch/tsch-const.h | 9 +++------ os/net/mac/tsch/tsch-log.h | 2 ++ os/net/mac/tsch/tsch-packet.h | 2 ++ os/net/mac/tsch/tsch-queue.h | 2 ++ os/net/mac/tsch/tsch-rpl.h | 2 ++ os/net/mac/tsch/tsch-schedule.h | 2 ++ os/net/mac/tsch/tsch-security.h | 2 ++ os/net/mac/tsch/tsch-slot-operation.h | 2 ++ os/net/mac/tsch/tsch-types.h | 7 ++----- os/net/mac/tsch/tsch.h | 2 ++ 13 files changed, 27 insertions(+), 22 deletions(-) diff --git a/os/net/mac/tsch/tsch-adaptive-timesync.h b/os/net/mac/tsch/tsch-adaptive-timesync.h index 574add542..c4ca20b7b 100644 --- a/os/net/mac/tsch/tsch-adaptive-timesync.h +++ b/os/net/mac/tsch/tsch-adaptive-timesync.h @@ -33,6 +33,8 @@ /** * \addtogroup tsch * @{ + * \file + * TSCH adaptive time synchronization */ #ifndef __TSCH_ADAPTIVE_TIMESYNC_H__ diff --git a/os/net/mac/tsch/tsch-asn.h b/os/net/mac/tsch/tsch-asn.h index d58e7b27e..1db99b432 100644 --- a/os/net/mac/tsch/tsch-asn.h +++ b/os/net/mac/tsch/tsch-asn.h @@ -31,16 +31,12 @@ */ /** + * \addtogroup tsch + * @{ * \file * TSCH 5-Byte Absolute Slot Number (ASN) management * \author * Simon Duquennoy - * - */ - -/** - * \addtogroup tsch - * @{ */ #ifndef __TSCH_ASN_H__ diff --git a/os/net/mac/tsch/tsch-conf.h b/os/net/mac/tsch/tsch-conf.h index 8c94fbc9d..3ee47b9cb 100644 --- a/os/net/mac/tsch/tsch-conf.h +++ b/os/net/mac/tsch/tsch-conf.h @@ -31,17 +31,14 @@ */ /** +* \addtogroup tsch +* @{ * \file * TSCH configuration * \author * Simon Duquennoy */ -/** - * \addtogroup tsch - * @{ -*/ - #ifndef __TSCH_CONF_H__ #define __TSCH_CONF_H__ diff --git a/os/net/mac/tsch/tsch-const.h b/os/net/mac/tsch/tsch-const.h index 607bb3506..81ca7ffa8 100644 --- a/os/net/mac/tsch/tsch-const.h +++ b/os/net/mac/tsch/tsch-const.h @@ -31,17 +31,14 @@ */ /** +* \addtogroup tsch +* @{ * \file - * TSCH configuration + * TSCH constants * \author * Simon Duquennoy */ -/** - * \addtogroup tsch - * @{ -*/ - #ifndef __TSCH_CONST_H__ #define __TSCH_CONST_H__ diff --git a/os/net/mac/tsch/tsch-log.h b/os/net/mac/tsch/tsch-log.h index a16747cc0..468eff869 100644 --- a/os/net/mac/tsch/tsch-log.h +++ b/os/net/mac/tsch/tsch-log.h @@ -33,6 +33,8 @@ /** * \addtogroup tsch * @{ + * \file + * TSCH per-slot logging */ #ifndef __TSCH_LOG_H__ diff --git a/os/net/mac/tsch/tsch-packet.h b/os/net/mac/tsch/tsch-packet.h index 1706ad97d..6b05d6653 100644 --- a/os/net/mac/tsch/tsch-packet.h +++ b/os/net/mac/tsch/tsch-packet.h @@ -33,6 +33,8 @@ /** * \addtogroup tsch * @{ + * \file + * TSCH packet parsing and creation. EBs and EACKs. */ #ifndef __TSCH_PACKET_H__ diff --git a/os/net/mac/tsch/tsch-queue.h b/os/net/mac/tsch/tsch-queue.h index fcf460c97..b7edcf300 100644 --- a/os/net/mac/tsch/tsch-queue.h +++ b/os/net/mac/tsch/tsch-queue.h @@ -33,6 +33,8 @@ /** * \addtogroup tsch * @{ + * \file + * TSCH queues */ #ifndef __TSCH_QUEUE_H__ diff --git a/os/net/mac/tsch/tsch-rpl.h b/os/net/mac/tsch/tsch-rpl.h index 0c71b0076..23a148db8 100644 --- a/os/net/mac/tsch/tsch-rpl.h +++ b/os/net/mac/tsch/tsch-rpl.h @@ -31,6 +31,8 @@ /** * \addtogroup tsch * @{ + * \file + * TSCH-RPL interaction */ #ifndef __TSCH_RPL_H__ diff --git a/os/net/mac/tsch/tsch-schedule.h b/os/net/mac/tsch/tsch-schedule.h index 9a9a7330f..d98a744f3 100644 --- a/os/net/mac/tsch/tsch-schedule.h +++ b/os/net/mac/tsch/tsch-schedule.h @@ -33,6 +33,8 @@ /** * \addtogroup tsch * @{ + * \file + * TSCH scheduling engine */ #ifndef __TSCH_SCHEDULE_H__ diff --git a/os/net/mac/tsch/tsch-security.h b/os/net/mac/tsch/tsch-security.h index 683bc6316..56c854414 100644 --- a/os/net/mac/tsch/tsch-security.h +++ b/os/net/mac/tsch/tsch-security.h @@ -33,6 +33,8 @@ /** * \addtogroup tsch * @{ + * \file + * TSCH security */ #ifndef __TSCH_SECURITY_H__ diff --git a/os/net/mac/tsch/tsch-slot-operation.h b/os/net/mac/tsch/tsch-slot-operation.h index 63a9fbb51..1c71c5587 100644 --- a/os/net/mac/tsch/tsch-slot-operation.h +++ b/os/net/mac/tsch/tsch-slot-operation.h @@ -33,6 +33,8 @@ /** * \addtogroup tsch * @{ + * \file + * TSCH runtime operation within timeslots */ #ifndef __TSCH_SLOT_OPERATION_H__ diff --git a/os/net/mac/tsch/tsch-types.h b/os/net/mac/tsch/tsch-types.h index 6eb0f19a9..20f9911f6 100644 --- a/os/net/mac/tsch/tsch-types.h +++ b/os/net/mac/tsch/tsch-types.h @@ -31,17 +31,14 @@ */ /** +* \addtogroup tsch +* @{ * \file * TSCH types * \author * Simon Duquennoy */ -/** - * \addtogroup tsch - * @{ -*/ - #ifndef __TSCH_TYPES_H__ #define __TSCH_TYPES_H__ diff --git a/os/net/mac/tsch/tsch.h b/os/net/mac/tsch/tsch.h index 4a153f464..0f108bd93 100644 --- a/os/net/mac/tsch/tsch.h +++ b/os/net/mac/tsch/tsch.h @@ -37,6 +37,8 @@ The IEEE 802.15.4-2015 TimeSlotted Channel Hopping (TSCH) protocol. Provides scheduled communication on top of a globally-synchronized network. Performs frequency hopping for enhanced reliability. * @{ +* \file +* Main API declarations for TSCH. */ #ifndef __TSCH_H__ From c176103aae595b0a1032baebaf4a6e2f65e87302 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Fri, 4 May 2018 09:09:15 +0200 Subject: [PATCH 21/31] shell: check if a preferred parent exists before showing status --- os/services/shell/shell-commands.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/os/services/shell/shell-commands.c b/os/services/shell/shell-commands.c index 7920fb086..c1ba2921f 100644 --- a/os/services/shell/shell-commands.c +++ b/os/services/shell/shell-commands.c @@ -173,8 +173,12 @@ PT_THREAD(cmd_rpl_status(struct pt *pt, shell_output_func output, char *args)) SHELL_OUTPUT(output, "-- State: %s\n", rpl_state_to_str(curr_instance.dag.state)); SHELL_OUTPUT(output, "-- Preferred parent: "); - shell_output_6addr(output, rpl_neighbor_get_ipaddr(curr_instance.dag.preferred_parent)); - SHELL_OUTPUT(output, " (last DTSN: %u)\n", curr_instance.dag.preferred_parent->dtsn); + if(curr_instance.dag.preferred_parent) { + shell_output_6addr(output, rpl_neighbor_get_ipaddr(curr_instance.dag.preferred_parent)); + SHELL_OUTPUT(output, " (last DTSN: %u)\n", curr_instance.dag.preferred_parent->dtsn); + } else { + SHELL_OUTPUT(output, "None\n"); + } SHELL_OUTPUT(output, "-- Rank: %u\n", curr_instance.dag.rank); SHELL_OUTPUT(output, "-- Lowest rank: %u (%u)\n", curr_instance.dag.lowest_rank, curr_instance.max_rankinc); SHELL_OUTPUT(output, "-- DTSN out: %u\n", curr_instance.dtsn_out); From 846ab211b676bbb835378663522c6327c4323413 Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Fri, 4 May 2018 00:43:31 -0700 Subject: [PATCH 22/31] Nullrouting: lowercase string description --- os/net/routing/nullrouting/nullrouting.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/net/routing/nullrouting/nullrouting.c b/os/net/routing/nullrouting/nullrouting.c index 14c328b0c..1b23d453a 100644 --- a/os/net/routing/nullrouting/nullrouting.c +++ b/os/net/routing/nullrouting/nullrouting.c @@ -149,7 +149,7 @@ drop_route(uip_ds6_route_t *route) } /*---------------------------------------------------------------------------*/ const struct routing_driver nullrouting_driver = { - "Null Routing", + "nullrouting", init, root_set_prefix, root_start, From 641a0d5e45b5c6258cf783ab8176076d265c2511 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Fri, 4 May 2018 09:49:27 +0200 Subject: [PATCH 23/31] shell: the rpl-refresh-routes API is currently only provided by rpl-lite --- os/services/shell/shell-commands.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/os/services/shell/shell-commands.c b/os/services/shell/shell-commands.c index c1ba2921f..3dbce09f2 100644 --- a/os/services/shell/shell-commands.c +++ b/os/services/shell/shell-commands.c @@ -417,6 +417,7 @@ PT_THREAD(cmd_rpl_local_repair(struct pt *pt, shell_output_func output, char *ar PT_END(pt); } /*---------------------------------------------------------------------------*/ +#if ROUTING_CONF_RPL_LITE static PT_THREAD(cmd_rpl_refresh_routes(struct pt *pt, shell_output_func output, char *args)) { @@ -427,6 +428,7 @@ PT_THREAD(cmd_rpl_refresh_routes(struct pt *pt, shell_output_func output, char * PT_END(pt); } +#endif /* ROUTING_CONF_RPL_LITE */ #endif /* UIP_CONF_IPV6_RPL */ /*---------------------------------------------------------------------------*/ static @@ -736,7 +738,9 @@ struct shell_command_t shell_commands[] = { #if UIP_CONF_IPV6_RPL { "rpl-set-root", cmd_rpl_set_root, "'> rpl-set-root 0/1 [prefix]': Sets node as root (1) or not (0). A /64 prefix can be optionally specified." }, { "rpl-local-repair", cmd_rpl_local_repair, "'> rpl-local-repair': Triggers a RPL local repair" }, +#if ROUTING_CONF_RPL_LITE { "rpl-refresh-routes", cmd_rpl_refresh_routes, "'> rpl-refresh-routes': Refreshes all routes through a DTSN increment" }, +#endif /* ROUTING_CONF_RPL_LITE */ { "rpl-global-repair", cmd_rpl_global_repair, "'> rpl-global-repair': Triggers a RPL global repair" }, #endif /* UIP_CONF_IPV6_RPL */ #if ROUTING_CONF_RPL_LITE From 57ad48ca40dcb9a91283977080a6cb6887686e3a Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Fri, 4 May 2018 10:43:23 +0200 Subject: [PATCH 24/31] Added compile regression test for native rpl-border-router with RPL Classic --- tests/01-compile-base/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/01-compile-base/Makefile b/tests/01-compile-base/Makefile index 5dfb3f149..67346c086 100644 --- a/tests/01-compile-base/Makefile +++ b/tests/01-compile-base/Makefile @@ -18,6 +18,7 @@ lwm2m-ipso-objects/native \ lwm2m-ipso-objects/native:MAKE_WITH_DTLS=1 \ rpl-udp/sky \ rpl-border-router/native \ +rpl-border-router/native:MAKE_ROUTING=MAKE_ROUTING_RPL_CLASSIC \ rpl-border-router/sky \ slip-radio/sky \ libs/ipv6-hooks/sky \ From 5c4fad921ebcdd4eaf131eaa3f1bf9776372ed01 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Fri, 4 May 2018 10:58:58 +0200 Subject: [PATCH 25/31] coap: shorter log module names for aligned log output --- os/net/app-layer/coap/coap-block1.c | 2 +- os/net/app-layer/coap/coap-blocking-api.c | 2 +- os/net/app-layer/coap/coap-callback-api.c | 2 +- os/net/app-layer/coap/coap-observe-client.c | 2 +- os/net/app-layer/coap/coap-observe.c | 2 +- os/net/app-layer/coap/coap-res-well-known-core.c | 2 +- os/net/app-layer/coap/coap-separate.c | 2 +- os/net/app-layer/coap/coap-timer-default.c | 2 +- os/net/app-layer/coap/coap-transactions.c | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/os/net/app-layer/coap/coap-block1.c b/os/net/app-layer/coap/coap-block1.c index e08a321d1..600c09b27 100644 --- a/os/net/app-layer/coap/coap-block1.c +++ b/os/net/app-layer/coap/coap-block1.c @@ -49,7 +49,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "coap-block1" +#define LOG_MODULE "coap" #define LOG_LEVEL LOG_LEVEL_COAP /*---------------------------------------------------------------------------*/ diff --git a/os/net/app-layer/coap/coap-blocking-api.c b/os/net/app-layer/coap/coap-blocking-api.c index 0d2c5dc58..1be7cbe7c 100644 --- a/os/net/app-layer/coap/coap-blocking-api.c +++ b/os/net/app-layer/coap/coap-blocking-api.c @@ -51,7 +51,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "coap-blocking-api" +#define LOG_MODULE "coap" #define LOG_LEVEL LOG_LEVEL_COAP /*---------------------------------------------------------------------------*/ diff --git a/os/net/app-layer/coap/coap-callback-api.c b/os/net/app-layer/coap/coap-callback-api.c index 652856233..b1b05597e 100644 --- a/os/net/app-layer/coap/coap-callback-api.c +++ b/os/net/app-layer/coap/coap-callback-api.c @@ -51,7 +51,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "coap-callback-api" +#define LOG_MODULE "coap" #define LOG_LEVEL LOG_LEVEL_COAP /* These should go into the state struct so that we can have multiple diff --git a/os/net/app-layer/coap/coap-observe-client.c b/os/net/app-layer/coap/coap-observe-client.c index af1e89f14..a27308494 100644 --- a/os/net/app-layer/coap/coap-observe-client.c +++ b/os/net/app-layer/coap/coap-observe-client.c @@ -55,7 +55,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "coap-observe-client" +#define LOG_MODULE "coap" #define LOG_LEVEL LOG_LEVEL_COAP MEMB(obs_subjects_memb, coap_observee_t, COAP_MAX_OBSERVEES); diff --git a/os/net/app-layer/coap/coap-observe.c b/os/net/app-layer/coap/coap-observe.c index 676c4d1b3..83f5edf4a 100644 --- a/os/net/app-layer/coap/coap-observe.c +++ b/os/net/app-layer/coap/coap-observe.c @@ -50,7 +50,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "coap-observe" +#define LOG_MODULE "coap" #define LOG_LEVEL LOG_LEVEL_COAP /*---------------------------------------------------------------------------*/ diff --git a/os/net/app-layer/coap/coap-res-well-known-core.c b/os/net/app-layer/coap/coap-res-well-known-core.c index 2893925c9..ebaae8fd4 100644 --- a/os/net/app-layer/coap/coap-res-well-known-core.c +++ b/os/net/app-layer/coap/coap-res-well-known-core.c @@ -47,7 +47,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "coap-res-well-known-core" +#define LOG_MODULE "coap" #define LOG_LEVEL LOG_LEVEL_COAP #define ADD_CHAR_IF_POSSIBLE(char) \ diff --git a/os/net/app-layer/coap/coap-separate.c b/os/net/app-layer/coap/coap-separate.c index 318a4e53d..7eb5e5675 100644 --- a/os/net/app-layer/coap/coap-separate.c +++ b/os/net/app-layer/coap/coap-separate.c @@ -49,7 +49,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "coap-separate" +#define LOG_MODULE "coap" #define LOG_LEVEL LOG_LEVEL_COAP /*---------------------------------------------------------------------------*/ diff --git a/os/net/app-layer/coap/coap-timer-default.c b/os/net/app-layer/coap/coap-timer-default.c index ad1b30d28..7da3dfb05 100644 --- a/os/net/app-layer/coap/coap-timer-default.c +++ b/os/net/app-layer/coap/coap-timer-default.c @@ -52,7 +52,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "coap-timer-default" +#define LOG_MODULE "coap-timer" #define LOG_LEVEL LOG_LEVEL_NONE PROCESS(coap_timer_process, "coap timer process"); diff --git a/os/net/app-layer/coap/coap-transactions.c b/os/net/app-layer/coap/coap-transactions.c index 652737b94..7e34d22e4 100644 --- a/os/net/app-layer/coap/coap-transactions.c +++ b/os/net/app-layer/coap/coap-transactions.c @@ -50,7 +50,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "coap-transactions" +#define LOG_MODULE "coap" #define LOG_LEVEL LOG_LEVEL_COAP /*---------------------------------------------------------------------------*/ From 3c1273805021cf4485b24d5e4a9c00d543ece385 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Fri, 4 May 2018 11:02:25 +0200 Subject: [PATCH 26/31] lwm2m: shorter log module names for aligned log output --- os/services/lwm2m/lwm2m-device.c | 2 +- os/services/lwm2m/lwm2m-engine.c | 2 +- os/services/lwm2m/lwm2m-firmware.c | 2 +- os/services/lwm2m/lwm2m-plain-text.c | 2 +- os/services/lwm2m/lwm2m-rd-client.c | 2 +- os/services/lwm2m/lwm2m-security.c | 2 +- os/services/lwm2m/lwm2m-server.c | 2 +- os/services/lwm2m/lwm2m-tlv-writer.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/os/services/lwm2m/lwm2m-device.c b/os/services/lwm2m/lwm2m-device.c index 9e91b37fd..4183c59ca 100644 --- a/os/services/lwm2m/lwm2m-device.c +++ b/os/services/lwm2m/lwm2m-device.c @@ -48,7 +48,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "lwm2m-device" +#define LOG_MODULE "lwm2m-dev" #define LOG_LEVEL LOG_LEVEL_LWM2M static const lwm2m_resource_id_t resources[] = diff --git a/os/services/lwm2m/lwm2m-engine.c b/os/services/lwm2m/lwm2m-engine.c index b96674215..1dca95a44 100644 --- a/os/services/lwm2m/lwm2m-engine.c +++ b/os/services/lwm2m/lwm2m-engine.c @@ -63,7 +63,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "lwm2m-engine" +#define LOG_MODULE "lwm2m-eng" #define LOG_LEVEL LOG_LEVEL_LWM2M #ifndef LWM2M_ENGINE_CLIENT_ENDPOINT_PREFIX diff --git a/os/services/lwm2m/lwm2m-firmware.c b/os/services/lwm2m/lwm2m-firmware.c index e89c3dab4..87815d684 100644 --- a/os/services/lwm2m/lwm2m-firmware.c +++ b/os/services/lwm2m/lwm2m-firmware.c @@ -44,7 +44,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "lwm2m-firmware" +#define LOG_MODULE "lwm2m-fw" #define LOG_LEVEL LOG_LEVEL_LWM2M #define UPDATE_PACKAGE 0 diff --git a/os/services/lwm2m/lwm2m-plain-text.c b/os/services/lwm2m/lwm2m-plain-text.c index bbd293aa0..3dc816ddc 100644 --- a/os/services/lwm2m/lwm2m-plain-text.c +++ b/os/services/lwm2m/lwm2m-plain-text.c @@ -49,7 +49,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "lwm2m-plain-text" +#define LOG_MODULE "lwm2m-text" #define LOG_LEVEL LOG_LEVEL_NONE /*---------------------------------------------------------------------------*/ diff --git a/os/services/lwm2m/lwm2m-rd-client.c b/os/services/lwm2m/lwm2m-rd-client.c index 0f904ee4d..03d21e33e 100644 --- a/os/services/lwm2m/lwm2m-rd-client.c +++ b/os/services/lwm2m/lwm2m-rd-client.c @@ -64,7 +64,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "lwm2m-rd-client" +#define LOG_MODULE "lwm2m-rd" #define LOG_LEVEL LOG_LEVEL_LWM2M #ifndef LWM2M_DEFAULT_CLIENT_LIFETIME diff --git a/os/services/lwm2m/lwm2m-security.c b/os/services/lwm2m/lwm2m-security.c index 5fe0c31cb..e4275f280 100644 --- a/os/services/lwm2m/lwm2m-security.c +++ b/os/services/lwm2m/lwm2m-security.c @@ -54,7 +54,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "lwm2m-security" +#define LOG_MODULE "lwm2m-sec" #define LOG_LEVEL LOG_LEVEL_LWM2M #define MAX_COUNT LWM2M_SERVER_MAX_COUNT diff --git a/os/services/lwm2m/lwm2m-server.c b/os/services/lwm2m/lwm2m-server.c index 67b2c45ba..bf0398b4f 100644 --- a/os/services/lwm2m/lwm2m-server.c +++ b/os/services/lwm2m/lwm2m-server.c @@ -51,7 +51,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "lwm2m-server" +#define LOG_MODULE "lwm2m-srv" #define LOG_LEVEL LOG_LEVEL_LWM2M #define MAX_COUNT LWM2M_SERVER_MAX_COUNT diff --git a/os/services/lwm2m/lwm2m-tlv-writer.c b/os/services/lwm2m/lwm2m-tlv-writer.c index 6df16447e..41bdc2f6c 100644 --- a/os/services/lwm2m/lwm2m-tlv-writer.c +++ b/os/services/lwm2m/lwm2m-tlv-writer.c @@ -47,7 +47,7 @@ /* Log configuration */ #include "coap-log.h" -#define LOG_MODULE "lwm2m-tlv-writer" +#define LOG_MODULE "lwm2m-tlv" #define LOG_LEVEL LOG_LEVEL_NONE /*---------------------------------------------------------------------------*/ From f6330996f74548c91bafc6b188eb6c6f8a60dc27 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Fri, 4 May 2018 11:11:17 +0200 Subject: [PATCH 27/31] dtls: shorter log module name for aligned log output --- os/net/app-layer/coap/tinydtls-support/dtls-support.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/net/app-layer/coap/tinydtls-support/dtls-support.c b/os/net/app-layer/coap/tinydtls-support/dtls-support.c index ad960b718..4675c76d0 100644 --- a/os/net/app-layer/coap/tinydtls-support/dtls-support.c +++ b/os/net/app-layer/coap/tinydtls-support/dtls-support.c @@ -42,7 +42,7 @@ #include /* Log configuration */ -#define LOG_MODULE "dtls-support" +#define LOG_MODULE "dtls" #define LOG_LEVEL LOG_LEVEL_DTLS #include "dtls-log.h" #include "coap-log.h" From 15e51288ec0d6114c059b8efd81a39278a766dba Mon Sep 17 00:00:00 2001 From: Joakim Eriksson Date: Fri, 4 May 2018 18:01:18 +0200 Subject: [PATCH 28/31] fixed platforms to build for in Makefile --- examples/storage/antelope-shell/Makefile | 2 +- examples/storage/cfs-coffee/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/storage/antelope-shell/Makefile b/examples/storage/antelope-shell/Makefile index 3b3f7fd23..5eff3dcd3 100644 --- a/examples/storage/antelope-shell/Makefile +++ b/examples/storage/antelope-shell/Makefile @@ -3,7 +3,7 @@ CONTIKI = ../../.. MODULES += os/storage/antelope os/services/unit-test # does not fit on Sky -PLATFORMS_ONLY= cc2538 +PLATFORMS_ONLY= cc2538dk zoul CONTIKI_PROJECT = shell-db all: $(CONTIKI_PROJECT) diff --git a/examples/storage/cfs-coffee/Makefile b/examples/storage/cfs-coffee/Makefile index 10d6256fa..b6d22f5ac 100644 --- a/examples/storage/cfs-coffee/Makefile +++ b/examples/storage/cfs-coffee/Makefile @@ -1,6 +1,6 @@ CONTIKI = ../../.. -PLATFORMS_ONLY= cc2538 sky +PLATFORMS_ONLY= cc2538dk zoul sky MODULES += os/services/unit-test MODULES += os/storage/cfs From f5cee451d1d2df3e8deb2034b445c1196b2bfa77 Mon Sep 17 00:00:00 2001 From: Nicolas Tsiftes Date: Fri, 4 May 2018 18:12:10 +0200 Subject: [PATCH 29/31] Use a default Coffee file reservation size in Antelope that is selected in relation to the file system size. --- os/storage/antelope/db-options.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/os/storage/antelope/db-options.h b/os/storage/antelope/db-options.h index f82c72edc..2be415f4e 100644 --- a/os/storage/antelope/db-options.h +++ b/os/storage/antelope/db-options.h @@ -38,6 +38,7 @@ #define DB_OPTIONS_H #include "contiki.h" +#include "cfs-coffee-arch.h" /*----------------------------------------------------------------------------*/ @@ -143,9 +144,17 @@ /* The default relation file size to reserve when using Coffee. */ #ifndef DB_COFFEE_RESERVE_SIZE -#define DB_COFFEE_RESERVE_SIZE (128 * 1024UL) +#define DB_COFFEE_RESERVE_SIZE (COFFEE_SIZE / 8) #endif /* DB_COFFEE_RESERVE_SIZE */ +/* + * Ensure that the default size of Coffee file reservations is suitable + * for the file system size. + */ +#if DB_COFFEE_RESERVE_SIZE > (COFFEE_SIZE / 2) +#error DB_COFFEE_RESERVE_SIZE is too large for the file system. +#endif + /* The maximum size of the physical storage of a tuple (labelled a "row" in Antelope's terminology. */ #ifndef DB_MAX_CHAR_SIZE_PER_ROW From 7aed97f51408f8b4b6f7ced58a65e2ea94f26f66 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Fri, 4 May 2018 19:15:03 +0200 Subject: [PATCH 30/31] Updated tinydtls submodule to latest version --- os/net/security/tinydtls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/net/security/tinydtls b/os/net/security/tinydtls index 5da931eeb..5ec7ad129 160000 --- a/os/net/security/tinydtls +++ b/os/net/security/tinydtls @@ -1 +1 @@ -Subproject commit 5da931eeb78d1cd4a1e0068a91de9b78bd3f66de +Subproject commit 5ec7ad12984eebf22a7eb5d779f24945db4829e2 From fa54354d922f0aa3505ca22bfba9893bc33fd116 Mon Sep 17 00:00:00 2001 From: Niclas Finne Date: Mon, 7 May 2018 06:51:09 +0200 Subject: [PATCH 31/31] Updated lwm2m-ipso-object server-example for latest RPL/CoAP APIs --- examples/lwm2m-ipso-objects/Makefile | 13 -- examples/lwm2m-ipso-objects/README.md | 4 +- examples/lwm2m-ipso-objects/example-server.c | 197 +++++++++--------- examples/lwm2m-ipso-objects/serial-protocol.c | 6 +- 4 files changed, 110 insertions(+), 110 deletions(-) diff --git a/examples/lwm2m-ipso-objects/Makefile b/examples/lwm2m-ipso-objects/Makefile index d77f4200a..7fa79d1ee 100644 --- a/examples/lwm2m-ipso-objects/Makefile +++ b/examples/lwm2m-ipso-objects/Makefile @@ -12,16 +12,3 @@ MODULES += os/services/ipso-objects CONTIKI=../.. include $(CONTIKI)/Makefile.include - -# border router rules -$(CONTIKI)/tools/tunslip6: $(CONTIKI)/tools/tunslip6.c - (cd $(CONTIKI)/tools && $(MAKE) tunslip6) - -connect-router: $(CONTIKI)/tools/tunslip6 - sudo $(CONTIKI)/tools/tunslip6 aaaa::1/64 - -connect-router-cooja: $(CONTIKI)/tools/tunslip6 - sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 -p 60001 aaaa::1/64 - -connect-router-native: $(CONTIKI)/examples/native-border-router/border-router.native - sudo $(CONTIKI)/examples/native-border-router/border-router.native -a 127.0.0.1 -p 60001 aaaa::1/64 diff --git a/examples/lwm2m-ipso-objects/README.md b/examples/lwm2m-ipso-objects/README.md index 30cc5832f..d31b3a844 100644 --- a/examples/lwm2m-ipso-objects/README.md +++ b/examples/lwm2m-ipso-objects/README.md @@ -3,8 +3,8 @@ LWM2M with IPSO Objects Example This is an OMA LWM2M example implementing IPSO Objects. It can connect to a Leshan server out-of-the-box. -Important configuration paramters: -* `LWM2M_SERVER_ADDRESS`: the address of the server to register to (or bosstrap from) +Important configuration parameters: +* `LWM2M_SERVER_ADDRESS`: the address of the server to register to (or bootstrap from) * `REGISTER_WITH_LWM2M_BOOTSTRAP_SERVER`: set to bootstrap via `LWM2M_SERVER_ADDRESS` and then obtain the registration server address A tutorial for setting up this example is provided on the wiki. diff --git a/examples/lwm2m-ipso-objects/example-server.c b/examples/lwm2m-ipso-objects/example-server.c index 4eac38f69..0b55b80a2 100644 --- a/examples/lwm2m-ipso-objects/example-server.c +++ b/examples/lwm2m-ipso-objects/example-server.c @@ -38,19 +38,23 @@ #include "contiki.h" #include "net/ipv6/uip.h" +#include "net/ipv6/uip-ds6.h" #include "net/netstack.h" #include "net/routing/routing.h" -#include "coap-constants.h" -#include "coap-engine.h" +#include "coap-transport.h" +#include "coap-blocking-api.h" #include "lwm2m-engine.h" #include "lwm2m-tlv.h" #include "dev/serial-line.h" #include "serial-protocol.h" +#include #define DEBUG DEBUG_PRINT #include "net/ipv6/uip-debug.h" -#define REMOTE_PORT UIP_HTONS(COAP_DEFAULT_PORT) +#define REMOTE_PORT UIP_HTONS(COAP_DEFAULT_PORT) + +#define EVENT_RUN_NOW 0 #define URL_WELL_KNOWN ".well-known/core" #define URL_DEVICE_MODEL "/3/0/1" @@ -63,8 +67,8 @@ #define NODE_HAS_TYPE (1 << 0) struct node { - uip_ipaddr_t ipaddr; - char type[32]; + coap_endpoint_t endpoint; + char type[64]; uint8_t flags; uint8_t retries; }; @@ -86,13 +90,15 @@ add_node(const uip_ipaddr_t *addr) { int i; for(i = 0; i < node_count; i++) { - if(uip_ipaddr_cmp(&nodes[i].ipaddr, addr)) { + if(uip_ipaddr_cmp(&nodes[i].endpoint.ipaddr, addr)) { /* Node already added */ return &nodes[i]; } } if(node_count < MAX_NODES) { - uip_ipaddr_copy(&nodes[node_count].ipaddr, addr); + memset(&nodes[node_count].endpoint, 0, sizeof(coap_endpoint_t)); + uip_ipaddr_copy(&nodes[node_count].endpoint.ipaddr, addr); + nodes[node_count].endpoint.port = REMOTE_PORT; return &nodes[node_count++]; } return NULL; @@ -107,13 +113,13 @@ set_value(const uip_ipaddr_t *addr, char *uri, char *value) printf(" URI: %s Value: %s\n", uri, value); for(i = 0; i < node_count; i++) { - if(uip_ipaddr_cmp(&nodes[i].ipaddr, addr)) { + if(uip_ipaddr_cmp(&nodes[i].endpoint.ipaddr, addr)) { /* setup command */ current_target = &nodes[i]; current_request = COAP_PUT; strncpy(current_uri, uri, sizeof(current_uri) - 1); strncpy(current_value, value, sizeof(current_value) - 1); - process_poll(&router_process); + process_post(&router_process, EVENT_RUN_NOW, NULL); break; } } @@ -128,13 +134,13 @@ get_value(const uip_ipaddr_t *addr, char *uri) printf(" URI: %s\n", uri); for(i = 0; i < node_count; i++) { - if(uip_ipaddr_cmp(&nodes[i].ipaddr, addr)) { + if(uip_ipaddr_cmp(&nodes[i].endpoint.ipaddr, addr)) { /* setup command */ current_target = &nodes[i]; current_request = COAP_GET; strncpy(current_uri, uri, sizeof(current_uri) - 1); current_value[0] = 0; - process_poll(&router_process); + process_post(&router_process, EVENT_RUN_NOW, NULL); break; } } @@ -151,7 +157,7 @@ print_node_list(void) printf(";"); } printf("%s,", nodes[i].type); - uip_debug_ipaddr_print(&nodes[i].ipaddr); + uip_debug_ipaddr_print(&nodes[i].endpoint.ipaddr); } } printf("\n"); @@ -162,7 +168,7 @@ print_node_list(void) * handle responses. */ static void -client_chunk_handler(void *response) +client_chunk_handler(coap_message_t *response) { const uint8_t *chunk; unsigned int format; @@ -172,7 +178,9 @@ client_chunk_handler(void *response) /* if(len > 0) { */ /* printf("|%.*s (%d,%d)", len, (char *)chunk, len, format); */ /* } */ - if(current_target != NULL && fetching_type) { + if(response->code >= BAD_REQUEST_4_00) { + PRINTF("\nReceived error %u: %.*s\n", response->code, len, (char *)chunk); + } else if(current_target != NULL && fetching_type) { if(len > sizeof(current_target->type) - 1) { len = sizeof(current_target->type) - 1; } @@ -181,7 +189,7 @@ client_chunk_handler(void *response) current_target->flags |= NODE_HAS_TYPE; PRINTF("\nNODE "); - PRINT6ADDR(¤t_target->ipaddr); + PRINT6ADDR(¤t_target->endpoint.ipaddr); PRINTF(" HAS TYPE %s\n", current_target->type); } else { /* otherwise update the current value */ @@ -193,7 +201,9 @@ client_chunk_handler(void *response) /* tlv.type, tlv.length, tlv.id, tlv.value[0]); */ int value = lwm2m_tlv_get_int32(&tlv); - snprintf(current_value, sizeof(current_value), "%d", value); + snprintf(current_value, sizeof(current_value) - 1, "%d", value); + } else { + PRINTF("Failed to parse LWM2M TLV\n"); } } else { if(len > sizeof(current_value) - 1) { @@ -205,72 +215,84 @@ client_chunk_handler(void *response) } } /*---------------------------------------------------------------------------*/ -static void -setup_network(void) +#if UIP_CONF_IPV6_RPL +static bool +check_rpl_routes(void) { - uip_ipaddr_t ipaddr; - struct uip_ds6_addr *root_if; - rpl_dag_t *dag; - int i; - uint8_t state; + uip_sr_node_t *link; + uip_ipaddr_t child_ipaddr; + uip_ipaddr_t parent_ipaddr; -#if UIP_CONF_ROUTER -/** - * The choice of server address determines its 6LoWPAN header compression. - * 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, - * e.g. set Context 0 to fd00::. At present Wireshark copies Context/128 and then overwrites it. - * (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. - */ -#if 0 -/* Mode 1 - 64 bits inline */ - uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 1); -#elif 1 -/* Mode 2 - 16 bits inline */ - uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0x00ff, 0xfe00, 1); -#else -/* Mode 3 - derived from link local (MAC) address */ - uip_ip6addr(&ipaddr, UIP_DS6_DEFAULT_PREFIX, 0, 0, 0, 0, 0, 0, 0); - uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr); -#endif + /* Our routing links */ + for(link = uip_sr_node_head(); link != NULL; link = uip_sr_node_next(link)) { + NETSTACK_ROUTING.get_sr_node_ipaddr(&child_ipaddr, link); - NETSTACK_ROUTING.root_set_prefix(&ipaddr, &ipaddr); - NETSTACK_ROUTING.root_start(); -#endif /* UIP_CONF_ROUTER */ - - PRINTF("IPv6 addresses: "); - for(i = 0; i < UIP_DS6_ADDR_NB; i++) { - state = uip_ds6_if.addr_list[i].state; - if(state == ADDR_TENTATIVE || state == ADDR_PREFERRED) { - PRINT6ADDR(&uip_ds6_if.addr_list[i].ipaddr); - PRINTF("\n"); - /* hack to make address "final" */ - if (state == ADDR_TENTATIVE) { - uip_ds6_if.addr_list[i].state = ADDR_PREFERRED; - } + if(link->parent == NULL) { + /* Igore the DAG root */ + continue; } + + current_target = add_node(&child_ipaddr); + if(current_target == NULL || + (current_target->flags & NODE_HAS_TYPE) != 0 || + current_target->retries > 5) { + continue; + } + + NETSTACK_ROUTING.get_sr_node_ipaddr(&parent_ipaddr, link->parent); + PRINTF(" "); + PRINT6ADDR(&child_ipaddr); + PRINTF(" -> "); + PRINT6ADDR(&parent_ipaddr); + PRINTF("\n"); + return true; } + return false; } +#endif /* UIP_CONF_IPV6_RPL */ +/*---------------------------------------------------------------------------*/ +#if (UIP_MAX_ROUTES != 0) +static bool +check_routes(void) +{ + uip_ds6_route_t *r; + + for(r = uip_ds6_route_head(); r != NULL; r = uip_ds6_route_next(r)) { + current_target = add_node(&r->ipaddr); + if(current_target == NULL || + (current_target->flags & NODE_HAS_TYPE) != 0 || + current_target->retries > 5) { + continue; + } + PRINTF(" "); + PRINT6ADDR(&r->ipaddr); + PRINTF(" -> "); + nexthop = uip_ds6_route_nexthop(r); + if(nexthop != NULL) { + PRINT6ADDR(nexthop); + } else { + PRINTF("-"); + } + PRINTF("\n"); + return true; + } + return false; +} +#endif /* (UIP_MAX_ROUTES != 0) */ /*---------------------------------------------------------------------------*/ PROCESS_THREAD(router_process, ev, data) { /* This way the message can be treated as pointer as usual. */ static coap_message_t request[1]; static struct etimer timer; - uip_ds6_route_t *r; - uip_ipaddr_t *nexthop; - int n; PROCESS_BEGIN(); - PROCESS_PAUSE(); - /* receives all CoAP messages */ coap_engine_init(); - setup_network(); + /* Initialize DAG root */ + NETSTACK_ROUTING.root_start(); while(1) { etimer_set(&timer, CLOCK_SECOND * 5); @@ -283,28 +305,15 @@ PROCESS_THREAD(router_process, ev, data) if(etimer_expired(&timer)) { current_target = NULL; - n = 0; - for(r = uip_ds6_route_head(); r != NULL; r = uip_ds6_route_next(r)) { - current_target = add_node(&r->ipaddr); - if(current_target == NULL || - (current_target->flags & NODE_HAS_TYPE) != 0 || - current_target->retries > 5) { - continue; - } - PRINTF(" "); - PRINT6ADDR(&r->ipaddr); - PRINTF(" -> "); - nexthop = uip_ds6_route_nexthop(r); - if(nexthop != NULL) { - PRINT6ADDR(nexthop); - PRINTF("\n"); - } else { - PRINTF("-"); - } - PRINTF("\n"); - n++; - break; +#if UIP_CONF_IPV6_RPL + check_rpl_routes(); +#endif /* UIP_CONF_IPV6_RPL */ + +#if (UIP_MAX_ROUTES != 0) + if(current_target == NULL) { + check_routes(); } +#endif /* (UIP_MAX_ROUTES != 0) */ } /* This is a node type discovery */ @@ -319,15 +328,15 @@ PROCESS_THREAD(router_process, ev, data) current_target->retries++; PRINTF("CoAP request to ["); - PRINT6ADDR(¤t_target->ipaddr); - PRINTF("]:%u (%u tx)\n", UIP_HTONS(REMOTE_PORT), + PRINT6ADDR(¤t_target->endpoint.ipaddr); + PRINTF("]:%u (%u tx)\n", UIP_HTONS(current_target->endpoint.port), current_target->retries); fetching_type = 1; - COAP_BLOCKING_REQUEST(¤t_target->ipaddr, REMOTE_PORT, request, + COAP_BLOCKING_REQUEST(¤t_target->endpoint, request, client_chunk_handler); fetching_type = 0; - strncpy(current_uri, URL_LIGHT_CONTROL, sizeof(current_uri)); + strncpy(current_uri, URL_LIGHT_CONTROL, sizeof(current_uri) - 1); printf("\n--Done--\n"); } @@ -344,10 +353,11 @@ PROCESS_THREAD(router_process, ev, data) } PRINTF("CoAP request to ["); - PRINT6ADDR(¤t_target->ipaddr); - PRINTF("]:%u %s\n", UIP_HTONS(REMOTE_PORT), current_uri); + PRINT6ADDR(¤t_target->endpoint.ipaddr); + PRINTF("]:%u %s\n", UIP_HTONS(current_target->endpoint.port), + current_uri); - COAP_BLOCKING_REQUEST(¤t_target->ipaddr, REMOTE_PORT, request, + COAP_BLOCKING_REQUEST(¤t_target->endpoint, request, client_chunk_handler); /* print out result of command */ @@ -356,13 +366,12 @@ PROCESS_THREAD(router_process, ev, data) } else { printf("g "); } - uip_debug_ipaddr_print(¤t_target->ipaddr); + uip_debug_ipaddr_print(¤t_target->endpoint.ipaddr); printf(" %s %s\n", current_uri, current_value); current_target = NULL; current_uri[0] = 0; current_value[0] = 0; - } } diff --git a/examples/lwm2m-ipso-objects/serial-protocol.c b/examples/lwm2m-ipso-objects/serial-protocol.c index bc59294f6..00c7e0139 100644 --- a/examples/lwm2m-ipso-objects/serial-protocol.c +++ b/examples/lwm2m-ipso-objects/serial-protocol.c @@ -60,7 +60,7 @@ find_next_sep(const char *str, char sep, int pos) /* * l - list all discovered devices * s - set - * d - get + * g - get */ void serial_protocol_input(char *data) @@ -119,8 +119,12 @@ serial_protocol_input(char *data) } break; } + case '\0': + /* Ignore empty lines */ + break; default: printf("Unknown command\n"); } + printf("> "); } /*---------------------------------------------------------------------------*/