Implement a loopback instance allocation scheme.
[vpp.git] / src / vpp / api / vpe.api
index 6e17400..a4ba180 100644 (file)
  * IPSEC-GRE APIs: see .../src/vnet/ipsec-gre/{ipsec_gre.api, ipsec_gre_api.c}
  * LISP APIs: see .../src/vnet/lisp/{lisp.api, lisp_api.c}
  * LISP-GPE APIs: see .../src/vnet/lisp-gpe/{lisp_gpe.api, lisp_gpe_api.c}
+ * SESSION APIs: .../vnet/session/{session.api session_api.c}
  * MPLS APIs: see .../src/vnet/mpls/{mpls.api, mpls_api.c}
  * SR APIs: see .../src/vnet/sr/{sr.api, sr_api.c}
- * DPDK APIs: see ... /src/vnet/devices/dpdk/{dpdk.api, dpdk_api.c}
  * CLASSIFY APIs: see ... /src/vnet/classify/{classify.api, classify_api.c}
  * FLOW APIs: see ... /src/vnet/flow/{flow.api, flow_api.c}
  * DHCP APIs: see ... /src/vnet/dhcp/{dhcpk.api, dhcp_api.c}
  * COP APIs: see ... /src/vnet/cop/{cop.api, cop_api.c}
+ * POLICER APIs: see ... /src/vnet/policer/{policer.api, policer_api.c}
  */
 
 /** \brief Create a new subinterface with the given vlan id
@@ -424,6 +425,34 @@ define create_loopback_reply
   u32 sw_if_index;
 };
 
+/** \brief Create loopback interface instance request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param mac_address - mac addr to assign to the interface if none-zero
+    @param is_specified - if non-0, a specific user_instance is being requested
+    @param user_instance - requested instance, ~0 => dynamically allocate
+*/
+define create_loopback_instance
+{
+  u32 client_index;
+  u32 context;
+  u8 mac_address[6];
+  u8 is_specified;
+  u32 user_instance;
+};
+
+/** \brief Create loopback interface instance response
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - sw index of the interface that was created
+    @param retval - return code for the request
+*/
+define create_loopback_instance_reply
+{
+  u32 context;
+  i32 retval;
+  u32 sw_if_index;
+};
+
 /** \brief Delete loopback interface request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -1063,133 +1092,6 @@ define ioam_disable_reply
   i32 retval;
 };
 
-/** \brief Add/del policer
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param is_add - add policer if non-zero, else delete
-    @param name - policer name
-    @param cir - CIR
-    @param eir - EIR
-    @param cb - Committed Burst
-    @param eb - Excess or Peak Burst
-    @param rate_type - rate type
-    @param round_type - rounding type
-    @param type - policer algorithm
-    @param color_aware - 0=color-blind, 1=color-aware
-    @param conform_action_type - conform action type
-    @param conform_dscp - DSCP for conform mar-and-transmit action
-    @param exceed_action_type - exceed action type
-    @param exceed_dscp - DSCP for exceed mar-and-transmit action
-    @param violate_action_type - violate action type
-    @param violate_dscp - DSCP for violate mar-and-transmit action
-*/
-define policer_add_del
-{
-  u32 client_index;
-  u32 context;
-
-  u8 is_add;
-  u8 name[64];
-  u32 cir;
-  u32 eir;
-  u64 cb;
-  u64 eb;
-  u8 rate_type;
-  u8 round_type;
-  u8 type;
-  u8 color_aware;
-  u8 conform_action_type;
-  u8 conform_dscp;
-  u8 exceed_action_type;
-  u8 exceed_dscp;
-  u8 violate_action_type;
-  u8 violate_dscp;
-};
-
-/** \brief Add/del policer response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-    @param policer_index - for add, returned index of the new policer
-*/
-define policer_add_del_reply
-{
-  u32 context;
-  i32 retval;
-  u32 policer_index;
-};
-
-/** \brief Get list of policers
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param match_name_valid - if 0 request all policers otherwise use match_name
-    @param match_name - policer name
-*/
-define policer_dump
-{
-  u32 client_index;
-  u32 context;
-
-  u8 match_name_valid;
-  u8 match_name[64];
-};
-
-/** \brief Policer operational state response.
-    @param context - sender context, to match reply w/ request
-    @param name - policer name
-    @param cir - CIR
-    @param eir - EIR
-    @param cb - Committed Burst
-    @param eb - Excess or Peak Burst
-    @param rate_type - rate type
-    @param round_type - rounding type
-    @param type - policer algorithm
-    @param conform_action_type - conform action type
-    @param conform_dscp - DSCP for conform mar-and-transmit action
-    @param exceed_action_type - exceed action type
-    @param exceed_dscp - DSCP for exceed mar-and-transmit action
-    @param violate_action_type - violate action type
-    @param violate_dscp - DSCP for violate mar-and-transmit action
-    @param single_rate - 1 = single rate policer, 0 = two rate policer
-    @param color_aware - for hierarchical policing
-    @param scale - power-of-2 shift amount for lower rates
-    @param cir_tokens_per_period - number of tokens for each period
-    @param pir_tokens_per_period - number of tokens for each period for 2-rate policer
-    @param current_limit - current limit
-    @param current_bucket - current bucket
-    @param extended_limit - extended limit
-    @param extended_bucket - extended bucket
-    @param last_update_time - last update time
-*/
-define policer_details
-{
-  u32 context;
-
-  u8 name[64];
-  u32 cir;
-  u32 eir;
-  u64 cb;
-  u64 eb;
-  u8 rate_type;
-  u8 round_type;
-  u8 type;
-  u8 conform_action_type;
-  u8 conform_dscp;
-  u8 exceed_action_type;
-  u8 exceed_dscp;
-  u8 violate_action_type;
-  u8 violate_dscp;
-  u8 single_rate;
-  u8 color_aware;
-  u32 scale;
-  u32 cir_tokens_per_period;
-  u32 pir_tokens_per_period;
-  u32 current_limit;
-  u32 current_bucket;
-  u32 extended_limit;
-  u32 extended_bucket;
-  u64 last_update_time;
-};
-
 /** \brief Query relative index via node names
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request