This module includes functions that control IPv6 communication.
More...
|
OTAPI otError OTCALL | otIp6SetEnabled (otInstance *aInstance, bool aEnabled) |
|
OTAPI bool OTCALL | otIp6IsEnabled (otInstance *aInstance) |
|
OTAPI otError OTCALL | otIp6AddUnicastAddress (otInstance *aInstance, const otNetifAddress *aAddress) |
|
OTAPI otError OTCALL | otIp6RemoveUnicastAddress (otInstance *aInstance, const otIp6Address *aAddress) |
|
OTAPI const otNetifAddress *OTCALL | otIp6GetUnicastAddresses (otInstance *aInstance) |
|
otError | otIp6SubscribeMulticastAddress (otInstance *aInstance, const otIp6Address *aAddress) |
|
otError | otIp6UnsubscribeMulticastAddress (otInstance *aInstance, const otIp6Address *aAddress) |
|
const otNetifMulticastAddress * | otIp6GetMulticastAddresses (otInstance *aInstance) |
|
bool | otIp6IsMulticastPromiscuousEnabled (otInstance *aInstance) |
|
void | otIp6SetMulticastPromiscuousEnabled (otInstance *aInstance, bool aEnabled) |
|
void | otIp6SlaacUpdate (otInstance *aInstance, otNetifAddress *aAddresses, uint32_t aNumAddresses, otIp6SlaacIidCreate aIidCreate, void *aContext) |
|
otError | otIp6CreateRandomIid (otInstance *aInstance, otNetifAddress *aAddresses, void *aContext) |
|
otError | otIp6CreateMacIid (otInstance *aInstance, otNetifAddress *aAddresses, void *aContext) |
|
otError | otIp6CreateSemanticallyOpaqueIid (otInstance *aInstance, otNetifAddress *aAddresses, void *aContext) |
|
otMessage * | otIp6NewMessage (otInstance *aInstance, bool aLinkSecurityEnabled) |
|
void | otIp6SetReceiveCallback (otInstance *aInstance, otIp6ReceiveCallback aCallback, void *aCallbackContext) |
|
bool | otIp6IsReceiveFilterEnabled (otInstance *aInstance) |
|
void | otIp6SetReceiveFilterEnabled (otInstance *aInstance, bool aEnabled) |
|
otError | otIp6Send (otInstance *aInstance, otMessage *aMessage) |
|
otError | otIp6AddUnsecurePort (otInstance *aInstance, uint16_t aPort) |
|
otError | otIp6RemoveUnsecurePort (otInstance *aInstance, uint16_t aPort) |
|
void | otIp6RemoveAllUnsecurePorts (otInstance *aInstance) |
|
const uint16_t * | otIp6GetUnsecurePorts (otInstance *aInstance, uint8_t *aNumEntries) |
|
OTAPI bool OTCALL | otIp6IsAddressEqual (const otIp6Address *aFirst, const otIp6Address *aSecond) |
|
OTAPI otError OTCALL | otIp6AddressFromString (const char *aString, otIp6Address *aAddress) |
|
OTAPI uint8_t OTCALL | otIp6PrefixMatch (const otIp6Address *aFirst, const otIp6Address *aSecond) |
|
bool | otIp6IsAddressUnspecified (const otIp6Address *aAddress) |
|
This module includes functions that control IPv6 communication.
This structure represents an IPv6 address.
This structure represents an IPv6 prefix.
typedef void(* otIp6ReceiveCallback)(otMessage *aMessage, void *aContext) |
This function pointer is called when an IPv6 datagram is received.
- Parameters
-
[in] | aMessage | A pointer to the message buffer containing the received IPv6 datagram. |
[in] | aContext | A pointer to application-specific context. |
This function pointer is called to create IPv6 IID during SLAAC procedure.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in,out] | aAddress | A pointer to structure containing IPv6 address for which IID is being created. |
[in,out] | aContext | A pointer to creator-specific context. |
- Return values
-
OT_ERROR_NONE | Created valid IID for given IPv6 address. |
OT_ERROR_IP6_ADDRESS_CREATION_FAILURE | Creation of valid IID for given IPv6 address failed. |
This structure represents the local and peer IPv6 socket addresses.
This structure represents an IPv6 network interface unicast address.
This enumeration represents the list of allowable values for an InterfaceId.
This structure represents an IPv6 network interface multicast address.
This structure represents an IPv6 socket address.
This enumeration represents the list of allowable values for an InterfaceId.
Enumerator |
---|
OT_NETIF_INTERFACE_ID_HOST |
The interface ID telling packets received by host side interfaces.
|
OT_NETIF_INTERFACE_ID_THREAD |
The Thread Network interface ID.
|
Convert a human-readable IPv6 address string into a binary representation.
- Parameters
-
[in] | aString | A pointer to a NULL-terminated string. |
[out] | aAddress | A pointer to an IPv6 address. |
- Return values
-
OT_ERROR_NONE | Successfully parsed the string. |
OT_ERROR_INVALID_ARGS | Failed to parse the string. |
Add a Network Interface Address to the Thread interface.
The passed-in instance aAddress
is copied by the Thread interface. The Thread interface only supports a fixed number of externally added unicast addresses. See OPENTHREAD_CONFIG_MAX_EXT_IP_ADDRS.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aAddress | A pointer to a Network Interface Address. |
- Return values
-
OT_ERROR_NONE | Successfully added (or updated) the Network Interface Address. |
OT_ERROR_INVALID_ARGS | The IP Address indicated by aAddress is an internal address. |
OT_ERROR_NO_BUFS | The Network Interface is already storing the maximum allowed external addresses. |
This function adds a port to the allowed unsecured port list.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aPort | The port value. |
- Return values
-
OT_ERROR_NONE | The port was successfully added to the allowed unsecure port list. |
OT_ERROR_NO_BUFS | The unsecure port list is full. |
Create IID for given IPv6 address using extended MAC address.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in,out] | aAddresses | A pointer to structure containing IPv6 address for which IID is being created. |
[in] | aContext | A pointer to unused data. |
- Return values
-
OT_ERROR_NONE | Created valid IID for given IPv6 address. |
Create random IID for given IPv6 address.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in,out] | aAddresses | A pointer to structure containing IPv6 address for which IID is being created. |
[in] | aContext | A pointer to unused data. |
- Return values
-
OT_ERROR_NONE | Created valid IID for given IPv6 address. |
Create semantically opaque IID for given IPv6 address.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in,out] | aAddresses | A pointer to structure containing IPv6 address for which IID is being created. |
[in,out] | aContext | A pointer to a otSemanticallyOpaqueIidGeneratorData structure. |
- Return values
-
OT_ERROR_NONE | Created valid IID for given IPv6 address. |
OT_ERROR_IP6_ADDRESS_CREATION_FAILURE | Could not create valid IID for given IPv6 address. |
Get the list of IPv6 multicast addresses subscribed to the Thread interface.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
- Returns
- A pointer to the first Network Interface Multicast Address.
Get the list of IPv6 addresses assigned to the Thread interface.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
- Returns
- A pointer to the first Network Interface Address.
const uint16_t* otIp6GetUnsecurePorts |
( |
otInstance * |
aInstance, |
|
|
uint8_t * |
aNumEntries |
|
) |
| |
This function returns a pointer to the unsecure port list.
- Note
- Port value 0 is used to indicate an invalid entry.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[out] | aNumEntries | The number of entries in the list. |
- Returns
- A pointer to the unsecure port list.
Test if two IPv6 addresses are the same.
- Parameters
-
[in] | aFirst | A pointer to the first IPv6 address to compare. |
[in] | aSecond | A pointer to the second IPv6 address to compare. |
- Return values
-
TRUE | The two IPv6 addresses are the same. |
FALSE | The two IPv6 addresses are not the same. |
bool otIp6IsAddressUnspecified |
( |
const otIp6Address * |
aAddress | ) |
|
This function indicates whether or not a given IPv6 address is the Unspecified Address.
- Parameters
-
[in] | aAddress | A pointer to an IPv6 address. |
- Return values
-
TRUE | If the IPv6 address is the Unspecified Address. |
FALSE | If the IPv6 address is not the Unspecified Address. |
This function indicates whether or not the IPv6 interface is up.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
- Return values
-
TRUE | The IPv6 interface is enabled. |
FALSE | The IPv6 interface is disabled. |
bool otIp6IsMulticastPromiscuousEnabled |
( |
otInstance * |
aInstance | ) |
|
Check if multicast promiscuous mode is enabled on the Thread interface.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
- See also
- otIp6SetMulticastPromiscuousEnabled
bool otIp6IsReceiveFilterEnabled |
( |
otInstance * |
aInstance | ) |
|
Allocate a new message buffer for sending an IPv6 message.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aLinkSecurityEnabled | TRUE if the message should be secured at Layer 2 |
- Returns
- A pointer to the message buffer or NULL if no message buffers are available.
- See also
- otFreeMessage
This function returns the prefix match length (bits) for two IPv6 addresses.
- Parameters
-
[in] | aFirst | A pointer to the first IPv6 address. |
[in] | aSecond | A pointer to the second IPv6 address. |
- Returns
- The prefix match length in bits.
void otIp6RemoveAllUnsecurePorts |
( |
otInstance * |
aInstance | ) |
|
This function removes all ports from the allowed unsecure port list.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
Remove a Network Interface Address from the Thread interface.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aAddress | A pointer to an IP Address. |
- Return values
-
OT_ERROR_NONE | Successfully removed the Network Interface Address. |
OT_ERROR_INVALID_ARGS | The IP Address indicated by aAddress is an internal address. |
OT_ERROR_NOT_FOUND | The IP Address indicated by aAddress was not found. |
This function removes a port from the allowed unsecure port list.
- Note
- This function removes
aPort
by overwriting aPort
with the element after aPort
in the internal port list. Be careful when calling otIp6GetUnsecurePorts() followed by otIp6RemoveUnsecurePort() to remove unsecure ports.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aPort | The port value. |
- Return values
-
OT_ERROR_NONE | The port was successfully removed from the allowed unsecure port list. |
OT_ERROR_NOT_FOUND | The port was not found in the unsecure port list. |
This function sends an IPv6 datagram via the Thread interface.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aMessage | A pointer to the message buffer containing the IPv6 datagram. |
This function brings up the IPv6 interface.
Call this function to enable/disable IPv6 communication.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aEnabled | TRUE to enable IPv6, FALSE otherwise. |
- Return values
-
OT_ERROR_NONE | Successfully enabled the IPv6 interface, or the interface was already enabled. |
void otIp6SetMulticastPromiscuousEnabled |
( |
otInstance * |
aInstance, |
|
|
bool |
aEnabled |
|
) |
| |
Enable multicast promiscuous mode on the Thread interface.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aEnabled | TRUE to enable Multicast Promiscuous mode, FALSE otherwise. |
- See also
- otIp6IsMulticastPromiscuousEnabled
This function registers a callback to provide received IPv6 datagrams.
By default, this callback does not pass Thread control traffic. See otIp6SetReceiveFilterEnabled() to change the Thread control traffic filter setting.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aCallback | A pointer to a function that is called when an IPv6 datagram is received or NULL to disable the callback. |
[in] | aCallbackContext | A pointer to application-specific context. |
- See also
- otIp6IsReceiveFilterEnabled
-
otIp6SetReceiveFilterEnabled
void otIp6SetReceiveFilterEnabled |
( |
otInstance * |
aInstance, |
|
|
bool |
aEnabled |
|
) |
| |
This function sets whether or not Thread control traffic is filtered out when delivering IPv6 datagrams via the callback specified in otIp6SetReceiveCallback().
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aEnabled | TRUE if Thread control traffic is filtered out, FALSE otherwise. |
- See also
- otIp6SetReceiveCallback
-
otIsReceiveIp6FilterEnabled
Update all automatically created IPv6 addresses for prefixes from current Network Data with SLAAC procedure.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in,out] | aAddresses | A pointer to an array of automatically created IPv6 addresses. |
[in] | aNumAddresses | The number of slots in aAddresses array. |
[in] | aIidCreate | A pointer to a function that is called to create IPv6 IIDs. |
[in] | aContext | A pointer to data passed to aIidCreate function. |
Subscribe the Thread interface to a Network Interface Multicast Address.
The passed in instance aAddress
will be copied by the Thread interface. The Thread interface only supports a fixed number of externally added multicast addresses. See OPENTHREAD_CONFIG_MAX_EXT_MULTICAST_IP_ADDRS.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aAddress | A pointer to an IP Address. |
- Return values
-
OT_ERROR_NONE | Successfully subscribed to the Network Interface Multicast Address. |
OT_ERROR_ALREADY | The multicast address is already subscribed. |
OT_ERROR_INVALID_ARGS | The IP Address indicated by aAddress is invalid address. |
OT_ERROR_NO_BUFS | The Network Interface is already storing the maximum allowed external multicast addresses. |
Unsubscribe the Thread interface to a Network Interface Multicast Address.
- Parameters
-
[in] | aInstance | A pointer to an OpenThread instance. |
[in] | aAddress | A pointer to an IP Address. |
- Return values
-
OT_ERROR_NONE | Successfully unsubscribed to the Network Interface Multicast Address. |
OT_ERROR_INVALID_ARGS | The IP Address indicated by aAddress is an internal address. |
OT_ERROR_NOT_FOUND | The IP Address indicated by aAddress was not found. |