echo.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2015 Martine Lenders <mlenders@inf.fu-berlin.de>
3  * SPDX-License-Identifier: LGPL-2.1-only
4  */
5 
6 #pragma once
7 
20 #include <inttypes.h>
21 
22 #include "byteorder.h"
23 #include "net/gnrc/netif.h"
24 #include "net/gnrc/netif/hdr.h"
25 #include "net/ipv6/hdr.h"
26 #include "net/icmpv6.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
45 gnrc_pktsnip_t *gnrc_icmpv6_echo_build(uint8_t type, uint16_t id, uint16_t seq,
46  uint8_t *data, size_t data_len);
47 
58  icmpv6_echo_t *echo, uint16_t len);
59 
73 int gnrc_icmpv6_echo_send(const gnrc_netif_t *netif, const ipv6_addr_t *addr,
74  uint16_t id, uint16_t seq, uint8_t ttl, size_t len);
75 
88  int corrupt, uint32_t rtt_us, void *ctx);
101  gnrc_icmpv6_echo_rsp_handle_cb_t cb, void *ctx);
102 
103 #ifdef __cplusplus
104 }
105 #endif
106 
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:87
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:129
Type to represent parts (either headers or payload) of a packet, called snips.
Definition: pkt.h:105
Echo request and response message format.
Definition: icmpv6.h:212
Data type to represent an IPv6 packet header.
Definition: hdr.h:63
Data type to represent an IPv6 address.
Definition: addr.h:64