From: Stefano Garzarella <sgarzare@redhat.com> To: Jorgen Hansen <jhansen@vmware.com> Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>, "Michael S. Tsirkin" <mst@redhat.com>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jason Wang <jasowang@redhat.com>, "David S. Miller" <davem@davemloft.net>, Dexuan Cui <decui@microsoft.com>, Haiyang Zhang <haiyangz@microsoft.com>, Sasha Levin <sashal@kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Arnd Bergmann <arnd@arndb.de>, Stefan Hajnoczi <stefanha@redhat.com>, "linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>, "K. Y. Srinivasan" <kys@microsoft.com>, Stephen Hemminger <sthemmin@microsoft.com>, "virtualization@lists.linux-foundation.org" <virtualization@lists.linux-foundation.org> Subject: Re: [PATCH net-next 11/14] vsock: add multi-transports support Date: Wed, 13 Nov 2019 17:38:42 +0100 Message-ID: <20191113163842.6byl2qul4nbjf5no@steredhat> (raw) In-Reply-To: <MWHPR05MB3376560CFD2A710723843828DA760@MWHPR05MB3376.namprd05.prod.outlook.com> On Wed, Nov 13, 2019 at 02:30:24PM +0000, Jorgen Hansen wrote: > > From: Stefano Garzarella [mailto:sgarzare@redhat.com] > > Sent: Tuesday, November 12, 2019 11:37 AM > > > > > > You already mentioned that you are working on a fix for loopback > > > > > here for the guest, but presumably a host could also do loopback. > > > > > > > > IIUC we don't support loopback in the host, because in this case the > > > > application will use the CID_HOST as address, but if we are in a nested > > > > VM environment we are in trouble. > > > > > > If both src and dst CID are CID_HOST, we should be fairly sure that this > > > Is host loopback, no? If src is anything else, we would do G2H. > > > > > > > The problem is that we don't know the src until we assign a transport > > looking at the dst. (or if the user bound the socket to CID_HOST before > > the connect(), but it is not very common) > > > > So if we are in a L1 and the user uses the local guest CID, it works, but if > > it uses the HOST_CID, the packet will go to the L0. > > > > If we are in L0, it could be simple, because we can simply check if G2H > > is not loaded, so any packet to CID_HOST, is host loopback. > > > > I think that if the user uses the IOCTL_VM_SOCKETS_GET_LOCAL_CID, to set > > the dest CID for the loopback, it works in both cases because we return the > > HOST_CID in L0, and always the guest CID in L1, also if a H2G is loaded to > > handle the L2. > > > > Maybe we should document this in the man page. > > Yeah, it seems like a good idea to flesh out the routing behavior for nested > VMs in the man page. I'll do it. > > > > > But I have a question: Does vmci support the host loopback? > > I've tried, and it seems not. > > Only for datagrams - not for stream sockets. > Ok, I'll leave the datagram loopback as before. > > Also vhost-vsock doesn't support it, but virtio-vsock does. > > > > > > > > > > Since several people asked about this feature at the KVM Forum, I would > > like > > > > to add a new VMADDR_CID_LOCAL (i.e. using the reserved 1) and > > implement > > > > loopback in the core. > > > > > > > > What do you think? > > > > > > What kind of use cases are mentioned in the KVM forum for loopback? > > One concern > > > is that we have to maintain yet another interprocess communication > > mechanism, > > > even though other choices exist already (and those are likely to be more > > efficient > > > given the development time and specific focus that went into those). To > > me, the > > > local connections are mainly useful as a way to sanity test the protocol and > > transports. > > > However, if loopback is compelling, it would make sense have it in the core, > > since it > > > shouldn't need a specific transport. > > > > The common use cases is for developer point of view, and to test the > > protocol and transports as you said. > > > > People that are introducing VSOCK support in their projects, would like to > > test them on their own PC without starting a VM. > > > > The idea is to move the code to handle loopback from the virtio-vsock, > > in the core, but in another series :-) > > OK, that makes sense. Thanks, Stefano
next prev parent reply index Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-23 9:55 [PATCH net-next 00/14] " Stefano Garzarella 2019-10-23 9:55 ` [PATCH net-next 01/14] vsock/vmci: remove unused VSOCK_DEFAULT_CONNECT_TIMEOUT Stefano Garzarella 2019-10-30 14:54 ` Jorgen Hansen 2019-10-23 9:55 ` [PATCH net-next 02/14] vsock: remove vm_sockets_get_local_cid() Stefano Garzarella 2019-10-30 14:55 ` Jorgen Hansen 2019-10-23 9:55 ` [PATCH net-next 03/14] vsock: remove include/linux/vm_sockets.h file Stefano Garzarella 2019-10-30 14:57 ` Jorgen Hansen 2019-10-23 9:55 ` [PATCH net-next 04/14] vsock: add 'transport' member in the struct vsock_sock Stefano Garzarella 2019-10-30 14:57 ` Jorgen Hansen 2019-10-23 9:55 ` [PATCH net-next 05/14] vsock/virtio: add transport parameter to the virtio_transport_reset_no_sock() Stefano Garzarella 2019-10-23 9:55 ` [PATCH net-next 06/14] vsock: add 'struct vsock_sock *' param to vsock_core_get_transport() Stefano Garzarella 2019-10-30 15:01 ` Jorgen Hansen 2019-10-23 9:55 ` [PATCH net-next 07/14] vsock: handle buffer_size sockopts in the core Stefano Garzarella 2019-10-27 8:08 ` Stefan Hajnoczi 2019-10-30 15:08 ` Jorgen Hansen 2019-10-31 8:50 ` Stefano Garzarella 2019-10-23 9:55 ` [PATCH net-next 08/14] vsock: add vsock_create_connected() called by transports Stefano Garzarella 2019-10-27 8:12 ` Stefan Hajnoczi 2019-10-30 15:12 ` Jorgen Hansen 2019-10-23 9:55 ` [PATCH net-next 09/14] vsock: move vsock_insert_unbound() in the vsock_create() Stefano Garzarella 2019-10-30 15:12 ` Jorgen Hansen 2019-10-23 9:55 ` [PATCH net-next 10/14] hv_sock: set VMADDR_CID_HOST in the hvs_remote_addr_init() Stefano Garzarella 2019-10-23 9:55 ` [PATCH net-next 11/14] vsock: add multi-transports support Stefano Garzarella 2019-10-23 15:08 ` Stefano Garzarella 2019-10-30 15:40 ` Jorgen Hansen 2019-10-31 8:54 ` Stefano Garzarella 2019-11-11 13:53 ` Jorgen Hansen 2019-11-11 17:17 ` Stefano Garzarella 2019-11-12 9:59 ` Jorgen Hansen 2019-11-12 10:36 ` Stefano Garzarella 2019-11-13 14:30 ` Jorgen Hansen 2019-11-13 16:38 ` Stefano Garzarella [this message] 2019-10-23 9:55 ` [PATCH net-next 12/14] vsock/vmci: register vmci_transport only when VMCI guest/host are active Stefano Garzarella 2019-10-27 8:17 ` Stefan Hajnoczi 2019-10-29 16:35 ` Stefano Garzarella 2019-11-04 10:10 ` Stefano Garzarella 2019-11-11 16:27 ` Jorgen Hansen 2019-11-11 17:30 ` Stefano Garzarella 2019-11-12 10:03 ` Jorgen Hansen 2019-11-12 10:42 ` Stefano Garzarella 2019-10-23 9:55 ` [PATCH net-next 13/14] vsock: prevent transport modules unloading Stefano Garzarella 2019-11-11 16:36 ` Jorgen Hansen 2019-10-23 9:55 ` [PATCH net-next 14/14] vsock: fix bind() behaviour taking care of CID Stefano Garzarella 2019-11-11 16:53 ` Jorgen Hansen 2019-10-27 8:01 ` [PATCH net-next 00/14] vsock: add multi-transports support Stefan Hajnoczi 2019-10-29 16:27 ` Stefano Garzarella
Reply instructions: You may reply publically to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191113163842.6byl2qul4nbjf5no@steredhat \ --to=sgarzare@redhat.com \ --cc=arnd@arndb.de \ --cc=davem@davemloft.net \ --cc=decui@microsoft.com \ --cc=gregkh@linuxfoundation.org \ --cc=haiyangz@microsoft.com \ --cc=jasowang@redhat.com \ --cc=jhansen@vmware.com \ --cc=kvm@vger.kernel.org \ --cc=kys@microsoft.com \ --cc=linux-hyperv@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mst@redhat.com \ --cc=netdev@vger.kernel.org \ --cc=sashal@kernel.org \ --cc=stefanha@redhat.com \ --cc=sthemmin@microsoft.com \ --cc=virtualization@lists.linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-HyperV Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-hyperv/0 linux-hyperv/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-hyperv linux-hyperv/ https://lore.kernel.org/linux-hyperv \ linux-hyperv@vger.kernel.org public-inbox-index linux-hyperv Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-hyperv AGPL code for this site: git clone https://public-inbox.org/public-inbox.git