af_xdp: workaround kernel race between poll() and sendmsg()
[vpp.git] / src / plugins / af_xdp / af_xdp.api
index 14f51d8..c671612 100644 (file)
@@ -15,7 +15,7 @@
  *------------------------------------------------------------------
  */
 
-option version = "0.1.0";
+option version = "0.2.0";
 import "vnet/interface_types.api";
 
 enum af_xdp_mode
@@ -25,6 +25,10 @@ enum af_xdp_mode
   AF_XDP_API_MODE_ZERO_COPY = 2,
 };
 
+enumflag af_xdp_flag : u8
+{
+  AF_XDP_API_FLAGS_NO_SYSCALL_LOCK = 1,
+};
 
 /** \brief
     @param client_index - opaque cookie to identify the sender
@@ -35,6 +39,7 @@ enum af_xdp_mode
     @param rxq_size - receive queue size (optional)
     @param txq_size - transmit queue size (optional)
     @param mode - operation mode (optional)
+    @param flags - flags (optional)
     @param prog - eBPF program path (optional)
 */
 
@@ -49,8 +54,9 @@ define af_xdp_create
   u16 rxq_size [default=0];
   u16 txq_size [default=0];
   vl_api_af_xdp_mode_t mode [default=0];
+  vl_api_af_xdp_flag_t flags [default=0];
   string prog[256];
-  option vat_help = "<host-if linux-ifname> [name ifname] [rx-queue-size size] [tx-queue-size size] [num-rx-queues <num|all>] [prog pathname] [zero-copy|no-zero-copy]";
+  option vat_help = "<host-if linux-ifname> [name ifname] [rx-queue-size size] [tx-queue-size size] [num-rx-queues <num|all>] [prog pathname] [zero-copy|no-zero-copy] [no-syscall-lock]";
   option status="in_progress";
 };