Concentrator configuration and source route table management.
License#
Copyright 2018 Silicon Laboratories Inc. www.silabs.com
The licensor of this software is Silicon Laboratories Inc. Your use of this software is governed by the terms of Silicon Labs Master Software License Agreement (MSLA) available at www.silabs.com/about-us/legal/master-software-license-agreement. This software is distributed to you in Source Code format and is governed by the sections of the MSLA applicable to Source Code.
/***************************************************************************/
#ifndef SILABS_SOURCE_ROUTE_H
#define SILABS_SOURCE_ROUTE_H
EmberStatus emberSetConcentrator(bool on,
uint16_t concentratorTypeParam,
uint16_t minTime,
uint16_t maxTime,
uint8_t routeErrorThresholdParam,
uint8_t deliveryFailureThresholdParam,
uint8_t maxHopsParam);
uint8_t emberGetSourceRouteTableFilledSize(void);
uint8_t emberGetSourceRouteTableTotalSize(void);
uint8_t emberGetSourceRouteOverhead(EmberNodeId destination);
uint32_t emberSetSourceRouteDiscoveryMode(EmberSourceRouteDiscoveryMode mode);
//--------------------legacy APIs, with no direct ezsp tranlation, will be deprecated
void emberConcentratorStartDiscovery(void);
void emberConcentratorStopDiscovery(void);
void emberConcentratorNoteDeliveryFailure(EmberOutgoingMessageType type, EmberStatus status);
void emberConcentratorNoteRouteError(EmberStatus status,
EmberNodeId nodeId);
extern EmberAssumeTrustCenterConcentratorType emberAssumedTrustCenterConcentratorType;
#endif // SILABS_SOURCE_ROUTE_H
Variables#
To configure non trust center node to assume a concentrator type of the trust center it join to, until it receive many-to-one route request from the trust center. For the trust center node, concentrator type is configured from the concentrator plugin. The stack by default assumes trust center be a low RAM concentrator that make other devices send route record to the trust center even without receiving a many-to-one route request. The assumed concentrator type can be changed by setting appropriate config value to emberAssumedTrustCenterConcentratorType.
Functions#
initializing the node to act as a concentrator with:
Return the number of used entries in the source route table.
Return the size of the source route table.
Returns the number of bytes needed in a packet for source routing. Since each hop consumes 2 bytes in the packet, this routine calculates the total number of bytes needed based on number of hops to reach the destination.
Set source route discovery mode(MTORR scheduling mode) to on/off/reschedule.
Legacy API Starts periodic many-to-one route discovery. Periodic discovery is started by default on bootup, but this function may be used if discovery has been stopped by a call to emberConcentratorStopDiscovery().
Legacy API. Stops periodic many-to-one route discovery.
Legacy API. Notes when a packet fails to deliver.
Legacy API. Notes when a route error has occurred.
Variable Documentation#
emberAssumedTrustCenterConcentratorType#
EmberAssumeTrustCenterConcentratorType emberAssumedTrustCenterConcentratorType
To configure non trust center node to assume a concentrator type of the trust center it join to, until it receive many-to-one route request from the trust center. For the trust center node, concentrator type is configured from the concentrator plugin. The stack by default assumes trust center be a low RAM concentrator that make other devices send route record to the trust center even without receiving a many-to-one route request. The assumed concentrator type can be changed by setting appropriate config value to emberAssumedTrustCenterConcentratorType.
106
of file stack/include/source-route.h
Function Documentation#
emberSetConcentrator#
EmberStatus emberSetConcentrator (bool on, uint16_t concentratorTypeParam, uint16_t minTime, uint16_t maxTime, uint8_t routeErrorThresholdParam, uint8_t deliveryFailureThresholdParam, uint8_t maxHopsParam)
initializing the node to act as a concentrator with:
N/A | on | |
N/A | concentratorTypeParam | |
N/A | minTime | |
N/A | maxTime | |
N/A | routeErrorThresholdParam | |
N/A | deliveryFailureThresholdParam | |
N/A | maxHopsParam |
discovery mode on/off concentratorTypeParam min time between MTORRs max time between MTORRs threshodl to react to route error message threshodl to react to delivery failures max number of hops for MTORR
42
of file stack/include/source-route.h
emberGetSourceRouteTableFilledSize#
uint8_t emberGetSourceRouteTableFilledSize (void )
Return the number of used entries in the source route table.
N/A |
52
of file stack/include/source-route.h
emberGetSourceRouteTableTotalSize#
uint8_t emberGetSourceRouteTableTotalSize (void )
Return the size of the source route table.
N/A |
56
of file stack/include/source-route.h
emberGetSourceRouteOverhead#
uint8_t emberGetSourceRouteOverhead (EmberNodeId destination)
Returns the number of bytes needed in a packet for source routing. Since each hop consumes 2 bytes in the packet, this routine calculates the total number of bytes needed based on number of hops to reach the destination.
N/A | destination | The destination's short address. |
Returns
uint8_t The number of bytes needed for source routing in a packet.
64
of file stack/include/source-route.h
emberSetSourceRouteDiscoveryMode#
uint32_t emberSetSourceRouteDiscoveryMode (EmberSourceRouteDiscoveryMode mode)
Set source route discovery mode(MTORR scheduling mode) to on/off/reschedule.
N/A | mode |
: mode: EMBER_SOURCE_ROUTE_DISCOVERY_OFF = 0x00, EMBER_SOURCE_ROUTE_DISCOVERY_ON = 0x01, EMBER_SOURCE_ROUTE_DISCOVERY_RESCHEDULE = 0x02,
74
of file stack/include/source-route.h
emberConcentratorStartDiscovery#
void emberConcentratorStartDiscovery (void )
Legacy API Starts periodic many-to-one route discovery. Periodic discovery is started by default on bootup, but this function may be used if discovery has been stopped by a call to emberConcentratorStopDiscovery().
N/A |
83
of file stack/include/source-route.h
emberConcentratorStopDiscovery#
void emberConcentratorStopDiscovery (void )
Legacy API. Stops periodic many-to-one route discovery.
N/A |
86
of file stack/include/source-route.h
emberConcentratorNoteDeliveryFailure#
void emberConcentratorNoteDeliveryFailure (EmberOutgoingMessageType type, EmberStatus status)
Legacy API. Notes when a packet fails to deliver.
N/A | type | |
N/A | status |
90
of file stack/include/source-route.h
emberConcentratorNoteRouteError#
void emberConcentratorNoteRouteError (EmberStatus status, EmberNodeId nodeId)
Legacy API. Notes when a route error has occurred.
N/A | status | |
N/A | nodeId |
94
of file stack/include/source-route.h