* [virtio-comment] [RFC PATCH v7 0/2] virtio-vsock: introduce SOCK_SEQPACKET description @ 2021-08-10 11:46 Arseny Krasnov 2021-08-10 11:46 ` [virtio-comment] [RFC PATCH v7 1/2] virtio-vsock: use C style defines for constants Arseny Krasnov 2021-08-10 11:47 ` [virtio-comment] [RFC PATCH v7 2/2] virtio-vsock: SOCK_SEQPACKET description Arseny Krasnov 0 siblings, 2 replies; 6+ messages in thread From: Arseny Krasnov @ 2021-08-10 11:46 UTC (permalink / raw) To: cohuck, virtio-comment, Stefan Hajnoczi, Stefano Garzarella, Michael S. Tsirkin, Jason Wang, David S. Miller, Jakub Kicinski, Arseny Krasnov, Colin Ian King, Andra Paraschiv, Norbert Slusarek Cc: virtualization, oxffffaa This adds description of SOCK_SEQPACKET type for virtio-vsock. Here is merged Linux implementation: https://lore.kernel.org/netdev/20210611110744.3650456-1-arseny.krasnov@kaspersky.com/ Here is extra patchset for record boundaries: https://lkml.org/lkml/2021/8/10/482 Also this patchset has patch which replaces enums to defines in virtio-vsock part of spec. SOCK_SEQPACKET patch is based on it. Arseny Krasnov(2): virtio-vsock: use C style defines for constants virtio-vsock: SOCK_SEQPACKET description virtio-vsock.tex | 83 ++++++++++++++++++++++++++++++---------------- 1 file changed, 55 insertions(+), 28 deletions(-) v6 -> v7: - Added record boundaries bit description. -- 2.25.1 This publicly archived list offers a means to provide input to the OASIS Virtual I/O Device (VIRTIO) TC. In order to verify user consent to the Feedback License terms and to minimize spam in the list archive, subscription is required before posting. Subscribe: virtio-comment-subscribe@lists.oasis-open.org Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org List help: virtio-comment-help@lists.oasis-open.org List archive: https://lists.oasis-open.org/archives/virtio-comment/ Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists Committee: https://www.oasis-open.org/committees/virtio/ Join OASIS: https://www.oasis-open.org/join/ ^ permalink raw reply [flat|nested] 6+ messages in thread
* [virtio-comment] [RFC PATCH v7 1/2] virtio-vsock: use C style defines for constants 2021-08-10 11:46 [virtio-comment] [RFC PATCH v7 0/2] virtio-vsock: introduce SOCK_SEQPACKET description Arseny Krasnov @ 2021-08-10 11:46 ` Arseny Krasnov 2021-08-11 9:22 ` Stefano Garzarella 2021-08-10 11:47 ` [virtio-comment] [RFC PATCH v7 2/2] virtio-vsock: SOCK_SEQPACKET description Arseny Krasnov 1 sibling, 1 reply; 6+ messages in thread From: Arseny Krasnov @ 2021-08-10 11:46 UTC (permalink / raw) To: cohuck, virtio-comment, Stefan Hajnoczi, Stefano Garzarella, Michael S. Tsirkin, Jason Wang, David S. Miller, Jakub Kicinski, Arseny Krasnov, Jorgen Hansen, Andra Paraschiv, Colin Ian King, Norbert Slusarek Cc: virtualization, oxffffaa This: 1) Replaces enums with C style "defines", because use of enums is not documented, while "defines" are widely used in spec. 2) Adds defines for some constants. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Arseny Krasnov <arseny.krasnov@kaspersky.com> --- virtio-vsock.tex | 54 +++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/virtio-vsock.tex b/virtio-vsock.tex index da7e641..ad57f9d 100644 --- a/virtio-vsock.tex +++ b/virtio-vsock.tex @@ -86,23 +86,18 @@ \subsection{Device Operation}\label{sec:Device Types / Socket Device / Device Op operation constants: \begin{lstlisting} -enum { - VIRTIO_VSOCK_OP_INVALID = 0, - - /* Connect operations */ - VIRTIO_VSOCK_OP_REQUEST = 1, - VIRTIO_VSOCK_OP_RESPONSE = 2, - VIRTIO_VSOCK_OP_RST = 3, - VIRTIO_VSOCK_OP_SHUTDOWN = 4, - - /* To send payload */ - VIRTIO_VSOCK_OP_RW = 5, - - /* Tell the peer our credit info */ - VIRTIO_VSOCK_OP_CREDIT_UPDATE = 6, - /* Request the peer to send the credit info to us */ - VIRTIO_VSOCK_OP_CREDIT_REQUEST = 7, -}; +#define VIRTIO_VSOCK_OP_INVALID 0 +/* Connect operations */ +#define VIRTIO_VSOCK_OP_REQUEST 1 +#define VIRTIO_VSOCK_OP_RESPONSE 2 +#define VIRTIO_VSOCK_OP_RST 3 +#define VIRTIO_VSOCK_OP_SHUTDOWN 4 +/* To send payload */ +#define VIRTIO_VSOCK_OP_RW 5 +/* Tell the peer our credit info */ +#define VIRTIO_VSOCK_OP_CREDIT_UPDATE 6 +/* Request the peer to send the credit info to us */ +#define VIRTIO_VSOCK_OP_CREDIT_REQUEST 7 \end{lstlisting} \subsubsection{Virtqueue Flow Control}\label{sec:Device Types / Socket Device / Device Operation / Virtqueue Flow Control} @@ -140,8 +135,12 @@ \subsubsection{Addressing}\label{sec:Device Types / Socket Device / Device Opera consists of a (cid, port number) tuple. The header fields used for this are \field{src_cid}, \field{src_port}, \field{dst_cid}, and \field{dst_port}. -Currently only stream sockets are supported. \field{type} is 1 for stream -socket types. +Currently only stream sockets are supported. \field{type} is 1 (VIRTIO_VSOCK_TYPE_STREAM) +for stream socket types. + +\begin{lstlisting} +#define VIRTIO_VSOCK_TYPE_STREAM 1 +\end{lstlisting} Stream sockets provide in-order, guaranteed, connection-oriented delivery without message boundaries. @@ -222,10 +221,15 @@ \subsubsection{Stream Sockets}\label{sec:Device Types / Socket Device / Device O insufficient resources to establish the connection. When a connected socket receives VIRTIO_VSOCK_OP_SHUTDOWN the header -\field{flags} field bit 0 indicates that the peer will not receive any more -data and bit 1 indicates that the peer will not send any more data. These -hints are permanent once sent and successive packets with bits clear do not -reset them. +\field{flags} field bit VIRTIO_VSOCK_SHUTDOWN_F_RECEIVE (bit 0) set indicates +that the peer will not receive any more data and bit VIRTIO_VSOCK_SHUTDOWN_F_SEND +(bit 1) set indicates that the peer will not send any more data. These hints are +permanent once sent and successive packets with bits clear do not reset them. + +\begin{lstlisting} +#define VIRTIO_VSOCK_SHUTDOWN_F_RECEIVE 0 +#define VIRTIO_VSOCK_SHUTDOWN_F_SEND 1 +\end{lstlisting} The VIRTIO_VSOCK_OP_RST packet aborts the connection process or forcibly disconnects a connected socket. @@ -248,9 +252,7 @@ \subsubsection{Device Events}\label{sec:Device Types / Socket Device / Device Op The event buffer is as follows: \begin{lstlisting} -enum virtio_vsock_event_id { - VIRTIO_VSOCK_EVENT_TRANSPORT_RESET = 0, -}; +#define VIRTIO_VSOCK_EVENT_TRANSPORT_RESET 0 struct virtio_vsock_event { le32 id; -- 2.25.1 This publicly archived list offers a means to provide input to the OASIS Virtual I/O Device (VIRTIO) TC. In order to verify user consent to the Feedback License terms and to minimize spam in the list archive, subscription is required before posting. Subscribe: virtio-comment-subscribe@lists.oasis-open.org Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org List help: virtio-comment-help@lists.oasis-open.org List archive: https://lists.oasis-open.org/archives/virtio-comment/ Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists Committee: https://www.oasis-open.org/committees/virtio/ Join OASIS: https://www.oasis-open.org/join/ ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [virtio-comment] [RFC PATCH v7 1/2] virtio-vsock: use C style defines for constants 2021-08-10 11:46 ` [virtio-comment] [RFC PATCH v7 1/2] virtio-vsock: use C style defines for constants Arseny Krasnov @ 2021-08-11 9:22 ` Stefano Garzarella 0 siblings, 0 replies; 6+ messages in thread From: Stefano Garzarella @ 2021-08-11 9:22 UTC (permalink / raw) To: Arseny Krasnov Cc: cohuck, virtio-comment, Stefan Hajnoczi, Michael S. Tsirkin, Jason Wang, David S. Miller, Jakub Kicinski, Jorgen Hansen, Andra Paraschiv, Colin Ian King, Norbert Slusarek, virtualization, oxffffaa On Tue, Aug 10, 2021 at 02:46:49PM +0300, Arseny Krasnov wrote: >This: >1) Replaces enums with C style "defines", because > use of enums is not documented, while "defines" > are widely used in spec. >2) Adds defines for some constants. > >Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> >Signed-off-by: Arseny Krasnov <arseny.krasnov@kaspersky.com> >--- > virtio-vsock.tex | 54 +++++++++++++++++++++++++----------------------- > 1 file changed, 28 insertions(+), 26 deletions(-) Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [virtio-comment] [RFC PATCH v7 2/2] virtio-vsock: SOCK_SEQPACKET description 2021-08-10 11:46 [virtio-comment] [RFC PATCH v7 0/2] virtio-vsock: introduce SOCK_SEQPACKET description Arseny Krasnov 2021-08-10 11:46 ` [virtio-comment] [RFC PATCH v7 1/2] virtio-vsock: use C style defines for constants Arseny Krasnov @ 2021-08-10 11:47 ` Arseny Krasnov 2021-08-10 11:50 ` [virtio-comment] " Arseny Krasnov 2021-08-11 9:29 ` [virtio-comment] " Stefano Garzarella 1 sibling, 2 replies; 6+ messages in thread From: Arseny Krasnov @ 2021-08-10 11:47 UTC (permalink / raw) To: cohuck, virtio-comment, Stefan Hajnoczi, Stefano Garzarella, Michael S. Tsirkin, Jason Wang, David S. Miller, Jakub Kicinski, Arseny Krasnov, Colin Ian King, Norbert Slusarek, Andra Paraschiv Cc: virtualization, oxffffaa This adds description of SOCK_SEQPACKET socket type support for virtio-vsock. Signed-off-by: Arseny Krasnov <arseny.krasnov@kaspersky.com> --- virtio-vsock.tex | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/virtio-vsock.tex b/virtio-vsock.tex index ad57f9d..ca76812 100644 --- a/virtio-vsock.tex +++ b/virtio-vsock.tex @@ -16,7 +16,10 @@ \subsection{Virtqueues}\label{sec:Device Types / Socket Device / Virtqueues} \subsection{Feature bits}\label{sec:Device Types / Socket Device / Feature bits} -There are currently no feature bits defined for this device. +\begin{description} +\item VIRTIO_VSOCK_F_SEQPACKET (1) SOCK_SEQPACKET socket type is + supported. +\end{description} \subsection{Device configuration layout}\label{sec:Device Types / Socket Device / Device configuration layout} @@ -135,15 +138,17 @@ \subsubsection{Addressing}\label{sec:Device Types / Socket Device / Device Opera consists of a (cid, port number) tuple. The header fields used for this are \field{src_cid}, \field{src_port}, \field{dst_cid}, and \field{dst_port}. -Currently only stream sockets are supported. \field{type} is 1 (VIRTIO_VSOCK_TYPE_STREAM) -for stream socket types. +Currently stream and seqpacket sockets are supported. \field{type} is 1 (VIRTIO_VSOCK_TYPE_STREAM) +for stream socket types, and 2 (VIRTIO_VSOCK_TYPE_SEQPACKET) for seqpacket socket types. \begin{lstlisting} -#define VIRTIO_VSOCK_TYPE_STREAM 1 +#define VIRTIO_VSOCK_TYPE_STREAM 1 +#define VIRTIO_VSOCK_TYPE_SEQPACKET 2 \end{lstlisting} Stream sockets provide in-order, guaranteed, connection-oriented delivery -without message boundaries. +without message boundaries. Seqpacket sockets provide in-order, guaranteed, +connection-oriented delivery with message and record boundaries. \subsubsection{Buffer Space Management}\label{sec:Device Types / Socket Device / Device Operation / Buffer Space Management} \field{buf_alloc} and \field{fwd_cnt} are used for buffer space management of @@ -244,6 +249,26 @@ \subsubsection{Stream Sockets}\label{sec:Device Types / Socket Device / Device O destination) address tuple for a new connection while the other peer is still processing the old connection. +\subsubsection{Seqpacket Sockets}\label{sec:Device Types / Socket Device / Device Operation / Seqpacket Sockets} + +\paragraph{Message boundaries}\label{sec:Device Types / Socket Device / Device Operation / Seqpacket Sockets / Message boundaries} + +To provide message boundaries, last RW packet of each message has VIRTIO_VSOCK_SEQ_EOM +bit (bit 0) set in the \field{flags} of packet's header. + +\begin{lstlisting} +#define VIRTIO_VSOCK_SEQ_EOM 1 +\end{lstlisting} + +\paragraph{Record boundaries}\label{sec:Device Types / Socket Device / Device Operation / Seqpacket Sockets / Record boundaries} + +To provide record boundaries, last RW packet of each record has VIRTIO_VSOCK_SEQ_EOR +bit (bit 1) set in the \field{flags} of packet's header. + +\begin{lstlisting} +#define VIRTIO_VSOCK_SEQ_EOR 2 +\end{lstlisting} + \subsubsection{Device Events}\label{sec:Device Types / Socket Device / Device Operation / Device Events} Certain events are communicated by the device to the driver using the event -- 2.25.1 This publicly archived list offers a means to provide input to the OASIS Virtual I/O Device (VIRTIO) TC. In order to verify user consent to the Feedback License terms and to minimize spam in the list archive, subscription is required before posting. Subscribe: virtio-comment-subscribe@lists.oasis-open.org Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org List help: virtio-comment-help@lists.oasis-open.org List archive: https://lists.oasis-open.org/archives/virtio-comment/ Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists Committee: https://www.oasis-open.org/committees/virtio/ Join OASIS: https://www.oasis-open.org/join/ ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [virtio-comment] Re: [RFC PATCH v7 2/2] virtio-vsock: SOCK_SEQPACKET description 2021-08-10 11:47 ` [virtio-comment] [RFC PATCH v7 2/2] virtio-vsock: SOCK_SEQPACKET description Arseny Krasnov @ 2021-08-10 11:50 ` Arseny Krasnov 2021-08-11 9:29 ` [virtio-comment] " Stefano Garzarella 1 sibling, 0 replies; 6+ messages in thread From: Arseny Krasnov @ 2021-08-10 11:50 UTC (permalink / raw) To: cohuck@redhat.com, virtio-comment@lists.oasis-open.org, Stefan Hajnoczi, Stefano Garzarella, Michael S. Tsirkin, Jason Wang, David S. Miller, Jakub Kicinski, Colin Ian King, Norbert Slusarek, Andra Paraschiv Cc: virtualization@lists.linux-foundation.org, oxffffaa@gmail.com Hello, i'm a little bit confused about record boundaries description here: is it neccessary to describe what is "message", what is "record" and MSG_EOR bit from POSIX, because this is virtio spec and it is not related with Linux and POSIX Thank You On 10.08.2021 14:47, Arseny Krasnov wrote: > This adds description of SOCK_SEQPACKET socket type > support for virtio-vsock. > > Signed-off-by: Arseny Krasnov <arseny.krasnov@kaspersky.com> > --- > virtio-vsock.tex | 35 ++++++++++++++++++++++++++++++----- > 1 file changed, 30 insertions(+), 5 deletions(-) > > diff --git a/virtio-vsock.tex b/virtio-vsock.tex > index ad57f9d..ca76812 100644 > --- a/virtio-vsock.tex > +++ b/virtio-vsock.tex > @@ -16,7 +16,10 @@ \subsection{Virtqueues}\label{sec:Device Types / Socket Device / Virtqueues} > > \subsection{Feature bits}\label{sec:Device Types / Socket Device / Feature bits} > > -There are currently no feature bits defined for this device. > +\begin{description} > +\item VIRTIO_VSOCK_F_SEQPACKET (1) SOCK_SEQPACKET socket type is > + supported. > +\end{description} > > \subsection{Device configuration layout}\label{sec:Device Types / Socket Device / Device configuration layout} > > @@ -135,15 +138,17 @@ \subsubsection{Addressing}\label{sec:Device Types / Socket Device / Device Opera > consists of a (cid, port number) tuple. The header fields used for this are > \field{src_cid}, \field{src_port}, \field{dst_cid}, and \field{dst_port}. > > -Currently only stream sockets are supported. \field{type} is 1 (VIRTIO_VSOCK_TYPE_STREAM) > -for stream socket types. > +Currently stream and seqpacket sockets are supported. \field{type} is 1 (VIRTIO_VSOCK_TYPE_STREAM) > +for stream socket types, and 2 (VIRTIO_VSOCK_TYPE_SEQPACKET) for seqpacket socket types. > > \begin{lstlisting} > -#define VIRTIO_VSOCK_TYPE_STREAM 1 > +#define VIRTIO_VSOCK_TYPE_STREAM 1 > +#define VIRTIO_VSOCK_TYPE_SEQPACKET 2 > \end{lstlisting} > > Stream sockets provide in-order, guaranteed, connection-oriented delivery > -without message boundaries. > +without message boundaries. Seqpacket sockets provide in-order, guaranteed, > +connection-oriented delivery with message and record boundaries. > > \subsubsection{Buffer Space Management}\label{sec:Device Types / Socket Device / Device Operation / Buffer Space Management} > \field{buf_alloc} and \field{fwd_cnt} are used for buffer space management of > @@ -244,6 +249,26 @@ \subsubsection{Stream Sockets}\label{sec:Device Types / Socket Device / Device O > destination) address tuple for a new connection while the other peer is still > processing the old connection. > > +\subsubsection{Seqpacket Sockets}\label{sec:Device Types / Socket Device / Device Operation / Seqpacket Sockets} > + > +\paragraph{Message boundaries}\label{sec:Device Types / Socket Device / Device Operation / Seqpacket Sockets / Message boundaries} > + > +To provide message boundaries, last RW packet of each message has VIRTIO_VSOCK_SEQ_EOM > +bit (bit 0) set in the \field{flags} of packet's header. > + > +\begin{lstlisting} > +#define VIRTIO_VSOCK_SEQ_EOM 1 > +\end{lstlisting} > + > +\paragraph{Record boundaries}\label{sec:Device Types / Socket Device / Device Operation / Seqpacket Sockets / Record boundaries} > + > +To provide record boundaries, last RW packet of each record has VIRTIO_VSOCK_SEQ_EOR > +bit (bit 1) set in the \field{flags} of packet's header. > + > +\begin{lstlisting} > +#define VIRTIO_VSOCK_SEQ_EOR 2 > +\end{lstlisting} > + > \subsubsection{Device Events}\label{sec:Device Types / Socket Device / Device Operation / Device Events} > > Certain events are communicated by the device to the driver using the event This publicly archived list offers a means to provide input to the OASIS Virtual I/O Device (VIRTIO) TC. In order to verify user consent to the Feedback License terms and to minimize spam in the list archive, subscription is required before posting. Subscribe: virtio-comment-subscribe@lists.oasis-open.org Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org List help: virtio-comment-help@lists.oasis-open.org List archive: https://lists.oasis-open.org/archives/virtio-comment/ Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists Committee: https://www.oasis-open.org/committees/virtio/ Join OASIS: https://www.oasis-open.org/join/ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [virtio-comment] [RFC PATCH v7 2/2] virtio-vsock: SOCK_SEQPACKET description 2021-08-10 11:47 ` [virtio-comment] [RFC PATCH v7 2/2] virtio-vsock: SOCK_SEQPACKET description Arseny Krasnov 2021-08-10 11:50 ` [virtio-comment] " Arseny Krasnov @ 2021-08-11 9:29 ` Stefano Garzarella 1 sibling, 0 replies; 6+ messages in thread From: Stefano Garzarella @ 2021-08-11 9:29 UTC (permalink / raw) To: Arseny Krasnov Cc: cohuck, virtio-comment, Stefan Hajnoczi, Michael S. Tsirkin, Jason Wang, David S. Miller, Jakub Kicinski, Colin Ian King, Norbert Slusarek, Andra Paraschiv, virtualization, oxffffaa On Tue, Aug 10, 2021 at 02:47:06PM +0300, Arseny Krasnov wrote: >This adds description of SOCK_SEQPACKET socket type >support for virtio-vsock. > >Signed-off-by: Arseny Krasnov <arseny.krasnov@kaspersky.com> >--- > virtio-vsock.tex | 35 ++++++++++++++++++++++++++++++----- > 1 file changed, 30 insertions(+), 5 deletions(-) > >diff --git a/virtio-vsock.tex b/virtio-vsock.tex >index ad57f9d..ca76812 100644 >--- a/virtio-vsock.tex >+++ b/virtio-vsock.tex >@@ -16,7 +16,10 @@ \subsection{Virtqueues}\label{sec:Device Types / Socket Device / Virtqueues} > > \subsection{Feature bits}\label{sec:Device Types / Socket Device / Feature bits} > >-There are currently no feature bits defined for this device. >+\begin{description} >+\item VIRTIO_VSOCK_F_SEQPACKET (1) SOCK_SEQPACKET socket type is >+ supported. >+\end{description} > > \subsection{Device configuration layout}\label{sec:Device Types / Socket Device / Device configuration layout} > >@@ -135,15 +138,17 @@ \subsubsection{Addressing}\label{sec:Device Types / Socket Device / Device Opera > consists of a (cid, port number) tuple. The header fields used for this are > \field{src_cid}, \field{src_port}, \field{dst_cid}, and \field{dst_port}. > >-Currently only stream sockets are supported. \field{type} is 1 (VIRTIO_VSOCK_TYPE_STREAM) >-for stream socket types. >+Currently stream and seqpacket sockets are supported. \field{type} is 1 (VIRTIO_VSOCK_TYPE_STREAM) >+for stream socket types, and 2 (VIRTIO_VSOCK_TYPE_SEQPACKET) for seqpacket socket types. > > \begin{lstlisting} >-#define VIRTIO_VSOCK_TYPE_STREAM 1 >+#define VIRTIO_VSOCK_TYPE_STREAM 1 >+#define VIRTIO_VSOCK_TYPE_SEQPACKET 2 > \end{lstlisting} > > Stream sockets provide in-order, guaranteed, connection-oriented delivery >-without message boundaries. >+without message boundaries. Seqpacket sockets provide in-order, guaranteed, >+connection-oriented delivery with message and record boundaries. > > \subsubsection{Buffer Space Management}\label{sec:Device Types / Socket Device / Device Operation / Buffer Space Management} > \field{buf_alloc} and \field{fwd_cnt} are used for buffer space management of >@@ -244,6 +249,26 @@ \subsubsection{Stream Sockets}\label{sec:Device Types / Socket Device / Device O > destination) address tuple for a new connection while the other peer is still > processing the old connection. > >+\subsubsection{Seqpacket Sockets}\label{sec:Device Types / Socket Device / Device Operation / Seqpacket Sockets} >+ >+\paragraph{Message boundaries}\label{sec:Device Types / Socket Device / Device Operation / Seqpacket Sockets / Message boundaries} >+ >+To provide message boundaries, last RW packet of each message has VIRTIO_VSOCK_SEQ_EOM >+bit (bit 0) set in the \field{flags} of packet's header. >+ >+\begin{lstlisting} >+#define VIRTIO_VSOCK_SEQ_EOM 1 >+\end{lstlisting} >+ >+\paragraph{Record boundaries}\label{sec:Device Types / Socket Device / Device Operation / Seqpacket Sockets / Record boundaries} >+ >+To provide record boundaries, last RW packet of each record has VIRTIO_VSOCK_SEQ_EOR >+bit (bit 1) set in the \field{flags} of packet's header. >+ >+\begin{lstlisting} >+#define VIRTIO_VSOCK_SEQ_EOR 2 >+\end{lstlisting} >+ Maybe we could have a single section where we talk about the boundaries and list the two flags together. We should also explain what we mean by message boundaries (payload sent with a single system call) and record boundaries (payload with MSG_EOR flag set). Thanks, Stefano ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-08-11 9:29 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-08-10 11:46 [virtio-comment] [RFC PATCH v7 0/2] virtio-vsock: introduce SOCK_SEQPACKET description Arseny Krasnov 2021-08-10 11:46 ` [virtio-comment] [RFC PATCH v7 1/2] virtio-vsock: use C style defines for constants Arseny Krasnov 2021-08-11 9:22 ` Stefano Garzarella 2021-08-10 11:47 ` [virtio-comment] [RFC PATCH v7 2/2] virtio-vsock: SOCK_SEQPACKET description Arseny Krasnov 2021-08-10 11:50 ` [virtio-comment] " Arseny Krasnov 2021-08-11 9:29 ` [virtio-comment] " Stefano Garzarella
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox