Break up vpe.api
[vpp.git] / src / vnet / classify / classify.api
index 51ebd6c..532638c 100644 (file)
@@ -13,6 +13,8 @@
  * limitations under the License.
  */
 
+vl_api_version 1.0.0
+
 /** \brief Add/Delete classification table request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -88,11 +90,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.
+           sr policy index if action is 3.
     @param match[] - for add, match value for session, required
 */
-define classify_add_del_session
+autoreply define classify_add_del_session
 {
   u32 client_index;
   u32 context;
@@ -106,16 +113,6 @@ define classify_add_del_session
   u8 match[0];
 };
 
-/** \brief Classify add / del session response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the add/del session request
-*/
-define classify_add_del_session_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set/unset policer classify interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -127,7 +124,7 @@ define classify_add_del_session_reply
     Note: User is recommeneded to use just one valid table_index per call.
           (ip4_table_index, ip6_table_index, or l2_table_index)
 */
-define policer_classify_set_interface
+autoreply define policer_classify_set_interface
 {
   u32 client_index;
   u32 context;
@@ -138,16 +135,6 @@ define policer_classify_set_interface
   u8 is_add;
 };
 
-/** \brief Set/unset policer classify interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define policer_classify_set_interface_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get list of policer classify interfaces and tables
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -308,7 +295,7 @@ define classify_session_details
     Note: User is recommeneded to use just one valid table_index per call.
           (ip4_table_index, ip6_table_index, or l2_table_index)
 */
-define flow_classify_set_interface {
+autoreply define flow_classify_set_interface {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
@@ -317,15 +304,6 @@ define flow_classify_set_interface {
     u8  is_add;
 };
 
-/** \brief Set/unset flow classify interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define flow_classify_set_interface_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief Get list of flow classify interfaces and tables
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -348,9 +326,67 @@ 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;
+};
+
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")
  * End:
  */
\ No newline at end of file