VSOCK: add loopback to virtio_transport
authorStefan Hajnoczi <stefanha@redhat.com>
Mon, 21 Nov 2016 13:56:31 +0000 (13:56 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 24 Nov 2016 16:53:15 +0000 (11:53 -0500)
commitb9116823189e85ccf3843c7d3ee3a361af0c3eb6
tree29f8d411eab94ef66fab1e0f50e700f97260285e
parentf9aa9dc7d2d00e6eb02168ffc64ef614b89d7998
VSOCK: add loopback to virtio_transport

The VMware VMCI transport supports loopback inside virtual machines.
This patch implements loopback for virtio-vsock.

Flow control is handled by the virtio-vsock protocol as usual.  The
sending process stops transmitting on a connection when the peer's
receive buffer space is exhausted.

Cathy Avery <cavery@redhat.com> noticed this difference between VMCI and
virtio-vsock when a test case using loopback failed.  Although loopback
isn't the main point of AF_VSOCK, it is useful for testing and
virtio-vsock must match VMCI semantics so that userspace programs run
regardless of the underlying transport.

My understanding is that loopback is not supported on the host side with
VMCI.  Follow that by implementing it only in the guest driver, not the
vhost host driver.

Cc: Jorgen Hansen <jhansen@vmware.com>
Reported-by: Cathy Avery <cavery@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/vmw_vsock/virtio_transport.c