1 /* Hey Emacs use -*- mode: C -*- */
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:
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 option version = "2.0.0";
19 import "vnet/ip/ip_types.api";
20 import "vnet/ethernet/ethernet_types.api";
22 typedef gbp_bridge_domain
26 u32 uu_fwd_sw_if_index;
29 autoreply define gbp_bridge_domain_add
33 vl_api_gbp_bridge_domain_t bd;
35 autoreply define gbp_bridge_domain_del
41 autoreply define gbp_bridge_domain_dump
46 define gbp_bridge_domain_details
49 vl_api_gbp_bridge_domain_t bd;
52 typedef gbp_route_domain
57 u32 ip4_uu_sw_if_index;
58 u32 ip6_uu_sw_if_index;
61 autoreply define gbp_route_domain_add
65 vl_api_gbp_route_domain_t rd;
67 autoreply define gbp_route_domain_del
73 autoreply define gbp_route_domain_dump
78 define gbp_route_domain_details
81 vl_api_gbp_route_domain_t rd;
85 @param client_index - opaque cookie to identify the sender
86 @param context - sender context, to match reply w/ request
89 enum gbp_endpoint_flags
99 typedef gbp_endpoint_tun
101 vl_api_address_t src;
102 vl_api_address_t dst;
109 vl_api_gbp_endpoint_flags_t flags;
110 vl_api_mac_address_t mac;
111 vl_api_gbp_endpoint_tun_t tun;
113 vl_api_address_t ips[n_ips];
116 define gbp_endpoint_add
120 vl_api_gbp_endpoint_t endpoint;
123 define gbp_endpoint_add_reply
130 autoreply define gbp_endpoint_del
137 define gbp_endpoint_dump
143 define gbp_endpoint_details
148 vl_api_gbp_endpoint_t endpoint;
151 typeonly define gbp_endpoint_group
156 u32 uplink_sw_if_index;
159 autoreply define gbp_endpoint_group_add
163 vl_api_gbp_endpoint_group_t epg;
165 autoreply define gbp_endpoint_group_del
172 define gbp_endpoint_group_dump
178 define gbp_endpoint_group_details
181 vl_api_gbp_endpoint_group_t epg;
184 typeonly define gbp_recirc
191 autoreply define gbp_recirc_add_del
196 vl_api_gbp_recirc_t recirc;
199 define gbp_recirc_dump
205 define gbp_recirc_details
208 vl_api_gbp_recirc_t recirc;
213 GBP_API_SUBNET_TRANSPORT,
214 GBP_API_SUBNET_STITCHED_INTERNAL,
215 GBP_API_SUBNET_STITCHED_EXTERNAL,
218 typeonly define gbp_subnet
223 vl_api_gbp_subnet_type_t type;
224 vl_api_prefix_t prefix;
227 autoreply define gbp_subnet_add_del
232 vl_api_gbp_subnet_t subnet;
235 define gbp_subnet_dump
241 define gbp_subnet_details
244 vl_api_gbp_subnet_t subnet;
247 typeonly define gbp_contract
254 autoreply define gbp_contract_add_del
259 vl_api_gbp_contract_t contract;
262 define gbp_contract_dump
268 define gbp_contract_details
271 vl_api_gbp_contract_t contract;
275 * @brief Set the time throeshold after which an endpoint is
276 considered inative and is aged/reaped by the scanner
277 * @param threshold In seconds
279 autoreply define gbp_endpoint_learn_set_inactive_threshold
287 * @brief Configure a 'base' tunnel from which learned tunnels
288 * are permitted to derive
289 * A base tunnel consists only of the VNI, any src,dst IP
290 * pair is thus allowed.
292 enum gbp_vxlan_tunnel_mode
294 GBP_VXLAN_TUNNEL_MODE_L2,
295 GBP_VXLAN_TUNNEL_MODE_L3,
298 typedef gbp_vxlan_tunnel
301 vl_api_gbp_vxlan_tunnel_mode_t mode;
305 define gbp_vxlan_tunnel_add
309 vl_api_gbp_vxlan_tunnel_t tunnel;
312 define gbp_vxlan_tunnel_add_reply
319 autoreply define gbp_vxlan_tunnel_del
326 define gbp_vxlan_tunnel_dump
332 define gbp_vxlan_tunnel_details
335 vl_api_gbp_vxlan_tunnel_t tunnel;
340 * eval: (c-set-style "gnu")