#include "lwip/opt.h"
#include <assert.h>
#include "lwip/mem.h"
#include "lwip/raw.h"
#include "lwip/icmp.h"
#include "lwip/netif.h"
#include "lwip/sys.h"
#include "lwip/sockets.h"
#include "lwip/inet.h"
#include "lwip/inet_chksum.h"
#include "lwip/init.h"
#include "lwip/ip_addr.h"
#include <net/ping.h>
#include <ports/avr32/timer.h>
#include <util/util.h>
#include "getopt.h"
Data Structures | |
struct | ping_info_t |
Macros | |
#define | PING_ID 0xAFAF |
#define | PING_REPLY (1 << 0) |
Functions | |
cmd_state_t | cmd_ping (int argc, char *argv[], void *ctx) |
static int | init_ping_info (int argc, char *argv[], struct ping_info_t *ping_info) |
static void | ping_finalize (struct ping_info_t *ping_info) |
static void | ping_prepare_echo (struct icmp_echo_hdr *iecho, struct ping_info_t *ping_info) |
Prepare a echo ICMP request. More... | |
static u8_t | ping_recv (void *arg, struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *addr) |
static void | ping_send (struct raw_pcb *raw, struct ping_info_t *ping_info) |
void | ping_set_callback (ping_complete_cb_t cb, void *ctx) |
void | ping_stop (uint32_t *tx_cnt, uint32_t *rx_cnt) |
static void | print_stats (struct ping_info_t *ping_info) |
Variables | |
static struct ping_info_t | INFO |
#define PING_ID 0xAFAF |
Referenced by ping_prepare_echo(), and ping_recv().
#define PING_REPLY (1 << 0) |
Referenced by cmd_ping(), and ping_recv().
cmd_state_t cmd_ping | ( | int | argc, |
char * | argv[], | ||
void * | ctx | ||
) |
References assert, CMD_DONE, CMD_INPROGRESS, ping_info_t::count, ping_info_t::data_size, ping_info_t::deadline, ping_info_t::destination, ping_info_t::first_tx_tm, ping_info_t::flags, INFO, init_ping_info(), ping_info_t::interval, ip2str(), ping_info_t::last_rx_tm, ping_info_t::last_tx_tm, netif_default, netif_is_up, ping_info_t::num_tx, pcb, ping_finalize(), ping_recv(), PING_REPLY, ping_send(), printk(), ping_info_t::quiet, ping_info_t::size, state, ping_info_t::timeout, and timer_get_ms().
Referenced by wl_init_complete_cb().
|
static |
References c, cb, ping_info_t::complete_cb, ping_info_t::count, ctx, ping_info_t::ctx, ping_info_t::data_size, ping_info_t::deadline, ping_info_t::destination, getopt(), netif::gw, ping_info_t::interval, netif_default, optarg, optind, ping_info_t::quiet, ping_info_t::size, str2ip(), ping_info_t::timeout, and timer_get_ms().
Referenced by cmd_ping().
|
static |
References ping_info_t::complete_cb, ping_info_t::ctx, ping_info_t::num_rx, ping_info_t::num_tx, and print_stats().
Referenced by cmd_ping().
|
static |
Prepare a echo ICMP request.
References ping_info_t::data_size, htons, i, PING_ID, ping_info_t::seq_num, and ping_info_t::size.
Referenced by ping_send().
|
static |
References ping_info_t::flags, htons, ip2str(), ping_info_t::last_rx_tm, ping_info_t::last_tx_tm, ntohs, ping_info_t::num_rx, pbuf::payload, pbuf_free(), pbuf_header(), PBUF_IP_HLEN, PING_ID, PING_REPLY, printk(), ping_info_t::quiet, ping_info_t::seq_num, timer_get_ms(), and pbuf::tot_len.
Referenced by cmd_ping().
|
static |
References ping_info_t::destination, ping_info_t::first_tx_tm, ping_info_t::last_tx_tm, pbuf::len, pbuf::next, NULL, ping_info_t::num_tx, pbuf::payload, pbuf_alloc(), pbuf_free(), PBUF_IP, PBUF_RAM, ping_prepare_echo(), ping_info_t::size, timer_get_ms(), and pbuf::tot_len.
Referenced by cmd_ping().
void ping_set_callback | ( | ping_complete_cb_t | cb, |
void * | ctx | ||
) |
References cb, ping_info_t::complete_cb, ctx, ping_info_t::ctx, and INFO.
void ping_stop | ( | uint32_t * | tx_cnt, |
uint32_t * | rx_cnt | ||
) |
References ping_info_t::count, INFO, ping_info_t::num_rx, and ping_info_t::num_tx.
|
static |
References ping_info_t::destination, ping_info_t::first_tx_tm, ip2str(), ping_info_t::num_rx, ping_info_t::num_tx, printk(), and timer_get_ms().
Referenced by ping_finalize().
|
static |
Referenced by cmd_ping(), ping_set_callback(), and ping_stop().