Linux 5.6 added the new well-known VMADDR_CID_LOCAL for local communication. This patch explains how to use it and remove the legacy VMADDR_CID_RESERVED no longer available. Signed-off-by: Stefano Garzarella <sgarzare@xxxxxxxxxx> --- v2: * rephrased "Local communication" description [Stefan] * added a mention of previous versions that supported loopback only in the guest [Stefan] --- man7/vsock.7 | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/man7/vsock.7 b/man7/vsock.7 index c5ffcf07d..78ac22b1e 100644 --- a/man7/vsock.7 +++ b/man7/vsock.7 @@ -127,8 +127,8 @@ There are several special addresses: means any address for binding; .B VMADDR_CID_HYPERVISOR (0) is reserved for services built into the hypervisor; -.B VMADDR_CID_RESERVED -(1) must not be used; +.B VMADDR_CID_LOCAL +(1) is the well-known address for local communication (loopback); .B VMADDR_CID_HOST (2) is the well-known address of the host. @@ -164,6 +164,16 @@ Consider using .B VMADDR_CID_ANY when binding instead of getting the local CID with .BR IOCTL_VM_SOCKETS_GET_LOCAL_CID . +.SS Local communication +The +.B VMADDR_CID_LOCAL +(1) directs packets to the same host that generated them. This is useful +for testing applications on a single host and for debugging. +.PP +The local CID obtained with +.BR IOCTL_VM_SOCKETS_GET_LOCAL_CID +can be used for the same purpose, but it is preferable to use +.B VMADDR_CID_LOCAL . .SH ERRORS .TP .B EACCES @@ -222,6 +232,11 @@ are valid. Support for VMware (VMCI) has been available since Linux 3.9. KVM (virtio) is supported since Linux 4.8. Hyper-V is supported since Linux 4.14. +.PP +VMADDR_CID_LOCAL is supported since Linux 5.6. +Local communication in the guest and on the host is available since Linux 5.6. +Previous versions partially supported it only in the guest and only with some +transports (VMCI and virtio). .SH SEE ALSO .BR bind (2), .BR connect (2), -- 2.24.1