FD.io VPP  v20.05-21-gb1500e9ff
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 
209 /** \brief Register for BFD events
210  @param client_index - opaque cookie to identify the sender
211  @param context - sender context, to match reply w/ request
212  @param enable_disable - 1 => register for events, 0 => cancel registration
213  @param pid - sender's pid
214 */
215 autoreply define want_bfd_events
216 {
221 };
222 
223 /** \brief BFD UDP - add/replace key to configuration
224  @param client_index - opaque cookie to identify the sender
225  @param context - sender context, to match reply w/ request
226  @param conf_key_id - key ID to add/replace/delete
227  @param key_len - length of key (must be non-zero)
228  @param auth_type - authentication type (RFC 5880/4.1/Auth Type)
229  @param key - key data
230 */
231 autoreply define bfd_auth_set_key
232 {
238  u8 key[20];
239 };
240 
241 /** \brief BFD UDP - delete key from configuration
242  @param client_index - opaque cookie to identify the sender
243  @param context - sender context, to match reply w/ request
244  @param conf_key_id - key ID to add/replace/delete
245  @param key_len - length of key (must be non-zero)
246  @param key - key data
247 */
248 autoreply define bfd_auth_del_key
249 {
253 };
254 
255 /** \brief Get a list of configured authentication keys
256  @param client_index - opaque cookie to identify the sender
257  @param context - sender context, to match reply w/ request
258 */
259 define bfd_auth_keys_dump
260 {
263 };
264 
265 /** \brief BFD authentication key details
266  @param context - sender context, to match reply w/ request
267  @param conf_key_id - configured key ID
268  @param use_count - how many BFD sessions currently use this key
269  @param auth_type - authentication type (RFC 5880/4.1/Auth Type)
270 */
271 define bfd_auth_keys_details
272 {
277 };
278 
279 /** \brief BFD UDP - activate/change authentication
280  @param client_index - opaque cookie to identify the sender
281  @param context - sender context, to match reply w/ request
282  @param sw_if_index - sw index of the interface
283  @param local_addr - local address
284  @param peer_addr - peer address
285  @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
286  @param is_delayed - change is applied once peer applies the change (on first received packet with this auth)
287  @param bfd_key_id - key id sent out in BFD packets
288  @param conf_key_id - id of already configured key
289 */
290 autoreply define bfd_udp_auth_activate
291 {
294  vl_api_interface_index_t sw_if_index;
295  vl_api_address_t local_addr;
296  vl_api_address_t peer_addr;
300 };
301 
302 /** \brief BFD UDP - deactivate authentication
303  @param client_index - opaque cookie to identify the sender
304  @param context - sender context, to match reply w/ request
305  @param sw_if_index - sw index of the interface
306  @param local_addr - local address
307  @param peer_addr - peer address
308  @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
309  @param is_delayed - change is applied once peer applies the change (on first received non-authenticated packet)
310 */
311 autoreply define bfd_udp_auth_deactivate
312 {
315  vl_api_interface_index_t sw_if_index;
316  vl_api_address_t local_addr;
317  vl_api_address_t peer_addr;
319 };
320 
321 /*
322  * Local Variables:
323  * eval: (c-set-style "gnu")
324  * End:
325  */
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:316
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:2249
vl_api_interface_index_t sw_if_index
Definition: bfd.api:146
vl_api_interface_index_t sw_if_index
Definition: bfd.api:315
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
vl_api_address_t peer_addr
Definition: bfd.api:317
vl_api_interface_index_t sw_if_index
Definition: bfd.api:294
unsigned int u32
Definition: types.h:88
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:2193
vl_api_address_t peer_addr
Definition: bfd.api:296
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:858
bfd_state
Definition: bfd.api:21
typedef key
Definition: ipsec_types.api:85
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:837
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:889
vl_api_address_t local_addr
Definition: bfd.api:295
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:103
option version
Definition: bfd.api:16
vl_api_interface_index_t sw_if_index
Definition: bfd.api:74