diff mbox series

vsock.7: add VMADDR_CID_LOCAL description

Message ID 20200211102532.56795-1-sgarzare@redhat.com
State Not Applicable
Delegated to: David Miller
Headers show
Series vsock.7: add VMADDR_CID_LOCAL description | expand

Commit Message

Stefano Garzarella Feb. 11, 2020, 10:25 a.m. UTC
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@redhat.com>
---
 man7/vsock.7 | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

Comments

Stefan Hajnoczi Feb. 13, 2020, 9:17 a.m. UTC | #1
On Tue, Feb 11, 2020 at 11:25:32AM +0100, Stefano Garzarella wrote:

Do you want to mention that loopback works in the guest and on the host
since Linux vX.Y and before that it only worked inside the guest?

> @@ -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) can be used to address itself. In this case all packets are redirected
> +to the same host that generated them. Useful for testing and debugging.

This can be rephrased more naturally:

.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.
Stefano Garzarella Feb. 13, 2020, 9:44 a.m. UTC | #2
On Thu, Feb 13, 2020 at 09:17:48AM +0000, Stefan Hajnoczi wrote:
> On Tue, Feb 11, 2020 at 11:25:32AM +0100, Stefano Garzarella wrote:
> 
> Do you want to mention that loopback works in the guest and on the host
> since Linux vX.Y and before that it only worked inside the guest?

I didn't mention it, because it was only supported by some transports
(vmci, virtio), but it makes sense to say it, I'll add.

> 
> > @@ -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) can be used to address itself. In this case all packets are redirected
> > +to the same host that generated them. Useful for testing and debugging.
> 
> This can be rephrased more naturally:
> 
> .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.

Sure, it is better, I'll fix.

Thanks,
Stefano
diff mbox series

Patch

diff --git a/man7/vsock.7 b/man7/vsock.7
index c5ffcf07d..d7dc37dcc 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) can be used to address itself. In this case all packets are redirected
+to the same host that generated them. Useful for testing and 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,8 @@  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.
 .SH SEE ALSO
 .BR bind (2),
 .BR connect (2),