Border Router

This module includes functions to manage local network data with the OpenThread Border Router.

Summary

Functions

otBorderRouterAddOnMeshPrefix(otInstance *aInstance, const otBorderRouterConfig *aConfig)
Add a border router configuration to the local network data.
otBorderRouterAddRoute(otInstance *aInstance, const otExternalRouteConfig *aConfig)
Add an external route configuration to the local network data.
otBorderRouterGetNetData(otInstance *aInstance, bool aStable, uint8_t *aData, uint8_t *aDataLength)
This method provides a full or stable copy of the local Thread Network Data.
otBorderRouterGetNextOnMeshPrefix(otInstance *aInstance, otNetworkDataIterator *aIterator, otBorderRouterConfig *aConfig)
This function gets the next On Mesh Prefix in the local Network Data.
otBorderRouterGetNextRoute(otInstance *aInstance, otNetworkDataIterator *aIterator, otExternalRouteConfig *aConfig)
This function gets the next external route in the local Network Data.
otBorderRouterRegister(otInstance *aInstance)
Immediately register the local network data with the Leader.
otBorderRouterRemoveOnMeshPrefix(otInstance *aInstance, const otIp6Prefix *aPrefix)
Remove a border router configuration from the local network data.
otBorderRouterRemoveRoute(otInstance *aInstance, const otIp6Prefix *aPrefix)
Remove an external route configuration from the local network data.

Functions

otBorderRouterAddOnMeshPrefix

otError otBorderRouterAddOnMeshPrefix(
  otInstance *aInstance,
  const otBorderRouterConfig *aConfig
)

Add a border router configuration to the local network data.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aConfig
A pointer to the border router configuration.
Return Values
OT_ERROR_NONE
Successfully added the configuration to the local network data.
OT_ERROR_INVALID_ARGS
One or more configuration parameters were invalid.
OT_ERROR_NO_BUFS
Not enough room is available to add the configuration to the local network data.
See also:
otBorderRouterRemoveOnMeshPrefix
otBorderRouterRegister

otBorderRouterAddRoute

otError otBorderRouterAddRoute(
  otInstance *aInstance,
  const otExternalRouteConfig *aConfig
)

Add an external route configuration to the local network data.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aConfig
A pointer to the external route configuration.
Return Values
OT_ERROR_NONE
Successfully added the configuration to the local network data.
OT_ERROR_INVALID_ARGS
One or more configuration parameters were invalid.
OT_ERROR_NO_BUFS
Not enough room is available to add the configuration to the local network data.
See also:
otBorderRouterRemoveRoute
otBorderRouterRegister

otBorderRouterGetNetData

otError otBorderRouterGetNetData(
  otInstance *aInstance,
  bool aStable,
  uint8_t *aData,
  uint8_t *aDataLength
)

This method provides a full or stable copy of the local Thread Network Data.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aStable
TRUE when copying the stable version, FALSE when copying the full version.
[out] aData
A pointer to the data buffer.
[in,out] aDataLength
On entry, size of the data buffer pointed to by aData. On exit, number of copied bytes.

otBorderRouterGetNextOnMeshPrefix

otError otBorderRouterGetNextOnMeshPrefix(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otBorderRouterConfig *aConfig
)

This function gets the next On Mesh Prefix in the local Network Data.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in,out] aIterator
A pointer to the Network Data iterator context. To get the first on-mesh entry it should be set to OT_NETWORK_DATA_ITERATOR_INIT.
[out] aConfig
A pointer to the On Mesh Prefix information.
Return Values
OT_ERROR_NONE
Successfully found the next On Mesh prefix.
OT_ERROR_NOT_FOUND
No subsequent On Mesh prefix exists in the Thread Network Data.

otBorderRouterGetNextRoute

otError otBorderRouterGetNextRoute(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otExternalRouteConfig *aConfig
)

This function gets the next external route in the local Network Data.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in,out] aIterator
A pointer to the Network Data iterator context. To get the first external route entry it should be set to OT_NETWORK_DATA_ITERATOR_INIT.
[out] aConfig
A pointer to the External Route information.
Return Values
OT_ERROR_NONE
Successfully found the next External Route.
OT_ERROR_NOT_FOUND
No subsequent external route entry exists in the Thread Network Data.

otBorderRouterRegister

otError otBorderRouterRegister(
  otInstance *aInstance
)

Immediately register the local network data with the Leader.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Return Values
OT_ERROR_NONE
Successfully queued a Server Data Request message for delivery.
See also:
otBorderRouterAddOnMeshPrefix
otBorderRouterRemoveOnMeshPrefix
otBorderRouterAddRoute
otBorderRouterRemoveRoute

otBorderRouterRemoveOnMeshPrefix

otError otBorderRouterRemoveOnMeshPrefix(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)

Remove a border router configuration from the local network data.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aPrefix
A pointer to an IPv6 prefix.
Return Values
OT_ERROR_NONE
Successfully removed the configuration from the local network data.
OT_ERROR_NOT_FOUND
Could not find the Border Router entry.
See also:
otBorderRouterAddOnMeshPrefix
otBorderRouterRegister

otBorderRouterRemoveRoute

otError otBorderRouterRemoveRoute(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)

Remove an external route configuration from the local network data.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aPrefix
A pointer to an IPv6 prefix.
Return Values
OT_ERROR_NONE
Successfully removed the configuration from the local network data.
OT_ERROR_NOT_FOUND
Could not find the Border Router entry.
See also:
otBorderRouterAddRoute
otBorderRouterRegister

Resources

OpenThread API Reference topics originate from the source code, available on GitHub. For more information, or to contribute to our documentation, refer to Resources.