pinginfo
pinginfo = bpf_map_lookup_elem(&ping_map, &raddr);
if (!pinginfo || pinginfo->seq != icmph->un.echo.sequence)
if (pinginfo->start) {
if (pinginfo->times[i] == 0)
pinginfo->times[i] = recvtime -
pinginfo->start;
pinginfo->start = 0;
if (i == pinginfo->count || i == XDPING_MAX_COUNT)
pinginfo->seq = seq;
pinginfo->start = bpf_ktime_get_ns();
__type(value, struct pinginfo);
struct pinginfo *pinginfo = NULL;
pinginfo.seq = htons(count);
pinginfo.count = count;
if (bpf_map_update_elem(map_fd, &raddr, &pinginfo, BPF_ANY)) {
struct pinginfo pinginfo = { 0 };
if (bpf_map_lookup_elem(fd, &raddr, &pinginfo)) {
if (pinginfo.times[i] == 0)
(double)pinginfo.times[i]/1000000);
struct pinginfo pinginfo = { 0 };