This module includes functions that control ICMPv6 communication.

Classes

struct otIcmp6Header
This structure represents an ICMPv6 header.
struct otIcmp6Handler
This structure implements ICMPv6 message handler.

Macros

#define OT_ICMP6_HEADER_DATA_SIZE 4
Size of an message specific data of ICMPv6 Header.

Typedefs

typedef enum otIcmp6Type otIcmp6Type
ICMPv6 Message Types.
typedef enum otIcmp6Code otIcmp6Code
ICMPv6 Message Codes.
typedef struct otIcmp6Header otIcmp6Header
This type represents an ICMPv6 header.
typedef void(* otIcmp6ReceiveCallback ) (void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otIcmp6Header *aIcmpHeader)
This callback allows OpenThread to inform the application of a received ICMPv6 message.
typedef struct otIcmp6Handler otIcmp6Handler
This structure implements ICMPv6 message handler.
typedef enum otIcmp6EchoMode otIcmp6EchoMode
ICMPv6 Echo Reply Modes.

Enumerations

enum otIcmp6Type {
OT_ICMP6_TYPE_DST_UNREACH = 1,
OT_ICMP6_TYPE_PACKET_TO_BIG = 2,
OT_ICMP6_TYPE_TIME_EXCEEDED = 3,
OT_ICMP6_TYPE_PARAMETER_PROBLEM = 4,
OT_ICMP6_TYPE_ECHO_REQUEST = 128,
OT_ICMP6_TYPE_ECHO_REPLY = 129,
OT_ICMP6_TYPE_ROUTER_SOLICIT = 133,
OT_ICMP6_TYPE_ROUTER_ADVERT = 134
}
ICMPv6 Message Types.
enum otIcmp6Code {
OT_ICMP6_CODE_DST_UNREACH_NO_ROUTE = 0,
OT_ICMP6_CODE_FRAGM_REAS_TIME_EX = 1
}
ICMPv6 Message Codes.
enum otIcmp6EchoMode {
OT_ICMP6_ECHO_HANDLER_DISABLED = 0,
OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY = 1,
OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY = 2,
OT_ICMP6_ECHO_HANDLER_ALL = 3
}
ICMPv6 Echo Reply Modes.

Functions

otIcmp6EchoMode otIcmp6GetEchoMode ( otInstance *aInstance)
This function indicates whether or not ICMPv6 Echo processing is enabled.
void otIcmp6SetEchoMode ( otInstance *aInstance, otIcmp6EchoMode aMode)
This function sets whether or not ICMPv6 Echo processing is enabled.
otError otIcmp6RegisterHandler ( otInstance *aInstance, otIcmp6Handler *aHandler)
This function registers a handler to provide received ICMPv6 messages.
otError otIcmp6SendEchoRequest ( otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, uint16_t aIdentifier)
This function sends an ICMPv6 Echo Request via the Thread interface.

Variables

OT_TOOL_PACKED_BEGIN struct otIcmp6Header OT_TOOL_PACKED_END

Detailed Description

This module includes functions that control ICMPv6 communication.

Typedef Documentation

otIcmp6Code

ICMPv6 Message Codes.

otIcmp6EchoMode

ICMPv6 Echo Reply Modes.

otIcmp6ReceiveCallback

typedef void(* otIcmp6ReceiveCallback) (void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otIcmp6Header *aIcmpHeader)

This callback allows OpenThread to inform the application of a received ICMPv6 message.

Parameters
[in] aContext A pointer to arbitrary context information.
[in] aMessage A pointer to the received message.
[in] aMessageInfo A pointer to message information associated with aMessage .
[in] aIcmpHeader A pointer to the received ICMPv6 header.

otIcmp6Type

ICMPv6 Message Types.

Enumeration Type Documentation

otIcmp6Code

ICMPv6 Message Codes.

Enumerator
OT_ICMP6_CODE_DST_UNREACH_NO_ROUTE

Destination Unreachable No Route.

OT_ICMP6_CODE_FRAGM_REAS_TIME_EX

Fragment Reassembly Time Exceeded.

otIcmp6EchoMode

ICMPv6 Echo Reply Modes.

Enumerator
OT_ICMP6_ECHO_HANDLER_DISABLED

ICMPv6 Echo processing disabled.

OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY

ICMPv6 Echo processing enabled only for unicast requests only.

OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY

ICMPv6 Echo processing enabled only for multicast requests only.

OT_ICMP6_ECHO_HANDLER_ALL

ICMPv6 Echo processing enabled for unicast and multicast requests.

otIcmp6Type

ICMPv6 Message Types.

Enumerator
OT_ICMP6_TYPE_DST_UNREACH

Destination Unreachable.

OT_ICMP6_TYPE_PACKET_TO_BIG

Packet To Big.

OT_ICMP6_TYPE_TIME_EXCEEDED

Time Exceeded.

OT_ICMP6_TYPE_PARAMETER_PROBLEM

Parameter Problem.

OT_ICMP6_TYPE_ECHO_REQUEST

Echo Request.

OT_ICMP6_TYPE_ECHO_REPLY

Echo Reply.

OT_ICMP6_TYPE_ROUTER_SOLICIT

Router Solicitation.

OT_ICMP6_TYPE_ROUTER_ADVERT

Router Advertisement.

Function Documentation

otIcmp6GetEchoMode()

otIcmp6EchoMode otIcmp6GetEchoMode ( otInstance * aInstance )

This function indicates whether or not ICMPv6 Echo processing is enabled.

Parameters
[in] aInstance A pointer to an OpenThread instance.
Return values
OT_ICMP6_ECHO_HANDLER_DISABLED ICMPv6 Echo processing is disabled.
OT_ICMP6_ECHO_HANDLER_UNICAST_ONLY ICMPv6 Echo processing enabled for unicast requests only
OT_ICMP6_ECHO_HANDLER_MULTICAST_ONLY ICMPv6 Echo processing enabled for multicast requests only
OT_ICMP6_ECHO_HANDLER_ALL ICMPv6 Echo processing enabled for unicast and multicast requests

otIcmp6RegisterHandler()

otError otIcmp6RegisterHandler ( otInstance * aInstance,
otIcmp6Handler * aHandler
)

This function registers a handler to provide received ICMPv6 messages.

Note
A handler structure aHandler has to be stored in persistent (static) memory. OpenThread does not make a copy of handler structure.
Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aHandler A pointer to a handler containing callback that is called when an ICMPv6 message is received.

otIcmp6SendEchoRequest()

otError otIcmp6SendEchoRequest ( otInstance * aInstance,
otMessage * aMessage,
const otMessageInfo * aMessageInfo,
uint16_t aIdentifier
)

This function sends an ICMPv6 Echo Request via the Thread interface.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aMessage A pointer to the message buffer containing the ICMPv6 payload.
[in] aMessageInfo A reference to message information associated with aMessage .
[in] aIdentifier An identifier to aid in matching Echo Replies to this Echo Request. May be zero.

otIcmp6SetEchoMode()

void otIcmp6SetEchoMode ( otInstance * aInstance,
otIcmp6EchoMode aMode
)

This function sets whether or not ICMPv6 Echo processing is enabled.

Parameters
[in] aInstance A pointer to an OpenThread instance.
[in] aMode The ICMPv6 Echo processing mode.