Sergio Scaglia / Nanostack_lib

Dependents:   mbedEndpointNetwork mbedEndpointNetworkMJK

Fork of Nanostack_lib by Sensinode

Committer:
Mika Karjalainen
Date:
Mon Jun 30 12:04:13 2014 +0300
Revision:
12:acef6f596835
Parent:
11:1b7aaf37a131
updated Nanostack library release package

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mika Karjalainen 4:c449bead5cf3 1 /**
Mika Karjalainen 4:c449bead5cf3 2 * \file br_mle_lib.h
Mika Karjalainen 4:c449bead5cf3 3 * \brief Border Router MLE (Mesh Link Establishment) API when wireless interface is running.
Mika Karjalainen 4:c449bead5cf3 4 *
Mika Karjalainen 4:c449bead5cf3 5 * - arm_mle_prepare_update(), Update MLE link parameter(Channel, PAN-ID, allow-join) at Run time
Mika Karjalainen 4:c449bead5cf3 6 * - arm_mle_update_beacon_payload(), Update Beacon payload optional data part
Mika Karjalainen 4:c449bead5cf3 7 * - arm_mle_link_request_to_routers(), load MLE entry from NVM
Mika Karjalainen 4:c449bead5cf3 8 *
Mika Karjalainen 4:c449bead5cf3 9 * MLE update process recommend minimum delay should be >5000 ms.
Mika Karjalainen 4:c449bead5cf3 10 * PAN-ID and Channel update cause problems to sleepy Host Node.
Mika Karjalainen 4:c449bead5cf3 11 * Those nodes never get Multicast packet from parent and loose parent.
Mika Karjalainen 4:c449bead5cf3 12 *
Mika Karjalainen 4:c449bead5cf3 13 * MLE link update messages will be delivered by trickle multicast forwarding using multicast address FF03::1.
Mika Karjalainen 4:c449bead5cf3 14 *
Mika Karjalainen 4:c449bead5cf3 15 */
Mika Karjalainen 12:acef6f596835 16 #ifndef _BR_MLE_LIB_H
Mika Karjalainen 12:acef6f596835 17 #define _BR_MLE_LIB_H
Mika Karjalainen 12:acef6f596835 18 #ifdef __cplusplus
jusu_81 11:1b7aaf37a131 19 extern "C" {
jusu_81 11:1b7aaf37a131 20 #endif
Mika Karjalainen 12:acef6f596835 21
Mika Karjalainen 4:c449bead5cf3 22 /* Supported MLE Link layer Parameters changes at Run time*/
Mika Karjalainen 4:c449bead5cf3 23 #define MLE_CHANNEL_UPDATE_TYPE 0 /* Update new link layer channel */
Mika Karjalainen 4:c449bead5cf3 24 #define MLE_PANID_UPDATE_TYPE 1 /* Update new link layer PAN-ID */
Mika Karjalainen 4:c449bead5cf3 25 #define MLE_ALLOW_JOIN_UPDATE_TYPE 2 /* Update Allow Join Bit at Beacon payload */
Mika Karjalainen 4:c449bead5cf3 26
Mika Karjalainen 4:c449bead5cf3 27 /**
Mika Karjalainen 4:c449bead5cf3 28 * \brief Update MLE link parameter at Run time
Mika Karjalainen 4:c449bead5cf3 29 *
Mika Karjalainen 4:c449bead5cf3 30 * \param nwk_id Network interface ID
Mika Karjalainen 4:c449bead5cf3 31 * \param type MLE_CHANNEL_UPDATE_TYPE, MLE_PANID_UPDATE_TYPE or MLE_ALLOW_JOIN_UPDATE_TYPE
Mika Karjalainen 4:c449bead5cf3 32 * \param time Interval to Update in milliseconds need to 5000 or bigger.
Mika Karjalainen 4:c449bead5cf3 33 * \param value indicate channel, pan-id or boolean value for allow join
Mika Karjalainen 4:c449bead5cf3 34 *
Mika Karjalainen 4:c449bead5cf3 35 * \return 0 Update process OK
Mika Karjalainen 4:c449bead5cf3 36 * \return -1 Old update process still active
Mika Karjalainen 4:c449bead5cf3 37 * \return -2 Unsupported Update Type
Mika Karjalainen 4:c449bead5cf3 38 * \return -3 Un supported value (channel not between 11-26 or pan id was 0xffff or 0xfffe)
Mika Karjalainen 4:c449bead5cf3 39 * \return -4 Stack at idle state
Mika Karjalainen 4:c449bead5cf3 40 *
Mika Karjalainen 4:c449bead5cf3 41 * List Possible values for specific types:
Mika Karjalainen 4:c449bead5cf3 42 * - MLE_CHANNEL_UPDATE_TYPE, supported values 11-26
Mika Karjalainen 4:c449bead5cf3 43 * - MLE_PAN_ID_UPDATE_TYPE ,supported value 0x0000 -0xfffd
Mika Karjalainen 4:c449bead5cf3 44 * - MLE_ALLOW_JOIN__UPDATE_TYPE ,16-bit Boolean 0=Disbaled and 1=Enabled
Mika Karjalainen 4:c449bead5cf3 45 *
Mika Karjalainen 4:c449bead5cf3 46 *
Mika Karjalainen 4:c449bead5cf3 47 */
Mika Karjalainen 4:c449bead5cf3 48 extern int8_t arm_mle_prepare_update(int8_t nwk_id,uint8_t type, uint32_t time, uint16_t value);
Mika Karjalainen 4:c449bead5cf3 49 /**
Mika Karjalainen 4:c449bead5cf3 50 * \brief Update Beacon Payload optional field
Mika Karjalainen 4:c449bead5cf3 51 *
Mika Karjalainen 4:c449bead5cf3 52 * \param nwk_id Network interface ID
Mika Karjalainen 4:c449bead5cf3 53 * \param optional_fields_data pointer to given Optional data
Mika Karjalainen 4:c449bead5cf3 54 * \param optional_fields_len length of optional data
Mika Karjalainen 4:c449bead5cf3 55 * \param delay Interval to Update in milliseconds need to 5000 or bigger.
Mika Karjalainen 4:c449bead5cf3 56 *
Mika Karjalainen 4:c449bead5cf3 57 * \return 0 Update process OK
Mika Karjalainen 4:c449bead5cf3 58 * \return -1 Old update process still active or Memory allocation fail
Mika Karjalainen 4:c449bead5cf3 59 * \return -2 Unsupported Update Type
Mika Karjalainen 4:c449bead5cf3 60 * \return -4 Stack at idle state
Mika Karjalainen 4:c449bead5cf3 61 *
Mika Karjalainen 4:c449bead5cf3 62 */
Mika Karjalainen 4:c449bead5cf3 63 extern int8_t arm_mle_update_beacon_payload(int8_t nwk_id, uint8_t *optional_fields_data, uint8_t optional_fields_len, uint32_t delay);
Mika Karjalainen 4:c449bead5cf3 64 /**
Mika Karjalainen 4:c449bead5cf3 65 * \brief Send multicast MLE link request to all routers
Mika Karjalainen 4:c449bead5cf3 66 *
Mika Karjalainen 4:c449bead5cf3 67 * This function should call when Border Router bootup by loaded NVM setups.
Mika Karjalainen 4:c449bead5cf3 68 *
Mika Karjalainen 4:c449bead5cf3 69 * \param nwk_id Network interface ID
Mika Karjalainen 4:c449bead5cf3 70 *
Mika Karjalainen 4:c449bead5cf3 71 * \return 0 Update process OK
Mika Karjalainen 4:c449bead5cf3 72 * \return -1 Memory allocation fail for packet
Mika Karjalainen 4:c449bead5cf3 73 *
Mika Karjalainen 4:c449bead5cf3 74 */
Mika Karjalainen 4:c449bead5cf3 75 extern int8_t arm_mle_link_request_to_routers(int8_t nwk_id);
Mika Karjalainen 12:acef6f596835 76 #ifdef __cplusplus
jusu_81 11:1b7aaf37a131 77 }
jusu_81 11:1b7aaf37a131 78 #endif
Mika Karjalainen 12:acef6f596835 79 #endif /*_BR_MLE_LIB_H*/