Multipan#

This module includes the platform abstraction for multipan support.

Functions#

otPlatMultipanGetActiveInstance(otInstance **aInstance)

Get instance currently in control of the radio.

otPlatMultipanSetActiveInstance(otInstance *aInstance, bool aCompletePending)

Set aInstance as the current active instance controlling radio.

void
otPlatMultipanSwitchoverDone(otInstance *aInstance, bool aSuccess)

The platform completed the interface switching procedure.

Get the instance pointer corresponding to the given IID.

uint8_t
otPlatMultipanInstanceToIid(otInstance *aInstance)

Get the IID corresponding to the given OpenThread instance pointer.

Function Documentation#

otPlatMultipanGetActiveInstance#

otError otPlatMultipanGetActiveInstance (otInstance ** aInstance)

Get instance currently in control of the radio.

Parameters
TypeDirectionArgument NameDescription
otInstance **[out]aInstance

Pointer to the variable for storing the active instance pointer.

If radio does not operate in parallel on all interfaces, this function returns an instance object with granted radio access.


otPlatMultipanSetActiveInstance#

otError otPlatMultipanSetActiveInstance (otInstance * aInstance, bool aCompletePending)

Set aInstance as the current active instance controlling radio.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

The OpenThread instance structure.

bool[in]aCompletePending

True if ongoing radio operation should complete before interface switch (Soft switch), false for force switch.

This function allows selecting the currently active instance on platforms that do not support parallel communication on multiple interfaces. In other words, if more than one instance is in a receive state, calling otPlatMultipanSetActiveInstance guarantees that specified instance will be the one receiving. This function returns if the request was received properly. After interface switching is complete, the platform should call otPlatMultipanSwitchoverDone. Switching interfaces may take longer if aCompletePending is set true.


otPlatMultipanSwitchoverDone#

void otPlatMultipanSwitchoverDone (otInstance * aInstance, bool aSuccess)

The platform completed the interface switching procedure.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

The OpenThread instance structure.

bool[in]aSuccess

True if successfully switched the interfaces, false if switching failed.

Should be invoked immediately after processing otPlatMultipanSetActiveInstance if no delay is needed, or if some longer radio operations need to complete first, after the switch in interfaces is fully complete.


otPlatMultipanIidToInstance#

otInstance * otPlatMultipanIidToInstance (uint8_t aIid)

Get the instance pointer corresponding to the given IID.

Parameters
TypeDirectionArgument NameDescription
uint8_t[in]aIid

The IID of the interface.


otPlatMultipanInstanceToIid#

uint8_t otPlatMultipanInstanceToIid (otInstance * aInstance)

Get the IID corresponding to the given OpenThread instance pointer.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

The OpenThread instance structure.