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
67 #define ICMP6_PRIV_EXP_100 100
68 #define ICMP6_PRIV_EXP_101 101
69 #define ICMP6_PRIV_EXP_200 200
70 #define ICMP6_PRIV_EXP_201 201
71 #define ICMP6_ROLL_TM ICMP6_PRIV_EXP_200
77 #define ICMP6_DST_UNREACH_NOROUTE 0
78 #define ICMP6_DST_UNREACH_ADMIN 1
79 #define ICMP6_DST_UNREACH_NOTNEIGHBOR 2
80 #define ICMP6_DST_UNREACH_BEYONDSCOPE 2
81 #define ICMP6_DST_UNREACH_ADDR 3
82 #define ICMP6_DST_UNREACH_NOPORT 4
87 #define ICMP6_TIME_EXCEED_TRANSIT 0
88 #define ICMP6_TIME_EXCEED_REASSEMBLY 1
93 #define ICMP6_PARAMPROB_HEADER 0
94 #define ICMP6_PARAMPROB_NEXTHEADER 1
95 #define ICMP6_PARAMPROB_OPTION 2
99 #define UIP_ICMP6_ECHO_REQUEST_LEN 4
102 #define UIP_ICMP6_ERROR_LEN 4
128 uip_icmp6_send(
const uip_ipaddr_t *dest,
int type,
int code,
int payload_len);
132 typedef void (* uip_icmp6_echo_reply_callback_t)(uip_ipaddr_t *source,
136 struct uip_icmp6_echo_reply_notification {
137 struct uip_icmp6_echo_reply_notification *next;
138 uip_icmp6_echo_reply_callback_t callback;
163 uip_icmp6_echo_reply_callback_t c);
177 typedef struct uip_icmp6_input_handler {
178 struct uip_icmp6_input_handler *next;
181 void (*handler)(void);
182 } uip_icmp6_input_handler_t;
184 #define UIP_ICMP6_INPUT_SUCCESS 0
185 #define UIP_ICMP6_INPUT_ERROR 1
187 #define UIP_ICMP6_HANDLER_CODE_ANY 0xFF
200 #define UIP_ICMP6_HANDLER(name, type, code, func) \
201 static uip_icmp6_input_handler_t name = { NULL, type, code, func }
Header file for the uIP TCP/IP stack.
void uip_icmp6_error_output(uint8_t type, uint8_t code, uint32_t param)
Send an icmpv6 error message.
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_rm(struct uip_icmp6_echo_reply_notification *n)
Remove a callback function for ping replies.
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.
ICMPv6 Error message constant part.
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.