netdev-dpdk: Use ->reconfigure() call to change rx/tx queues.
authorDaniele Di Proietto <diproiettod@vmware.com>
Fri, 26 Feb 2016 23:58:24 +0000 (15:58 -0800)
committerDaniele Di Proietto <diproiettod@vmware.com>
Mon, 23 May 2016 17:27:42 +0000 (10:27 -0700)
commit050c60bfb5b4bfb757284f5674904d6931f37269
tree45f8ed5f810b0a70bb50d17c75429f8b68b50cf9
parent790fb3b745d039ec904000a6c64cfc6e16508d9c
netdev-dpdk: Use ->reconfigure() call to change rx/tx queues.

This introduces in dpif-netdev and netdev-dpdk the first use for the
newly introduce reconfigure netdev call.

When a request to change the number of queues comes, netdev-dpdk will
remember this and notify the upper layer via
netdev_request_reconfigure().

The datapath, instead of periodically calling netdev_set_multiq(), can
detect this and call reconfigure().

This mechanism can also be used to:
* Automatically match the number of rxq with the one provided by qemu
  via the new_device callback.
* Provide a way to change the MTU of dpdk devices at runtime.
* Move a DPDK vhost device to the proper NUMA socket.

Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com>
Tested-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Ilya Maximets <i.maximets@samsung.com>
lib/dpif-netdev.c
lib/netdev-bsd.c
lib/netdev-dpdk.c
lib/netdev-dummy.c
lib/netdev-linux.c
lib/netdev-provider.h
lib/netdev-vport.c
lib/netdev.c
lib/netdev.h