Message ID | 20201214161122.37717-1-andraprs@amazon.com (mailing list archive) |
---|---|
Headers | show |
Series | vsock: Add flags field in the vsock address | expand |
On Mon, Dec 14, 2020 at 06:11:17PM +0200, Andra Paraschiv wrote: >vsock enables communication between virtual machines and the host they are >running on. Nested VMs can be setup to use vsock channels, as the multi >transport support has been available in the mainline since the v5.5 Linux kernel >has been released. > >Implicitly, if no host->guest vsock transport is loaded, all the vsock packets >are forwarded to the host. This behavior can be used to setup communication >channels between sibling VMs that are running on the same host. One example can >be the vsock channels that can be established within AWS Nitro Enclaves >(see Documentation/virt/ne_overview.rst). > >To be able to explicitly mark a connection as being used for a certain use case, >add a flags field in the vsock address data structure. The value of the flags >field is taken into consideration when the vsock transport is assigned. This way >can distinguish between different use cases, such as nested VMs / local >communication and sibling VMs. > >The flags field can be set in the user space application connect logic. On the >listen path, the field can be set in the kernel space logic. I reviewed and tested all the patches, great job! Thanks, Stefano > >Thank you. > >Andra > >--- > >Patch Series Changelog > >The patch series is built on top of v5.10. > >GitHub repo branch for the latest version of the patch series: > >* https://github.com/andraprs/linux/tree/vsock-flag-sibling-comm-v4 > >v3 -> v4 > >* Rebase on top of v5.10. >* Add check for supported flag values. >* Update the "svm_flags" field to be 1 byte instead of 2 bytes. >* v3: https://lore.kernel.org/lkml/20201211103241.17751-1-andraprs@amazon.com/ > >v2 -> v3 > >* Rebase on top of v5.10-rc7. >* Add "svm_flags" as a new field, not reusing "svm_reserved1". >* Update comments to mention when the "VMADDR_FLAG_TO_HOST" flag is set in the > connect and listen paths. >* Update bitwise check logic to not compare result to the flag value. >* v2: https://lore.kernel.org/lkml/20201204170235.84387-1-andraprs@amazon.com/ > >v1 -> v2 > >* Update the vsock flag naming to "VMADDR_FLAG_TO_HOST". >* Use bitwise operators to setup and check the vsock flag. >* Set the vsock flag on the receive path in the vsock transport assignment > logic. >* Merge the checks for the g2h transport assignment in one "if" block. >* v1: https://lore.kernel.org/lkml/20201201152505.19445-1-andraprs@amazon.com/ > >--- > >Andra Paraschiv (5): > vm_sockets: Add flags field in the vsock address data structure > vm_sockets: Add VMADDR_FLAG_TO_HOST vsock flag > vsock_addr: Check for supported flag values > af_vsock: Set VMADDR_FLAG_TO_HOST flag on the receive path > af_vsock: Assign the vsock transport considering the vsock address > flags > > include/uapi/linux/vm_sockets.h | 26 +++++++++++++++++++++++++- > net/vmw_vsock/af_vsock.c | 21 +++++++++++++++++++-- > net/vmw_vsock/vsock_addr.c | 4 +++- > 3 files changed, 47 insertions(+), 4 deletions(-) > >-- >2.20.1 (Apple Git-117) > > > > >Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005. >
On 14/12/2020 19:09, Stefano Garzarella wrote: > > On Mon, Dec 14, 2020 at 06:11:17PM +0200, Andra Paraschiv wrote: >> vsock enables communication between virtual machines and the host >> they are >> running on. Nested VMs can be setup to use vsock channels, as the multi >> transport support has been available in the mainline since the v5.5 >> Linux kernel >> has been released. >> >> Implicitly, if no host->guest vsock transport is loaded, all the >> vsock packets >> are forwarded to the host. This behavior can be used to setup >> communication >> channels between sibling VMs that are running on the same host. One >> example can >> be the vsock channels that can be established within AWS Nitro Enclaves >> (see Documentation/virt/ne_overview.rst). >> >> To be able to explicitly mark a connection as being used for a >> certain use case, >> add a flags field in the vsock address data structure. The value of >> the flags >> field is taken into consideration when the vsock transport is >> assigned. This way >> can distinguish between different use cases, such as nested VMs / local >> communication and sibling VMs. >> >> The flags field can be set in the user space application connect >> logic. On the >> listen path, the field can be set in the kernel space logic. > > I reviewed and tested all the patches, great job! > Thanks for checking it out. Andra > >> >> Thank you. >> >> Andra >> >> --- >> >> Patch Series Changelog >> >> The patch series is built on top of v5.10. >> >> GitHub repo branch for the latest version of the patch series: >> >> * https://github.com/andraprs/linux/tree/vsock-flag-sibling-comm-v4 >> >> v3 -> v4 >> >> * Rebase on top of v5.10. >> * Add check for supported flag values. >> * Update the "svm_flags" field to be 1 byte instead of 2 bytes. >> * v3: >> https://lore.kernel.org/lkml/20201211103241.17751-1-andraprs@amazon.com/ >> >> v2 -> v3 >> >> * Rebase on top of v5.10-rc7. >> * Add "svm_flags" as a new field, not reusing "svm_reserved1". >> * Update comments to mention when the "VMADDR_FLAG_TO_HOST" flag is >> set in the >> connect and listen paths. >> * Update bitwise check logic to not compare result to the flag value. >> * v2: >> https://lore.kernel.org/lkml/20201204170235.84387-1-andraprs@amazon.com/ >> >> v1 -> v2 >> >> * Update the vsock flag naming to "VMADDR_FLAG_TO_HOST". >> * Use bitwise operators to setup and check the vsock flag. >> * Set the vsock flag on the receive path in the vsock transport >> assignment >> logic. >> * Merge the checks for the g2h transport assignment in one "if" block. >> * v1: >> https://lore.kernel.org/lkml/20201201152505.19445-1-andraprs@amazon.com/ >> >> --- >> >> Andra Paraschiv (5): >> vm_sockets: Add flags field in the vsock address data structure >> vm_sockets: Add VMADDR_FLAG_TO_HOST vsock flag >> vsock_addr: Check for supported flag values >> af_vsock: Set VMADDR_FLAG_TO_HOST flag on the receive path >> af_vsock: Assign the vsock transport considering the vsock address >> flags >> >> include/uapi/linux/vm_sockets.h | 26 +++++++++++++++++++++++++- >> net/vmw_vsock/af_vsock.c | 21 +++++++++++++++++++-- >> net/vmw_vsock/vsock_addr.c | 4 +++- >> 3 files changed, 47 insertions(+), 4 deletions(-) >> >> -- >> 2.20.1 (Apple Git-117) >> >> >> >> >> Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. >> Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. >> Registered in Romania. Registration number J22/2621/2005. >> > Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.
Hello: This series was applied to netdev/net-next.git (refs/heads/master): On Mon, 14 Dec 2020 18:11:17 +0200 you wrote: > vsock enables communication between virtual machines and the host they are > running on. Nested VMs can be setup to use vsock channels, as the multi > transport support has been available in the mainline since the v5.5 Linux kernel > has been released. > > Implicitly, if no host->guest vsock transport is loaded, all the vsock packets > are forwarded to the host. This behavior can be used to setup communication > channels between sibling VMs that are running on the same host. One example can > be the vsock channels that can be established within AWS Nitro Enclaves > (see Documentation/virt/ne_overview.rst). > > [...] Here is the summary with links: - [net-next,v4,1/5] vm_sockets: Add flags field in the vsock address data structure https://git.kernel.org/netdev/net-next/c/dc8eeef73b63 - [net-next,v4,2/5] vm_sockets: Add VMADDR_FLAG_TO_HOST vsock flag https://git.kernel.org/netdev/net-next/c/caaf95e0f23f - [net-next,v4,3/5] vsock_addr: Check for supported flag values https://git.kernel.org/netdev/net-next/c/cada7ccd9dc7 - [net-next,v4,4/5] af_vsock: Set VMADDR_FLAG_TO_HOST flag on the receive path https://git.kernel.org/netdev/net-next/c/1b5f2ab98e7f - [net-next,v4,5/5] af_vsock: Assign the vsock transport considering the vsock address flags https://git.kernel.org/netdev/net-next/c/7f816984f439 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html