15#ifndef ZEPHYR_INCLUDE_NET_ICMP_H_ 
   16#define ZEPHYR_INCLUDE_NET_ICMP_H_ 
   30#define NET_ICMPV4_ECHO_REQUEST 8 
   31#define NET_ICMPV4_ECHO_REPLY   0 
   32#define NET_ICMPV6_ECHO_REQUEST 128 
   33#define NET_ICMPV6_ECHO_REPLY   129 
   52                                  struct net_icmp_hdr *icmp_hdr,
 
int net_icmp_send_echo_request(struct net_icmp_ctx *ctx, struct net_if *iface, struct sockaddr *dst, struct net_icmp_ping_params *params, void *user_data)
Send ICMP echo request message.
 
int(* net_icmp_offload_ping_handler_t)(struct net_icmp_ctx *ctx, struct net_if *iface, struct sockaddr *dst, struct net_icmp_ping_params *params, void *user_data)
Handler function that is called when an Echo-Request is sent to offloaded device.
Definition icmp.h:71
 
int net_icmp_register_offload_ping(struct net_icmp_offload *ctx, struct net_if *iface, net_icmp_offload_ping_handler_t ping_handler)
Register a handler function that is called when an Echo-Request is sent to the offloaded device.
 
int net_icmp_unregister_offload_ping(struct net_icmp_offload *ctx)
Unregister the offload handler.
 
int net_icmp_cleanup_ctx(struct net_icmp_ctx *ctx)
Cleanup the ICMP context structure.
 
int net_icmp_get_offload_rsp_handler(struct net_icmp_offload *ctx, net_icmp_handler_t *resp_handler)
Get a ICMP response handler function for an offloaded device.
 
int net_icmp_init_ctx(struct net_icmp_ctx *ctx, uint8_t type, uint8_t code, net_icmp_handler_t handler)
Initialize the ICMP context structure.
 
int(* net_icmp_handler_t)(struct net_icmp_ctx *ctx, struct net_pkt *pkt, struct net_icmp_ip_hdr *ip_hdr, struct net_icmp_hdr *icmp_hdr, void *user_data)
Handler function that is called when ICMP response is received.
Definition icmp.h:49
 
unsigned short int sa_family_t
Socket address family type.
Definition net_ip.h:164
 
struct _snode sys_snode_t
Single-linked list node structure.
Definition slist.h:39
 
Public API for network interface.
 
IPv6 and IPv4 definitions.
 
Network packet buffer descriptor API.
 
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
 
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
 
ICMP context structure.
Definition icmp.h:80
 
void * user_data
Opaque user supplied data.
Definition icmp.h:91
 
sys_snode_t node
List node.
Definition icmp.h:82
 
struct net_if * iface
Network interface where the ICMP request was sent.
Definition icmp.h:88
 
uint8_t code
ICMP code of the response type we are waiting.
Definition icmp.h:97
 
net_icmp_handler_t handler
ICMP response handler.
Definition icmp.h:85
 
uint8_t type
ICMP type of the response we are waiting.
Definition icmp.h:94
 
Struct presents either IPv4 or IPv6 header in ICMP response message.
Definition icmp.h:103
 
struct net_ipv4_hdr * ipv4
IPv4 header in response message.
Definition icmp.h:106
 
sa_family_t family
Is the header IPv4 or IPv6 one.
Definition icmp.h:113
 
struct net_ipv6_hdr * ipv6
IPv6 header in response message.
Definition icmp.h:109
 
ICMP offload context structure.
Definition icmp.h:194
 
net_icmp_handler_t handler
ICMP response handler.
Definition icmp.h:203
 
net_icmp_offload_ping_handler_t ping_handler
ICMP offloaded ping handler.
Definition icmp.h:206
 
sys_snode_t node
List node.
Definition icmp.h:196
 
struct net_if * iface
Offloaded network interface.
Definition icmp.h:209
 
Struct presents parameters that are needed when sending Echo-Request (ping) messages.
Definition icmp.h:120
 
uint16_t identifier
An identifier to aid in matching Echo Replies to this Echo Request.
Definition icmp.h:124
 
size_t data_size
Size of the Payload Data in bytes.
Definition icmp.h:148
 
uint16_t sequence
A sequence number to aid in matching Echo Replies to this Echo Request.
Definition icmp.h:129
 
int priority
Network packet priority.
Definition icmp.h:137
 
uint8_t tc_tos
Can be either IPv4 Type-of-service field value, or IPv6 Traffic Class field value.
Definition icmp.h:134
 
const void * data
Definition icmp.h:142
 
Network Interface structure.
Definition net_if.h:595
 
Network packet.
Definition net_pkt.h:63
 
Generic sockaddr struct.
Definition net_ip.h:347
 
static void handler(struct k_timer *timer)
Definition main.c:19
 
static const intptr_t user_data[5]
Definition main.c:588