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 enum gbp_bridge_domain_flags
24 GBP_BD_API_FLAG_NONE = 0,
25 GBP_BD_API_FLAG_DO_NOT_LEARN = 1,
26 GBP_BD_API_FLAG_UU_FWD_DROP = 2,
27 GBP_BD_API_FLAG_MCAST_DROP = 4,
28 GBP_BD_API_FLAG_UCAST_ARP = 8,
31 typedef gbp_bridge_domain
34 vl_api_gbp_bridge_domain_flags_t flags;
36 u32 uu_fwd_sw_if_index;
37 u32 bm_flood_sw_if_index;
40 manual_print autoreply define gbp_bridge_domain_add
44 vl_api_gbp_bridge_domain_t bd;
46 manual_print autoreply define gbp_bridge_domain_del
52 autoreply define gbp_bridge_domain_dump
57 define gbp_bridge_domain_details
60 vl_api_gbp_bridge_domain_t bd;
63 typedef gbp_route_domain
68 u32 ip4_uu_sw_if_index;
69 u32 ip6_uu_sw_if_index;
72 manual_print autoreply define gbp_route_domain_add
76 vl_api_gbp_route_domain_t rd;
78 manual_print autoreply define gbp_route_domain_del
84 autoreply define gbp_route_domain_dump
89 define gbp_route_domain_details
92 vl_api_gbp_route_domain_t rd;
96 @param client_index - opaque cookie to identify the sender
97 @param context - sender context, to match reply w/ request
100 enum gbp_endpoint_flags
102 GBP_API_ENDPOINT_FLAG_NONE = 0,
103 GBP_API_ENDPOINT_FLAG_BOUNCE = 0x1,
104 GBP_API_ENDPOINT_FLAG_REMOTE = 0x2,
105 GBP_API_ENDPOINT_FLAG_LEARNT = 0x4,
106 GBP_API_ENDPOINT_FLAG_EXTERNAL = 0x8,
109 typedef gbp_endpoint_tun
111 vl_api_address_t src;
112 vl_api_address_t dst;
119 vl_api_gbp_endpoint_flags_t flags;
120 vl_api_mac_address_t mac;
121 vl_api_gbp_endpoint_tun_t tun;
123 vl_api_address_t ips[n_ips];
126 manual_print define gbp_endpoint_add
130 vl_api_gbp_endpoint_t endpoint;
133 define gbp_endpoint_add_reply
140 manual_print autoreply define gbp_endpoint_del
147 define gbp_endpoint_dump
153 define gbp_endpoint_details
158 vl_api_gbp_endpoint_t endpoint;
161 typedef gbp_endpoint_retention
163 u32 remote_ep_timeout;
166 typeonly define gbp_endpoint_group
172 u32 uplink_sw_if_index;
173 vl_api_gbp_endpoint_retention_t retention;
176 manual_print autoreply define gbp_endpoint_group_add
180 vl_api_gbp_endpoint_group_t epg;
182 manual_print autoreply define gbp_endpoint_group_del
189 define gbp_endpoint_group_dump
195 define gbp_endpoint_group_details
198 vl_api_gbp_endpoint_group_t epg;
201 typeonly define gbp_recirc
208 manual_print autoreply define gbp_recirc_add_del
213 vl_api_gbp_recirc_t recirc;
216 define gbp_recirc_dump
222 define gbp_recirc_details
225 vl_api_gbp_recirc_t recirc;
230 GBP_API_SUBNET_TRANSPORT,
231 GBP_API_SUBNET_STITCHED_INTERNAL,
232 GBP_API_SUBNET_STITCHED_EXTERNAL,
233 GBP_API_SUBNET_L3_OUT,
236 typeonly define gbp_subnet
241 vl_api_gbp_subnet_type_t type;
242 vl_api_prefix_t prefix;
245 manual_print autoreply define gbp_subnet_add_del
250 vl_api_gbp_subnet_t subnet;
253 define gbp_subnet_dump
259 define gbp_subnet_details
262 vl_api_gbp_subnet_t subnet;
268 vl_api_mac_address_t mac;
275 GBP_API_HASH_MODE_SRC_IP,
276 GBP_API_HASH_MODE_DST_IP,
277 GBP_API_HASH_MODE_SYMMETRIC,
280 typedef gbp_next_hop_set
282 vl_api_gbp_hash_mode_t hash_mode;
284 vl_api_gbp_next_hop_t nhs[8];
291 GBP_API_RULE_REDIRECT,
296 vl_api_gbp_rule_action_t action;
297 vl_api_gbp_next_hop_set_t nh_set;
306 u16 allowed_ethertypes[16];
308 vl_api_gbp_rule_t rules[n_rules];
311 manual_print define gbp_contract_add_del
316 vl_api_gbp_contract_t contract;
318 define gbp_contract_add_del_reply
325 define gbp_contract_dump
331 define gbp_contract_details
334 vl_api_gbp_contract_t contract;
338 * @brief Configure a 'base' tunnel from which learned tunnels
339 * are permitted to derive
340 * A base tunnel consists only of the VNI, any src,dst IP
341 * pair is thus allowed.
343 enum gbp_vxlan_tunnel_mode
345 GBP_VXLAN_TUNNEL_MODE_L2,
346 GBP_VXLAN_TUNNEL_MODE_L3,
349 typedef gbp_vxlan_tunnel
352 vl_api_gbp_vxlan_tunnel_mode_t mode;
354 vl_api_ip4_address_t src;
357 manual_print define gbp_vxlan_tunnel_add
361 vl_api_gbp_vxlan_tunnel_t tunnel;
364 define gbp_vxlan_tunnel_add_reply
371 manual_print autoreply define gbp_vxlan_tunnel_del
378 define gbp_vxlan_tunnel_dump
384 define gbp_vxlan_tunnel_details
387 vl_api_gbp_vxlan_tunnel_t tunnel;
390 typeonly define gbp_ext_itf
397 manual_print autoreply define gbp_ext_itf_add_del
402 vl_api_gbp_ext_itf_t ext_itf;
405 define gbp_ext_itf_dump
411 define gbp_ext_itf_details
414 vl_api_gbp_ext_itf_t ext_itf;
419 * eval: (c-set-style "gnu")