ICMPv6¶
Internet Control Message Protocol for IPv6 (ICMPv6)¶
The RFC 4443 standard defines ICMPv6 as Internet Control Message Protocol (ICMP) for Internet Protocol version 6 (IPv6). The ICMPv6 is commonly used to perform error reporting and to provide operational information within IPv6 networks. A good source of reference for ICMPv6 could be found here. The ICMPv6 header has two fields (type and code) that specifies the type of ICMPv6 packet. The detailed description of different ICMPv6 packet types can be found here. The user could effectively handle the ICMPv6 messages by registering a callback that is invoked at the reception of an ICMPv6 packet.
Note
The ICMPv6 callback is activated only for the destination unreachable type of ICMPv6 error at the moment.
Defines¶
MIRA_NET_ICMP6_DST_UNREACH¶
destination unreachable
MIRA_NET_ICMP6_DST_UNREACH_NOROUTE¶
no route to destination
MIRA_NET_ICMP6_DST_UNREACH_ADMIN¶
administratively prohibited
MIRA_NET_ICMP6_DST_UNREACH_BEYONDSCOPE¶
beyond scope of source address
MIRA_NET_ICMP6_DST_UNREACH_ADDR¶
address unreachable
MIRA_NET_ICMP6_DST_UNREACH_NOPORT¶
port unreachable
MIRA_NET_ICMP6_CODE_ANY¶
Types¶
mira_net_icmp6_callback_t¶
typedef void(* mira_net_icmp6_callback_t) (const void *icmp_payload, uint16_t icmp_payload_len, const mira_net_icmp6_callback_metadata_t *metadata, void *storage);
Structs¶
mira_net_icmp6_callback_metadata_t¶
Name | Type | Description |
---|---|---|
icmp_source_address |
const mira_net_address_t * |
|
icmp_destination_address |
const mira_net_address_t * |
|
type |
uint8_t |
|
code |
uint8_t |
Functions¶
mira_net_icmp6_register_callback¶
Register the callback for incoming ICMPv6 packets.
The function to register the callback for the incoming ICMP packets. The registered callback would be invoked when an ICMP packet is received.
Note
To get ICMP callback for the desired UDP connection, use mira_net_udp_icmp6_register_callback.
Parameters¶
Name | Description |
---|---|
callback | The callback function to register. |
storage | Storage pointer that is used to store optional information to be used by the callback function. E.g. it could be used as an identifier or to pass on a configuration struct. |
Return value¶
Name | Description |
---|---|
MIRA_SUCCESS | ICMP callback successfully registered. |