interface: support configuring RSS steering queues 94/27794/10
authorChenmin Sun <chenmin.sun@intel.com>
Mon, 6 Jul 2020 00:20:39 +0000 (08:20 +0800)
committerDamjan Marion <dmarion@me.com>
Wed, 9 Sep 2020 10:12:06 +0000 (10:12 +0000)
commitc4665093cdb0a8122d9640b6f5b3acd627918f32
tree08a3babefc4f126dec07740628d094fd24413e36
parent765008670bec75cab679c4f549c5dac744842887
interface: support configuring RSS steering queues

This patch adds the RSS steering queues set interface, and it's
implementation in DPDK device:

/* 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);

This patch also introduces a command line to set the RSS queues:
  set interface rss queues <interface> <list <queue-list>>
To display the rss queues, use "show hardware-interfaces"

Below is the example to configure rss queues for interface Gig0:
vpp# set interface rss queues Gig0 list 0,2,4-7
vpp# show hardware-interfaces brief
              Name                Idx   Link  Hardware
VirtualFunctionEthernet18/1/0      1    down  VirtualFunctionEthernet18/1/0
  Link speed: unknown
  RSS queues: 0 2 4 5 6 7
local0                             0    down  local0
  Link speed: unknown
vpp#

Users can also configure the rss queues on a dpdk interface in
startup.conf:
dpdk {
    dev 0000:18:01.0 {
        rss-queues 0,2,5-7
    }
}

Type: feature

Signed-off-by: Chenmin Sun <chenmin.sun@intel.com>
Change-Id: I1835595a1c54016a84eabee9fd62ce137935385d
src/plugins/dpdk/device/device.c
src/plugins/dpdk/device/dpdk.h
src/plugins/dpdk/device/init.c
src/vnet/devices/devices.c
src/vnet/interface.c
src/vnet/interface.h
src/vnet/interface_cli.c
src/vnet/interface_format.c
src/vnet/interface_funcs.h
src/vpp/conf/startup.conf