Contiki-NG
Data Structures | Macros | Typedefs
uip-icmp6.h File Reference

Header file for ICMPv6 message and error handing (RFC 4443) More...

#include "net/ipv6/uip.h"

Go to the source code of this file.

Data Structures

struct  uip_icmp6_error
 ICMPv6 Error message constant part. More...
 

Macros

#define UIP_ICMP6_ECHO_REQUEST_LEN   4
 Echo Request constant part length.
 
#define UIP_ICMP6_ERROR_LEN   4
 ICMPv6 Error message constant part length.
 
ICMPv6 message types
#define ICMP6_DST_UNREACH   1
 dest unreachable
 
#define ICMP6_PACKET_TOO_BIG   2
 packet too big
 
#define ICMP6_TIME_EXCEEDED   3
 time exceeded
 
#define ICMP6_PARAM_PROB   4
 ip6 header bad
 
#define ICMP6_ECHO_REQUEST   128
 Echo request.
 
#define ICMP6_ECHO_REPLY   129
 Echo reply.
 
#define ICMP6_RS   133
 Router Solicitation.
 
#define ICMP6_RA   134
 Router Advertisement.
 
#define ICMP6_NS   135
 Neighbor Solicitation.
 
#define ICMP6_NA   136
 Neighbor advertisement.
 
#define ICMP6_REDIRECT   137
 Redirect.
 
#define ICMP6_RPL   155
 RPL.
 
#define ICMP6_MPL   159
 MPL.
 
#define ICMP6_PRIV_EXP_100   100
 Private Experimentation.
 
#define ICMP6_PRIV_EXP_101   101
 Private Experimentation.
 
#define ICMP6_PRIV_EXP_200   200
 Private Experimentation.
 
#define ICMP6_PRIV_EXP_201   201
 Private Experimentation.
 
#define ICMP6_ROLL_TM   ICMP6_PRIV_EXP_200
 ROLL Trickle Multicast.
 
#define ICMP6_ESMRF   ICMP6_PRIV_EXP_201
 ESMRF Multicast.
 
ICMPv6 Destination Unreachable message codes
#define ICMP6_DST_UNREACH_NOROUTE   0
 no route to destination
 
#define ICMP6_DST_UNREACH_ADMIN   1
 administratively prohibited
 
#define ICMP6_DST_UNREACH_NOTNEIGHBOR   2
 not a neighbor(obsolete)
 
#define ICMP6_DST_UNREACH_BEYONDSCOPE   2
 beyond scope of source address
 
#define ICMP6_DST_UNREACH_ADDR   3
 address unreachable
 
#define ICMP6_DST_UNREACH_NOPORT   4
 port unreachable
 
ICMPv6 Time Exceeded message codes
#define ICMP6_TIME_EXCEED_TRANSIT   0
 ttl==0 in transit
 
#define ICMP6_TIME_EXCEED_REASSEMBLY   1
 ttl==0 in reass
 
ICMPv6 Parameter Problem message codes
#define ICMP6_PARAMPROB_HEADER   0
 erroneous header field
 
#define ICMP6_PARAMPROB_NEXTHEADER   1
 unrecognized next header
 
#define ICMP6_PARAMPROB_OPTION   2
 unrecognized option
 

Typedefs

typedef struct uip_icmp6_error uip_icmp6_error
 ICMPv6 Error message constant part.
 

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.
 

Detailed Description

Header file for ICMPv6 message and error handing (RFC 4443)

Author
Julien Abeille jabei.nosp@m.lle@.nosp@m.cisco.nosp@m..com
Mathilde Durvy mdurv.nosp@m.y@ci.nosp@m.sco.c.nosp@m.om

Definition in file uip-icmp6.h.