Sergio Scaglia / Nanostack_lib

Dependents:   mbedEndpointNetwork mbedEndpointNetworkMJK

Fork of Nanostack_lib by Sensinode

Committer:
jusu_81
Date:
Wed Jun 25 21:05:58 2014 +0000
Revision:
11:1b7aaf37a131
Parent:
4:c449bead5cf3
Child:
12:acef6f596835
Added C++ & C Extern C sectors to hedaer files.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mika Karjalainen 4:c449bead5cf3 1 #ifndef MULTICAST_API_H_
Mika Karjalainen 4:c449bead5cf3 2 #define MULTICAST_API_H_
Mika Karjalainen 4:c449bead5cf3 3 /**
Mika Karjalainen 4:c449bead5cf3 4 * \file multicast_api.h
Mika Karjalainen 4:c449bead5cf3 5 * \brief Multicast Trickle Forwarding API.
Mika Karjalainen 4:c449bead5cf3 6 * \section multi-init Init API:
Mika Karjalainen 4:c449bead5cf3 7 * - multicast_set_parameters(), Set Trickle Parameters
Mika Karjalainen 4:c449bead5cf3 8 * \section multi-cnf Configure API:
Mika Karjalainen 4:c449bead5cf3 9 * - multicast_add_address(), Add new address to multicast group and control Trickle forwarding
Mika Karjalainen 4:c449bead5cf3 10 * - multicast_free_address(), Remove supported Multicast address from List
Mika Karjalainen 4:c449bead5cf3 11 *
Mika Karjalainen 4:c449bead5cf3 12 * \section ZigBeeIP Trickle Setups for Multicast Init
Mika Karjalainen 4:c449bead5cf3 13 *
Mika Karjalainen 4:c449bead5cf3 14 * | Parameter | VALUE |
Mika Karjalainen 4:c449bead5cf3 15 * | :---------------: | :---: |
Mika Karjalainen 4:c449bead5cf3 16 * | imin | 10 |
Mika Karjalainen 4:c449bead5cf3 17 * | imax | 0 |
Mika Karjalainen 4:c449bead5cf3 18 * | k | 20 |
Mika Karjalainen 4:c449bead5cf3 19 * | timer_expirations | 3 |
Mika Karjalainen 4:c449bead5cf3 20 * | window_expiration | 75 |
Mika Karjalainen 4:c449bead5cf3 21 *
Mika Karjalainen 4:c449bead5cf3 22 */
Mika Karjalainen 4:c449bead5cf3 23
jusu_81 11:1b7aaf37a131 24 #ifdef __cplusplus
jusu_81 11:1b7aaf37a131 25 extern "C" {
jusu_81 11:1b7aaf37a131 26 #endif
Mika Karjalainen 4:c449bead5cf3 27
Mika Karjalainen 4:c449bead5cf3 28
Mika Karjalainen 4:c449bead5cf3 29 /**
Mika Karjalainen 4:c449bead5cf3 30 * \brief Set new parameters for Trickle Multicast.
Mika Karjalainen 4:c449bead5cf3 31 *
Mika Karjalainen 4:c449bead5cf3 32 * \param i_min Minimum Trickle timer interval in 50ms resolution: Imin = i_min * 50ms.
Mika Karjalainen 4:c449bead5cf3 33 * \param i_max Maximum Trickle timer interval as number if doubling of minimum interval.
Mika Karjalainen 4:c449bead5cf3 34 * \param k Redundancy constant.
Mika Karjalainen 4:c449bead5cf3 35 * \param timer_expirations Number if Trickle timer expirations before terminating Trickle process.
Mika Karjalainen 4:c449bead5cf3 36 * \param window_expiration Time window state is kept after Trickle process has ended in 50ms resolution.
Mika Karjalainen 4:c449bead5cf3 37 * NOTE: If window_expiration value is set too small an infinite retransmission loop may occur when using the trickle multicast.
Mika Karjalainen 4:c449bead5cf3 38 */
Mika Karjalainen 4:c449bead5cf3 39 extern void multicast_set_parameters(uint8_t i_min, uint8_t i_max, uint8_t k, uint8_t timer_expirations, uint8_t window_expiration);
Mika Karjalainen 4:c449bead5cf3 40
Mika Karjalainen 4:c449bead5cf3 41
Mika Karjalainen 4:c449bead5cf3 42 /**
Mika Karjalainen 4:c449bead5cf3 43 * \brief Add new address to multicast group.
Mika Karjalainen 4:c449bead5cf3 44 *
Mika Karjalainen 4:c449bead5cf3 45 * \param address_ptr Pointer to a 16-byte array that includes the address to be added.
Mika Karjalainen 4:c449bead5cf3 46 * \param use_trickle 0 = no trickle multicast forwarding, all other values = trickle multicast forwarding will be used with this address.
Mika Karjalainen 4:c449bead5cf3 47 *
Mika Karjalainen 4:c449bead5cf3 48 * \return 0 general error.
Mika Karjalainen 4:c449bead5cf3 49 * \return 1 address updated.
Mika Karjalainen 4:c449bead5cf3 50 * \return 2 address added.
Mika Karjalainen 4:c449bead5cf3 51 * \return 255 link local not allowed when using multicast.
Mika Karjalainen 4:c449bead5cf3 52 *
Mika Karjalainen 4:c449bead5cf3 53 */
Mika Karjalainen 4:c449bead5cf3 54 extern uint8_t multicast_add_address(uint8_t *address_ptr, uint8_t use_trickle);
Mika Karjalainen 4:c449bead5cf3 55
Mika Karjalainen 4:c449bead5cf3 56
Mika Karjalainen 4:c449bead5cf3 57
Mika Karjalainen 4:c449bead5cf3 58 /**
Mika Karjalainen 4:c449bead5cf3 59 * \brief Free address from multicast group.
Mika Karjalainen 4:c449bead5cf3 60 *
Mika Karjalainen 4:c449bead5cf3 61 * \param address_ptr Pointer to a 16-byte array that includes the address to be removed.
Mika Karjalainen 4:c449bead5cf3 62 *
Mika Karjalainen 4:c449bead5cf3 63 * \return 0 will be returned on successful execution, other values indicate an error on removing the address.
Mika Karjalainen 4:c449bead5cf3 64 */
Mika Karjalainen 4:c449bead5cf3 65 extern uint8_t multicast_free_address(uint8_t *address_ptr);
jusu_81 11:1b7aaf37a131 66 #ifdef __cplusplus
jusu_81 11:1b7aaf37a131 67 }
jusu_81 11:1b7aaf37a131 68 #endif
Mika Karjalainen 4:c449bead5cf3 69 #endif /* MULTICAST_API_H_ */