FD.io VPP  v19.08-27-gf4dcae4
Vector Packet Processing
gbp.api
Go to the documentation of this file.
1 /* Hey Emacs use -*- mode: C -*- */
2 /*
3  * Copyright (c) 2018 Cisco and/or its affiliates.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 option version = "2.0.0";
18 
19 import "vnet/ip/ip_types.api";
20 import "vnet/ethernet/ethernet_types.api";
21 
23 {
29 };
30 
31 typedef gbp_bridge_domain
32 {
33  u32 bd_id;
35  vl_api_gbp_bridge_domain_flags_t flags;
39 };
40 
41 manual_print autoreply define gbp_bridge_domain_add
42 {
45  vl_api_gbp_bridge_domain_t bd;
46 };
47 manual_print autoreply define gbp_bridge_domain_del
48 {
52 };
53 autoreply define gbp_bridge_domain_dump
54 {
57 };
58 define gbp_bridge_domain_details
59 {
61  vl_api_gbp_bridge_domain_t bd;
62 };
63 
64 typedef u16 gbp_scope;
65 
66 typedef gbp_route_domain
67 {
68  u32 rd_id;
73  vl_api_gbp_scope_t scope;
74 };
75 
76 manual_print autoreply define gbp_route_domain_add
77 {
80  vl_api_gbp_route_domain_t rd;
81 };
82 manual_print autoreply define gbp_route_domain_del
83 {
87 };
88 autoreply define gbp_route_domain_dump
89 {
92 };
93 define gbp_route_domain_details
94 {
96  vl_api_gbp_route_domain_t rd;
97 };
98 
99 /** \brief Endpoint
100  @param client_index - opaque cookie to identify the sender
101  @param context - sender context, to match reply w/ request
102 */
103 
105 {
111 };
112 
113 typedef gbp_endpoint_tun
114 {
115  vl_api_address_t src;
116  vl_api_address_t dst;
117 };
118 
119 typedef gbp_endpoint
120 {
123  vl_api_gbp_endpoint_flags_t flags;
124  vl_api_mac_address_t mac;
125  vl_api_gbp_endpoint_tun_t tun;
127  vl_api_address_t ips[n_ips];
128 };
129 
130 manual_print define gbp_endpoint_add
131 {
134  vl_api_gbp_endpoint_t endpoint;
135 };
136 
137 define gbp_endpoint_add_reply
138 {
142 };
143 
144 manual_print autoreply define gbp_endpoint_del
145 {
149 };
150 
151 define gbp_endpoint_dump
152 {
155 };
156 
157 define gbp_endpoint_details
158 {
162  vl_api_gbp_endpoint_t endpoint;
163 };
164 
166 {
167  u32 remote_ep_timeout;
168 };
169 
170 typeonly define gbp_endpoint_group
171 {
177  vl_api_gbp_endpoint_retention_t retention;
178 };
179 
180 manual_print autoreply define gbp_endpoint_group_add
181 {
185 };
186 manual_print autoreply define gbp_endpoint_group_del
187 {
191 };
192 
193 define gbp_endpoint_group_dump
194 {
197 };
198 
199 define gbp_endpoint_group_details
200 {
203 };
204 
205 typeonly define gbp_recirc
206 {
210 };
211 
212 manual_print autoreply define gbp_recirc_add_del
213 {
218 };
219 
220 define gbp_recirc_dump
221 {
224 };
225 
226 define gbp_recirc_details
227 {
230 };
231 
233 {
239 };
240 
241 typeonly define gbp_subnet
242 {
246  vl_api_gbp_subnet_type_t type;
247  vl_api_prefix_t prefix;
248 };
249 
250 manual_print autoreply define gbp_subnet_add_del
251 {
256 };
257 
258 define gbp_subnet_dump
259 {
262 };
263 
264 define gbp_subnet_details
265 {
268 };
269 
270 typedef gbp_next_hop
271 {
272  vl_api_address_t ip;
273  vl_api_mac_address_t mac;
275  u32 rd_id;
276 };
277 
279 {
283 };
284 
285 typedef gbp_next_hop_set
286 {
287  vl_api_gbp_hash_mode_t hash_mode;
289  vl_api_gbp_next_hop_t nhs[8];
290 };
291 
293 {
297 };
298 
299 typedef gbp_rule
300 {
301  vl_api_gbp_rule_action_t action;
302  vl_api_gbp_next_hop_set_t nh_set;
303 };
304 
305 typedef gbp_contract
306 {
307  vl_api_gbp_scope_t scope;
308  u16 sclass;
314  vl_api_gbp_rule_t rules[n_rules];
315 };
316 
317 manual_print define gbp_contract_add_del
318 {
322  vl_api_gbp_contract_t contract;
323 };
324 define gbp_contract_add_del_reply
325 {
329 };
330 
331 define gbp_contract_dump
332 {
335 };
336 
337 define gbp_contract_details
338 {
340  vl_api_gbp_contract_t contract;
341 };
342 
343 /**
344  * @brief Configure a 'base' tunnel from which learned tunnels
345  * are permitted to derive
346  * A base tunnel consists only of the VNI, any src,dst IP
347  * pair is thus allowed.
348  */
350 {
353 };
354 
355 typedef gbp_vxlan_tunnel
356 {
357  u32 vni;
358  vl_api_gbp_vxlan_tunnel_mode_t mode;
361 };
362 
363 manual_print define gbp_vxlan_tunnel_add
364 {
367  vl_api_gbp_vxlan_tunnel_t tunnel;
368 };
369 
370 define gbp_vxlan_tunnel_add_reply
371 {
375 };
376 
377 manual_print autoreply define gbp_vxlan_tunnel_del
378 {
382 };
383 
384 define gbp_vxlan_tunnel_dump
385 {
388 };
389 
390 define gbp_vxlan_tunnel_details
391 {
393  vl_api_gbp_vxlan_tunnel_t tunnel;
394 };
395 
397 {
400 };
401 
402 typeonly define gbp_ext_itf
403 {
407  vl_api_gbp_ext_itf_flags_t flags;
408 };
409 
410 manual_print autoreply define gbp_ext_itf_add_del
411 {
416 };
417 
418 define gbp_ext_itf_dump
419 {
422 };
423 
424 define gbp_ext_itf_details
425 {
428 };
429 
430 /*
431  * Local Variables:
432  * eval: (c-set-style "gnu")
433  * End:
434  */
u32 acl_index
Definition: gbp.api:310
gbp_bridge_domain_flags
Definition: gbp.api:22
u32 ip6_table_id
Definition: gbp.api:70
vl_api_gbp_endpoint_group_t epg
Definition: gbp.api:184
vl_api_gbp_endpoint_t endpoint
Definition: gbp.api:134
vl_api_gbp_subnet_t subnet
Definition: gbp.api:267
u32 ip6_uu_sw_if_index
Definition: gbp.api:72
typedef gbp_next_hop
Definition: gbp.api:271
int gbp_vxlan_tunnel_add(u32 vni, gbp_vxlan_tunnel_layer_t layer, u32 bd_rd_id, const ip4_address_t *src, u32 *sw_if_indexp)
Definition: gbp_vxlan.c:439
u8 n_rules
Definition: gbp.api:313
vl_api_gbp_vxlan_tunnel_t tunnel
Definition: gbp.api:393
typedef gbp_vxlan_tunnel
Definition: gbp.api:356
vl_api_gbp_vxlan_tunnel_t tunnel
Definition: gbp.api:367
u32 rd_id
Definition: gbp.api:34
vl_api_gbp_next_hop_set_t nh_set
Definition: gbp.api:302
u32 uu_fwd_sw_if_index
Definition: gbp.api:37
vl_api_gbp_ext_itf_t ext_itf
Definition: gbp.api:427
unsigned char u8
Definition: types.h:56
double f64
Definition: types.h:142
vl_api_gbp_endpoint_retention_t retention
Definition: gbp.api:177
vl_api_ip4_address_t src
Definition: gbp.api:360
vl_api_gbp_bridge_domain_t bd
Definition: gbp.api:61
static vlib_cli_command_t gbp_subnet_add_del
(constructor) VLIB_CLI_COMMAND (gbp_subnet_add_del)
Definition: gbp_subnet.c:404
vl_api_interface_index_t sw_if_index
Definition: gre.api:50
typedef gbp_rule
Definition: gbp.api:300
typedef gbp_endpoint_retention
Definition: gbp.api:166
gbp_hash_mode
Definition: gbp.api:278
u8 n_ips
Definition: gbp.api:126
unsigned int u32
Definition: types.h:88
typedef gbp_endpoint_tun
Definition: gbp.api:114
gbp_subnet_type
Definition: gbp.api:232
u32 bvi_sw_if_index
Definition: gbp.api:36
gbp_ext_itf_flags
Definition: gbp.api:396
u32 bd_id
Definition: gbp.api:274
unsigned short u16
Definition: types.h:57
u16 sclass
Definition: gbp.api:122
u8 n_nhs
Definition: gbp.api:288
u32 bd_rd_id
Definition: gbp.api:359
vl_api_gbp_next_hop_t nhs[8]
Definition: gbp.api:289
typedef gbp_next_hop_set
Definition: gbp.api:286
vl_api_gbp_bridge_domain_t bd
Definition: gbp.api:45
u16 gbp_scope
Definition: gbp.api:64
u8 vl_api_ip4_address_t[4]
Definition: ip_types_api.h:31
u32 ip4_table_id
Definition: gbp.api:69
vl_api_prefix_t prefix
Definition: gbp.api:247
int gbp_vxlan_tunnel_del(u32 vni)
Definition: gbp_vxlan.c:550
vl_api_gbp_endpoint_group_t epg
Definition: gbp.api:202
vl_api_gbp_subnet_t subnet
Definition: gbp.api:255
option version
Definition: gbp.api:17
vl_api_gbp_rule_t rules[n_rules]
Definition: gbp.api:314
gbp_vxlan_tunnel_mode
Configure a 'base' tunnel from which learned tunnels are permitted to derive A base tunnel consists o...
Definition: gbp.api:349
signed int i32
Definition: types.h:77
vl_api_gbp_contract_t contract
Definition: gbp.api:322
typedef gbp_route_domain
Definition: gbp.api:67
u32 bm_flood_sw_if_index
Definition: gbp.api:38
vl_api_gbp_recirc_t recirc
Definition: gbp.api:217
typedef gbp_contract
Definition: gbp.api:306
gbp_rule_action
Definition: gbp.api:292
vl_api_gbp_bridge_domain_flags_t flags
Definition: gbp.api:35
u32 ip4_uu_sw_if_index
Definition: gbp.api:71
vl_api_gbp_contract_t contract
Definition: gbp.api:340
vl_api_gbp_subnet_type_t type
Definition: gbp.api:246
typedef gbp_endpoint
Definition: gbp.api:120
vl_api_address_t ip
Definition: l2.api:489
gbp_endpoint_flags
Endpoint.
Definition: gbp.api:104
vl_api_gbp_endpoint_t endpoint
Definition: gbp.api:162
u32 vni
Definition: vxlan_gbp.api:42
u8 n_ether_types
Definition: gbp.api:311
vl_api_gbp_endpoint_tun_t tun
Definition: gbp.api:125
vl_api_address_t dst
Definition: gbp.api:116
vl_api_gbp_ext_itf_t ext_itf
Definition: gbp.api:415
vl_api_gbp_vxlan_tunnel_mode_t mode
Definition: gbp.api:358
vl_api_gbp_route_domain_t rd
Definition: gbp.api:96
vl_api_address_t ips[n_ips]
Definition: gbp.api:127
u16 allowed_ethertypes[16]
Definition: gbp.api:312
typedef gbp_bridge_domain
Definition: gbp.api:32
vl_api_gbp_route_domain_t rd
Definition: gbp.api:80
u16 dclass
Definition: gbp.api:309
vl_api_mac_address_t mac
Definition: gbp.api:124
vl_api_gbp_scope_t scope
Definition: gbp.api:73
vl_api_gbp_recirc_t recirc
Definition: gbp.api:229
vl_api_gbp_ext_itf_flags_t flags
Definition: gbp.api:407