Microchip® Advanced Software Framework

icmp.h File Reference
#include "lwip/opt.h"
#include "lwip/pbuf.h"
#include "lwip/ip_addr.h"
#include "lwip/netif.h"

Data Structures

struct  icmp_echo_hdr
 This is the standard ICMP header only that the u32_t data is splitted to two u16_t like ICMP echo needs it. More...
 

Macros

#define ICMP_DUR   3 /* destination unreachable */
 
#define ICMP_ECHO   8 /* echo */
 
#define ICMP_ER   0 /* echo reply */
 
#define ICMP_IR   16 /* information reply */
 
#define ICMP_IRQ   15 /* information request */
 
#define ICMP_PP   12 /* parameter problem */
 
#define ICMP_RD   5 /* redirect */
 
#define ICMP_SQ   4 /* source quench */
 
#define ICMP_TE   11 /* time exceeded */
 
#define ICMP_TS   13 /* timestamp */
 
#define ICMP_TSR   14 /* timestamp reply */
 
#define ICMPH_CODE(hdr)   ((hdr)->code)
 
#define ICMPH_CODE_SET(hdr, c)   ((hdr)->code = (c))
 
#define ICMPH_TYPE(hdr)   ((hdr)->type)
 
#define ICMPH_TYPE_SET(hdr, t)   ((hdr)->type = (t))
 Combines type and code to an u16_t. More...
 

Enumerations

enum  icmp_dur_type {
  ICMP_DUR_NET = 0,
  ICMP_DUR_HOST = 1,
  ICMP_DUR_PROTO = 2,
  ICMP_DUR_PORT = 3,
  ICMP_DUR_FRAG = 4,
  ICMP_DUR_SR = 5
}
 
enum  icmp_te_type {
  ICMP_TE_TTL = 0,
  ICMP_TE_FRAG = 1
}
 

Functions

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. More...
 
void icmp_input (struct pbuf *p, struct netif *inp)
 Processes ICMP input packets, called from ip_input(). More...
 
void icmp_time_exceeded (struct pbuf *p, enum icmp_te_type t)
 

Variables

PACK_STRUCT_BEGIN struct
icmp_echo_hdr 
PACK_STRUCT_STRUCT
 

#define ICMP_DUR   3 /* destination unreachable */

Referenced by icmp_dest_unreach().

#define ICMP_ECHO   8 /* echo */

Referenced by icmp_input().

#define ICMP_ER   0 /* echo reply */

Referenced by icmp_input().

#define ICMP_IR   16 /* information reply */
#define ICMP_IRQ   15 /* information request */
#define ICMP_PP   12 /* parameter problem */
#define ICMP_RD   5 /* redirect */
#define ICMP_SQ   4 /* source quench */
#define ICMP_TE   11 /* time exceeded */
#define ICMP_TS   13 /* timestamp */
#define ICMP_TSR   14 /* timestamp reply */
#define ICMPH_CODE (   hdr)    ((hdr)->code)
#define ICMPH_CODE_SET (   hdr,
 
)    ((hdr)->code = (c))
#define ICMPH_TYPE (   hdr)    ((hdr)->type)
#define ICMPH_TYPE_SET (   hdr,
 
)    ((hdr)->type = (t))

Combines type and code to an u16_t.

Referenced by icmp_input().

Enumerator
ICMP_DUR_NET 
ICMP_DUR_HOST 
ICMP_DUR_PROTO 
ICMP_DUR_PORT 
ICMP_DUR_FRAG 
ICMP_DUR_SR 
Enumerator
ICMP_TE_TTL 
ICMP_TE_FRAG 

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

References ICMP_DUR, and icmp_send_response().

Referenced by ip_input().

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

PACK_STRUCT_BEGIN struct icmp_echo_hdr PACK_STRUCT_STRUCT