interface: support configuring RSS steering queues
[vpp.git] / src / vnet / interface.h
index 07da261..895ce2e 100644 (file)
@@ -88,6 +88,11 @@ typedef clib_error_t *(vnet_interface_set_l2_mode_function_t)
   (struct vnet_main_t * vnm, struct vnet_hw_interface_t * hi,
    i32 l2_if_adjust);
 
+/* Interface to set rss queues of the interface */
+typedef clib_error_t *(vnet_interface_rss_queues_set_t)
+  (struct vnet_main_t * vnm, struct vnet_hw_interface_t * hi,
+   clib_bitmap_t * bitmap);
+
 typedef enum
 {
   VNET_FLOW_DEV_OP_ADD_FLOW,
@@ -273,6 +278,10 @@ typedef struct _vnet_device_class
 
   /* Function to add/delete additional MAC addresses */
   vnet_interface_add_del_mac_address_function_t *mac_addr_add_del_function;
+
+  /* Interface to set rss queues of the interface */
+  vnet_interface_rss_queues_set_t *set_rss_queues_function;
+
 } vnet_device_class_t;
 
 #ifndef CLIB_MARCH_VARIANT
@@ -601,6 +610,9 @@ typedef struct vnet_hw_interface_t
   /* numa node that hardware device connects to */
   u8 numa_node;
 
+  /* rss queues bitmap */
+  clib_bitmap_t *rss_queues;
+
   /* trace */
   i32 n_trace;