lwIP 2.0.0  lwIP 2.0.0
LightweightIPstack
icmp.h File Reference
#include "lwip/opt.h"
#include "lwip/pbuf.h"
#include "lwip/ip_addr.h"
#include "lwip/netif.h"
#include "lwip/icmp6.h"

Data Structures

struct  icmp_echo_hdr
 

Macros

#define ICMPH_TYPE_SET(hdr, t)   ((hdr)->type = (t))
 

Enumerations

Functions

void icmp_input (struct pbuf *p, struct netif *inp)
 
void icmp_dest_unreach (struct pbuf *p, enum icmp_dur_type t)
 
void icmp_time_exceeded (struct pbuf *p, enum icmp_te_type t)
 

Detailed Description

ICMP API

Macro Definition Documentation

#define ICMPH_TYPE_SET (   hdr,
 
)    ((hdr)->type = (t))

Combines type and code to an u16_t

Enumeration Type Documentation

ICMP destination unreachable codes

Enumerator
ICMP_DUR_NET 

net unreachable

ICMP_DUR_HOST 

host unreachable

ICMP_DUR_PROTO 

protocol unreachable

ICMP_DUR_PORT 

port unreachable

ICMP_DUR_FRAG 

fragmentation needed and DF set

ICMP_DUR_SR 

source route failed

ICMP time exceeded codes

Enumerator
ICMP_TE_FRAG 

fragment reassembly time exceeded

Function Documentation

void icmp_dest_unreach ( struct pbuf p,
enum icmp_dur_type  t 
)

Send an icmp 'destination unreachable' packet, called from ip_input() if the transport layer protocol is unknown and from udp_input() if the local port is not bound.

Parameters
pthe input packet for which the 'unreachable' should be sent, p->payload pointing to the IP header
ttype of the 'unreachable' packet
void icmp_input ( struct pbuf p,
struct netif inp 
)

Processes ICMP input packets, called from ip_input().

Currently only processes icmp echo requests and sends out the echo response.

Parameters
pthe icmp echo request packet, p->payload pointing to the icmp header
inpthe netif on which this packet was received
void icmp_time_exceeded ( struct pbuf p,
enum icmp_te_type  t 
)

Send a 'time exceeded' packet, called from ip_forward() if TTL is 0.

Parameters
pthe input packet for which the 'time exceeded' should be sent, p->payload pointing to the IP header
ttype of the 'time exceeded' packet