| /* Hey Emacs use -*- mode: C -*- */ |
| /* |
| * Copyright (c) 2018 Cisco and/or its affiliates. |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at: |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| option version = "2.0.0"; |
| |
| import "vnet/ip/ip_types.api"; |
| import "vnet/ethernet/ethernet_types.api"; |
| |
| enum gbp_bridge_domain_flags |
| { |
| GBP_BD_API_FLAG_NONE = 0, |
| GBP_BD_API_FLAG_DO_NOT_LEARN = 1, |
| GBP_BD_API_FLAG_UU_FWD_DROP = 2, |
| GBP_BD_API_FLAG_MCAST_DROP = 4, |
| GBP_BD_API_FLAG_UCAST_ARP = 8, |
| }; |
| |
| typedef gbp_bridge_domain |
| { |
| u32 bd_id; |
| vl_api_gbp_bridge_domain_flags_t flags; |
| u32 bvi_sw_if_index; |
| u32 uu_fwd_sw_if_index; |
| u32 bm_flood_sw_if_index; |
| }; |
| |
| manual_print autoreply define gbp_bridge_domain_add |
| { |
| u32 client_index; |
| u32 context; |
| vl_api_gbp_bridge_domain_t bd; |
| }; |
| manual_print autoreply define gbp_bridge_domain_del |
| { |
| u32 client_index; |
| u32 context; |
| u32 bd_id; |
| }; |
| autoreply define gbp_bridge_domain_dump |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| define gbp_bridge_domain_details |
| { |
| u32 context; |
| vl_api_gbp_bridge_domain_t bd; |
| }; |
| |
| typedef gbp_route_domain |
| { |
| u32 rd_id; |
| u32 ip4_table_id; |
| u32 ip6_table_id; |
| u32 ip4_uu_sw_if_index; |
| u32 ip6_uu_sw_if_index; |
| }; |
| |
| manual_print autoreply define gbp_route_domain_add |
| { |
| u32 client_index; |
| u32 context; |
| vl_api_gbp_route_domain_t rd; |
| }; |
| manual_print autoreply define gbp_route_domain_del |
| { |
| u32 client_index; |
| u32 context; |
| u32 rd_id; |
| }; |
| autoreply define gbp_route_domain_dump |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| define gbp_route_domain_details |
| { |
| u32 context; |
| vl_api_gbp_route_domain_t rd; |
| }; |
| |
| /** \brief Endpoint |
| @param client_index - opaque cookie to identify the sender |
| @param context - sender context, to match reply w/ request |
| */ |
| |
| enum gbp_endpoint_flags |
| { |
| GBP_API_ENDPOINT_FLAG_NONE = 0, |
| GBP_API_ENDPOINT_FLAG_BOUNCE = 0x1, |
| GBP_API_ENDPOINT_FLAG_REMOTE = 0x2, |
| GBP_API_ENDPOINT_FLAG_LEARNT = 0x4, |
| GBP_API_ENDPOINT_FLAG_EXTERNAL = 0x8, |
| }; |
| |
| typedef gbp_endpoint_tun |
| { |
| vl_api_address_t src; |
| vl_api_address_t dst; |
| }; |
| |
| typedef gbp_endpoint |
| { |
| u32 sw_if_index; |
| u16 sclass; |
| vl_api_gbp_endpoint_flags_t flags; |
| vl_api_mac_address_t mac; |
| vl_api_gbp_endpoint_tun_t tun; |
| u8 n_ips; |
| vl_api_address_t ips[n_ips]; |
| }; |
| |
| manual_print define gbp_endpoint_add |
| { |
| u32 client_index; |
| u32 context; |
| vl_api_gbp_endpoint_t endpoint; |
| }; |
| |
| define gbp_endpoint_add_reply |
| { |
| u32 context; |
| i32 retval; |
| u32 handle; |
| }; |
| |
| manual_print autoreply define gbp_endpoint_del |
| { |
| u32 client_index; |
| u32 context; |
| u32 handle; |
| }; |
| |
| define gbp_endpoint_dump |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| define gbp_endpoint_details |
| { |
| u32 context; |
| f64 age; |
| u32 handle; |
| vl_api_gbp_endpoint_t endpoint; |
| }; |
| |
| typedef gbp_endpoint_retention |
| { |
| u32 remote_ep_timeout; |
| }; |
| |
| typeonly define gbp_endpoint_group |
| { |
| u32 vnid; |
| u16 sclass; |
| u32 bd_id; |
| u32 rd_id; |
| u32 uplink_sw_if_index; |
| vl_api_gbp_endpoint_retention_t retention; |
| }; |
| |
| manual_print autoreply define gbp_endpoint_group_add |
| { |
| u32 client_index; |
| u32 context; |
| vl_api_gbp_endpoint_group_t epg; |
| }; |
| manual_print autoreply define gbp_endpoint_group_del |
| { |
| u32 client_index; |
| u32 context; |
| u16 sclass; |
| }; |
| |
| define gbp_endpoint_group_dump |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| define gbp_endpoint_group_details |
| { |
| u32 context; |
| vl_api_gbp_endpoint_group_t epg; |
| }; |
| |
| typeonly define gbp_recirc |
| { |
| u32 sw_if_index; |
| u16 sclass; |
| u8 is_ext; |
| }; |
| |
| manual_print autoreply define gbp_recirc_add_del |
| { |
| u32 client_index; |
| u32 context; |
| u8 is_add; |
| vl_api_gbp_recirc_t recirc; |
| }; |
| |
| define gbp_recirc_dump |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| define gbp_recirc_details |
| { |
| u32 context; |
| vl_api_gbp_recirc_t recirc; |
| }; |
| |
| enum gbp_subnet_type |
| { |
| GBP_API_SUBNET_TRANSPORT, |
| GBP_API_SUBNET_STITCHED_INTERNAL, |
| GBP_API_SUBNET_STITCHED_EXTERNAL, |
| GBP_API_SUBNET_L3_OUT, |
| }; |
| |
| typeonly define gbp_subnet |
| { |
| u32 rd_id; |
| u32 sw_if_index; |
| u16 sclass; |
| vl_api_gbp_subnet_type_t type; |
| vl_api_prefix_t prefix; |
| }; |
| |
| manual_print autoreply define gbp_subnet_add_del |
| { |
| u32 client_index; |
| u32 context; |
| u8 is_add; |
| vl_api_gbp_subnet_t subnet; |
| }; |
| |
| define gbp_subnet_dump |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| define gbp_subnet_details |
| { |
| u32 context; |
| vl_api_gbp_subnet_t subnet; |
| }; |
| |
| typedef gbp_next_hop |
| { |
| vl_api_address_t ip; |
| vl_api_mac_address_t mac; |
| u32 bd_id; |
| u32 rd_id; |
| }; |
| |
| enum gbp_hash_mode |
| { |
| GBP_API_HASH_MODE_SRC_IP, |
| GBP_API_HASH_MODE_DST_IP, |
| GBP_API_HASH_MODE_SYMMETRIC, |
| }; |
| |
| typedef gbp_next_hop_set |
| { |
| vl_api_gbp_hash_mode_t hash_mode; |
| u8 n_nhs; |
| vl_api_gbp_next_hop_t nhs[8]; |
| }; |
| |
| enum gbp_rule_action |
| { |
| GBP_API_RULE_PERMIT, |
| GBP_API_RULE_DENY, |
| GBP_API_RULE_REDIRECT, |
| }; |
| |
| typedef gbp_rule |
| { |
| vl_api_gbp_rule_action_t action; |
| vl_api_gbp_next_hop_set_t nh_set; |
| }; |
| |
| typedef gbp_contract |
| { |
| u16 sclass; |
| u16 dclass; |
| u32 acl_index; |
| u8 n_ether_types; |
| u16 allowed_ethertypes[16]; |
| u8 n_rules; |
| vl_api_gbp_rule_t rules[n_rules]; |
| }; |
| |
| manual_print define gbp_contract_add_del |
| { |
| u32 client_index; |
| u32 context; |
| u8 is_add; |
| vl_api_gbp_contract_t contract; |
| }; |
| define gbp_contract_add_del_reply |
| { |
| u32 context; |
| i32 retval; |
| u32 stats_index; |
| }; |
| |
| define gbp_contract_dump |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| define gbp_contract_details |
| { |
| u32 context; |
| vl_api_gbp_contract_t contract; |
| }; |
| |
| /** |
| * @brief Configure a 'base' tunnel from which learned tunnels |
| * are permitted to derive |
| * A base tunnel consists only of the VNI, any src,dst IP |
| * pair is thus allowed. |
| */ |
| enum gbp_vxlan_tunnel_mode |
| { |
| GBP_VXLAN_TUNNEL_MODE_L2, |
| GBP_VXLAN_TUNNEL_MODE_L3, |
| }; |
| |
| typedef gbp_vxlan_tunnel |
| { |
| u32 vni; |
| vl_api_gbp_vxlan_tunnel_mode_t mode; |
| u32 bd_rd_id; |
| vl_api_ip4_address_t src; |
| }; |
| |
| manual_print define gbp_vxlan_tunnel_add |
| { |
| u32 client_index; |
| u32 context; |
| vl_api_gbp_vxlan_tunnel_t tunnel; |
| }; |
| |
| define gbp_vxlan_tunnel_add_reply |
| { |
| u32 context; |
| i32 retval; |
| u32 sw_if_index; |
| }; |
| |
| manual_print autoreply define gbp_vxlan_tunnel_del |
| { |
| u32 client_index; |
| u32 context; |
| u32 vni; |
| }; |
| |
| define gbp_vxlan_tunnel_dump |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| define gbp_vxlan_tunnel_details |
| { |
| u32 context; |
| vl_api_gbp_vxlan_tunnel_t tunnel; |
| }; |
| |
| typeonly define gbp_ext_itf |
| { |
| u32 sw_if_index; |
| u32 bd_id; |
| u32 rd_id; |
| }; |
| |
| manual_print autoreply define gbp_ext_itf_add_del |
| { |
| u32 client_index; |
| u32 context; |
| u8 is_add; |
| vl_api_gbp_ext_itf_t ext_itf; |
| }; |
| |
| define gbp_ext_itf_dump |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| define gbp_ext_itf_details |
| { |
| u32 context; |
| vl_api_gbp_ext_itf_t ext_itf; |
| }; |
| |
| /* |
| * Local Variables: |
| * eval: (c-set-style "gnu") |
| * End: |
| */ |