53#define ICMP6_DST_UNREACH 1
54#define ICMP6_PACKET_TOO_BIG 2
55#define ICMP6_TIME_EXCEEDED 3
56#define ICMP6_PARAM_PROB 4
57#define ICMP6_ECHO_REQUEST 128
58#define ICMP6_ECHO_REPLY 129
64#define ICMP6_REDIRECT 137
68#define ICMP6_PRIV_EXP_100 100
69#define ICMP6_PRIV_EXP_101 101
70#define ICMP6_PRIV_EXP_200 200
71#define ICMP6_PRIV_EXP_201 201
72#define ICMP6_ROLL_TM ICMP6_PRIV_EXP_200
73#define ICMP6_ESMRF ICMP6_PRIV_EXP_201
79#define ICMP6_DST_UNREACH_NOROUTE 0
80#define ICMP6_DST_UNREACH_ADMIN 1
81#define ICMP6_DST_UNREACH_NOTNEIGHBOR 2
82#define ICMP6_DST_UNREACH_BEYONDSCOPE 2
83#define ICMP6_DST_UNREACH_ADDR 3
84#define ICMP6_DST_UNREACH_NOPORT 4
89#define ICMP6_TIME_EXCEED_TRANSIT 0
90#define ICMP6_TIME_EXCEED_REASSEMBLY 1
95#define ICMP6_PARAMPROB_HEADER 0
96#define ICMP6_PARAMPROB_NEXTHEADER 1
97#define ICMP6_PARAMPROB_OPTION 2
101#define UIP_ICMP6_ECHO_REQUEST_LEN 4
104#define UIP_ICMP6_ERROR_LEN 4
130uip_icmp6_send(
const uip_ipaddr_t *dest,
int type,
int code,
int payload_len);
134typedef void (* uip_icmp6_echo_reply_callback_t)(uip_ipaddr_t *source,
138struct uip_icmp6_echo_reply_notification {
139 struct uip_icmp6_echo_reply_notification *next;
140 uip_icmp6_echo_reply_callback_t callback;
165 uip_icmp6_echo_reply_callback_t c);
179typedef struct uip_icmp6_input_handler {
180 struct uip_icmp6_input_handler *next;
181 void (*handler)(void);
184} uip_icmp6_input_handler_t;
186#define UIP_ICMP6_INPUT_SUCCESS 0
187#define UIP_ICMP6_INPUT_ERROR 1
189#define UIP_ICMP6_HANDLER_CODE_ANY 0xFF
202#define UIP_ICMP6_HANDLER(name, type, code, func) \
203 static uip_icmp6_input_handler_t name = { NULL, func, type, code }
void uip_icmp6_echo_reply_callback_rm(struct uip_icmp6_echo_reply_notification *n)
Remove a callback function for ping replies.
void uip_icmp6_error_output(uint8_t type, uint8_t code, uint32_t param)
Send an icmpv6 error message.
void uip_icmp6_send(const uip_ipaddr_t *dest, int type, int code, int payload_len)
Send an icmpv6 message.
uint8_t uip_icmp6_input(uint8_t type, uint8_t icode)
Handle an incoming ICMPv6 message.
void uip_icmp6_init()
Initialise the uIP ICMPv6 core.
struct uip_icmp6_error uip_icmp6_error
ICMPv6 Error message constant part.
void uip_icmp6_register_input_handler(uip_icmp6_input_handler_t *handler)
Register a handler which can handle a specific ICMPv6 message type.
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.
ICMPv6 Error message constant part.
Header file for the uIP TCP/IP stack.