dpdk: allow configure individual VMBUS devices 82/29882/32
authorVladimir Ratnikov <vratnikov@netgate.com>
Wed, 11 Nov 2020 13:00:48 +0000 (08:00 -0500)
committerMatthew Smith <mgsmith@netgate.com>
Mon, 11 Jan 2021 20:40:23 +0000 (20:40 +0000)
commit9822729742168c877a301ff50a3a1067b90a89ad
tree6060722a9b4f72282e78e5076f759a42c9e1d3d7
parentdcacdc4fd90d6cc71aaafccbca3ea91c7481ddbd
dpdk: allow configure individual VMBUS devices

now startup.conf supports confuguration for VMBUS
devices as for PCI devices for whitelisting/blacklisting

dpdk { dev fa5a6e7a-cf3a-4b98-9569-addb479b84bc }
 with sub-configuration as for PCI devices
dpdk { blacklist fa5a6e7a-cf3a-4b98-9569-addb479b84bc }
 where fa5a6e7a-cf3a-4b98-9569-addb479b84bc - example of UUID

struct vlib_vmbus_addr_t changed to union with UUID described
 fields

Added device_config_index_by_vmbus_addr
      blacklist_by_vmbus_addr
to enumerate available device configs

hash_key is as_u32[0] field(last 4 bytes of UUID)
Lost of precision against full UUID, but 2^32 is enough
to handle all the devices available

Added is_blacklisted check while creating vnet devices in
order to supress creation of dev if it's blacklisted

Type: feature

Signed-off-by: Vladimir Ratnikov <vratnikov@netgate.com>
Change-Id: Id82611e54fed082190e488c7e5fbe14ecbe5b2ab
src/plugins/dpdk/device/common.c
src/plugins/dpdk/device/dpdk.h
src/plugins/dpdk/device/init.c
src/vlib/linux/vmbus.c
src/vlib/vmbus/vmbus.c
src/vlib/vmbus/vmbus.h