echo.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Martine Lenders <mlenders@inf.fu-berlin.de>
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
20 #ifndef NET_GNRC_ICMPV6_ECHO_H
21 #define NET_GNRC_ICMPV6_ECHO_H
22 
23 #include <inttypes.h>
24 
25 #include "byteorder.h"
26 #include "net/gnrc/netif.h"
27 #include "net/gnrc/netif/hdr.h"
28 #include "net/ipv6/hdr.h"
29 #include "net/icmpv6.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
48 gnrc_pktsnip_t *gnrc_icmpv6_echo_build(uint8_t type, uint16_t id, uint16_t seq,
49  uint8_t *data, size_t data_len);
50 
61  icmpv6_echo_t *echo, uint16_t len);
62 
76 int gnrc_icmpv6_echo_send(const gnrc_netif_t *netif, const ipv6_addr_t *addr,
77  uint16_t id, uint16_t seq, uint8_t ttl, size_t len);
78 
91  int corrupt, uint32_t rtt_us, void *ctx);
104  gnrc_icmpv6_echo_rsp_handle_cb_t cb, void *ctx);
105 
106 #ifdef __cplusplus
107 }
108 #endif
109 
110 #endif /* NET_GNRC_ICMPV6_ECHO_H */
Functions to work with different byte orders.
Definition for GNRC's network interfaces.
int gnrc_icmpv6_echo_send(const gnrc_netif_t *netif, const ipv6_addr_t *addr, uint16_t id, uint16_t seq, uint8_t ttl, size_t len)
Send out ICMPv6 echo request.
void gnrc_icmpv6_echo_req_handle(gnrc_netif_t *netif, ipv6_hdr_t *ipv6_hdr, icmpv6_echo_t *echo, uint16_t len)
ICMPv6 echo request handler.
int(* gnrc_icmpv6_echo_rsp_handle_cb_t)(gnrc_pktsnip_t *pkt, int corrupt, uint32_t rtt_us, void *ctx)
ICMPv6 echo response callback.
Definition: echo.h:90
int gnrc_icmpv6_echo_rsp_handle(gnrc_pktsnip_t *pkt, size_t len, gnrc_icmpv6_echo_rsp_handle_cb_t cb, void *ctx)
Parse ICMPv6 echo response.
gnrc_pktsnip_t * gnrc_icmpv6_echo_build(uint8_t type, uint16_t id, uint16_t seq, uint8_t *data, size_t data_len)
Builds an ICMPv6 echo message of type type for sending.
ICMPv6 type and function definitions.
Adds include for missing inttype definitions.
Generic network interface header.
IPv6 header type and helper function definitions.
Representation of a network interface.
Definition: netif.h:135
Type to represent parts (either headers or payload) of a packet, called snips.
Definition: pkt.h:108
Echo request and response message format.
Definition: icmpv6.h:215
Data type to represent an IPv6 packet header.
Definition: hdr.h:66
Data type to represent an IPv6 address.
Definition: addr.h:72