X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fclassify%2Fclassify.api;h=c5e81fdd093a7ce94e48a15397a06eb679bb0d51;hb=75282457;hp=de9de773858915fd293c85130920a854268e0cb0;hpb=0d056e5ede136cd0111dc3f9f41ef7b36a938027;p=vpp.git diff --git a/src/vnet/classify/classify.api b/src/vnet/classify/classify.api index de9de773858..c5e81fdd093 100644 --- a/src/vnet/classify/classify.api +++ b/src/vnet/classify/classify.api @@ -13,7 +13,7 @@ * limitations under the License. */ -vl_api_version 1.0.0 +option version = "2.0.0"; /** \brief Add/Delete classification table request @param client_index - opaque cookie to identify the sender @@ -37,7 +37,8 @@ vl_api_version 1.0.0 can be accessible by configuring current_data_offset to -14 if there is no vlan tag. This is valid only if current_data_flag is set to 1. - @param mask[] - match mask + @param mask_len - length of match mask, should be equal to match_n_vectors * sizeof (u32x4) + @param mask - match mask */ define classify_add_del_table { @@ -54,7 +55,8 @@ define classify_add_del_table u32 miss_next_index; u32 current_data_flag; i32 current_data_offset; - u8 mask[0]; + u32 mask_len; + u8 mask[mask_len]; }; /** \brief Add/Delete classification table response @@ -90,9 +92,16 @@ define classify_add_del_table_reply 2: Classified IP packets will be looked up from the specified ipv6 fib table (configured by metadata as VRF id). Only valid for L3 input ACL node + 3: Classified packet will be steered to source routig policy + of given index (in metadata). + This is only valid for IPv6 packets redirected to a source + routing node. @param metadata - valid only if action != 0 VRF id if action is 1 or 2. - @param match[] - for add, match value for session, required + sr policy index if action is 3. + @param match_len - length of match, should be equal to skip_n_vectors plus match_n_vectors + of target table times sizeof (u32x4) + @param match - for add, match value for session, required */ autoreply define classify_add_del_session { @@ -105,7 +114,8 @@ autoreply define classify_add_del_session i32 advance; u8 action; u32 metadata; - u8 match[0]; + u32 match_len; + u8 match[match_len]; }; /** \brief Set/unset policer classify interface @@ -321,6 +331,86 @@ define flow_classify_details { u32 table_index; }; +/** \brief Set/unset the classification table for an interface request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_ipv6 - ipv6 if non-zero, else ipv4 + @param sw_if_index - interface to associate with the table + @param table_index - index of the table, if ~0 unset the table +*/ +autoreply define classify_set_interface_ip_table +{ + u32 client_index; + u32 context; + u8 is_ipv6; + u32 sw_if_index; + u32 table_index; /* ~0 => off */ +}; + +/** \brief Set/unset l2 classification tables for an interface request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - interface to set/unset tables for + @param ip4_table_index - ip4 index, use ~0 for all 3 indexes to unset + @param ip6_table_index - ip6 index + @param other_table_index - other index +*/ +autoreply define classify_set_interface_l2_tables +{ + u32 client_index; + u32 context; + u32 sw_if_index; + /* 3 x ~0 => off */ + u32 ip4_table_index; + u32 ip6_table_index; + u32 other_table_index; + u8 is_input; +}; + +/** \brief Set/unset input ACL interface + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - interface to set/unset input ACL + @param ip4_table_index - ip4 classify table index (~0 for skip) + @param ip6_table_index - ip6 classify table index (~0 for skip) + @param l2_table_index - l2 classify table index (~0 for skip) + @param is_add - Set input ACL if non-zero, else unset + Note: User is recommeneded to use just one valid table_index per call. + (ip4_table_index, ip6_table_index, or l2_table_index) +*/ +autoreply define input_acl_set_interface +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u32 ip4_table_index; + u32 ip6_table_index; + u32 l2_table_index; + u8 is_add; +}; + +/** \brief Set/unset output ACL interface + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - interface to set/unset output ACL + @param ip4_table_index - ip4 classify table index (~0 for skip) + @param ip6_table_index - ip6 classify table index (~0 for skip) + @param l2_table_index - l2 classify table index (~0 for skip) + @param is_add - Set output ACL if non-zero, else unset + Note: User is recommeneded to use just one valid table_index per call. + (ip4_table_index, ip6_table_index, or l2_table_index) +*/ +autoreply define output_acl_set_interface +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u32 ip4_table_index; + u32 ip6_table_index; + u32 l2_table_index; + u8 is_add; +}; + /* * Local Variables: * eval: (c-set-style "gnu")