FD.io VPP  v21.06-1-gbb7418cf9
Vector Packet Processing
bfd.api
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2016 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 
16 option version = "2.0.0";
17 
18 import "vnet/interface_types.api";
19 import "vnet/ip/ip_types.api";
20 
21 enum bfd_state {
26 };
27 
28 /** \brief Set BFD echo source
29  @param client_index - opaque cookie to identify the sender
30  @param context - sender context, to match reply w/ request
31  @param sw_if_index - interface to use as echo source
32 */
33 autoreply define bfd_udp_set_echo_source
34 {
37  vl_api_interface_index_t sw_if_index;
38 };
39 
40 /** \brief Delete BFD echo source
41  @param client_index - opaque cookie to identify the sender
42  @param context - sender context, to match reply w/ request
43 */
44 autoreply define bfd_udp_del_echo_source
45 {
48 };
49 
50 /** \brief Get BFD echo source
51  @param client_index - opaque cookie to identify the sender
52  @param context - sender context, to match reply w/ request
53 */
55 {
58 };
59 
60 /** \brief Get BFD echo source reply
61  @param context - sender context, to match reply w/ request
62  @param retval - return code
63  @param sw_if_index - interface to use as echo source
64  @param is_set - non-zero if set
65  @param have_usable_ip4 - non-zero if have usable IPv4 address
66  @param ip4_addr - IPv4 address
67  @param have_usable_ip6 - non-zero if have usable IPv6 address
68  @param ip6_addr - IPv6 address
69 */
70 define bfd_udp_get_echo_source_reply
71 {
74  vl_api_interface_index_t sw_if_index;
75  bool is_set;
77  vl_api_ip4_address_t ip4_addr;
79  vl_api_ip6_address_t ip6_addr;
80 };
81 
82 /** \brief Add UDP BFD session on interface
83  @param client_index - opaque cookie to identify the sender
84  @param context - sender context, to match reply w/ request
85  @param sw_if_index - sw index of the interface
86  @param desired_min_tx - desired min transmit interval (microseconds)
87  @param required_min_rx - required min receive interval (microseconds)
88  @param local_addr - local address
89  @param peer_addr - peer address
90  @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
91  @param detect_mult - detect multiplier (# of packets missed before connection goes down)
92  @param is_authenticated - non-zero if authentication is required
93  @param bfd_key_id - key id sent out in BFD packets (if is_authenticated)
94  @param conf_key_id - id of already configured key (if is_authenticated)
95 */
96 autoreply define bfd_udp_add
97 {
100  vl_api_interface_index_t sw_if_index;
103  vl_api_address_t local_addr;
104  vl_api_address_t peer_addr;
109 };
110 
111 /** \brief Modify UDP BFD session on interface
112  @param client_index - opaque cookie to identify the sender
113  @param context - sender context, to match reply w/ request
114  @param sw_if_index - sw index of the interface
115  @param desired_min_tx - desired min transmit interval (microseconds)
116  @param required_min_rx - required min receive interval (microseconds)
117  @param local_addr - local address
118  @param peer_addr - peer address
119  @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
120  @param detect_mult - detect multiplier (# of packets missed before connection goes down)
121 */
122 autoreply define bfd_udp_mod
123 {
126  vl_api_interface_index_t sw_if_index;
129  vl_api_address_t local_addr;
130  vl_api_address_t peer_addr;
132 };
133 
134 /** \brief Delete UDP BFD session on interface
135  @param client_index - opaque cookie to identify the sender
136  @param context - sender context, to match reply w/ request
137  @param sw_if_index - sw index of the interface
138  @param local_addr - local address
139  @param peer_addr - peer address
140  @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
141 */
142 autoreply define bfd_udp_del
143 {
146  vl_api_interface_index_t sw_if_index;
147  vl_api_address_t local_addr;
148  vl_api_address_t peer_addr;
149 };
150 
151 /** \brief Get all BFD sessions
152  @param client_index - opaque cookie to identify the sender
153  @param context - sender context, to match reply w/ request
154 */
155 define bfd_udp_session_dump
156 {
159 };
160 
161 /** \brief BFD session details structure
162  @param context - sender context, to match reply w/ request
163  @param sw_if_index - sw index of the interface
164  @param local_addr - local address
165  @param peer_addr - peer address
166  @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
167  @param state - session state
168  @param is_authenticated - non-zero if authentication in-use, zero otherwise
169  @param bfd_key_id - ID of key currently in-use if auth is on
170  @param conf_key_id - configured key ID for this session
171  @param required_min_rx - required min receive interval (microseconds)
172  @param desired_min_tx - desired min transmit interval (microseconds)
173  @param detect_mult - detect multiplier (# of packets missed before connection goes down)
174 */
175 define bfd_udp_session_details
176 {
178  vl_api_interface_index_t sw_if_index;
179  vl_api_address_t local_addr;
180  vl_api_address_t peer_addr;
181  vl_api_bfd_state_t state;
188 };
189 
190 /** \brief Set flags of BFD UDP session
191  @param client_index - opaque cookie to identify the sender
192  @param context - sender context, to match reply w/ request
193  @param sw_if_index - sw index of the interface
194  @param local_addr - local address
195  @param peer_addr - peer address
196  @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
197  @param flags - set the admin state, 1 = up, 0 = down
198 */
200 {
203  vl_api_interface_index_t sw_if_index;
204  vl_api_address_t local_addr;
205  vl_api_address_t peer_addr;
206  vl_api_if_status_flags_t flags;
207 };
208 
210  rpc want_bfd_events returns want_bfd_events_reply
211  events bfd_udp_session_event;
212 };
213 
214 /** \brief Register for BFD events
215  @param client_index - opaque cookie to identify the sender
216  @param context - sender context, to match reply w/ request
217  @param enable_disable - 1 => register for events, 0 => cancel registration
218  @param pid - sender's pid
219 */
220 autoreply define want_bfd_events
221 {
226 };
227 
228 define bfd_udp_session_event
229 {
232  vl_api_interface_index_t sw_if_index;
233  vl_api_address_t local_addr;
234  vl_api_address_t peer_addr;
235  vl_api_bfd_state_t state;
242 };
243 
244 /** \brief BFD UDP - add/replace key to configuration
245  @param client_index - opaque cookie to identify the sender
246  @param context - sender context, to match reply w/ request
247  @param conf_key_id - key ID to add/replace/delete
248  @param key_len - length of key (must be non-zero)
249  @param auth_type - authentication type (RFC 5880/4.1/Auth Type)
250  @param key - key data
251 */
252 autoreply define bfd_auth_set_key
253 {
259  u8 key[20];
260 };
261 
262 /** \brief BFD UDP - delete key from configuration
263  @param client_index - opaque cookie to identify the sender
264  @param context - sender context, to match reply w/ request
265  @param conf_key_id - key ID to add/replace/delete
266  @param key_len - length of key (must be non-zero)
267  @param key - key data
268 */
269 autoreply define bfd_auth_del_key
270 {
274 };
275 
276 /** \brief Get a list of configured authentication keys
277  @param client_index - opaque cookie to identify the sender
278  @param context - sender context, to match reply w/ request
279 */
280 define bfd_auth_keys_dump
281 {
284 };
285 
286 /** \brief BFD authentication key details
287  @param context - sender context, to match reply w/ request
288  @param conf_key_id - configured key ID
289  @param use_count - how many BFD sessions currently use this key
290  @param auth_type - authentication type (RFC 5880/4.1/Auth Type)
291 */
292 define bfd_auth_keys_details
293 {
298 };
299 
300 /** \brief BFD UDP - activate/change authentication
301  @param client_index - opaque cookie to identify the sender
302  @param context - sender context, to match reply w/ request
303  @param sw_if_index - sw index of the interface
304  @param local_addr - local address
305  @param peer_addr - peer address
306  @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
307  @param is_delayed - change is applied once peer applies the change (on first received packet with this auth)
308  @param bfd_key_id - key id sent out in BFD packets
309  @param conf_key_id - id of already configured key
310 */
311 autoreply define bfd_udp_auth_activate
312 {
315  vl_api_interface_index_t sw_if_index;
316  vl_api_address_t local_addr;
317  vl_api_address_t peer_addr;
321 };
322 
323 /** \brief BFD UDP - deactivate authentication
324  @param client_index - opaque cookie to identify the sender
325  @param context - sender context, to match reply w/ request
326  @param sw_if_index - sw index of the interface
327  @param local_addr - local address
328  @param peer_addr - peer address
329  @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
330  @param is_delayed - change is applied once peer applies the change (on first received non-authenticated packet)
331 */
332 autoreply define bfd_udp_auth_deactivate
333 {
336  vl_api_interface_index_t sw_if_index;
337  vl_api_address_t local_addr;
338  vl_api_address_t peer_addr;
340 };
341 
342 /*
343  * Local Variables:
344  * eval: (c-set-style "gnu")
345  * End:
346  */
bool is_authenticated
Definition: bfd.api:106
vl_api_bfd_state_t state
Definition: bfd.api:181
vl_api_address_t local_addr
Definition: bfd.api:129
vl_api_address_t peer_addr
Definition: bfd.api:180
vl_api_interface_index_t sw_if_index
Definition: bfd.api:178
vl_api_address_t local_addr
Definition: bfd.api:337
vl_api_bfd_state_t state
Definition: bfd.api:235
vl_api_address_t local_addr
Definition: bfd.api:204
vnet_api_error_t bfd_auth_del_key(u32 conf_key_id)
delete existing authentication key
Definition: bfd_main.c:2203
vl_api_interface_index_t sw_if_index
Definition: bfd.api:146
vl_api_interface_index_t sw_if_index
Definition: bfd.api:336
unsigned char u8
Definition: types.h:56
vnet_api_error_t bfd_udp_del_echo_source()
unset echo-source interface
void bfd_udp_get_echo_source(int *is_set, u32 *sw_if_index, int *have_usable_ip4, ip4_address_t *ip4, int *have_usable_ip6, ip6_address_t *ip6)
get echo source information - used by CLI
Definition: bfd_udp.c:235
unsigned int u32
Definition: types.h:88
vl_api_address_t peer_addr
Definition: bfd.api:338
vl_api_interface_index_t sw_if_index
Definition: bfd.api:315
vl_api_interface_index_t sw_if_index
Definition: bfd.api:232
vl_api_address_t peer_addr
Definition: bfd.api:234
static perfmon_event_t events[]
Definition: core.c:21
vnet_api_error_t bfd_auth_set_key(u32 conf_key_id, u8 auth_type, u8 key_len, const u8 *key)
create or modify bfd authentication key
Definition: bfd_main.c:2153
vl_api_address_t peer_addr
Definition: bfd.api:317
service
Definition: bfd.api:209
vl_api_interface_index_t sw_if_index
Definition: bfd.api:37
vl_api_interface_index_t sw_if_index
Definition: bfd.api:203
vl_api_address_t peer_addr
Definition: bfd.api:148
vl_api_if_status_flags_t flags
Definition: bfd.api:206
vl_api_address_t peer_addr
Definition: bfd.api:205
vl_api_interface_index_t sw_if_index
Definition: bfd.api:100
vl_api_interface_index_t sw_if_index
Definition: bfd.api:126
signed int i32
Definition: types.h:77
vl_api_address_t local_addr
Definition: bfd.api:179
vl_api_address_t peer_addr
Definition: bfd.api:104
vnet_api_error_t bfd_udp_auth_activate(u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, u32 conf_key_id, u8 bfd_key_id, u8 is_delayed)
activate authentication for existing session
Definition: bfd_udp.c:852
bfd_state
Definition: bfd.api:21
typedef key
Definition: ipsec_types.api:88
vnet_api_error_t bfd_udp_session_set_flags(vlib_main_t *vm, u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, u8 admin_up_down)
set session admin down/up
Definition: bfd_udp.c:831
vnet_api_error_t bfd_udp_set_echo_source(u32 loopback_sw_if_index)
set echo-source interface
Definition: bfd_udp.c:83
vl_api_ip6_address_t ip6_addr
Definition: bfd.api:79
vl_api_address_t peer_addr
Definition: bfd.api:130
vnet_api_error_t bfd_udp_auth_deactivate(u32 sw_if_index, const ip46_address_t *local_addr, const ip46_address_t *peer_addr, u8 is_delayed)
deactivate authentication for existing session
Definition: bfd_udp.c:876
vl_api_address_t local_addr
Definition: bfd.api:316
vl_api_address_t local_addr
Definition: bfd.api:147
vl_api_ip4_address_t ip4_addr
Definition: bfd.api:77
vl_api_address_t local_addr
Definition: bfd.api:233
vl_api_address_t local_addr
Definition: bfd.api:103
option version
Definition: bfd.api:16
vl_api_interface_index_t sw_if_index
Definition: bfd.api:74