TREL - Thread Stack#

This module defines Thread Radio Encapsulation Link (TREL) APIs for Thread Over Infrastructure.

The functions in this module require OPENTHREAD_CONFIG_RADIO_LINK_TREL_ENABLE to be enabled.

Modules#

otTrelPeer

Typedefs#

typedef struct otTrelPeer

Represents a TREL peer.

typedef uint16_t

Represents an iterator for iterating over TREL peer table entries.

Represents a group of TREL related counters.

Functions#

void
otTrelSetEnabled(otInstance *aInstance, bool aEnable)

Enables or disables TREL operation.

bool
otTrelIsEnabled(otInstance *aInstance)

Indicates whether the TREL operation is enabled.

void
otTrelInitPeerIterator(otInstance *aInstance, otTrelPeerIterator *aIterator)

Initializes a peer table iterator.

const otTrelPeer *
otTrelGetNextPeer(otInstance *aInstance, otTrelPeerIterator *aIterator)

Iterates over the peer table entries and get the next entry from the table.

uint16_t
otTrelGetNumberOfPeers(otInstance *aInstance)

Returns the number of TREL peers.

void
otTrelSetFilterEnabled(otInstance *aInstance, bool aEnable)

Sets the filter mode (enables/disables filtering).

bool
otTrelIsFilterEnabled(otInstance *aInstance)

Indicates whether or not the filter mode is enabled.

otTrelGetCounters(otInstance *aInstance)

Gets the TREL counters.

void
otTrelResetCounters(otInstance *aInstance)

Resets the TREL counters.

uint16_t
otTrelGetUdpPort(otInstance *aInstance)

Gets the UDP port of the TREL interface.

Typedef Documentation#

otTrelPeer#

typedef struct otTrelPeer otTrelPeer

Represents a TREL peer.


Definition at line 66 of file include/openthread/trel.h

otTrelPeerIterator#

typedef uint16_t otTrelPeerIterator

Represents an iterator for iterating over TREL peer table entries.


Definition at line 71 of file include/openthread/trel.h

otTrelCounters#

typedef otPlatTrelCounters otTrelCounters

Represents a group of TREL related counters.


Definition at line 155 of file include/openthread/trel.h

Function Documentation#

otTrelSetEnabled#

void otTrelSetEnabled (otInstance * aInstance, bool aEnable)

Enables or disables TREL operation.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

[in]aEnable

A boolean to enable/disable the TREL operation.

When aEnable is true, this function initiates an ongoing DNS-SD browse on the service name "_trel._udp" within the local browsing domain to discover other devices supporting TREL. Device also registers a new service to be advertised using DNS-SD, with the service name is "_trel._udp" indicating its support for TREL. Device is then ready to receive TREL messages from peers.

When aEnable is false, this function stops the DNS-SD browse on the service name "_trel._udp", stops advertising TREL DNS-SD service, and clears the TREL peer table.

Note

  • By default the OpenThread stack enables the TREL operation on start.


Definition at line 89 of file include/openthread/trel.h

otTrelIsEnabled#

bool otTrelIsEnabled (otInstance * aInstance)

Indicates whether the TREL operation is enabled.

Parameters
[in]aInstance

The OpenThread instance.


Definition at line 99 of file include/openthread/trel.h

otTrelInitPeerIterator#

void otTrelInitPeerIterator (otInstance * aInstance, otTrelPeerIterator * aIterator)

Initializes a peer table iterator.

Parameters
[in]aInstance

The OpenThread instance.

[in]aIterator

The iterator to initialize.


Definition at line 107 of file include/openthread/trel.h

otTrelGetNextPeer#

const otTrelPeer * otTrelGetNextPeer (otInstance * aInstance, otTrelPeerIterator * aIterator)

Iterates over the peer table entries and get the next entry from the table.

Parameters
[in]aInstance

The OpenThread instance.

[in]aIterator

The iterator. MUST be initialized.

Returns

  • A pointer to the next otTrelPeer entry or NULL if no more entries in the table.


Definition at line 117 of file include/openthread/trel.h

otTrelGetNumberOfPeers#

uint16_t otTrelGetNumberOfPeers (otInstance * aInstance)

Returns the number of TREL peers.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The number of TREL peers.


Definition at line 126 of file include/openthread/trel.h

otTrelSetFilterEnabled#

void otTrelSetFilterEnabled (otInstance * aInstance, bool aEnable)

Sets the filter mode (enables/disables filtering).

Parameters
[in]aInstance

The OpenThread instance.

[in]aEnable

TRUE to enable filter mode, FALSE to disable filter mode.

When filter mode is enabled, any rx and tx traffic through TREL interface is silently dropped. This is mainly intended for use during testing.

Unlike otTrel{Enable/Disable}() which fully starts/stops the TREL operation, when filter mode is enabled the TREL interface continues to be enabled.


Definition at line 140 of file include/openthread/trel.h

otTrelIsFilterEnabled#

bool otTrelIsFilterEnabled (otInstance * aInstance)

Indicates whether or not the filter mode is enabled.

Parameters
[in]aInstance

The OpenThread instance.


Definition at line 150 of file include/openthread/trel.h

otTrelGetCounters#

const otTrelCounters * otTrelGetCounters (otInstance * aInstance)

Gets the TREL counters.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Returns

  • A pointer to the TREL counters.


Definition at line 164 of file include/openthread/trel.h

otTrelResetCounters#

void otTrelResetCounters (otInstance * aInstance)

Resets the TREL counters.

Parameters
[in]aInstance

A pointer to an OpenThread instance.


Definition at line 171 of file include/openthread/trel.h

otTrelGetUdpPort#

uint16_t otTrelGetUdpPort (otInstance * aInstance)

Gets the UDP port of the TREL interface.

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Returns

  • UDP port of the TREL interface.


Definition at line 180 of file include/openthread/trel.h