Re: [PATCH net-next 5/6] vsock: use local transport when it is loaded

From: Stefan Hajnoczi
Date: Thu Nov 21 2019 - 04:46:22 EST


On Tue, Nov 19, 2019 at 12:01:20PM +0100, Stefano Garzarella wrote:
> @@ -420,9 +436,10 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk)
> new_transport = transport_dgram;
> break;
> case SOCK_STREAM:
> - if (remote_cid <= VMADDR_CID_HOST ||
> - (transport_g2h &&
> - remote_cid == transport_g2h->get_local_cid()))
> + if (vsock_use_local_transport(remote_cid))
> + new_transport = transport_local;
> + else if (remote_cid == VMADDR_CID_HOST ||
> + remote_cid == VMADDR_CID_HYPERVISOR)
> new_transport = transport_g2h;
> else
> new_transport = transport_h2g;

We used to send VMADDR_CID_RESERVED to the host. Now we send
VMADDR_CID_RESERVED (LOCAL) to the guest when there is no
transport_local loaded?

If this is correct, is there a justification for this change? It seems
safest to retain existing behavior.

Attachment: signature.asc
Description: PGP signature