devices: vhost handling VHOST_USER_SET_FEATURES 32/20732/4
authorSteven Luong <sluong@cisco.com>
Fri, 19 Jul 2019 01:38:52 +0000 (18:38 -0700)
committerDamjan Marion <dmarion@me.com>
Tue, 23 Jul 2019 08:52:05 +0000 (08:52 +0000)
Some combinations of new qemu (2.11) and old dpdk (16.10) may
send VHOST_USER_SET_FEATURES at the end of the protocol exchange
which the vhost interface is already declared up and ready.
Unfortunately, the process of VHOST_USER_SET_FEATURES will cause
the interface to go down. Not sure if it is correct or needed.
Because there is no additional messages thereafter, the hardware
interface stays down.

The fix is to check the interface again at the end of processing
VHOST_USER_SET_FEATURES. If it is up and ready, we bring back
the hardware interface.

Type: fix

Change-Id: I490cd03820deacbd8b44d8f2cb38c26349dbe3b2
Signed-off-by: Steven Luong <sluong@cisco.com>
src/vnet/devices/virtio/vhost_user.c

index 72b71f9..5c552f9 100644 (file)
@@ -494,6 +494,7 @@ vhost_user_socket_read (clib_file_t * uf)
       ASSERT (vui->virtio_net_hdr_sz < VLIB_BUFFER_PRE_DATA_SIZE);
       vnet_hw_interface_set_flags (vnm, vui->hw_if_index, 0);
       vui->is_ready = 0;
+      vhost_user_update_iface_state (vui);
       break;
 
     case VHOST_USER_SET_MEM_TABLE: