lwIP  2.0.2
Lightweight IP stack
icmp6.c File Reference
#include "lwip/opt.h"
#include "lwip/icmp6.h"
#include "lwip/prot/icmp6.h"
#include "lwip/ip6.h"
#include "lwip/ip6_addr.h"
#include "lwip/inet_chksum.h"
#include "lwip/pbuf.h"
#include "lwip/netif.h"
#include "lwip/nd6.h"
#include "lwip/mld6.h"
#include "lwip/ip.h"
#include "lwip/stats.h"
#include <string.h>

Functions

void icmp6_input (struct pbuf *p, struct netif *inp)
 
void icmp6_dest_unreach (struct pbuf *p, enum icmp6_dur_code c)
 
void icmp6_packet_too_big (struct pbuf *p, u32_t mtu)
 
void icmp6_time_exceeded (struct pbuf *p, enum icmp6_te_code c)
 
void icmp6_param_problem (struct pbuf *p, enum icmp6_pp_code c, u32_t pointer)
 

Detailed Description

IPv6 version of ICMP, as per RFC 4443.

Function Documentation

◆ icmp6_dest_unreach()

void icmp6_dest_unreach ( struct pbuf p,
enum icmp6_dur_code  c 
)

Send an icmpv6 'destination unreachable' packet.

Parameters
pthe input packet for which the 'unreachable' should be sent, p->payload pointing to the IPv6 header
cICMPv6 code for the unreachable type

◆ icmp6_input()

void icmp6_input ( struct pbuf p,
struct netif inp 
)

Process an input ICMPv6 message. Called by ip6_input.

Will generate a reply for echo requests. Other messages are forwarded to nd6_input, or mld6_input.

Parameters
pthe mld packet, p->payload pointing to the icmpv6 header
inpthe netif on which this packet was received

◆ icmp6_packet_too_big()

void icmp6_packet_too_big ( struct pbuf p,
u32_t  mtu 
)

Send an icmpv6 'packet too big' packet.

Parameters
pthe input packet for which the 'packet too big' should be sent, p->payload pointing to the IPv6 header
mtuthe maximum mtu that we can accept

◆ icmp6_param_problem()

void icmp6_param_problem ( struct pbuf p,
enum icmp6_pp_code  c,
u32_t  pointer 
)

Send an icmpv6 'parameter problem' packet.

Parameters
pthe input packet for which the 'param problem' should be sent, p->payload pointing to the IP header
cICMPv6 code for the param problem type
pointerthe pointer to the byte where the parameter is found

◆ icmp6_time_exceeded()

void icmp6_time_exceeded ( struct pbuf p,
enum icmp6_te_code  c 
)

Send an icmpv6 'time exceeded' packet.

Parameters
pthe input packet for which the 'unreachable' should be sent, p->payload pointing to the IPv6 header
cICMPv6 code for the time exceeded type