FD.io VPP
v17.01.1-3-gc6833f8
Vector Packet Processing
Main Page
Related Pages
Data Structures
Source
Files
Symbols
ping.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 Cisco and/or its affiliates.
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at:
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
#ifndef included_vnet_ping_h
16
#define included_vnet_ping_h
17
18
19
#include <
vnet/ip/ip.h
>
20
21
#include <
vnet/ip/lookup.h
>
22
23
typedef
enum
24
{
25
PING_RESPONSE_IP6
= 42,
26
PING_RESPONSE_IP4
,
27
}
ping_response_type_t
;
28
29
typedef
enum
30
{
31
SEND_PING_OK
= 0,
32
SEND_PING_ALLOC_FAIL
,
33
SEND_PING_NO_INTERFACE
,
34
SEND_PING_NO_TABLE
,
35
}
send_ip46_ping_result_t
;
36
37
/*
38
* Currently running ping command.
39
*/
40
typedef
struct
ping_run_t
41
{
42
u16
icmp_id
;
43
u16
curr_seq
;
44
uword
cli_process_id
;
45
}
ping_run_t
;
46
47
typedef
struct
ping_main_t
48
{
49
ip6_main_t
*
ip6_main
;
50
ip4_main_t
*
ip4_main
;
51
ping_run_t
*
ping_runs
;
52
/* hash table to find back the CLI process for a reply */
53
// uword *cli_proc_by_icmp_id;
54
ping_run_t
*
ping_run_by_icmp_id
;
55
}
ping_main_t
;
56
57
ping_main_t
ping_main
;
58
59
#define PING_DEFAULT_DATA_LEN 60
60
#define PING_DEFAULT_INTERVAL 1.0
61
62
#define PING_MAXIMUM_DATA_SIZE 2000
63
64
typedef
CLIB_PACKED
(
struct
65
{
66
u16
id;
67
u16
seq;
f64
time_sent;
u8
data[
PING_MAXIMUM_DATA_SIZE
];
68
}) icmp46_echo_request_t;
69
70
71
typedef
CLIB_PACKED
(
struct
72
{
73
ip6_header_t
ip6;
74
icmp46_header_t icmp; icmp46_echo_request_t icmp_echo;
75
}) icmp6_echo_request_header_t;
76
77
typedef
CLIB_PACKED
(
struct
78
{
79
ip4_header_t
ip4;
80
icmp46_header_t icmp; icmp46_echo_request_t icmp_echo;
81
}) icmp4_echo_request_header_t;
82
83
84
typedef
struct
85
{
86
u16
id
;
87
u16
seq
;
88
u8
bound
;
89
}
icmp_echo_trace_t
;
90
91
92
93
94
typedef
enum
95
{
96
ICMP6_ECHO_REPLY_NEXT_DROP
,
97
ICMP6_ECHO_REPLY_NEXT_PUNT
,
98
ICMP6_ECHO_REPLY_N_NEXT
,
99
}
icmp6_echo_reply_next_t
;
100
101
typedef
enum
102
{
103
ICMP4_ECHO_REPLY_NEXT_DROP
,
104
ICMP4_ECHO_REPLY_NEXT_PUNT
,
105
ICMP4_ECHO_REPLY_N_NEXT
,
106
}
icmp4_echo_reply_next_t
;
107
108
#endif
/* included_vnet_ping_h */
ping_main_t
Definition:
ping.h:47
lookup.h
Definitions for all things IP (v4|v6) unicast and multicast lookup related.
ICMP4_ECHO_REPLY_N_NEXT
Definition:
ping.h:105
ping_main_t::ip4_main
ip4_main_t * ip4_main
Definition:
ping.h:50
ip.h
ping_run_t
Definition:
ping.h:40
send_ip46_ping_result_t
send_ip46_ping_result_t
Definition:
ping.h:29
ping_main_t::ping_runs
ping_run_t * ping_runs
Definition:
ping.h:51
ICMP4_ECHO_REPLY_NEXT_DROP
Definition:
ping.h:103
SEND_PING_OK
Definition:
ping.h:31
ping_main_t
struct ping_main_t ping_main_t
CLIB_PACKED
typedef CLIB_PACKED(struct{u16 id;u16 seq;f64 time_sent;u8 data[PING_MAXIMUM_DATA_SIZE];}) icmp46_echo_request_t
SEND_PING_NO_TABLE
Definition:
ping.h:34
ICMP4_ECHO_REPLY_NEXT_PUNT
Definition:
ping.h:104
ping_run_t
struct ping_run_t ping_run_t
icmp4_echo_reply_next_t
icmp4_echo_reply_next_t
Definition:
ping.h:101
ping_run_t::curr_seq
u16 curr_seq
Definition:
ping.h:43
SEND_PING_NO_INTERFACE
Definition:
ping.h:33
ip6_main_t
Definition:
ip6.h:128
ping_main_t::ip6_main
ip6_main_t * ip6_main
Definition:
ping.h:49
PING_RESPONSE_IP6
Definition:
ping.h:25
icmp_echo_trace_t::bound
u8 bound
Definition:
ping.h:88
icmp_echo_trace_t::seq
u16 seq
Definition:
ping.h:87
ping_run_t::cli_process_id
uword cli_process_id
Definition:
ping.h:44
PING_RESPONSE_IP4
Definition:
ping.h:26
PING_MAXIMUM_DATA_SIZE
#define PING_MAXIMUM_DATA_SIZE
Definition:
ping.h:62
ICMP6_ECHO_REPLY_NEXT_DROP
Definition:
ping.h:96
ip6_header_t
Definition:
ip6_packet.h:321
ip4_main_t
IPv4 main type.
Definition:
ip4.h:95
icmp_echo_trace_t::id
u16 id
Definition:
ping.h:86
uword
u64 uword
Definition:
types.h:112
u16
unsigned short u16
Definition:
types.h:57
f64
double f64
Definition:
types.h:142
u8
unsigned char u8
Definition:
types.h:56
icmp_echo_trace_t
Definition:
ping.h:84
ICMP6_ECHO_REPLY_N_NEXT
Definition:
ping.h:98
ping_response_type_t
ping_response_type_t
Definition:
ping.h:23
ping_main
ping_main_t ping_main
Definition:
ping.h:57
ping_run_t::icmp_id
u16 icmp_id
Definition:
ping.h:42
ping_main_t::ping_run_by_icmp_id
ping_run_t * ping_run_by_icmp_id
Definition:
ping.h:54
ICMP6_ECHO_REPLY_NEXT_PUNT
Definition:
ping.h:97
icmp6_echo_reply_next_t
icmp6_echo_reply_next_t
Definition:
ping.h:94
SEND_PING_ALLOC_FAIL
Definition:
ping.h:32
ip4_header_t
Definition:
ip4_packet.h:125
vnet
vnet
ip
ping.h
Generated on Mon May 15 2017 22:02:10 for FD.io VPP by
1.8.11