X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fgbp%2Fgbp.api;h=5092a5e26a83608b82143bace2e81311d54df3ef;hb=59f71132e;hp=1fb9073d1904a140e2649bf68e956e3dec665a19;hpb=c29c0af40eda76e382a63269bca9ff57c6ecf5d5;p=vpp.git diff --git a/src/plugins/gbp/gbp.api b/src/plugins/gbp/gbp.api index 1fb9073d190..5092a5e26a8 100644 --- a/src/plugins/gbp/gbp.api +++ b/src/plugins/gbp/gbp.api @@ -18,28 +18,34 @@ option version = "2.0.0"; import "vnet/ip/ip_types.api"; import "vnet/ethernet/ethernet_types.api"; +import "vnet/interface_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; + u32 rd_id; vl_api_gbp_bridge_domain_flags_t flags; - u32 bvi_sw_if_index; - u32 uu_fwd_sw_if_index; + vl_api_interface_index_t bvi_sw_if_index; + vl_api_interface_index_t uu_fwd_sw_if_index; + vl_api_interface_index_t bm_flood_sw_if_index; }; -autoreply define gbp_bridge_domain_add +manual_print autoreply define gbp_bridge_domain_add { u32 client_index; u32 context; vl_api_gbp_bridge_domain_t bd; }; -autoreply define gbp_bridge_domain_del +manual_print autoreply define gbp_bridge_domain_del { u32 client_index; u32 context; @@ -56,22 +62,25 @@ define gbp_bridge_domain_details vl_api_gbp_bridge_domain_t bd; }; +typedef u16 gbp_scope; + 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; + vl_api_interface_index_t ip4_uu_sw_if_index; + vl_api_interface_index_t ip6_uu_sw_if_index; + vl_api_gbp_scope_t scope; }; -autoreply define gbp_route_domain_add +manual_print autoreply define gbp_route_domain_add { u32 client_index; u32 context; vl_api_gbp_route_domain_t rd; }; -autoreply define gbp_route_domain_del +manual_print autoreply define gbp_route_domain_del { u32 client_index; u32 context; @@ -95,12 +104,11 @@ define gbp_route_domain_details enum gbp_endpoint_flags { - NONE = 0, - BOUNCE = 0x1, - REMOTE = 0x2, - LEARNT = 0x4, - /* hey Ole WTF */ - REMOTE_LEARNT = 0x6, + 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 @@ -111,8 +119,8 @@ typedef gbp_endpoint_tun typedef gbp_endpoint { - u32 sw_if_index; - u16 epg_id; + vl_api_interface_index_t 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; @@ -120,7 +128,7 @@ typedef gbp_endpoint vl_api_address_t ips[n_ips]; }; -define gbp_endpoint_add +manual_print define gbp_endpoint_add { u32 client_index; u32 context; @@ -134,7 +142,7 @@ define gbp_endpoint_add_reply u32 handle; }; -autoreply define gbp_endpoint_del +manual_print autoreply define gbp_endpoint_del { u32 client_index; u32 context; @@ -155,25 +163,32 @@ define gbp_endpoint_details vl_api_gbp_endpoint_t endpoint; }; -typeonly define gbp_endpoint_group +typedef gbp_endpoint_retention { - u16 epg_id; + u32 remote_ep_timeout; +}; + +typedef gbp_endpoint_group +{ + u32 vnid; + u16 sclass; u32 bd_id; u32 rd_id; - u32 uplink_sw_if_index; + vl_api_interface_index_t uplink_sw_if_index; + vl_api_gbp_endpoint_retention_t retention; }; -autoreply define gbp_endpoint_group_add +manual_print autoreply define gbp_endpoint_group_add { u32 client_index; u32 context; vl_api_gbp_endpoint_group_t epg; }; -autoreply define gbp_endpoint_group_del +manual_print autoreply define gbp_endpoint_group_del { u32 client_index; u32 context; - u16 epg_id; + u16 sclass; }; define gbp_endpoint_group_dump @@ -188,18 +203,18 @@ define gbp_endpoint_group_details vl_api_gbp_endpoint_group_t epg; }; -typeonly define gbp_recirc +typedef gbp_recirc { - u32 sw_if_index; - u16 epg_id; - u8 is_ext; + vl_api_interface_index_t sw_if_index; + u16 sclass; + bool is_ext; }; -autoreply define gbp_recirc_add_del +manual_print autoreply define gbp_recirc_add_del { u32 client_index; u32 context; - u8 is_add; + bool is_add; vl_api_gbp_recirc_t recirc; }; @@ -220,22 +235,24 @@ enum gbp_subnet_type GBP_API_SUBNET_TRANSPORT, GBP_API_SUBNET_STITCHED_INTERNAL, GBP_API_SUBNET_STITCHED_EXTERNAL, + GBP_API_SUBNET_L3_OUT, + GBP_API_SUBNET_ANON_L3_OUT, }; -typeonly define gbp_subnet +typedef gbp_subnet { u32 rd_id; - u32 sw_if_index; - u16 epg_id; + vl_api_interface_index_t sw_if_index; + u16 sclass; vl_api_gbp_subnet_type_t type; vl_api_prefix_t prefix; }; -autoreply define gbp_subnet_add_del +manual_print autoreply define gbp_subnet_add_del { u32 client_index; u32 context; - u8 is_add; + bool is_add; vl_api_gbp_subnet_t subnet; }; @@ -251,20 +268,66 @@ define gbp_subnet_details vl_api_gbp_subnet_t subnet; }; -typeonly define gbp_contract +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 { - u16 src_epg; - u16 dst_epg; + 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 +{ + vl_api_gbp_scope_t scope; + 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]; }; -autoreply define gbp_contract_add_del +manual_print define gbp_contract_add_del { u32 client_index; u32 context; - u8 is_add; + bool 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 { @@ -278,18 +341,6 @@ define gbp_contract_details vl_api_gbp_contract_t contract; }; -/** - * @brief Set the time throeshold after which an endpoint is - considered inative and is aged/reaped by the scanner - * @param threshold In seconds - */ -autoreply define gbp_endpoint_learn_set_inactive_threshold -{ - u32 client_index; - u32 context; - u32 threshold; -}; - /** * @brief Configure a 'base' tunnel from which learned tunnels * are permitted to derive @@ -307,9 +358,10 @@ typedef gbp_vxlan_tunnel u32 vni; vl_api_gbp_vxlan_tunnel_mode_t mode; u32 bd_rd_id; + vl_api_ip4_address_t src; }; -define gbp_vxlan_tunnel_add +manual_print define gbp_vxlan_tunnel_add { u32 client_index; u32 context; @@ -320,10 +372,10 @@ define gbp_vxlan_tunnel_add_reply { u32 context; i32 retval; - u32 sw_if_index; + vl_api_interface_index_t sw_if_index; }; -autoreply define gbp_vxlan_tunnel_del +manual_print autoreply define gbp_vxlan_tunnel_del { u32 client_index; u32 context; @@ -342,6 +394,40 @@ define gbp_vxlan_tunnel_details vl_api_gbp_vxlan_tunnel_t tunnel; }; +enum gbp_ext_itf_flags +{ + GBP_API_EXT_ITF_F_NONE = 0, + GBP_API_EXT_ITF_F_ANON = 1, +}; + +typedef gbp_ext_itf +{ + vl_api_interface_index_t sw_if_index; + u32 bd_id; + u32 rd_id; + vl_api_gbp_ext_itf_flags_t flags; +}; + +manual_print autoreply define gbp_ext_itf_add_del +{ + u32 client_index; + u32 context; + bool 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")