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 130 uip_icmp6_send(
const uip_ipaddr_t *dest,
int type,
int code,
int payload_len);
134 typedef void (* uip_icmp6_echo_reply_callback_t)(uip_ipaddr_t *source,
138 struct 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);
179 typedef struct uip_icmp6_input_handler {
180 struct uip_icmp6_input_handler *next;
183 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, type, code, func } ICMPv6 Error message constant part.
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.
uint8_t uip_icmp6_input(uint8_t type, uint8_t icode)
Handle an incoming ICMPv6 message.
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.
Header file for the uIP TCP/IP stack.
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_init()
Initialise the uIP ICMPv6 core.
void uip_icmp6_send(const uip_ipaddr_t *dest, int type, int code, int payload_len)
Send an icmpv6 message.