ICMPv6 echo request and error messages (RFC 4443)
Data Structures | |
struct | uip_icmp6_echo_reply_notification |
struct | uip_icmp6_error |
ICMPv6 Error message constant part. More... | |
struct | uip_icmp6_input_handler |
Macros | |
#define | UIP_ICMP6_ECHO_REQUEST_LEN 4 |
Echo Request constant part length. More... | |
#define | UIP_ICMP6_ERROR_LEN 4 |
ICMPv6 Error message constant part length. More... | |
ICMPv6 message types | |
#define | ICMP6_DST_UNREACH 1 |
dest unreachable More... | |
#define | ICMP6_PACKET_TOO_BIG 2 |
packet too big More... | |
#define | ICMP6_TIME_EXCEEDED 3 |
time exceeded More... | |
#define | ICMP6_PARAM_PROB 4 |
ip6 header bad More... | |
#define | ICMP6_ECHO_REQUEST 128 |
Echo request. More... | |
#define | ICMP6_ECHO_REPLY 129 |
Echo reply. More... | |
#define | ICMP6_RS 133 |
Router Solicitation. More... | |
#define | ICMP6_RA 134 |
Router Advertisement. More... | |
#define | ICMP6_NS 135 |
Neighbor Solicitation. More... | |
#define | ICMP6_NA 136 |
Neighbor advertisement. More... | |
#define | ICMP6_REDIRECT 137 |
Redirect. More... | |
#define | ICMP6_RPL 155 |
RPL. More... | |
#define | ICMP6_PRIV_EXP_100 100 |
Private Experimentation. More... | |
#define | ICMP6_PRIV_EXP_101 101 |
Private Experimentation. More... | |
#define | ICMP6_PRIV_EXP_200 200 |
Private Experimentation. More... | |
#define | ICMP6_PRIV_EXP_201 201 |
Private Experimentation. More... | |
#define | ICMP6_ROLL_TM ICMP6_PRIV_EXP_200 |
ROLL Trickle Multicast. More... | |
ICMPv6 Destination Unreachable message codes | |
#define | ICMP6_DST_UNREACH_NOROUTE 0 |
no route to destination More... | |
#define | ICMP6_DST_UNREACH_ADMIN 1 |
administratively prohibited More... | |
#define | ICMP6_DST_UNREACH_NOTNEIGHBOR 2 |
not a neighbor(obsolete) More... | |
#define | ICMP6_DST_UNREACH_BEYONDSCOPE 2 |
beyond scope of source address More... | |
#define | ICMP6_DST_UNREACH_ADDR 3 |
address unreachable More... | |
#define | ICMP6_DST_UNREACH_NOPORT 4 |
port unreachable More... | |
ICMPv6 Time Exceeded message codes | |
#define | ICMP6_TIME_EXCEED_TRANSIT 0 |
ttl==0 in transit More... | |
#define | ICMP6_TIME_EXCEED_REASSEMBLY 1 |
ttl==0 in reass More... | |
ICMPv6 Parameter Problem message codes | |
#define | ICMP6_PARAMPROB_HEADER 0 |
erroneous header field More... | |
#define | ICMP6_PARAMPROB_NEXTHEADER 1 |
unrecognized next header More... | |
#define | ICMP6_PARAMPROB_OPTION 2 |
unrecognized option More... | |
Typedefs | |
typedef struct uip_icmp6_error | uip_icmp6_error |
ICMPv6 Error message constant part. More... | |
ICMPv6 RFC4443 Message processing and sending | |
#define | UIP_ICMP6_INPUT_SUCCESS 0 |
#define | UIP_ICMP6_INPUT_ERROR 1 |
#define | UIP_ICMP6_HANDLER_CODE_ANY 0xFF /* Handle all codes for this type */ |
#define | UIP_ICMP6_HANDLER(name, type, code, func) static uip_icmp6_input_handler_t name = { NULL, type, code, func } |
typedef void(* | uip_icmp6_echo_reply_callback_t )(uip_ipaddr_t *source, uint8_t ttl, uint8_t *data, uint16_t datalen) |
typedef struct uip_icmp6_input_handler | uip_icmp6_input_handler_t |
void | uip_icmp6_error_output (uint8_t type, uint8_t code, uint32_t param) |
Send an icmpv6 error message. More... | |
void | uip_icmp6_send (const uip_ipaddr_t *dest, int type, int code, int payload_len) |
Send an icmpv6 message. More... | |
void | uip_icmp6_echo_reply_callback_add (struct uip_icmp6_echo_reply_notification *n, uip_icmp6_echo_reply_callback_t c) |
Add a callback function for ping replies. More... | |
void | uip_icmp6_echo_reply_callback_rm (struct uip_icmp6_echo_reply_notification *n) |
Remove a callback function for ping replies. More... | |
uint8_t | uip_icmp6_input (uint8_t type, uint8_t icode) |
Handle an incoming ICMPv6 message. More... | |
void | uip_icmp6_register_input_handler (uip_icmp6_input_handler_t *handler) |
Register a handler which can handle a specific ICMPv6 message type. More... | |
void | uip_icmp6_init (void) |
Initialise the uIP ICMPv6 core. More... | |