[virtio-dev] Re: [virtio-comment] Re: [PATCH v7] virtio-net: support inner header hash

2023-01-09 Thread Heng Qi




在 2023/1/9 下午7:39, Michael S. Tsirkin 写道:

Btw this "are defined below" all over the place is just contributing
to making the spec unnecesarily verbose. Simple "are:" will do.


Sure. I'll fix it in the next version.

Thanks.


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



Re: [virtio-dev] Re: [virtio-comment] Re: [PATCH v7] virtio-net: support inner header hash

2023-01-09 Thread Heng Qi
On Tue, Jan 10, 2023 at 12:57:38AM -0500, Michael S. Tsirkin wrote:
> On Tue, Jan 10, 2023 at 12:25:02AM -0500, Michael S. Tsirkin wrote:
> > > This will give extra pressure on the management stack, e.g it requires
> > > the device to have an out of spec way for introspection.
> > > 
> > > Thanks
> > 
> > As I tried to explain this is already the case. Feature bits do not
> > describe device capabilities fully, some of them are in config space.
> 
> To be precise, this does not necessarily require introspection, but
> it does require management control over config space
> such as supported hash types just like it has control over feature bits.
> E.g. QEMU currently seems to hard-code these to
> #define VIRTIO_NET_RSS_SUPPORTED_HASHES (VIRTIO_NET_RSS_HASH_TYPE_IPv4 | \
>  VIRTIO_NET_RSS_HASH_TYPE_TCPv4 | \
>  VIRTIO_NET_RSS_HASH_TYPE_UDPv4 | \
>  VIRTIO_NET_RSS_HASH_TYPE_IPv6 | \
>  VIRTIO_NET_RSS_HASH_TYPE_TCPv6 | \
>  VIRTIO_NET_RSS_HASH_TYPE_UDPv6 | \
>  VIRTIO_NET_RSS_HASH_TYPE_IP_EX | \
>  VIRTIO_NET_RSS_HASH_TYPE_TCP_EX | \
>  VIRTIO_NET_RSS_HASH_TYPE_UDP_EX)
> 
> but there's no reason not to give management control over these.

Yes, QEMU has requirements for live migration: the PCI config space will be
checked in get_pci_config_device(), and if src and dst are inconsistent, it
will prompt that the live migration failed. 
In fact, this is also done within our group. Live migration requires that
the two VMs have the same rss configuration, otherwise the migration will fail.

Therefore, it seems that we can regularize the description of 
VIRTIO_NET_F_HASH_TUNNEL into
"[VIRTIO_NET_F_HASH_TUNNEL(52)] Device supports inner header hash for 
tunnel-encapsulated packets.",
and use different hash_types to help the migration determine whether it can 
succeed.

Thanks.

> 
> -- 
> MST

-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



Re: [virtio-dev] Re: [virtio-comment] Re: [PATCH v7] virtio-net: support inner header hash

2023-01-09 Thread Michael S. Tsirkin
On Tue, Jan 10, 2023 at 12:25:02AM -0500, Michael S. Tsirkin wrote:
> > This will give extra pressure on the management stack, e.g it requires
> > the device to have an out of spec way for introspection.
> > 
> > Thanks
> 
> As I tried to explain this is already the case. Feature bits do not
> describe device capabilities fully, some of them are in config space.

To be precise, this does not necessarily require introspection, but
it does require management control over config space
such as supported hash types just like it has control over feature bits.
E.g. QEMU currently seems to hard-code these to
#define VIRTIO_NET_RSS_SUPPORTED_HASHES (VIRTIO_NET_RSS_HASH_TYPE_IPv4 | \
 VIRTIO_NET_RSS_HASH_TYPE_TCPv4 | \
 VIRTIO_NET_RSS_HASH_TYPE_UDPv4 | \
 VIRTIO_NET_RSS_HASH_TYPE_IPv6 | \
 VIRTIO_NET_RSS_HASH_TYPE_TCPv6 | \
 VIRTIO_NET_RSS_HASH_TYPE_UDPv6 | \
 VIRTIO_NET_RSS_HASH_TYPE_IP_EX | \
 VIRTIO_NET_RSS_HASH_TYPE_TCP_EX | \
 VIRTIO_NET_RSS_HASH_TYPE_UDP_EX)

but there's no reason not to give management control over these.

-- 
MST


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



Re: [virtio-dev] Re: [virtio-comment] Re: [PATCH v7] virtio-net: support inner header hash

2023-01-09 Thread Michael S. Tsirkin
On Tue, Jan 10, 2023 at 10:06:53AM +0800, Jason Wang wrote:
> On Mon, Jan 9, 2023 at 7:34 PM Michael S. Tsirkin  wrote:
> >
> > On Mon, Jan 09, 2023 at 04:59:26PM +0800, Jason Wang wrote:
> > > On Mon, Jan 9, 2023 at 10:43 AM Heng Qi  wrote:
> > > >
> > > > On Fri, Jan 06, 2023 at 01:59:38AM -0500, Michael S. Tsirkin wrote:
> > > > > On Fri, Jan 06, 2023 at 02:42:21PM +0800, Heng Qi wrote:
> > > > > > On Fri, Jan 06, 2023 at 12:27:04AM -0500, Michael S. Tsirkin wrote:
> > > > > > > On Wed, Jan 04, 2023 at 03:14:01PM +0800, Heng Qi wrote:
> > > > > > > > If the tunnel is used to encapsulate the packets, the hash 
> > > > > > > > calculated
> > > > > > > > using the outer header of the receive packets is always fixed 
> > > > > > > > for the
> > > > > > > > same flow packets, i.e. they will be steered to the same 
> > > > > > > > receive queue.
> > > > > > > >
> > > > > > > > We add a feature bit VIRTIO_NET_F_HASH_TUNNEL and related 
> > > > > > > > bitmasks
> > > > > > > > in \field{hash_types}, which instructs the device to calculate 
> > > > > > > > the
> > > > > > > > hash using the inner headers of tunnel-encapsulated packets. 
> > > > > > > > Besides,
> > > > > > > > values in \field{hash_report_tunnel} are added to report tunnel 
> > > > > > > > types.
> > > > > > > >
> > > > > > > > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/151
> > > > > > > >
> > > > > > > > Reviewed-by: Jason Wang 
> > > > > > > > Signed-off-by: Heng Qi 
> > > > > > > > Signed-off-by: Xuan Zhuo 
> > > > > > >
> > > > > > >
> > > > > > > ok close to being ready. a couple of minor comments.
> > > > > > >
> > > > > > > > ---
> > > > > > > > v6:
> > > > > > > > 1. Modify the wording of some sentences for clarity. 
> > > > > > > > @Michael S. Tsirkin
> > > > > > > > 2. Fix some syntax issues. @Michael S. Tsirkin
> > > > > > > >
> > > > > > > > v5:
> > > > > > > > 1. Fix some syntax and capitalization issues. @Michael 
> > > > > > > > S. Tsirkin
> > > > > > > > 2. Use encapsulated/encaptulation uniformly. @Michael 
> > > > > > > > S. Tsirkin
> > > > > > > > 3. Move the links to introduction section. @Michael S. 
> > > > > > > > Tsirkin
> > > > > > > > 4. Clarify some sentences. @Michael S. Tsirkin
> > > > > > > >
> > > > > > > > v4:
> > > > > > > > 1. Clarify some paragraphs. @Cornelia Huck
> > > > > > > > 2. Fix the u8 type. @Cornelia Huck
> > > > > > > >
> > > > > > > > v3:
> > > > > > > > 1. Rename VIRTIO_NET_F_HASH_GRE_VXLAN_GENEVE_INNER to 
> > > > > > > > VIRTIO_NET_F_HASH_TUNNEL. @Jason Wang
> > > > > > > > 2. Make things clearer. @Jason Wang @Michael S. Tsirkin
> > > > > > > > 3. Keep the possibility to use inner hash for automatic 
> > > > > > > > receive steering. @Jason Wang
> > > > > > > > 4. Add the "Tunnel packet" paragraph to avoid repeating 
> > > > > > > > the GRE etc. many times. @Michael S. Tsirkin
> > > > > > > >
> > > > > > > > v2:
> > > > > > > > 1. Add a feature bit for GRE/VXLAN/GENEVE inner hash. 
> > > > > > > > @Jason Wang
> > > > > > > > 2. Chang \field{hash_tunnel} to 
> > > > > > > > \field{hash_report_tunnel}. @Jason Wang, @Michael S. Tsirkin
> > > > > > > >
> > > > > > > > v1:
> > > > > > > > 1. Remove the patch for the bitmask fix. @Michael S. 
> > > > > > > > Tsirkin
> > > > > > > > 2. Clarify some paragraphs. @Jason Wang
> > > > > > > > 3. Add \field{hash_tunnel} and 
> > > > > > > > VIRTIO_NET_HASH_REPORT_GRE. @Yuri Benditovich
> > > > > > > >
> > > > > > > >  content.tex  | 191 
> > > > > > > > +--
> > > > > > > >  introduction.tex |  19 +
> > > > > > > >  2 files changed, 203 insertions(+), 7 deletions(-)
> > > > > > > >
> > > > > > > > diff --git a/content.tex b/content.tex
> > > > > > > > index e863709..7845f6c 100644
> > > > > > > > --- a/content.tex
> > > > > > > > +++ b/content.tex
> > > > > > > > @@ -3084,6 +3084,9 @@ \subsection{Feature 
> > > > > > > > bits}\label{sec:Device Types / Network Device / Feature bits
> > > > > > > >  \item[VIRTIO_NET_F_CTRL_MAC_ADDR(23)] Set MAC address through 
> > > > > > > > control
> > > > > > > >  channel.
> > > > > > > >
> > > > > > > > +\item[VIRTIO_NET_F_HASH_TUNNEL(52)] Device supports inner
> > > > > > > > +header hash for GRE, VXLAN and GENEVE tunnel-encapsulated 
> > > > > > > > packets.
> > > > > > >
> > > > > > > I would probably drop the list of tunnel types here.
> > > > > >
> > > > > > Do you mean to use "Device supports inner header hash for
> > > > > > tunnel-encapsulated packets." instead? Why? We do want to use this
> > > > > > feature bit to indicate that the device supports inner hashing of
> > > > > > GRE, VXLAN and GENEVE encapsulated packets. As in the v3 discussion
> > > > > > https://lists.oasis-open.org/archives/virtio-dev/202212/msg00024.html
> > > > > >  ,
> > > > > > we discussed using VIRTIO_NET_F_HASH_TUNNEL to replace
> > > 

Re: [virtio-dev] Re: [virtio-comment] Re: [PATCH v7] virtio-net: support inner header hash

2023-01-09 Thread Jason Wang
On Mon, Jan 9, 2023 at 7:34 PM Michael S. Tsirkin  wrote:
>
> On Mon, Jan 09, 2023 at 04:59:26PM +0800, Jason Wang wrote:
> > On Mon, Jan 9, 2023 at 10:43 AM Heng Qi  wrote:
> > >
> > > On Fri, Jan 06, 2023 at 01:59:38AM -0500, Michael S. Tsirkin wrote:
> > > > On Fri, Jan 06, 2023 at 02:42:21PM +0800, Heng Qi wrote:
> > > > > On Fri, Jan 06, 2023 at 12:27:04AM -0500, Michael S. Tsirkin wrote:
> > > > > > On Wed, Jan 04, 2023 at 03:14:01PM +0800, Heng Qi wrote:
> > > > > > > If the tunnel is used to encapsulate the packets, the hash 
> > > > > > > calculated
> > > > > > > using the outer header of the receive packets is always fixed for 
> > > > > > > the
> > > > > > > same flow packets, i.e. they will be steered to the same receive 
> > > > > > > queue.
> > > > > > >
> > > > > > > We add a feature bit VIRTIO_NET_F_HASH_TUNNEL and related bitmasks
> > > > > > > in \field{hash_types}, which instructs the device to calculate the
> > > > > > > hash using the inner headers of tunnel-encapsulated packets. 
> > > > > > > Besides,
> > > > > > > values in \field{hash_report_tunnel} are added to report tunnel 
> > > > > > > types.
> > > > > > >
> > > > > > > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/151
> > > > > > >
> > > > > > > Reviewed-by: Jason Wang 
> > > > > > > Signed-off-by: Heng Qi 
> > > > > > > Signed-off-by: Xuan Zhuo 
> > > > > >
> > > > > >
> > > > > > ok close to being ready. a couple of minor comments.
> > > > > >
> > > > > > > ---
> > > > > > > v6:
> > > > > > > 1. Modify the wording of some sentences for clarity. 
> > > > > > > @Michael S. Tsirkin
> > > > > > > 2. Fix some syntax issues. @Michael S. Tsirkin
> > > > > > >
> > > > > > > v5:
> > > > > > > 1. Fix some syntax and capitalization issues. @Michael S. 
> > > > > > > Tsirkin
> > > > > > > 2. Use encapsulated/encaptulation uniformly. @Michael S. 
> > > > > > > Tsirkin
> > > > > > > 3. Move the links to introduction section. @Michael S. 
> > > > > > > Tsirkin
> > > > > > > 4. Clarify some sentences. @Michael S. Tsirkin
> > > > > > >
> > > > > > > v4:
> > > > > > > 1. Clarify some paragraphs. @Cornelia Huck
> > > > > > > 2. Fix the u8 type. @Cornelia Huck
> > > > > > >
> > > > > > > v3:
> > > > > > > 1. Rename VIRTIO_NET_F_HASH_GRE_VXLAN_GENEVE_INNER to 
> > > > > > > VIRTIO_NET_F_HASH_TUNNEL. @Jason Wang
> > > > > > > 2. Make things clearer. @Jason Wang @Michael S. Tsirkin
> > > > > > > 3. Keep the possibility to use inner hash for automatic 
> > > > > > > receive steering. @Jason Wang
> > > > > > > 4. Add the "Tunnel packet" paragraph to avoid repeating 
> > > > > > > the GRE etc. many times. @Michael S. Tsirkin
> > > > > > >
> > > > > > > v2:
> > > > > > > 1. Add a feature bit for GRE/VXLAN/GENEVE inner hash. 
> > > > > > > @Jason Wang
> > > > > > > 2. Chang \field{hash_tunnel} to 
> > > > > > > \field{hash_report_tunnel}. @Jason Wang, @Michael S. Tsirkin
> > > > > > >
> > > > > > > v1:
> > > > > > > 1. Remove the patch for the bitmask fix. @Michael S. 
> > > > > > > Tsirkin
> > > > > > > 2. Clarify some paragraphs. @Jason Wang
> > > > > > > 3. Add \field{hash_tunnel} and 
> > > > > > > VIRTIO_NET_HASH_REPORT_GRE. @Yuri Benditovich
> > > > > > >
> > > > > > >  content.tex  | 191 
> > > > > > > +--
> > > > > > >  introduction.tex |  19 +
> > > > > > >  2 files changed, 203 insertions(+), 7 deletions(-)
> > > > > > >
> > > > > > > diff --git a/content.tex b/content.tex
> > > > > > > index e863709..7845f6c 100644
> > > > > > > --- a/content.tex
> > > > > > > +++ b/content.tex
> > > > > > > @@ -3084,6 +3084,9 @@ \subsection{Feature bits}\label{sec:Device 
> > > > > > > Types / Network Device / Feature bits
> > > > > > >  \item[VIRTIO_NET_F_CTRL_MAC_ADDR(23)] Set MAC address through 
> > > > > > > control
> > > > > > >  channel.
> > > > > > >
> > > > > > > +\item[VIRTIO_NET_F_HASH_TUNNEL(52)] Device supports inner
> > > > > > > +header hash for GRE, VXLAN and GENEVE tunnel-encapsulated 
> > > > > > > packets.
> > > > > >
> > > > > > I would probably drop the list of tunnel types here.
> > > > >
> > > > > Do you mean to use "Device supports inner header hash for
> > > > > tunnel-encapsulated packets." instead? Why? We do want to use this
> > > > > feature bit to indicate that the device supports inner hashing of
> > > > > GRE, VXLAN and GENEVE encapsulated packets. As in the v3 discussion
> > > > > https://lists.oasis-open.org/archives/virtio-dev/202212/msg00024.html 
> > > > > ,
> > > > > we discussed using VIRTIO_NET_F_HASH_TUNNEL to replace
> > > > > VIRTIO_NET_F_HASH_GRE_VXLAN_GENEVE_INNER and plan to use
> > > > > VIRTIO_NET_F_HASH_TUNNEL_XYZ for future extensions.
> > > >
> > > > So imagine we add a new tunnel type. Let's say there's VXLAN v2.
> > > > why would we need a new feature bit? I think a new hash type
> > > > will be 

[virtio-dev] RE: [PATCH v1 01/20] virtio-network: Maintain network device spec in separate directory

2023-01-09 Thread Parav Pandit


> From: Michael S. Tsirkin 
> Sent: Monday, January 9, 2023 2:15 PM
> 
> > > So my preference is \\input for now.
> > \\input doesn't support reading from the directory.
> 
> I just tested this and it seems to work fine:
> 
> \input{sub/file.tex}
> 
> what is the issue that you see?

I was running with file_conformance.tex name and it doesn't like underscore 
based named.
And I lost track when I moved away from understore and missed to revert to 
input again.

> 
> I think I prefer \\input as it's easier to understand.

Yes. I will respin with \input and directories.

> 
> --
> MST


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [PATCH v8] virtio-network: Clarify VLAN filter table configuration

2023-01-09 Thread Si-Wei Liu




On 1/9/2023 8:33 AM, Parav Pandit wrote:

The filtering behavior of the VLAN filter commands is not very clear as
discussed in thread [1].

Hence, add the command description and device requirements for it.

[1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg912392.html
Fixes: https://github.com/oasis-tcs/virtio-spec/issues/147
Suggested-by: Si-Wei Liu 
Signed-off-by: Parav Pandit 

Reviewed-by: Si-Wei Liu 

-Siwei

---
changelog:
v7->v8:
- Fixed grammar
v6->v7:
- Moved VLAN filter table description from requirements to device
   descrption section
- Added MUST and SHOULD to device requirements
v5->v6:
- removed unwanted article
v4->v5:
- reworded 'vlan filtering table' to 'vlan filter table' to match
   to the existing description about vlan filtering
- remove confusing text around VLAN_DEL command description
- added missing article
- reword device match configuration to device configuration
- changed 'found' to 'present' and 'not found' to 'absent' to
   consider vlan filter table as config table rather
   than search table
v3->v4:
- added description for accepting vlan tagged packets when vlan
   filter is not negotiated
v2->v3:
- corrected grammar
- simplified description for untagged packets
v1->v2:
- adapt to new file path
v0->v1:
- added missing conformance section link
---
  .../virtio-network/device-conformance.tex |  1 +
  device-types/virtio-network/device.tex| 22 ++-
  2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/device-types/virtio-network/device-conformance.tex 
b/device-types/virtio-network/device-conformance.tex
index c686377..54f6783 100644
--- a/device-types/virtio-network/device-conformance.tex
+++ b/device-types/virtio-network/device-conformance.tex
@@ -9,6 +9,7 @@
  \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Processing of Incoming Packets}
  \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Packet Receive Filtering}
  \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Setting MAC Address Filtering}
+\item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / VLAN Filtering}
  \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Gratuitous Packet Sending}
  \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Automatic receive steering in multiqueue mode}
  \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Receive-side scaling (RSS) / RSS processing}
diff --git a/device-types/virtio-network/device.tex 
b/device-types/virtio-network/device.tex
index e0637c5..7c89f30 100644
--- a/device-types/virtio-network/device.tex
+++ b/device-types/virtio-network/device.tex
@@ -1194,7 +1194,11 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types 
/ Network Device / Devi
  \paragraph{VLAN Filtering}\label{sec:Device Types / Network Device / Device 
Operation / Control Virtqueue / VLAN Filtering}
  
  If the driver negotiates the VIRTIO_NET_F_CTRL_VLAN feature, it

-can control a VLAN filter table in the device.
+can control a VLAN filter table in the device. The VLAN filter
+table applies only to VLAN tagged packets.
+
+When VIRTIO_NET_F_CTRL_VLAN is negotiated, the device starts with
+an empty VLAN filter table.
  
  \begin{note}

  Similar to the MAC address based filtering, the VLAN filtering
@@ -1210,6 +1214,22 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types 
/ Network Device / Devi
  Both the VIRTIO_NET_CTRL_VLAN_ADD and VIRTIO_NET_CTRL_VLAN_DEL
  command take a little-endian 16-bit VLAN id as the command-specific-data.
  
+VIRTIO_NET_CTRL_VLAN_ADD command adds the specified VLAN to the

+VLAN filter table.
+
+VIRTIO_NET_CTRL_VLAN_DEL command removes the specified VLAN from
+the VLAN filter table.
+
+\devicenormative{\subparagraph}{VLAN Filtering}{Device Types / Network Device 
/ Device Operation / Control Virtqueue / VLAN Filtering}
+
+When VIRTIO_NET_F_CTRL_VLAN is not negotiated, the device MUST
+accept all VLAN tagged packets as per the device configuration.
+
+When VIRTIO_NET_F_CTRL_VLAN is negotiated, the device MUST
+accept all VLAN tagged packets whose VLAN tag is present in
+the VLAN filter table and SHOULD drop all VLAN tagged packets
+whose VLAN tag is absent in the VLAN filter table.
+
  \subparagraph{Legacy Interface: VLAN Filtering}\label{sec:Device Types / 
Network Device / Device Operation / Control Virtqueue / VLAN Filtering / Legacy 
Interface: VLAN Filtering}
  When using the legacy interface, transitional devices and drivers
  MUST format the VLAN id



-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [PATCH v1 01/20] virtio-network: Maintain network device spec in separate directory

2023-01-09 Thread Michael S. Tsirkin
On Mon, Jan 09, 2023 at 02:12:36PM +, Parav Pandit wrote:
> 
> > From: Michael S. Tsirkin 
> > Sent: Monday, January 9, 2023 8:43 AM
> > 
> > I found another issue with this. Currently for redline diff generation
> > we use latexpand. Using a flat expanded file has lots of benefits, in
> > particular latexdiff is sometimes fragile as it is, with a flat file
> > one can at least see the input it gets.
> > 
> > We should either stick with \\input or more work is needed on
> > these scripts. Besides, we are already using \\input and I like
> > consistency.
> > 
> > So my preference is \\input for now.
> \\input doesn't support reading from the directory.

I just tested this and it seems to work fine:

\input{sub/file.tex}

what is the issue that you see?

I think I prefer \\input as it's easier to understand.

-- 
MST


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [PATCH v2 00/20] Split device spec to its individual files

2023-01-09 Thread Michael S. Tsirkin
On Mon, Jan 09, 2023 at 06:28:29PM +0200, Parav Pandit wrote:
> Relatively several of the recent device specifications are maintained
> in their own specification file. Such separate files enables better
> maintenance of the specification overall.
> However, several of the initial virtio device specifications
> are located in single file.
> 
> Hence, split them into their individual files.
> 
> Additionally, each device's driver and device conformance is
> present in one giant conformance file all together.
> 
> As Michael suggest's move this device and driver conformance
> section adjacent to device specification in each device specific
> directory. This further makes device specification self-contained.
> 
> Added patch to fix spelling errors in network device
> specification which was inherited from its previous file
> location.
> 
> Patches do not change any part of the specification outcome
> except fixing the spelling errors.
> It only changes how the specification is maintained.
> 
> patch summary:
> -
> patch 1 to 7 creates new files for moving devices spec out of
> content and conformance files.
> patch 8 to 20 move existing dedicated file spec to new directory
> and creates per device,driver conformance file for each device.
> 
> changelog:
> --
> v1->v2:
> - removed extra blank lines in network and block device files
> - added missing device conformance link for rpmb, sound, i2c and
>   gpio devices
> v0->v1:
> - move device spec to their own directory
> - added split files for conformance and placed them adjacent to
>   device spec
> - added patch to fix spelling errors in network device
> 
> Parav Pandit (20):
>   virtio-network: Maintain network device spec in separate directory
>   virtio-network: Fix spelling errors
>   virtio-block: Maintain block device spec in separate directory
>   virtio-console: Maintain console device spec in separate directory
>   virtio-entropy: Maintain entropy device spec in separate directory
>   virtio-mem-balloon: Maintain mem balloon device spec in separate
> directory
>   virtio-scsi: Maintain scsi host device spec in separate directory
>   virtio-gpu: Maintain gpu device spec in separate directory
>   virtio-input: Maintain input device spec in separate directory
>   virtio-crypto: Maintain crypto device spec in separate directory
>   virtio-vsock: Maintain socket device spec in separate directory
>   virtio-fs: Maintain file system device spec in separate directory
>   virtio-rpmb: Maintain rpmb device spec in separate directory
>   virtio-iommu: Maintain iommu device spec in separate directory
>   virtio-sound: Maintain sound device spec in separate directory
>   virtio-mem: Maintain memory device spec in separate directory
>   virtio-i2c: Maintain i2c device spec in separate directory
>   virtio-scmi: Maintain scmi device spec in separate directory
>   virtio-gpio: Maintain gpio device spec in separate directory
>   virtio-pmem: Maintain pmem device spec in separate directory
> 
>  conformance.tex   |  456 +-
>  content.tex   | 4561 +
>  .../virtio-block/device-conformance.tex   |8 +
>  device-types/virtio-block/device.tex  | 1313 +
>  .../virtio-block/driver-conformance.tex   |8 +
>  .../virtio-console/device-conformance.tex |8 +
>  device-types/virtio-console/device.tex|  231 +
>  .../virtio-console/driver-conformance.tex |8 +
>  .../virtio-crypto/device-conformance.tex  |   13 +
>  .../virtio-crypto/device.tex  |0
>  .../virtio-crypto/driver-conformance.tex  |   14 +
>  .../virtio-entropy/device-conformance.tex |7 +
>  device-types/virtio-entropy/device.tex|   42 +
>  .../virtio-entropy/driver-conformance.tex |7 +
>  device-types/virtio-fs/device-conformance.tex |9 +
>  .../virtio-fs/device.tex  |0
>  device-types/virtio-fs/driver-conformance.tex |   10 +
>  .../virtio-gpio/device-conformance.tex|9 +
>  .../virtio-gpio/device.tex|0
>  .../virtio-gpio/driver-conformance.tex|9 +
>  .../virtio-gpu/device-conformance.tex |8 +
>  .../virtio-gpu/device.tex |0
>  .../virtio-i2c/device-conformance.tex |7 +
>  .../virtio-i2c/device.tex |0
>  .../virtio-i2c/driver-conformance.tex |7 +
>  .../virtio-input/device-conformance.tex   |8 +
>  .../virtio-input/device.tex   |0
>  .../virtio-input/driver-conformance.tex   |8 +
>  .../virtio-iommu/device-conformance.tex   |   16 +
>  .../virtio-iommu/device.tex   |0
>  .../virtio-iommu/driver-conformance.tex   |   17 +
>  .../virtio-mem-balloon/device-conformance.tex |   12 +
>  device-types/virtio-mem-balloon/device.tex|  634 +++
>  .../virtio-mem-balloon/driver-conformance.tex |   12 +
>  

[virtio-dev] Re: [PATCH v8] virtio-network: Clarify VLAN filter table configuration

2023-01-09 Thread Michael S. Tsirkin
On Mon, Jan 09, 2023 at 06:33:01PM +0200, Parav Pandit wrote:
> The filtering behavior of the VLAN filter commands is not very clear as
> discussed in thread [1].
> 
> Hence, add the command description and device requirements for it.
> 
> [1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg912392.html
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/147
> Suggested-by: Si-Wei Liu 
> Signed-off-by: Parav Pandit 

Acked-by: Michael S. Tsirkin 

> ---
> changelog:
> v7->v8:
> - Fixed grammar
> v6->v7:
> - Moved VLAN filter table description from requirements to device
>   descrption section
> - Added MUST and SHOULD to device requirements
> v5->v6:
> - removed unwanted article
> v4->v5:
> - reworded 'vlan filtering table' to 'vlan filter table' to match
>   to the existing description about vlan filtering
> - remove confusing text around VLAN_DEL command description
> - added missing article
> - reword device match configuration to device configuration
> - changed 'found' to 'present' and 'not found' to 'absent' to
>   consider vlan filter table as config table rather
>   than search table
> v3->v4:
> - added description for accepting vlan tagged packets when vlan
>   filter is not negotiated
> v2->v3:
> - corrected grammar
> - simplified description for untagged packets
> v1->v2:
> - adapt to new file path
> v0->v1:
> - added missing conformance section link
> ---
>  .../virtio-network/device-conformance.tex |  1 +
>  device-types/virtio-network/device.tex| 22 ++-
>  2 files changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/device-types/virtio-network/device-conformance.tex 
> b/device-types/virtio-network/device-conformance.tex
> index c686377..54f6783 100644
> --- a/device-types/virtio-network/device-conformance.tex
> +++ b/device-types/virtio-network/device-conformance.tex
> @@ -9,6 +9,7 @@
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation 
> / Processing of Incoming Packets}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Packet Receive Filtering}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Setting MAC Address Filtering}
> +\item \ref{devicenormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / VLAN Filtering}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Gratuitous Packet Sending}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Automatic receive steering in multiqueue mode}
>  \item \ref{devicenormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Receive-side scaling (RSS) / RSS processing}
> diff --git a/device-types/virtio-network/device.tex 
> b/device-types/virtio-network/device.tex
> index e0637c5..7c89f30 100644
> --- a/device-types/virtio-network/device.tex
> +++ b/device-types/virtio-network/device.tex
> @@ -1194,7 +1194,11 @@ \subsubsection{Control Virtqueue}\label{sec:Device 
> Types / Network Device / Devi
>  \paragraph{VLAN Filtering}\label{sec:Device Types / Network Device / Device 
> Operation / Control Virtqueue / VLAN Filtering}
>  
>  If the driver negotiates the VIRTIO_NET_F_CTRL_VLAN feature, it
> -can control a VLAN filter table in the device.
> +can control a VLAN filter table in the device. The VLAN filter
> +table applies only to VLAN tagged packets.
> +
> +When VIRTIO_NET_F_CTRL_VLAN is negotiated, the device starts with
> +an empty VLAN filter table.
>  
>  \begin{note}
>  Similar to the MAC address based filtering, the VLAN filtering
> @@ -1210,6 +1214,22 @@ \subsubsection{Control Virtqueue}\label{sec:Device 
> Types / Network Device / Devi
>  Both the VIRTIO_NET_CTRL_VLAN_ADD and VIRTIO_NET_CTRL_VLAN_DEL
>  command take a little-endian 16-bit VLAN id as the command-specific-data.
>  
> +VIRTIO_NET_CTRL_VLAN_ADD command adds the specified VLAN to the
> +VLAN filter table.
> +
> +VIRTIO_NET_CTRL_VLAN_DEL command removes the specified VLAN from
> +the VLAN filter table.
> +
> +\devicenormative{\subparagraph}{VLAN Filtering}{Device Types / Network 
> Device / Device Operation / Control Virtqueue / VLAN Filtering}
> +
> +When VIRTIO_NET_F_CTRL_VLAN is not negotiated, the device MUST
> +accept all VLAN tagged packets as per the device configuration.
> +
> +When VIRTIO_NET_F_CTRL_VLAN is negotiated, the device MUST
> +accept all VLAN tagged packets whose VLAN tag is present in
> +the VLAN filter table and SHOULD drop all VLAN tagged packets
> +whose VLAN tag is absent in the VLAN filter table.
> +
>  \subparagraph{Legacy Interface: VLAN Filtering}\label{sec:Device Types / 
> Network Device / Device Operation / Control Virtqueue / VLAN Filtering / 
> Legacy Interface: VLAN Filtering}
>  When using the legacy interface, transitional devices and drivers
>  MUST format the VLAN id
> -- 
> 2.26.2



[virtio-dev] Re: [PATCH v1 01/20] virtio-network: Maintain network device spec in separate directory

2023-01-09 Thread Michael S. Tsirkin
On Mon, Jan 09, 2023 at 02:12:36PM +, Parav Pandit wrote:
> 
> > From: Michael S. Tsirkin 
> > Sent: Monday, January 9, 2023 8:43 AM
> > 
> > I found another issue with this. Currently for redline diff generation
> > we use latexpand. Using a flat expanded file has lots of benefits, in
> > particular latexdiff is sometimes fragile as it is, with a flat file
> > one can at least see the input it gets.
> > 
> > We should either stick with \\input or more work is needed on
> > these scripts. Besides, we are already using \\input and I like
> > consistency.
> > 
> > So my preference is \\input for now.
> \\input doesn't support reading from the directory.

In that case let's put everything in the same directory.
The argument for splitting things was weak anyway.

-- 
MST


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] [PATCH v8] virtio-network: Clarify VLAN filter table configuration

2023-01-09 Thread Parav Pandit
The filtering behavior of the VLAN filter commands is not very clear as
discussed in thread [1].

Hence, add the command description and device requirements for it.

[1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg912392.html
Fixes: https://github.com/oasis-tcs/virtio-spec/issues/147
Suggested-by: Si-Wei Liu 
Signed-off-by: Parav Pandit 
---
changelog:
v7->v8:
- Fixed grammar
v6->v7:
- Moved VLAN filter table description from requirements to device
  descrption section
- Added MUST and SHOULD to device requirements
v5->v6:
- removed unwanted article
v4->v5:
- reworded 'vlan filtering table' to 'vlan filter table' to match
  to the existing description about vlan filtering
- remove confusing text around VLAN_DEL command description
- added missing article
- reword device match configuration to device configuration
- changed 'found' to 'present' and 'not found' to 'absent' to
  consider vlan filter table as config table rather
  than search table
v3->v4:
- added description for accepting vlan tagged packets when vlan
  filter is not negotiated
v2->v3:
- corrected grammar
- simplified description for untagged packets
v1->v2:
- adapt to new file path
v0->v1:
- added missing conformance section link
---
 .../virtio-network/device-conformance.tex |  1 +
 device-types/virtio-network/device.tex| 22 ++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/device-types/virtio-network/device-conformance.tex 
b/device-types/virtio-network/device-conformance.tex
index c686377..54f6783 100644
--- a/device-types/virtio-network/device-conformance.tex
+++ b/device-types/virtio-network/device-conformance.tex
@@ -9,6 +9,7 @@
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Processing of Incoming Packets}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Packet Receive Filtering}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Setting MAC Address Filtering}
+\item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / VLAN Filtering}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Gratuitous Packet Sending}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Automatic receive steering in multiqueue mode}
 \item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Receive-side scaling (RSS) / RSS processing}
diff --git a/device-types/virtio-network/device.tex 
b/device-types/virtio-network/device.tex
index e0637c5..7c89f30 100644
--- a/device-types/virtio-network/device.tex
+++ b/device-types/virtio-network/device.tex
@@ -1194,7 +1194,11 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types 
/ Network Device / Devi
 \paragraph{VLAN Filtering}\label{sec:Device Types / Network Device / Device 
Operation / Control Virtqueue / VLAN Filtering}
 
 If the driver negotiates the VIRTIO_NET_F_CTRL_VLAN feature, it
-can control a VLAN filter table in the device.
+can control a VLAN filter table in the device. The VLAN filter
+table applies only to VLAN tagged packets.
+
+When VIRTIO_NET_F_CTRL_VLAN is negotiated, the device starts with
+an empty VLAN filter table.
 
 \begin{note}
 Similar to the MAC address based filtering, the VLAN filtering
@@ -1210,6 +1214,22 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types 
/ Network Device / Devi
 Both the VIRTIO_NET_CTRL_VLAN_ADD and VIRTIO_NET_CTRL_VLAN_DEL
 command take a little-endian 16-bit VLAN id as the command-specific-data.
 
+VIRTIO_NET_CTRL_VLAN_ADD command adds the specified VLAN to the
+VLAN filter table.
+
+VIRTIO_NET_CTRL_VLAN_DEL command removes the specified VLAN from
+the VLAN filter table.
+
+\devicenormative{\subparagraph}{VLAN Filtering}{Device Types / Network Device 
/ Device Operation / Control Virtqueue / VLAN Filtering}
+
+When VIRTIO_NET_F_CTRL_VLAN is not negotiated, the device MUST
+accept all VLAN tagged packets as per the device configuration.
+
+When VIRTIO_NET_F_CTRL_VLAN is negotiated, the device MUST
+accept all VLAN tagged packets whose VLAN tag is present in
+the VLAN filter table and SHOULD drop all VLAN tagged packets
+whose VLAN tag is absent in the VLAN filter table.
+
 \subparagraph{Legacy Interface: VLAN Filtering}\label{sec:Device Types / 
Network Device / Device Operation / Control Virtqueue / VLAN Filtering / Legacy 
Interface: VLAN Filtering}
 When using the legacy interface, transitional devices and drivers
 MUST format the VLAN id
-- 
2.26.2


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] [PATCH v2 15/20] virtio-sound: Maintain sound device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v1->v2:
- added missing device conformance reference
v0->v1:
- new patch
---
 conformance.tex   | 33 ++-
 content.tex   |  2 +-
 .../virtio-sound/device-conformance.tex   | 16 +
 .../virtio-sound/device.tex   |  0
 .../virtio-sound/driver-conformance.tex   | 13 
 5 files changed, 32 insertions(+), 32 deletions(-)
 create mode 100644 device-types/virtio-sound/device-conformance.tex
 rename virtio-sound.tex => device-types/virtio-sound/device.tex (100%)
 create mode 100644 device-types/virtio-sound/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 88ae166..6f465a3 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -146,20 +146,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-fs/}{driver-conformance}
 \import{device-types/virtio-rpmb/}{driver-conformance}
 \import{device-types/virtio-iommu/}{driver-conformance}
-
-\conformance{\subsection}{Sound Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Sound Driver Conformance}
-
-A sound driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / Sound Device / Device Initialization}
-\item \ref{drivernormative:Device Types / Sound Device / Item Information 
Request}
-\item \ref{drivernormative:Device Types / Sound Device / Device Operation / 
PCM Stream Parameters}
-\item \ref{drivernormative:Device Types / Sound Device / Device Operation / 
PCM Output Stream}
-\item \ref{drivernormative:Device Types / Sound Device / Device Operation / 
PCM Input Stream}
-\item \ref{drivernormative:Device Types / Sound Device / Device Operation / 
Control Element Value}
-\item \ref{drivernormative:Device Types / Sound Device / Device Operation / 
Control Element Metadata}
-\end{itemize}
+\import{device-types/virtio-sound/}{driver-conformance}
 
 \conformance{\subsection}{Memory Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Memory Driver Conformance}
 
@@ -289,23 +276,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-fs/}{device-conformance}
 \import{device-types/virtio-rpmb/}{device-conformance}
 \import{device-types/virtio-iommu/}{device-conformance}
-
-\conformance{\subsection}{Sound Device Conformance}\label{sec:Conformance / 
Device Conformance / Sound Device Conformance}
-
-A sound device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
Jack Information}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
PCM Stream Information}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
PCM Stream Parameters}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
PCM Stream Release}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
PCM Output Stream}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
PCM Input Stream}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
Channel Map Information}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
Control Element Information}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
Control Element Metadata}
-\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
Control Element Notifications}
-\end{itemize}
+\import{device-types/virtio-sound/}{device-conformance}
 
 \conformance{\subsection}{Memory Device Conformance}\label{sec:Conformance / 
Device Conformance / Memory Device Conformance}
 
diff --git a/content.tex b/content.tex
index dfc8967..65d8532 100644
--- a/content.tex
+++ b/content.tex
@@ -3016,7 +3016,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-fs/}{device}
 \import{device-types/virtio-rpmb/}{device}
 \import{device-types/virtio-iommu/}{device}
-\input{virtio-sound.tex}
+\import{device-types/virtio-sound/}{device}
 \input{virtio-mem.tex}
 \input{virtio-i2c.tex}
 \input{virtio-scmi.tex}
diff --git a/device-types/virtio-sound/device-conformance.tex 
b/device-types/virtio-sound/device-conformance.tex
new file mode 100644
index 000..7b900c2
--- /dev/null
+++ b/device-types/virtio-sound/device-conformance.tex
@@ -0,0 +1,16 @@
+\conformance{\subsection}{Sound Device Conformance}\label{sec:Conformance / 
Device Conformance / Sound Device Conformance}
+
+A sound device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / Sound 

[virtio-dev] [PATCH v2 20/20] virtio-pmem: Maintain pmem device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v1->v2:
- rebased
v0->v1:
- new patch
---
 conformance.tex   | 20 ++-
 content.tex   |  2 +-
 .../virtio-pmem/device-conformance.tex|  9 +
 .../virtio-pmem/device.tex|  0
 .../virtio-pmem/driver-conformance.tex|  7 +++
 5 files changed, 19 insertions(+), 19 deletions(-)
 create mode 100644 device-types/virtio-pmem/device-conformance.tex
 rename virtio-pmem.tex => device-types/virtio-pmem/device.tex (100%)
 create mode 100644 device-types/virtio-pmem/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 34d72e5..57194b2 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -151,14 +151,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-i2c/}{driver-conformance}
 \import{device-types/virtio-scmi/}{driver-conformance}
 \import{device-types/virtio-gpio/}{driver-conformance}
-
-\conformance{\subsection}{PMEM Driver Conformance}\label{sec:Conformance / 
Driver Conformance / PMEM Driver Conformance}
-
-A PMEM driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / PMEM Device / Device Initialization}
-\end{itemize}
+\import{device-types/virtio-pmem/}{driver-conformance}
 
 \conformance{\section}{Device Conformance}\label{sec:Conformance / Device 
Conformance}
 
@@ -244,16 +237,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-i2c/}{device-conformance}
 \import{device-types/virtio-scmi/}{device-conformance}
 \import{device-types/virtio-gpio/}{device-conformance}
-
-\conformance{\subsection}{PMEM Device Conformance}\label{sec:Conformance / 
Device Conformance / PMEM Device Conformance}
-
-A PMEM device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / PMEM Device / Device Initialization}
-\item \ref{devicenormative:Device Types / PMEM Device / Device Operation / 
Virtqueue flush}
-\item \ref{devicenormative:Device Types / PMEM Device / Device Operation / 
Virtqueue return}
-\end{itemize}
+\import{device-types/virtio-pmem/}{device-conformance}
 
 \conformance{\section}{Legacy Interface: Transitional Device and Transitional 
Driver Conformance}\label{sec:Conformance / Legacy Interface: Transitional 
Device and Transitional Driver Conformance}
 A conformant implementation MUST be either transitional or
diff --git a/content.tex b/content.tex
index dc0943c..e1f8450 100644
--- a/content.tex
+++ b/content.tex
@@ -3021,7 +3021,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-i2c/}{device}
 \import{device-types/virtio-scmi/}{device}
 \import{device-types/virtio-gpio/}{device}
-\input{virtio-pmem.tex}
+\import{device-types/virtio-pmem/}{device}
 
 \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
 
diff --git a/device-types/virtio-pmem/device-conformance.tex 
b/device-types/virtio-pmem/device-conformance.tex
new file mode 100644
index 000..e06862c
--- /dev/null
+++ b/device-types/virtio-pmem/device-conformance.tex
@@ -0,0 +1,9 @@
+\conformance{\subsection}{PMEM Device Conformance}\label{sec:Conformance / 
Device Conformance / PMEM Device Conformance}
+
+A PMEM device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / PMEM Device / Device Initialization}
+\item \ref{devicenormative:Device Types / PMEM Device / Device Operation / 
Virtqueue flush}
+\item \ref{devicenormative:Device Types / PMEM Device / Device Operation / 
Virtqueue return}
+\end{itemize}
diff --git a/virtio-pmem.tex b/device-types/virtio-pmem/device.tex
similarity index 100%
rename from virtio-pmem.tex
rename to device-types/virtio-pmem/device.tex
diff --git a/device-types/virtio-pmem/driver-conformance.tex 
b/device-types/virtio-pmem/driver-conformance.tex
new file mode 100644
index 000..620804c
--- /dev/null
+++ b/device-types/virtio-pmem/driver-conformance.tex
@@ -0,0 +1,7 @@
+\conformance{\subsection}{PMEM Driver Conformance}\label{sec:Conformance / 
Driver Conformance / PMEM Driver Conformance}
+
+A PMEM driver MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{drivernormative:Device Types / PMEM Device / Device Initialization}
+\end{itemize}
-- 
2.26.2


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] [PATCH v2 13/20] virtio-rpmb: Maintain rpmb device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v1->v2:
- added missing device conformance reference entry
v0->v1:
- new patch
---
 conformance.tex   | 23 ++-
 content.tex   |  2 +-
 .../virtio-rpmb/device-conformance.tex| 13 +++
 .../virtio-rpmb/device.tex|  0
 .../virtio-rpmb/driver-conformance.tex|  7 ++
 5 files changed, 23 insertions(+), 22 deletions(-)
 create mode 100644 device-types/virtio-rpmb/device-conformance.tex
 rename virtio-rpmb.tex => device-types/virtio-rpmb/device.tex (100%)
 create mode 100644 device-types/virtio-rpmb/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 56a2c16..c109fbd 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -144,14 +144,8 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-crypto/}{driver-conformance}
 \import{device-types/virtio-vsock/}{driver-conformance}
 \import{device-types/virtio-fs/}{driver-conformance}
+\import{device-types/virtio-rpmb/}{driver-conformance}
 
-\conformance{\subsection}{RPMB Driver Conformance}\label{sec:Conformance / 
Driver Conformance / RPMB Driver Conformance}
-
-A RPMB driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / RPMB Device / Device Operation}
-\end{itemize}
 \conformance{\subsection}{IOMMU Driver Conformance}\label{sec:Conformance / 
Driver Conformance / IOMMU Driver Conformance}
 
 An IOMMU driver MUST conform to the following normative statements:
@@ -310,20 +304,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-crypto/}{device-conformance}
 \import{device-types/virtio-vsock/}{device-conformance}
 \import{device-types/virtio-fs/}{device-conformance}
-
-\conformance{\subsection}{RPMB Device Conformance}\label{sec:Conformance / 
Device Conformance / RPMB Device Conformance}
-
-An RPMB device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / RPMB Device / Device Initialization}
-\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Program Key}
-\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Get Write Counter}
-\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Data Write}
-\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Data Read}
-\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Result Read}
-\item \ref{devicenormative:Device Types / RPMB Device / Device Operation}
-\end{itemize}
+\import{device-types/virtio-rpmb/}{device-conformance}
 
 \conformance{\subsection}{IOMMU Device Conformance}\label{sec:Conformance / 
Device Conformance / IOMMU Device Conformance}
 
diff --git a/content.tex b/content.tex
index a486e36..0150e3f 100644
--- a/content.tex
+++ b/content.tex
@@ -3014,7 +3014,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-crypto/}{device}
 \import{device-types/virtio-vsock/}{device}
 \import{device-types/virtio-fs/}{device}
-\input{virtio-rpmb.tex}
+\import{device-types/virtio-rpmb/}{device}
 \input{virtio-iommu.tex}
 \input{virtio-sound.tex}
 \input{virtio-mem.tex}
diff --git a/device-types/virtio-rpmb/device-conformance.tex 
b/device-types/virtio-rpmb/device-conformance.tex
new file mode 100644
index 000..4a01e5a
--- /dev/null
+++ b/device-types/virtio-rpmb/device-conformance.tex
@@ -0,0 +1,13 @@
+\conformance{\subsection}{RPMB Device Conformance}\label{sec:Conformance / 
Device Conformance / RPMB Device Conformance}
+
+An RPMB device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Initialization}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Program Key}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Get Write Counter}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Data Write}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Data Read}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation / 
Device Operation: Result Read}
+\item \ref{devicenormative:Device Types / RPMB Device / Device Operation}
+\end{itemize}
diff --git a/virtio-rpmb.tex b/device-types/virtio-rpmb/device.tex
similarity index 100%
rename from virtio-rpmb.tex
rename to device-types/virtio-rpmb/device.tex
diff --git 

[virtio-dev] [PATCH v2 03/20] virtio-block: Maintain block device spec in separate directory

2023-01-09 Thread Parav Pandit
Move virtio block device specification to its own file similar to
recent virtio devices.
While at it, place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v1->v2:
- removed extra blank lines at end of file
v0->v1:
- moved to device specific directory
---
 conformance.tex   |   20 +-
 content.tex   | 1315 +
 .../virtio-block/device-conformance.tex   |8 +
 device-types/virtio-block/device.tex  | 1313 
 .../virtio-block/driver-conformance.tex   |8 +
 5 files changed, 1332 insertions(+), 1332 deletions(-)
 create mode 100644 device-types/virtio-block/device-conformance.tex
 create mode 100644 device-types/virtio-block/device.tex
 create mode 100644 device-types/virtio-block/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 8cc6408..c523c8a 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -135,15 +135,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \end{itemize}
 
 \import{device-types/virtio-network/}{driver-conformance}
-
-\conformance{\subsection}{Block Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Block Driver Conformance}
-
-A block driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / Block Device / Device Initialization}
-\item \ref{drivernormative:Device Types / Block Device / Device Operation}
-\end{itemize}
+\import{device-types/virtio-block/}{driver-conformance}
 
 \conformance{\subsection}{Console Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Console Driver Conformance}
 
@@ -386,15 +378,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \end{itemize}
 
 \import{device-types/virtio-network/}{device-conformance}
-
-\conformance{\subsection}{Block Device Conformance}\label{sec:Conformance / 
Device Conformance / Block Device Conformance}
-
-A block device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / Block Device / Device Initialization}
-\item \ref{devicenormative:Device Types / Block Device / Device Operation}
-\end{itemize}
+\import{device-types/virtio-block/}{device-conformance}
 
 \conformance{\subsection}{Console Device Conformance}\label{sec:Conformance / 
Device Conformance / Console Device Conformance}
 
diff --git a/content.tex b/content.tex
index 73de883..0e17b75 100644
--- a/content.tex
+++ b/content.tex
@@ -3004,1320 +3004,7 @@ \chapter{Device Types}\label{sec:Device Types}
 them no further.
 
 \import{device-types/virtio-network/}{device}
-
-\section{Block Device}\label{sec:Device Types / Block Device}
-
-The virtio block device is a simple virtual block device (ie.
-disk). Read and write requests (and other exotic requests) are
-placed in one of its queues, and serviced (probably out of order) by the
-device except where noted.
-
-\subsection{Device ID}\label{sec:Device Types / Block Device / Device ID}
-  2
-
-\subsection{Virtqueues}\label{sec:Device Types / Block Device / Virtqueues}
-\begin{description}
-\item[0] requestq1
-\item[\ldots]
-\item[N-1] requestqN
-\end{description}
-
- N=1 if VIRTIO_BLK_F_MQ is not negotiated, otherwise N is set by
- \field{num_queues}.
-
-\subsection{Feature bits}\label{sec:Device Types / Block Device / Feature bits}
-
-\begin{description}
-\item[VIRTIO_BLK_F_SIZE_MAX (1)] Maximum size of any single segment is
-in \field{size_max}.
-
-\item[VIRTIO_BLK_F_SEG_MAX (2)] Maximum number of segments in a
-request is in \field{seg_max}.
-
-\item[VIRTIO_BLK_F_GEOMETRY (4)] Disk-style geometry specified in
-\field{geometry}.
-
-\item[VIRTIO_BLK_F_RO (5)] Device is read-only.
-
-\item[VIRTIO_BLK_F_BLK_SIZE (6)] Block size of disk is in \field{blk_size}.
-
-\item[VIRTIO_BLK_F_FLUSH (9)] Cache flush command support.
-
-\item[VIRTIO_BLK_F_TOPOLOGY (10)] Device exports information on optimal I/O
-alignment.
-
-\item[VIRTIO_BLK_F_CONFIG_WCE (11)] Device can toggle its cache between 
writeback
-and writethrough modes.
-
-\item[VIRTIO_BLK_F_MQ (12)] Device supports multiqueue.
-
-\item[VIRTIO_BLK_F_DISCARD (13)] Device can support discard command, maximum
-discard sectors size in \field{max_discard_sectors} and maximum discard
-segment number in \field{max_discard_seg}.
-
-\item[VIRTIO_BLK_F_WRITE_ZEROES (14)] Device can support write zeroes command,
- maximum write zeroes sectors size in \field{max_write_zeroes_sectors} and
- maximum write zeroes segment number in \field{max_write_zeroes_seg}.
-
-\item[VIRTIO_BLK_F_LIFETIME (15)] Device supports providing storage lifetime
- information.
-
-\item[VIRTIO_BLK_F_SECURE_ERASE (16)] Device supports secure erase command,
- 

[virtio-dev] [PATCH v2 19/20] virtio-gpio: Maintain gpio device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v1->v2:
- added missing device conformance reference
v0->v1:
- new patch
---
 conformance.tex   | 22 ++-
 content.tex   |  2 +-
 .../virtio-gpio/device-conformance.tex|  9 
 .../virtio-gpio/device.tex|  0
 .../virtio-gpio/driver-conformance.tex|  9 
 5 files changed, 21 insertions(+), 21 deletions(-)
 create mode 100644 device-types/virtio-gpio/device-conformance.tex
 rename virtio-gpio.tex => device-types/virtio-gpio/device.tex (100%)
 create mode 100644 device-types/virtio-gpio/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 70fdcc0..34d72e5 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -150,16 +150,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-mem/}{driver-conformance}
 \import{device-types/virtio-i2c/}{driver-conformance}
 \import{device-types/virtio-scmi/}{driver-conformance}
-
-\conformance{\subsection}{GPIO Driver Conformance}\label{sec:Conformance / 
Driver Conformance / GPIO Driver Conformance}
-
-A General Purpose Input/Output (GPIO) driver MUST conform to the following
-normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / GPIO Device / requestq Operation}
-\item \ref{drivernormative:Device Types / GPIO Device / eventq Operation}
-\end{itemize}
+\import{device-types/virtio-gpio/}{driver-conformance}
 
 \conformance{\subsection}{PMEM Driver Conformance}\label{sec:Conformance / 
Driver Conformance / PMEM Driver Conformance}
 
@@ -252,16 +243,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-mem/}{device-conformance}
 \import{device-types/virtio-i2c/}{device-conformance}
 \import{device-types/virtio-scmi/}{device-conformance}
-
-\conformance{\subsection}{GPIO Device Conformance}\label{sec:Conformance / 
Device Conformance / GPIO Device Conformance}
-
-A General Purpose Input/Output (GPIO) device MUST conform to the following
-normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / GPIO Device / requestq Operation}
-\item \ref{devicenormative:Device Types / GPIO Device / eventq Operation}
-\end{itemize}
+\import{device-types/virtio-gpio/}{device-conformance}
 
 \conformance{\subsection}{PMEM Device Conformance}\label{sec:Conformance / 
Device Conformance / PMEM Device Conformance}
 
diff --git a/content.tex b/content.tex
index 5bddc9e..dc0943c 100644
--- a/content.tex
+++ b/content.tex
@@ -3020,7 +3020,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-mem/}{device}
 \import{device-types/virtio-i2c/}{device}
 \import{device-types/virtio-scmi/}{device}
-\input{virtio-gpio.tex}
+\import{device-types/virtio-gpio/}{device}
 \input{virtio-pmem.tex}
 
 \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
diff --git a/device-types/virtio-gpio/device-conformance.tex 
b/device-types/virtio-gpio/device-conformance.tex
new file mode 100644
index 000..87806d0
--- /dev/null
+++ b/device-types/virtio-gpio/device-conformance.tex
@@ -0,0 +1,9 @@
+\conformance{\subsection}{GPIO Device Conformance}\label{sec:Conformance / 
Device Conformance / GPIO Device Conformance}
+
+A General Purpose Input/Output (GPIO) device MUST conform to the following
+normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / GPIO Device / requestq Operation}
+\item \ref{devicenormative:Device Types / GPIO Device / eventq Operation}
+\end{itemize}
diff --git a/virtio-gpio.tex b/device-types/virtio-gpio/device.tex
similarity index 100%
rename from virtio-gpio.tex
rename to device-types/virtio-gpio/device.tex
diff --git a/device-types/virtio-gpio/driver-conformance.tex 
b/device-types/virtio-gpio/driver-conformance.tex
new file mode 100644
index 000..b778c2b
--- /dev/null
+++ b/device-types/virtio-gpio/driver-conformance.tex
@@ -0,0 +1,9 @@
+\conformance{\subsection}{GPIO Driver Conformance}\label{sec:Conformance / 
Driver Conformance / GPIO Driver Conformance}
+
+A General Purpose Input/Output (GPIO) driver MUST conform to the following
+normative statements:
+
+\begin{itemize}
+\item \ref{drivernormative:Device Types / GPIO Device / requestq Operation}
+\item \ref{drivernormative:Device Types / GPIO Device / eventq Operation}
+\end{itemize}
-- 
2.26.2


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] [PATCH v2 18/20] virtio-scmi: Maintain scmi device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v1->v2:
- rebased
v0->v1:
- new patch
---
 conformance.tex   | 22 ++-
 content.tex   |  2 +-
 .../virtio-scmi/device-conformance.tex| 10 +
 .../virtio-scmi/device.tex|  0
 .../virtio-scmi/driver-conformance.tex|  8 +++
 5 files changed, 21 insertions(+), 21 deletions(-)
 create mode 100644 device-types/virtio-scmi/device-conformance.tex
 rename virtio-scmi.tex => device-types/virtio-scmi/device.tex (100%)
 create mode 100644 device-types/virtio-scmi/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index eb656f6..70fdcc0 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -149,15 +149,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-sound/}{driver-conformance}
 \import{device-types/virtio-mem/}{driver-conformance}
 \import{device-types/virtio-i2c/}{driver-conformance}
-
-\conformance{\subsection}{SCMI Driver Conformance}\label{sec:Conformance / 
Driver Conformance / SCMI Driver Conformance}
-
-An SCMI driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / SCMI Device / Device Operation / 
cmdq Operation}
-\item \ref{drivernormative:Device Types / SCMI Device / Device Operation / 
Setting Up eventq Buffers}
-\end{itemize}
+\import{device-types/virtio-scmi/}{driver-conformance}
 
 \conformance{\subsection}{GPIO Driver Conformance}\label{sec:Conformance / 
Driver Conformance / GPIO Driver Conformance}
 
@@ -259,17 +251,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-sound/}{device-conformance}
 \import{device-types/virtio-mem/}{device-conformance}
 \import{device-types/virtio-i2c/}{device-conformance}
-
-\conformance{\subsection}{SCMI Device Conformance}\label{sec:Conformance / 
Device Conformance / SCMI Device Conformance}
-
-An SCMI device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / SCMI Device / Feature bits}
-\item \ref{devicenormative:Device Types / SCMI Device / Device Operation / 
cmdq Operation}
-\item \ref{devicenormative:Device Types / SCMI Device / Device Operation / 
eventq Operation}
-\item \ref{devicenormative:Device Types / SCMI Device / Device Operation / 
Shared Memory Operation}
-\end{itemize}
+\import{device-types/virtio-scmi/}{device-conformance}
 
 \conformance{\subsection}{GPIO Device Conformance}\label{sec:Conformance / 
Device Conformance / GPIO Device Conformance}
 
diff --git a/content.tex b/content.tex
index e2ede6c..5bddc9e 100644
--- a/content.tex
+++ b/content.tex
@@ -3019,7 +3019,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-sound/}{device}
 \import{device-types/virtio-mem/}{device}
 \import{device-types/virtio-i2c/}{device}
-\input{virtio-scmi.tex}
+\import{device-types/virtio-scmi/}{device}
 \input{virtio-gpio.tex}
 \input{virtio-pmem.tex}
 
diff --git a/device-types/virtio-scmi/device-conformance.tex 
b/device-types/virtio-scmi/device-conformance.tex
new file mode 100644
index 000..570438f
--- /dev/null
+++ b/device-types/virtio-scmi/device-conformance.tex
@@ -0,0 +1,10 @@
+\conformance{\subsection}{SCMI Device Conformance}\label{sec:Conformance / 
Device Conformance / SCMI Device Conformance}
+
+An SCMI device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / SCMI Device / Feature bits}
+\item \ref{devicenormative:Device Types / SCMI Device / Device Operation / 
cmdq Operation}
+\item \ref{devicenormative:Device Types / SCMI Device / Device Operation / 
eventq Operation}
+\item \ref{devicenormative:Device Types / SCMI Device / Device Operation / 
Shared Memory Operation}
+\end{itemize}
diff --git a/virtio-scmi.tex b/device-types/virtio-scmi/device.tex
similarity index 100%
rename from virtio-scmi.tex
rename to device-types/virtio-scmi/device.tex
diff --git a/device-types/virtio-scmi/driver-conformance.tex 
b/device-types/virtio-scmi/driver-conformance.tex
new file mode 100644
index 000..ef163bd
--- /dev/null
+++ b/device-types/virtio-scmi/driver-conformance.tex
@@ -0,0 +1,8 @@
+\conformance{\subsection}{SCMI Driver Conformance}\label{sec:Conformance / 
Driver Conformance / SCMI Driver Conformance}
+
+An SCMI driver MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{drivernormative:Device Types / SCMI Device / Device Operation / 
cmdq Operation}
+\item \ref{drivernormative:Device Types / SCMI Device / Device Operation / 
Setting Up eventq Buffers}
+\end{itemize}
-- 
2.26.2



[virtio-dev] [PATCH v2 17/20] virtio-i2c: Maintain i2c device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v1->v2:
- added missing device conformance reference
v0->v1:
- new patch
---
 conformance.tex| 18 ++
 content.tex|  2 +-
 device-types/virtio-i2c/device-conformance.tex |  7 +++
 .../virtio-i2c/device.tex  |  0
 device-types/virtio-i2c/driver-conformance.tex |  7 +++
 5 files changed, 17 insertions(+), 17 deletions(-)
 create mode 100644 device-types/virtio-i2c/device-conformance.tex
 rename virtio-i2c.tex => device-types/virtio-i2c/device.tex (100%)
 create mode 100644 device-types/virtio-i2c/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index c43e8db..eb656f6 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -148,14 +148,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-iommu/}{driver-conformance}
 \import{device-types/virtio-sound/}{driver-conformance}
 \import{device-types/virtio-mem/}{driver-conformance}
-
-\conformance{\subsection}{I2C Adapter Driver 
Conformance}\label{sec:Conformance / Driver Conformance / I2C Adapter Driver 
Conformance}
-
-An I2C Adapter driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / I2C Adapter Device / Device 
Operation}
-\end{itemize}
+\import{device-types/virtio-i2c/}{driver-conformance}
 
 \conformance{\subsection}{SCMI Driver Conformance}\label{sec:Conformance / 
Driver Conformance / SCMI Driver Conformance}
 
@@ -265,14 +258,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-iommu/}{device-conformance}
 \import{device-types/virtio-sound/}{device-conformance}
 \import{device-types/virtio-mem/}{device-conformance}
-
-\conformance{\subsection}{I2C Adapter Device 
Conformance}\label{sec:Conformance / Device Conformance / I2C Adapter Device 
Conformance}
-
-An I2C Adapter device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / I2C Adapter Device / Device 
Operation}
-\end{itemize}
+\import{device-types/virtio-i2c/}{device-conformance}
 
 \conformance{\subsection}{SCMI Device Conformance}\label{sec:Conformance / 
Device Conformance / SCMI Device Conformance}
 
diff --git a/content.tex b/content.tex
index 6466209..e2ede6c 100644
--- a/content.tex
+++ b/content.tex
@@ -3018,7 +3018,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-iommu/}{device}
 \import{device-types/virtio-sound/}{device}
 \import{device-types/virtio-mem/}{device}
-\input{virtio-i2c.tex}
+\import{device-types/virtio-i2c/}{device}
 \input{virtio-scmi.tex}
 \input{virtio-gpio.tex}
 \input{virtio-pmem.tex}
diff --git a/device-types/virtio-i2c/device-conformance.tex 
b/device-types/virtio-i2c/device-conformance.tex
new file mode 100644
index 000..a060b2f
--- /dev/null
+++ b/device-types/virtio-i2c/device-conformance.tex
@@ -0,0 +1,7 @@
+\conformance{\subsection}{I2C Adapter Device 
Conformance}\label{sec:Conformance / Device Conformance / I2C Adapter Device 
Conformance}
+
+An I2C Adapter device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / I2C Adapter Device / Device 
Operation}
+\end{itemize}
diff --git a/virtio-i2c.tex b/device-types/virtio-i2c/device.tex
similarity index 100%
rename from virtio-i2c.tex
rename to device-types/virtio-i2c/device.tex
diff --git a/device-types/virtio-i2c/driver-conformance.tex 
b/device-types/virtio-i2c/driver-conformance.tex
new file mode 100644
index 000..405714c
--- /dev/null
+++ b/device-types/virtio-i2c/driver-conformance.tex
@@ -0,0 +1,7 @@
+\conformance{\subsection}{I2C Adapter Driver 
Conformance}\label{sec:Conformance / Driver Conformance / I2C Adapter Driver 
Conformance}
+
+An I2C Adapter driver MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{drivernormative:Device Types / I2C Adapter Device / Device 
Operation}
+\end{itemize}
-- 
2.26.2


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] [PATCH v2 14/20] virtio-iommu: Maintain iommu device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v1->v2:
- rebased
v0->v1:
- new patch
---
 conformance.tex   | 37 +--
 content.tex   |  2 +-
 .../virtio-iommu/device-conformance.tex   | 16 
 .../virtio-iommu/device.tex   |  0
 .../virtio-iommu/driver-conformance.tex   | 17 +
 5 files changed, 36 insertions(+), 36 deletions(-)
 create mode 100644 device-types/virtio-iommu/device-conformance.tex
 rename virtio-iommu.tex => device-types/virtio-iommu/device.tex (100%)
 create mode 100644 device-types/virtio-iommu/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index c109fbd..88ae166 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -145,24 +145,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-vsock/}{driver-conformance}
 \import{device-types/virtio-fs/}{driver-conformance}
 \import{device-types/virtio-rpmb/}{driver-conformance}
-
-\conformance{\subsection}{IOMMU Driver Conformance}\label{sec:Conformance / 
Driver Conformance / IOMMU Driver Conformance}
-
-An IOMMU driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / IOMMU Device / Feature bits}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device configuration 
layout}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device Initialization}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device operations}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device operations / 
ATTACH request}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device operations / 
DETACH request}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device operations / 
MAP request}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device operations / 
UNMAP request}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device operations / 
PROBE request}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device operations / 
PROBE properties / RESVMEM}
-\item \ref{drivernormative:Device Types / IOMMU Device / Device operations / 
Fault reporting}
-\end{itemize}
+\import{device-types/virtio-iommu/}{driver-conformance}
 
 \conformance{\subsection}{Sound Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Sound Driver Conformance}
 
@@ -305,23 +288,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-vsock/}{device-conformance}
 \import{device-types/virtio-fs/}{device-conformance}
 \import{device-types/virtio-rpmb/}{device-conformance}
-
-\conformance{\subsection}{IOMMU Device Conformance}\label{sec:Conformance / 
Device Conformance / IOMMU Device Conformance}
-
-An IOMMU device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / IOMMU Device / Feature bits}
-\item \ref{devicenormative:Device Types / IOMMU Device / Device configuration 
layout}
-\item \ref{devicenormative:Device Types / IOMMU Device / Device operations}
-\item \ref{devicenormative:Device Types / IOMMU Device / Device operations / 
ATTACH request}
-\item \ref{devicenormative:Device Types / IOMMU Device / Device operations / 
DETACH request}
-\item \ref{devicenormative:Device Types / IOMMU Device / Device operations / 
MAP request}
-\item \ref{devicenormative:Device Types / IOMMU Device / Device operations / 
UNMAP request}
-\item \ref{devicenormative:Device Types / IOMMU Device / Device operations / 
PROBE request}
-\item \ref{devicenormative:Device Types / IOMMU Device / Device operations / 
PROBE properties / RESVMEM}
-\item \ref{devicenormative:Device Types / IOMMU Device / Device operations / 
Fault reporting}
-\end{itemize}
+\import{device-types/virtio-iommu/}{device-conformance}
 
 \conformance{\subsection}{Sound Device Conformance}\label{sec:Conformance / 
Device Conformance / Sound Device Conformance}
 
diff --git a/content.tex b/content.tex
index 0150e3f..dfc8967 100644
--- a/content.tex
+++ b/content.tex
@@ -3015,7 +3015,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-vsock/}{device}
 \import{device-types/virtio-fs/}{device}
 \import{device-types/virtio-rpmb/}{device}
-\input{virtio-iommu.tex}
+\import{device-types/virtio-iommu/}{device}
 \input{virtio-sound.tex}
 \input{virtio-mem.tex}
 \input{virtio-i2c.tex}
diff --git a/device-types/virtio-iommu/device-conformance.tex 
b/device-types/virtio-iommu/device-conformance.tex
new file mode 100644
index 000..bc5b3b8
--- /dev/null
+++ b/device-types/virtio-iommu/device-conformance.tex
@@ -0,0 +1,16 @@
+\conformance{\subsection}{IOMMU Device Conformance}\label{sec:Conformance / 

[virtio-dev] [PATCH v2 16/20] virtio-mem: Maintain memory device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v1->v2:
- rebased
v0->v1:
- new patch
---
 conformance.tex   | 30 ++-
 content.tex   |  2 +-
 .../virtio-mem/device-conformance.tex | 13 
 .../virtio-mem/device.tex |  0
 .../virtio-mem/driver-conformance.tex | 13 
 5 files changed, 29 insertions(+), 29 deletions(-)
 create mode 100644 device-types/virtio-mem/device-conformance.tex
 rename virtio-mem.tex => device-types/virtio-mem/device.tex (100%)
 create mode 100644 device-types/virtio-mem/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 6f465a3..c43e8db 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -147,20 +147,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-rpmb/}{driver-conformance}
 \import{device-types/virtio-iommu/}{driver-conformance}
 \import{device-types/virtio-sound/}{driver-conformance}
-
-\conformance{\subsection}{Memory Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Memory Driver Conformance}
-
-A memory driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / Memory Device / Device configuration 
layout}
-\item \ref{drivernormative:Device Types / Memory Device / Device 
Initialization}
-\item \ref{drivernormative:Device Types / Memory Device / Device Operation}
-\item \ref{drivernormative:Device Types / Memory Device / Device Operation / 
PLUG request}
-\item \ref{drivernormative:Device Types / Memory Device / Device Operation / 
UNPLUG request}
-\item \ref{drivernormative:Device Types / Memory Device / Device Operation / 
UNPLUG ALL request}
-\item \ref{drivernormative:Device Types / Memory Device / Device Operation / 
STATE request}
-\end{itemize}
+\import{device-types/virtio-mem/}{driver-conformance}
 
 \conformance{\subsection}{I2C Adapter Driver 
Conformance}\label{sec:Conformance / Driver Conformance / I2C Adapter Driver 
Conformance}
 
@@ -277,20 +264,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-rpmb/}{device-conformance}
 \import{device-types/virtio-iommu/}{device-conformance}
 \import{device-types/virtio-sound/}{device-conformance}
-
-\conformance{\subsection}{Memory Device Conformance}\label{sec:Conformance / 
Device Conformance / Memory Device Conformance}
-
-A memory device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / Memory Device / Device configuration 
layout}
-\item \ref{devicenormative:Device Types / Memory Device / Device 
Initialization}
-\item \ref{devicenormative:Device Types / Memory Device / Device Operation}
-\item \ref{devicenormative:Device Types / Memory Device / Device Operation / 
PLUG request}
-\item \ref{devicenormative:Device Types / Memory Device / Device Operation / 
UNPLUG request}
-\item \ref{devicenormative:Device Types / Memory Device / Device Operation / 
UNPLUG ALL request}
-\item \ref{devicenormative:Device Types / Memory Device / Device Operation / 
STATE request}
-\end{itemize}
+\import{device-types/virtio-mem/}{device-conformance}
 
 \conformance{\subsection}{I2C Adapter Device 
Conformance}\label{sec:Conformance / Device Conformance / I2C Adapter Device 
Conformance}
 
diff --git a/content.tex b/content.tex
index 65d8532..6466209 100644
--- a/content.tex
+++ b/content.tex
@@ -3017,7 +3017,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-rpmb/}{device}
 \import{device-types/virtio-iommu/}{device}
 \import{device-types/virtio-sound/}{device}
-\input{virtio-mem.tex}
+\import{device-types/virtio-mem/}{device}
 \input{virtio-i2c.tex}
 \input{virtio-scmi.tex}
 \input{virtio-gpio.tex}
diff --git a/device-types/virtio-mem/device-conformance.tex 
b/device-types/virtio-mem/device-conformance.tex
new file mode 100644
index 000..562d00b
--- /dev/null
+++ b/device-types/virtio-mem/device-conformance.tex
@@ -0,0 +1,13 @@
+\conformance{\subsection}{Memory Device Conformance}\label{sec:Conformance / 
Device Conformance / Memory Device Conformance}
+
+A memory device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / Memory Device / Device configuration 
layout}
+\item \ref{devicenormative:Device Types / Memory Device / Device 
Initialization}
+\item \ref{devicenormative:Device Types / Memory Device / Device Operation}
+\item \ref{devicenormative:Device Types / Memory Device / Device Operation / 
PLUG request}
+\item \ref{devicenormative:Device Types / Memory Device / Device Operation / 
UNPLUG request}
+\item \ref{devicenormative:Device Types / 

[virtio-dev] [PATCH v2 11/20] virtio-vsock: Maintain socket device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v0->v1:
- new patch
---
 conformance.tex   | 23 ++-
 content.tex   |  2 +-
 .../virtio-vsock/device-conformance.tex   |  9 
 .../virtio-vsock/device.tex   |  0
 .../virtio-vsock/driver-conformance.tex   | 10 
 5 files changed, 22 insertions(+), 22 deletions(-)
 create mode 100644 device-types/virtio-vsock/device-conformance.tex
 rename virtio-vsock.tex => device-types/virtio-vsock/device.tex (100%)
 create mode 100644 device-types/virtio-vsock/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 67b7523..5f63bfb 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -142,17 +142,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-scsi/}{driver-conformance}
 \import{device-types/virtio-input/}{driver-conformance}
 \import{device-types/virtio-crypto/}{driver-conformance}
-
-\conformance{\subsection}{Socket Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Socket Driver Conformance}
-
-A socket driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / Socket Device / Feature bits}
-\item \ref{drivernormative:Device Types / Socket Device / Device Operation / 
Buffer Space Management}
-\item \ref{drivernormative:Device Types / Socket Device / Device Operation / 
Receive and Transmit}
-\item \ref{drivernormative:Device Types / Socket Device / Device Operation / 
Device Events}
-\end{itemize}
+\import{device-types/virtio-vsock/}{driver-conformance}
 
 \conformance{\subsection}{File System Driver 
Conformance}\label{sec:Conformance / Driver Conformance / File System Driver 
Conformance}
 
@@ -328,16 +318,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-gpu/}{device-conformance}
 \import{device-types/virtio-input/}{device-conformance}
 \import{device-types/virtio-crypto/}{device-conformance}
-
-\conformance{\subsection}{Socket Device Conformance}\label{sec:Conformance / 
Device Conformance / Socket Device Conformance}
-
-A socket device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / Socket Device / Feature bits}
-\item \ref{devicenormative:Device Types / Socket Device / Device Operation / 
Buffer Space Management}
-\item \ref{devicenormative:Device Types / Socket Device / Device Operation / 
Receive and Transmit}
-\end{itemize}
+\import{device-types/virtio-vsock/}{device-conformance}
 
 \conformance{\subsection}{File System Device 
Conformance}\label{sec:Conformance / Device Conformance / File System Device 
Conformance}
 
diff --git a/content.tex b/content.tex
index 3d0cba0..1cee4c4 100644
--- a/content.tex
+++ b/content.tex
@@ -3012,7 +3012,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-gpu/}{device}
 \import{device-types/virtio-input/}{device}
 \import{device-types/virtio-crypto/}{device}
-\input{virtio-vsock.tex}
+\import{device-types/virtio-vsock/}{device}
 \input{virtio-fs.tex}
 \input{virtio-rpmb.tex}
 \input{virtio-iommu.tex}
diff --git a/device-types/virtio-vsock/device-conformance.tex 
b/device-types/virtio-vsock/device-conformance.tex
new file mode 100644
index 000..93b0c4d
--- /dev/null
+++ b/device-types/virtio-vsock/device-conformance.tex
@@ -0,0 +1,9 @@
+\conformance{\subsection}{Socket Device Conformance}\label{sec:Conformance / 
Device Conformance / Socket Device Conformance}
+
+A socket device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / Socket Device / Feature bits}
+\item \ref{devicenormative:Device Types / Socket Device / Device Operation / 
Buffer Space Management}
+\item \ref{devicenormative:Device Types / Socket Device / Device Operation / 
Receive and Transmit}
+\end{itemize}
diff --git a/virtio-vsock.tex b/device-types/virtio-vsock/device.tex
similarity index 100%
rename from virtio-vsock.tex
rename to device-types/virtio-vsock/device.tex
diff --git a/device-types/virtio-vsock/driver-conformance.tex 
b/device-types/virtio-vsock/driver-conformance.tex
new file mode 100644
index 000..988b0c3
--- /dev/null
+++ b/device-types/virtio-vsock/driver-conformance.tex
@@ -0,0 +1,10 @@
+\conformance{\subsection}{Socket Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Socket Driver Conformance}
+
+A socket driver MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{drivernormative:Device Types / Socket Device / Feature bits}
+\item \ref{drivernormative:Device Types / Socket Device / Device Operation / 
Buffer Space 

[virtio-dev] [PATCH v2 10/20] virtio-crypto: Maintain crypto device spec in separate directory

2023-01-09 Thread Parav Pandit
Move virtio crypto device specification to its own file similar to
recent virtio devices.
While at it, place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v0->v1:
- moved to device specific directory
---
 conformance.tex   | 31 ++-
 content.tex   |  2 +-
 .../virtio-crypto/device-conformance.tex  | 13 
 .../virtio-crypto/device.tex  |  0
 .../virtio-crypto/driver-conformance.tex  | 14 +
 5 files changed, 30 insertions(+), 30 deletions(-)
 create mode 100644 device-types/virtio-crypto/device-conformance.tex
 rename virtio-crypto.tex => device-types/virtio-crypto/device.tex (100%)
 create mode 100644 device-types/virtio-crypto/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 8470e52..67b7523 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -141,21 +141,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-mem-balloon/}{driver-conformance}
 \import{device-types/virtio-scsi/}{driver-conformance}
 \import{device-types/virtio-input/}{driver-conformance}
-
-\conformance{\subsection}{Crypto Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Crypto Driver Conformance}
-
-A Crypto driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / Crypto Device / Device configuration 
layout}
-\item \ref{drivernormative:Device Types / Crypto Device / Device 
Initialization}
-\item \ref{drivernormative:Device Types / Crypto Device / Device Operation / 
Control Virtqueue / Session operation / Session operation: create session}
-\item \ref{drivernormative:Device Types / Crypto Device / Device Operation / 
Control Virtqueue / Session operation / Session operation: destroy session}
-\item \ref{drivernormative:Device Types / Crypto Device / Device Operation / 
HASH Service Operation}
-\item \ref{drivernormative:Device Types / Crypto Device / Device Operation / 
MAC Service Operation}
-\item \ref{drivernormative:Device Types / Crypto Device / Device Operation / 
Symmetric algorithms Operation}
-\item \ref{drivernormative:Device Types / Crypto Device / Device Operation / 
AEAD Service Operation}
-\end{itemize}
+\import{device-types/virtio-crypto/}{driver-conformance}
 
 \conformance{\subsection}{Socket Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Socket Driver Conformance}
 
@@ -341,20 +327,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-scsi/}{device-conformance}
 \import{device-types/virtio-gpu/}{device-conformance}
 \import{device-types/virtio-input/}{device-conformance}
-
-\conformance{\subsection}{Crypto Device Conformance}\label{sec:Conformance / 
Device Conformance / Crypto Device Conformance}
-
-A Crypto device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / Crypto Device / Device configuration 
layout}
-\item \ref{devicenormative:Device Types / Crypto Device / Device Operation / 
Control Virtqueue / Session operation / Session operation: create session}
-\item \ref{devicenormative:Device Types / Crypto Device / Device Operation / 
Control Virtqueue / Session operation / Session operation: destroy session}
-\item \ref{devicenormative:Device Types / Crypto Device / Device Operation / 
HASH Service Operation}
-\item \ref{devicenormative:Device Types / Crypto Device / Device Operation / 
MAC Service Operation}
-\item \ref{devicenormative:Device Types / Crypto Device / Device Operation / 
Symmetric algorithms Operation}
-\item \ref{devicenormative:Device Types / Crypto Device / Device Operation / 
AEAD Service Operation}
-\end{itemize}
+\import{device-types/virtio-crypto/}{device-conformance}
 
 \conformance{\subsection}{Socket Device Conformance}\label{sec:Conformance / 
Device Conformance / Socket Device Conformance}
 
diff --git a/content.tex b/content.tex
index b1d8474..3d0cba0 100644
--- a/content.tex
+++ b/content.tex
@@ -3011,7 +3011,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-scsi/}{device}
 \import{device-types/virtio-gpu/}{device}
 \import{device-types/virtio-input/}{device}
-\input{virtio-crypto.tex}
+\import{device-types/virtio-crypto/}{device}
 \input{virtio-vsock.tex}
 \input{virtio-fs.tex}
 \input{virtio-rpmb.tex}
diff --git a/device-types/virtio-crypto/device-conformance.tex 
b/device-types/virtio-crypto/device-conformance.tex
new file mode 100644
index 000..1667120
--- /dev/null
+++ b/device-types/virtio-crypto/device-conformance.tex
@@ -0,0 +1,13 @@
+\conformance{\subsection}{Crypto Device Conformance}\label{sec:Conformance / 
Device Conformance / Crypto Device 

[virtio-dev] [PATCH v2 07/20] virtio-scsi: Maintain scsi host device spec in separate directory

2023-01-09 Thread Parav Pandit
Move virtio SCSI host device specification to its own file similar to
recent virtio devices.
While at it, place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v0->v1:
- moved to device specific directory
---
 conformance.tex   |  23 +-
 content.tex   | 712 +-
 .../virtio-scsi/device-conformance.tex|  10 +
 device-types/virtio-scsi/device.tex   | 709 +
 .../virtio-scsi/driver-conformance.tex|   9 +
 5 files changed, 731 insertions(+), 732 deletions(-)
 create mode 100644 device-types/virtio-scsi/device-conformance.tex
 create mode 100644 device-types/virtio-scsi/device.tex
 create mode 100644 device-types/virtio-scsi/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index a92ed5f..10a5af3 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -139,16 +139,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-console/}{driver-conformance}
 \import{device-types/virtio-entropy/}{driver-conformance}
 \import{device-types/virtio-mem-balloon/}{driver-conformance}
-
-\conformance{\subsection}{SCSI Host Driver Conformance}\label{sec:Conformance 
/ Driver Conformance / SCSI Host Driver Conformance}
-
-An SCSI host driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / SCSI Host Device / Device 
configuration layout}
-\item \ref{drivernormative:Device Types / SCSI Host Device / Device Operation 
/ Device Operation: Request Queues}
-\item \ref{drivernormative:Device Types / SCSI Host Device / Device Operation 
/ Device Operation: eventq}
-\end{itemize}
+\import{device-types/virtio-scsi/}{driver-conformance}
 
 \conformance{\subsection}{Input Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Input Driver Conformance}
 
@@ -355,17 +346,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-console/}{device-conformance}
 \import{device-types/virtio-entropy/}{device-conformance}
 \import{device-types/virtio-mem-balloon/}{device-conformance}
-
-\conformance{\subsection}{SCSI Host Device Conformance}\label{sec:Conformance 
/ Device Conformance / SCSI Host Device Conformance}
-
-An SCSI host device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / SCSI Host Device / Device 
configuration layout}
-\item \ref{devicenormative:Device Types / SCSI Host Device / Device 
Initialization}
-\item \ref{devicenormative:Device Types / SCSI Host Device / Device Operation 
/ Device Operation: Request Queues}
-\item \ref{devicenormative:Device Types / SCSI Host Device / Device Operation 
/ Device Operation: eventq}
-\end{itemize}
+\import{device-types/virtio-scsi/}{device-conformance}
 
 \conformance{\subsection}{GPU Device Conformance}\label{sec:Conformance / 
Device Conformance / GPU Device Conformance}
 
diff --git a/content.tex b/content.tex
index d374ae2..05d2f9c 100644
--- a/content.tex
+++ b/content.tex
@@ -3008,717 +3008,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-console/}{device}
 \import{device-types/virtio-entropy/}{device}
 \import{device-types/virtio-mem-balloon/}{device}
-
-\section{SCSI Host Device}\label{sec:Device Types / SCSI Host Device}
-
-The virtio SCSI host device groups together one or more virtual
-logical units (such as disks), and allows communicating to them
-using the SCSI protocol. An instance of the device represents a
-SCSI host to which many targets and LUNs are attached.
-
-The virtio SCSI device services two kinds of requests:
-\begin{itemize}
-\item command requests for a logical unit;
-
-\item task management functions related to a logical unit, target or
-  command.
-\end{itemize}
-
-The device is also able to send out notifications about added and
-removed logical units. Together, these capabilities provide a
-SCSI transport protocol that uses virtqueues as the transfer
-medium. In the transport protocol, the virtio driver acts as the
-initiator, while the virtio SCSI host provides one or more
-targets that receive and process the requests.
-
-This section relies on definitions from \hyperref[intro:SAM]{SAM}.
-
-\subsection{Device ID}\label{sec:Device Types / SCSI Host Device / Device ID}
-  8
-
-\subsection{Virtqueues}\label{sec:Device Types / SCSI Host Device / Virtqueues}
-
-\begin{description}
-\item[0] controlq
-\item[1] eventq
-\item[2\ldots n] request queues
-\end{description}
-
-\subsection{Feature bits}\label{sec:Device Types / SCSI Host Device / Feature 
bits}
-
-\begin{description}
-\item[VIRTIO_SCSI_F_INOUT (0)] A single request can include both
-device-readable and device-writable 

[virtio-dev] [PATCH v2 12/20] virtio-fs: Maintain file system device spec in separate directory

2023-01-09 Thread Parav Pandit
Place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v0->v1:
- new patch
---
 conformance.tex   | 23 ++-
 content.tex   |  2 +-
 device-types/virtio-fs/device-conformance.tex |  9 
 .../virtio-fs/device.tex  |  0
 device-types/virtio-fs/driver-conformance.tex | 10 
 5 files changed, 22 insertions(+), 22 deletions(-)
 create mode 100644 device-types/virtio-fs/device-conformance.tex
 rename virtio-fs.tex => device-types/virtio-fs/device.tex (100%)
 create mode 100644 device-types/virtio-fs/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 5f63bfb..56a2c16 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -143,17 +143,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-input/}{driver-conformance}
 \import{device-types/virtio-crypto/}{driver-conformance}
 \import{device-types/virtio-vsock/}{driver-conformance}
-
-\conformance{\subsection}{File System Driver 
Conformance}\label{sec:Conformance / Driver Conformance / File System Driver 
Conformance}
-
-A file system driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / File System Device / Device 
configuration layout}
-\item \ref{drivernormative:Device Types / File System Device / Device 
Operation / Device Operation: High Priority Queue}
-\item \ref{drivernormative:Device Types / File System Device / Device 
Operation / Device Operation: Notification Queue}
-\item \ref{drivernormative:Device Types / File System Device / Device 
Operation / Device Operation: DAX Window}
-\end{itemize}
+\import{device-types/virtio-fs/}{driver-conformance}
 
 \conformance{\subsection}{RPMB Driver Conformance}\label{sec:Conformance / 
Driver Conformance / RPMB Driver Conformance}
 
@@ -319,16 +309,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-input/}{device-conformance}
 \import{device-types/virtio-crypto/}{device-conformance}
 \import{device-types/virtio-vsock/}{device-conformance}
-
-\conformance{\subsection}{File System Device 
Conformance}\label{sec:Conformance / Device Conformance / File System Device 
Conformance}
-
-A file system device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / File System Device / Device 
configuration layout}
-\item \ref{devicenormative:Device Types / File System Device / Device 
Operation / Device Operation: High Priority Queue}
-\item \ref{devicenormative:Device Types / File System Device / Device 
Operation / Device Operation: DAX Window}
-\end{itemize}
+\import{device-types/virtio-fs/}{device-conformance}
 
 \conformance{\subsection}{RPMB Device Conformance}\label{sec:Conformance / 
Device Conformance / RPMB Device Conformance}
 
diff --git a/content.tex b/content.tex
index 1cee4c4..a486e36 100644
--- a/content.tex
+++ b/content.tex
@@ -3013,7 +3013,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-input/}{device}
 \import{device-types/virtio-crypto/}{device}
 \import{device-types/virtio-vsock/}{device}
-\input{virtio-fs.tex}
+\import{device-types/virtio-fs/}{device}
 \input{virtio-rpmb.tex}
 \input{virtio-iommu.tex}
 \input{virtio-sound.tex}
diff --git a/device-types/virtio-fs/device-conformance.tex 
b/device-types/virtio-fs/device-conformance.tex
new file mode 100644
index 000..a86245e
--- /dev/null
+++ b/device-types/virtio-fs/device-conformance.tex
@@ -0,0 +1,9 @@
+\conformance{\subsection}{File System Device 
Conformance}\label{sec:Conformance / Device Conformance / File System Device 
Conformance}
+
+A file system device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / File System Device / Device 
configuration layout}
+\item \ref{devicenormative:Device Types / File System Device / Device 
Operation / Device Operation: High Priority Queue}
+\item \ref{devicenormative:Device Types / File System Device / Device 
Operation / Device Operation: DAX Window}
+\end{itemize}
diff --git a/virtio-fs.tex b/device-types/virtio-fs/device.tex
similarity index 100%
rename from virtio-fs.tex
rename to device-types/virtio-fs/device.tex
diff --git a/device-types/virtio-fs/driver-conformance.tex 
b/device-types/virtio-fs/driver-conformance.tex
new file mode 100644
index 000..5a762ec
--- /dev/null
+++ b/device-types/virtio-fs/driver-conformance.tex
@@ -0,0 +1,10 @@
+\conformance{\subsection}{File System Driver 
Conformance}\label{sec:Conformance / Driver Conformance / File System Driver 
Conformance}
+
+A file system driver MUST conform to the following normative statements:
+

[virtio-dev] [PATCH v2 06/20] virtio-mem-balloon: Maintain mem balloon device spec in separate directory

2023-01-09 Thread Parav Pandit
Move virtio memory balloon device specification to its own file
similar to recent virtio devices.
While at it, place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v0->v1:
- moved to device specific directory
---
 conformance.tex   |  28 +-
 content.tex   | 636 +-
 .../virtio-mem-balloon/device-conformance.tex |  12 +
 device-types/virtio-mem-balloon/device.tex| 634 +
 .../virtio-mem-balloon/driver-conformance.tex |  12 +
 5 files changed, 661 insertions(+), 661 deletions(-)
 create mode 100644 device-types/virtio-mem-balloon/device-conformance.tex
 create mode 100644 device-types/virtio-mem-balloon/device.tex
 create mode 100644 device-types/virtio-mem-balloon/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index e5bb9d9..a92ed5f 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -138,19 +138,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-block/}{driver-conformance}
 \import{device-types/virtio-console/}{driver-conformance}
 \import{device-types/virtio-entropy/}{driver-conformance}
-
-\conformance{\subsection}{Traditional Memory Balloon Driver 
Conformance}\label{sec:Conformance / Driver Conformance / Traditional Memory 
Balloon Driver Conformance}
-
-A traditional memory balloon driver MUST conform to the following normative 
statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / Memory Balloon Device / Feature bits}
-\item \ref{drivernormative:Device Types / Memory Balloon Device / Device 
Operation}
-\item \ref{drivernormative:Device Types / Memory Balloon Device / Device 
Operation / Memory Statistics}
-\item \ref{drivernormative:Device Types / Memory Balloon Device / Device 
Operation / Free Page Hinting}
-\item \ref{drivernormative:Device Types / Memory Balloon Device / Device 
Operation / Page Poison}
-\item \ref{drivernormative:Device Types / Memory Balloon Device / Device 
Operation / Free Page Reporting}
-\end{itemize}
+\import{device-types/virtio-mem-balloon/}{driver-conformance}
 
 \conformance{\subsection}{SCSI Host Driver Conformance}\label{sec:Conformance 
/ Driver Conformance / SCSI Host Driver Conformance}
 
@@ -366,19 +354,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-block/}{device-conformance}
 \import{device-types/virtio-console/}{device-conformance}
 \import{device-types/virtio-entropy/}{device-conformance}
-
-\conformance{\subsection}{Traditional Memory Balloon Device 
Conformance}\label{sec:Conformance / Device Conformance / Traditional Memory 
Balloon Device Conformance}
-
-A traditional memory balloon device MUST conform to the following normative 
statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / Memory Balloon Device / Feature bits}
-\item \ref{devicenormative:Device Types / Memory Balloon Device / Device 
Operation}
-\item \ref{devicenormative:Device Types / Memory Balloon Device / Device 
Operation / Memory Statistics}
-\item \ref{devicenormative:Device Types / Memory Balloon Device / Device 
Operation / Free Page Hinting}
-\item \ref{devicenormative:Device Types / Memory Balloon Device / Device 
Operation / Page Poison}
-\item \ref{devicenormative:Device Types / Memory Balloon Device / Device 
Operation / Free Page Reporting}
-\end{itemize}
+\import{device-types/virtio-mem-balloon/}{device-conformance}
 
 \conformance{\subsection}{SCSI Host Device Conformance}\label{sec:Conformance 
/ Device Conformance / SCSI Host Device Conformance}
 
diff --git a/content.tex b/content.tex
index 953488e..d374ae2 100644
--- a/content.tex
+++ b/content.tex
@@ -3007,641 +3007,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-block/}{device}
 \import{device-types/virtio-console/}{device}
 \import{device-types/virtio-entropy/}{device}
-
-\section{Traditional Memory Balloon Device}\label{sec:Device Types / Memory 
Balloon Device}
-
-This is the traditional balloon device.  The device number 13 is
-reserved for a new memory balloon interface, with different
-semantics, which is expected in a future version of the standard.
-
-The traditional virtio memory balloon device is a primitive device for
-managing guest memory: the device asks for a certain amount of
-memory, and the driver supplies it (or withdraws it, if the device
-has more than it asks for). This allows the guest to adapt to
-changes in allowance of underlying physical memory. If the
-feature is negotiated, the device can also be used to communicate
-guest memory statistics to the host.
-
-\subsection{Device ID}\label{sec:Device Types / Memory Balloon Device / Device 
ID}
-  5
-
-\subsection{Virtqueues}\label{sec:Device Types / Memory 

[virtio-dev] [PATCH v2 09/20] virtio-input: Maintain input device spec in separate directory

2023-01-09 Thread Parav Pandit
Move virtio input device specification to its own file similar to
recent virtio devices.
While at it, place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v0->v1:
- moved to device specific directory
---
 conformance.tex   | 20 ++-
 content.tex   |  2 +-
 .../virtio-input/device-conformance.tex   |  8 
 .../virtio-input/device.tex   |  0
 .../virtio-input/driver-conformance.tex   |  8 
 5 files changed, 19 insertions(+), 19 deletions(-)
 create mode 100644 device-types/virtio-input/device-conformance.tex
 rename virtio-input.tex => device-types/virtio-input/device.tex (100%)
 create mode 100644 device-types/virtio-input/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index 432b03c..8470e52 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -140,15 +140,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-entropy/}{driver-conformance}
 \import{device-types/virtio-mem-balloon/}{driver-conformance}
 \import{device-types/virtio-scsi/}{driver-conformance}
-
-\conformance{\subsection}{Input Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Input Driver Conformance}
-
-An input driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / Input Device / Device Initialization}
-\item \ref{drivernormative:Device Types / Input Device / Device Operation}
-\end{itemize}
+\import{device-types/virtio-input/}{driver-conformance}
 
 \conformance{\subsection}{Crypto Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Crypto Driver Conformance}
 
@@ -348,15 +340,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-mem-balloon/}{device-conformance}
 \import{device-types/virtio-scsi/}{device-conformance}
 \import{device-types/virtio-gpu/}{device-conformance}
-
-\conformance{\subsection}{Input Device Conformance}\label{sec:Conformance / 
Device Conformance / Input Device Conformance}
-
-An input device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / Input Device / Device Initialization}
-\item \ref{devicenormative:Device Types / Input Device / Device Operation}
-\end{itemize}
+\import{device-types/virtio-input/}{device-conformance}
 
 \conformance{\subsection}{Crypto Device Conformance}\label{sec:Conformance / 
Device Conformance / Crypto Device Conformance}
 
diff --git a/content.tex b/content.tex
index 4f16ad8..b1d8474 100644
--- a/content.tex
+++ b/content.tex
@@ -3010,7 +3010,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-mem-balloon/}{device}
 \import{device-types/virtio-scsi/}{device}
 \import{device-types/virtio-gpu/}{device}
-\input{virtio-input.tex}
+\import{device-types/virtio-input/}{device}
 \input{virtio-crypto.tex}
 \input{virtio-vsock.tex}
 \input{virtio-fs.tex}
diff --git a/device-types/virtio-input/device-conformance.tex 
b/device-types/virtio-input/device-conformance.tex
new file mode 100644
index 000..173cdd6
--- /dev/null
+++ b/device-types/virtio-input/device-conformance.tex
@@ -0,0 +1,8 @@
+\conformance{\subsection}{Input Device Conformance}\label{sec:Conformance / 
Device Conformance / Input Device Conformance}
+
+An input device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / Input Device / Device Initialization}
+\item \ref{devicenormative:Device Types / Input Device / Device Operation}
+\end{itemize}
diff --git a/virtio-input.tex b/device-types/virtio-input/device.tex
similarity index 100%
rename from virtio-input.tex
rename to device-types/virtio-input/device.tex
diff --git a/device-types/virtio-input/driver-conformance.tex 
b/device-types/virtio-input/driver-conformance.tex
new file mode 100644
index 000..5eb9dac
--- /dev/null
+++ b/device-types/virtio-input/driver-conformance.tex
@@ -0,0 +1,8 @@
+\conformance{\subsection}{Input Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Input Driver Conformance}
+
+An input driver MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{drivernormative:Device Types / Input Device / Device Initialization}
+\item \ref{drivernormative:Device Types / Input Device / Device Operation}
+\end{itemize}
-- 
2.26.2


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] [PATCH v2 05/20] virtio-entropy: Maintain entropy device spec in separate directory

2023-01-09 Thread Parav Pandit
Move virtio entropy device specification to its own file similar to
recent virtio devices.
While at it, place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v0->v1:
- moved to device specific directory
---
 conformance.tex   | 18 +---
 content.tex   | 44 +--
 .../virtio-entropy/device-conformance.tex |  7 +++
 device-types/virtio-entropy/device.tex| 42 ++
 .../virtio-entropy/driver-conformance.tex |  7 +++
 5 files changed, 59 insertions(+), 59 deletions(-)
 create mode 100644 device-types/virtio-entropy/device-conformance.tex
 create mode 100644 device-types/virtio-entropy/device.tex
 create mode 100644 device-types/virtio-entropy/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index e991c2b..e5bb9d9 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -137,14 +137,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-network/}{driver-conformance}
 \import{device-types/virtio-block/}{driver-conformance}
 \import{device-types/virtio-console/}{driver-conformance}
-
-\conformance{\subsection}{Entropy Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Entropy Driver Conformance}
-
-An entropy driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / Entropy Device / Device Operation}
-\end{itemize}
+\import{device-types/virtio-entropy/}{driver-conformance}
 
 \conformance{\subsection}{Traditional Memory Balloon Driver 
Conformance}\label{sec:Conformance / Driver Conformance / Traditional Memory 
Balloon Driver Conformance}
 
@@ -372,14 +365,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-network/}{device-conformance}
 \import{device-types/virtio-block/}{device-conformance}
 \import{device-types/virtio-console/}{device-conformance}
-
-\conformance{\subsection}{Entropy Device Conformance}\label{sec:Conformance / 
Device Conformance / Entropy Device Conformance}
-
-An entropy device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / Entropy Device / Device Operation}
-\end{itemize}
+\import{device-types/virtio-entropy/}{device-conformance}
 
 \conformance{\subsection}{Traditional Memory Balloon Device 
Conformance}\label{sec:Conformance / Device Conformance / Traditional Memory 
Balloon Device Conformance}
 
diff --git a/content.tex b/content.tex
index b835641..953488e 100644
--- a/content.tex
+++ b/content.tex
@@ -3006,49 +3006,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-network/}{device}
 \import{device-types/virtio-block/}{device}
 \import{device-types/virtio-console/}{device}
-
-\section{Entropy Device}\label{sec:Device Types / Entropy Device}
-
-The virtio entropy device supplies high-quality randomness for
-guest use.
-
-\subsection{Device ID}\label{sec:Device Types / Entropy Device / Device ID}
-  4
-
-\subsection{Virtqueues}\label{sec:Device Types / Entropy Device / Virtqueues}
-\begin{description}
-\item[0] requestq
-\end{description}
-
-\subsection{Feature bits}\label{sec:Device Types / Entropy Device / Feature 
bits}
-  None currently defined
-
-\subsection{Device configuration layout}\label{sec:Device Types / Entropy 
Device / Device configuration layout}
-  None currently defined.
-
-\subsection{Device Initialization}\label{sec:Device Types / Entropy Device / 
Device Initialization}
-
-\begin{enumerate}
-\item The virtqueue is initialized
-\end{enumerate}
-
-\subsection{Device Operation}\label{sec:Device Types / Entropy Device / Device 
Operation}
-
-When the driver requires random bytes, it places the descriptor
-of one or more buffers in the queue. It will be completely filled
-by random data by the device.
-
-\drivernormative{\subsubsection}{Device Operation}{Device Types / Entropy 
Device / Device Operation}
-
-The driver MUST NOT place device-readable buffers into the queue.
-
-The driver MUST examine the length written by the device to determine
-how many random bytes were received.
-
-\devicenormative{\subsubsection}{Device Operation}{Device Types / Entropy 
Device / Device Operation}
-
-The device MUST place one or more random bytes into the buffer, but it
-MAY use less than the entire buffer length.
+\import{device-types/virtio-entropy/}{device}
 
 \section{Traditional Memory Balloon Device}\label{sec:Device Types / Memory 
Balloon Device}
 
diff --git a/device-types/virtio-entropy/device-conformance.tex 
b/device-types/virtio-entropy/device-conformance.tex
new file mode 100644
index 000..2789fda
--- /dev/null
+++ b/device-types/virtio-entropy/device-conformance.tex
@@ -0,0 +1,7 @@

[virtio-dev] [PATCH v2 08/20] virtio-gpu: Maintain gpu device spec in separate directory

2023-01-09 Thread Parav Pandit
Move virtio gpu device specification to its own file similar to
recent virtio devices.
While at it, place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v0->v1:
- moved to device specific directory
---
 conformance.tex  | 10 +-
 content.tex  |  2 +-
 device-types/virtio-gpu/device-conformance.tex   |  8 
 virtio-gpu.tex => device-types/virtio-gpu/device.tex |  0
 4 files changed, 10 insertions(+), 10 deletions(-)
 create mode 100644 device-types/virtio-gpu/device-conformance.tex
 rename virtio-gpu.tex => device-types/virtio-gpu/device.tex (100%)

diff --git a/conformance.tex b/conformance.tex
index 10a5af3..432b03c 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -347,15 +347,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 \import{device-types/virtio-entropy/}{device-conformance}
 \import{device-types/virtio-mem-balloon/}{device-conformance}
 \import{device-types/virtio-scsi/}{device-conformance}
-
-\conformance{\subsection}{GPU Device Conformance}\label{sec:Conformance / 
Device Conformance / GPU Device Conformance}
-
-A GPU device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / GPU Device / Device Initialization}
-\item \ref{devicenormative:Device Types / GPU Device / Device Operation / 
Device Operation: Command lifecycle and fencing}
-\end{itemize}
+\import{device-types/virtio-gpu/}{device-conformance}
 
 \conformance{\subsection}{Input Device Conformance}\label{sec:Conformance / 
Device Conformance / Input Device Conformance}
 
diff --git a/content.tex b/content.tex
index 05d2f9c..4f16ad8 100644
--- a/content.tex
+++ b/content.tex
@@ -3009,7 +3009,7 @@ \chapter{Device Types}\label{sec:Device Types}
 \import{device-types/virtio-entropy/}{device}
 \import{device-types/virtio-mem-balloon/}{device}
 \import{device-types/virtio-scsi/}{device}
-\input{virtio-gpu.tex}
+\import{device-types/virtio-gpu/}{device}
 \input{virtio-input.tex}
 \input{virtio-crypto.tex}
 \input{virtio-vsock.tex}
diff --git a/device-types/virtio-gpu/device-conformance.tex 
b/device-types/virtio-gpu/device-conformance.tex
new file mode 100644
index 000..782ef81
--- /dev/null
+++ b/device-types/virtio-gpu/device-conformance.tex
@@ -0,0 +1,8 @@
+\conformance{\subsection}{GPU Device Conformance}\label{sec:Conformance / 
Device Conformance / GPU Device Conformance}
+
+A GPU device MUST conform to the following normative statements:
+
+\begin{itemize}
+\item \ref{devicenormative:Device Types / GPU Device / Device Initialization}
+\item \ref{devicenormative:Device Types / GPU Device / Device Operation / 
Device Operation: Command lifecycle and fencing}
+\end{itemize}
diff --git a/virtio-gpu.tex b/device-types/virtio-gpu/device.tex
similarity index 100%
rename from virtio-gpu.tex
rename to device-types/virtio-gpu/device.tex
-- 
2.26.2


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] [PATCH v2 04/20] virtio-console: Maintain console device spec in separate directory

2023-01-09 Thread Parav Pandit
Move virtio console device specification to its own file similar to
recent virtio devices.
While at it, place device specification, its driver and device
conformance into its own directory to have self contained device
specification.

Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
Signed-off-by: Parav Pandit 
---
changelog:
v0->v1:
- moved to device specific directory
---
 conformance.tex   |  20 +-
 content.tex   | 233 +-
 .../virtio-console/device-conformance.tex |   8 +
 device-types/virtio-console/device.tex| 231 +
 .../virtio-console/driver-conformance.tex |   8 +
 5 files changed, 250 insertions(+), 250 deletions(-)
 create mode 100644 device-types/virtio-console/device-conformance.tex
 create mode 100644 device-types/virtio-console/device.tex
 create mode 100644 device-types/virtio-console/driver-conformance.tex

diff --git a/conformance.tex b/conformance.tex
index c523c8a..e991c2b 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -136,15 +136,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 
 \import{device-types/virtio-network/}{driver-conformance}
 \import{device-types/virtio-block/}{driver-conformance}
-
-\conformance{\subsection}{Console Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Console Driver Conformance}
-
-A console driver MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{drivernormative:Device Types / Console Device / Device Operation}
-\item \ref{drivernormative:Device Types / Console Device / Device Operation / 
Multiport Device Operation}
-\end{itemize}
+\import{device-types/virtio-console/}{driver-conformance}
 
 \conformance{\subsection}{Entropy Driver Conformance}\label{sec:Conformance / 
Driver Conformance / Entropy Driver Conformance}
 
@@ -379,15 +371,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
 
 \import{device-types/virtio-network/}{device-conformance}
 \import{device-types/virtio-block/}{device-conformance}
-
-\conformance{\subsection}{Console Device Conformance}\label{sec:Conformance / 
Device Conformance / Console Device Conformance}
-
-A console device MUST conform to the following normative statements:
-
-\begin{itemize}
-\item \ref{devicenormative:Device Types / Console Device / Device 
Initialization}
-\item \ref{devicenormative:Device Types / Console Device / Device Operation / 
Multiport Device Operation}
-\end{itemize}
+\import{device-types/virtio-console/}{device-conformance}
 
 \conformance{\subsection}{Entropy Device Conformance}\label{sec:Conformance / 
Device Conformance / Entropy Device Conformance}
 
diff --git a/content.tex b/content.tex
index 0e17b75..b835641 100644
--- a/content.tex
+++ b/content.tex
@@ -3005,238 +3005,7 @@ \chapter{Device Types}\label{sec:Device Types}
 
 \import{device-types/virtio-network/}{device}
 \import{device-types/virtio-block/}{device}
-
-\section{Console Device}\label{sec:Device Types / Console Device}
-
-The virtio console device is a simple device for data input and
-output. A device MAY have one or more ports. Each port has a pair
-of input and output virtqueues. Moreover, a device has a pair of
-control IO virtqueues. The control virtqueues are used to
-communicate information between the device and the driver about
-ports being opened and closed on either side of the connection,
-indication from the device about whether a particular port is a
-console port, adding new ports, port hot-plug/unplug, etc., and
-indication from the driver about whether a port or a device was
-successfully added, port open/close, etc. For data IO, one or
-more empty buffers are placed in the receive queue for incoming
-data and outgoing characters are placed in the transmit queue.
-
-\subsection{Device ID}\label{sec:Device Types / Console Device / Device ID}
-
-  3
-
-\subsection{Virtqueues}\label{sec:Device Types / Console Device / Virtqueues}
-
-\begin{description}
-\item[0] receiveq(port0)
-\item[1] transmitq(port0)
-\item[2] control receiveq
-\item[3] control transmitq
-\item[4] receiveq(port1)
-\item[5] transmitq(port1)
-\item[\ldots]
-\end{description}
-
-The port 0 receive and transmit queues always exist: other queues
-only exist if VIRTIO_CONSOLE_F_MULTIPORT is set.
-
-\subsection{Feature bits}\label{sec:Device Types / Console Device / Feature 
bits}
-
-\begin{description}
-\item[VIRTIO_CONSOLE_F_SIZE (0)] Configuration \field{cols} and \field{rows}
-are valid.
-
-\item[VIRTIO_CONSOLE_F_MULTIPORT (1)] Device has support for multiple
-ports; \field{max_nr_ports} is valid and control virtqueues will be used.
-
-\item[VIRTIO_CONSOLE_F_EMERG_WRITE (2)] Device has support for emergency write.
-Configuration field emerg_wr is valid.
-\end{description}
-
-\subsection{Device configuration layout}\label{sec:Device Types / Console 
Device / Device configuration layout}
-
-  The size of the 

[virtio-dev] [PATCH v2 00/20] Split device spec to its individual files

2023-01-09 Thread Parav Pandit
Relatively several of the recent device specifications are maintained
in their own specification file. Such separate files enables better
maintenance of the specification overall.
However, several of the initial virtio device specifications
are located in single file.

Hence, split them into their individual files.

Additionally, each device's driver and device conformance is
present in one giant conformance file all together.

As Michael suggest's move this device and driver conformance
section adjacent to device specification in each device specific
directory. This further makes device specification self-contained.

Added patch to fix spelling errors in network device
specification which was inherited from its previous file
location.

Patches do not change any part of the specification outcome
except fixing the spelling errors.
It only changes how the specification is maintained.

patch summary:
-
patch 1 to 7 creates new files for moving devices spec out of
content and conformance files.
patch 8 to 20 move existing dedicated file spec to new directory
and creates per device,driver conformance file for each device.

changelog:
--
v1->v2:
- removed extra blank lines in network and block device files
- added missing device conformance link for rpmb, sound, i2c and
  gpio devices
v0->v1:
- move device spec to their own directory
- added split files for conformance and placed them adjacent to
  device spec
- added patch to fix spelling errors in network device

Parav Pandit (20):
  virtio-network: Maintain network device spec in separate directory
  virtio-network: Fix spelling errors
  virtio-block: Maintain block device spec in separate directory
  virtio-console: Maintain console device spec in separate directory
  virtio-entropy: Maintain entropy device spec in separate directory
  virtio-mem-balloon: Maintain mem balloon device spec in separate
directory
  virtio-scsi: Maintain scsi host device spec in separate directory
  virtio-gpu: Maintain gpu device spec in separate directory
  virtio-input: Maintain input device spec in separate directory
  virtio-crypto: Maintain crypto device spec in separate directory
  virtio-vsock: Maintain socket device spec in separate directory
  virtio-fs: Maintain file system device spec in separate directory
  virtio-rpmb: Maintain rpmb device spec in separate directory
  virtio-iommu: Maintain iommu device spec in separate directory
  virtio-sound: Maintain sound device spec in separate directory
  virtio-mem: Maintain memory device spec in separate directory
  virtio-i2c: Maintain i2c device spec in separate directory
  virtio-scmi: Maintain scmi device spec in separate directory
  virtio-gpio: Maintain gpio device spec in separate directory
  virtio-pmem: Maintain pmem device spec in separate directory

 conformance.tex   |  456 +-
 content.tex   | 4561 +
 .../virtio-block/device-conformance.tex   |8 +
 device-types/virtio-block/device.tex  | 1313 +
 .../virtio-block/driver-conformance.tex   |8 +
 .../virtio-console/device-conformance.tex |8 +
 device-types/virtio-console/device.tex|  231 +
 .../virtio-console/driver-conformance.tex |8 +
 .../virtio-crypto/device-conformance.tex  |   13 +
 .../virtio-crypto/device.tex  |0
 .../virtio-crypto/driver-conformance.tex  |   14 +
 .../virtio-entropy/device-conformance.tex |7 +
 device-types/virtio-entropy/device.tex|   42 +
 .../virtio-entropy/driver-conformance.tex |7 +
 device-types/virtio-fs/device-conformance.tex |9 +
 .../virtio-fs/device.tex  |0
 device-types/virtio-fs/driver-conformance.tex |   10 +
 .../virtio-gpio/device-conformance.tex|9 +
 .../virtio-gpio/device.tex|0
 .../virtio-gpio/driver-conformance.tex|9 +
 .../virtio-gpu/device-conformance.tex |8 +
 .../virtio-gpu/device.tex |0
 .../virtio-i2c/device-conformance.tex |7 +
 .../virtio-i2c/device.tex |0
 .../virtio-i2c/driver-conformance.tex |7 +
 .../virtio-input/device-conformance.tex   |8 +
 .../virtio-input/device.tex   |0
 .../virtio-input/driver-conformance.tex   |8 +
 .../virtio-iommu/device-conformance.tex   |   16 +
 .../virtio-iommu/device.tex   |0
 .../virtio-iommu/driver-conformance.tex   |   17 +
 .../virtio-mem-balloon/device-conformance.tex |   12 +
 device-types/virtio-mem-balloon/device.tex|  634 +++
 .../virtio-mem-balloon/driver-conformance.tex |   12 +
 .../virtio-mem/device-conformance.tex |   13 +
 .../virtio-mem/device.tex |0
 .../virtio-mem/driver-conformance.tex |   13 +
 .../virtio-network/device-conformance.tex |   16 +
 device-types/virtio-network/device.tex

[virtio-dev] [PATCH v2 02/20] virtio-network: Fix spelling errors

2023-01-09 Thread Parav Pandit
Fix two spelling errors in the virtio network device specification.

Signed-off-by: Parav Pandit 
---
 device-types/virtio-network/device.tex | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/device-types/virtio-network/device.tex 
b/device-types/virtio-network/device.tex
index 367681d..82d7374 100644
--- a/device-types/virtio-network/device.tex
+++ b/device-types/virtio-network/device.tex
@@ -331,7 +331,7 @@ \subsection{Device Initialization}\label{sec:Device Types / 
Network Device / Dev
   Otherwise, the driver assumes it's active.
 
 \item A performant driver would indicate that it will generate checksumless
-  packets by negotating the VIRTIO_NET_F_CSUM feature.
+  packets by negotiating the VIRTIO_NET_F_CSUM feature.
 
 \item If that feature is negotiated, a driver can use TCP segmentation or UDP
   segmentation/fragmentation offload by negotiating the VIRTIO_NET_F_HOST_TSO4 
(IPv4
@@ -1062,7 +1062,7 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types 
/ Network Device / Devi
 \begin{itemize}
 \item VIRTIO_NET_CTRL_RX_PROMISC turns promiscuous mode on and
 off. The command-specific-data is one byte containing 0 (off) or
-1 (on). If promiscous mode is on, the device SHOULD receive all
+1 (on). If promiscuous mode is on, the device SHOULD receive all
 incoming packets.
 This SHOULD take effect even if one of the other modes set by
 a VIRTIO_NET_CTRL_RX class command is on.
-- 
2.26.2


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] RE: [virtio-comment] [PATCH v1 13/20] virtio-rpmb: Maintain rpmb device spec in separate directory

2023-01-09 Thread Parav Pandit


> From: Cornelia Huck 
> Sent: Monday, January 9, 2023 8:47 AM
> 
> On Mon, Jan 09 2023, "Michael S. Tsirkin"  wrote:
> 
> > On Mon, Jan 09, 2023 at 01:48:27PM +0100, Cornelia Huck wrote:
> >> On Sun, Jan 01 2023, Parav Pandit  wrote:
> >>
> >> > Place device specification, its driver and device conformance into
> >> > its own directory to have self contained device specification.
> >> >
> >> > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
> >> > Signed-off-by: Parav Pandit 
> >> > ---
> >> > changelog:
> >> > v0->v1:
> >> > - new patch
> >> > ---
> >> >  conformance.tex   | 23 ++-
> >> >  content.tex   |  1 -
> >> >  .../virtio-rpmb/device-conformance.tex| 13 +++
> >> >  .../virtio-rpmb/device.tex|  0
> >> >  .../virtio-rpmb/driver-conformance.tex|  7 ++
> >> >  5 files changed, 22 insertions(+), 22 deletions(-)  create mode
> >> > 100644 device-types/virtio-rpmb/device-conformance.tex
> >> >  rename virtio-rpmb.tex => device-types/virtio-rpmb/device.tex
> >> > (100%)  create mode 100644
> >> > device-types/virtio-rpmb/driver-conformance.tex
> >> >
> >>
> >> (...)
> >>
> >> > diff --git a/content.tex b/content.tex index a486e36..13a2a94
> >> > 100644
> >> > --- a/content.tex
> >> > +++ b/content.tex
> >> > @@ -3014,7 +3014,6 @@ \chapter{Device Types}\label{sec:Device
> >> > Types}  \import{device-types/virtio-crypto/}{device}
> >> >  \import{device-types/virtio-vsock/}{device}
> >> >  \import{device-types/virtio-fs/}{device}
> >> > -\input{virtio-rpmb.tex}
> >>
> >> This is missing
> >>
> >> \import{device-types/virtio-rpmb/}{device}
> >>
> >> (I noticed broken references when building with the patches applied)
> >
> >
> > Oh, good catch. Parav, I'd really like patch submitters to run the
> > build and review the resulting files.
> > I guess we should withdraw the ballot for now and wait until a fixed
> > version. Agree?
> 
> Withdrawing the ballot sounds like the best option to me.
> 
> For a respin, it might also be a good idea to drop the extra blank line before
> EOF for (IIRC) net and block that git am complained about.

Yes, I will fix this one too.

-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] RE: [PATCH v1 01/20] virtio-network: Maintain network device spec in separate directory

2023-01-09 Thread Parav Pandit


> From: Michael S. Tsirkin 
> Sent: Monday, January 9, 2023 8:43 AM
> 
> I found another issue with this. Currently for redline diff generation
> we use latexpand. Using a flat expanded file has lots of benefits, in
> particular latexdiff is sometimes fragile as it is, with a flat file
> one can at least see the input it gets.
> 
> We should either stick with \\input or more work is needed on
> these scripts. Besides, we are already using \\input and I like
> consistency.
> 
> So my preference is \\input for now.
\\input doesn't support reading from the directory.

-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] RE: [virtio-comment] [PATCH v1 13/20] virtio-rpmb: Maintain rpmb device spec in separate directory

2023-01-09 Thread Parav Pandit


> From: Michael S. Tsirkin 
> Sent: Monday, January 9, 2023 8:36 AM
> 
> On Mon, Jan 09, 2023 at 01:48:27PM +0100, Cornelia Huck wrote:
> > On Sun, Jan 01 2023, Parav Pandit  wrote:
> >
> > > Place device specification, its driver and device conformance into
> > > its own directory to have self contained device specification.
> > >
> > > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
> > > Signed-off-by: Parav Pandit 
> > > ---
> > > changelog:
> > > v0->v1:
> > > - new patch
> > > ---
> > >  conformance.tex   | 23 ++-
> > >  content.tex   |  1 -
> > >  .../virtio-rpmb/device-conformance.tex| 13 +++
> > >  .../virtio-rpmb/device.tex|  0
> > >  .../virtio-rpmb/driver-conformance.tex|  7 ++
> > >  5 files changed, 22 insertions(+), 22 deletions(-)  create mode
> > > 100644 device-types/virtio-rpmb/device-conformance.tex
> > >  rename virtio-rpmb.tex => device-types/virtio-rpmb/device.tex
> > > (100%)  create mode 100644
> > > device-types/virtio-rpmb/driver-conformance.tex
> > >
> >
> > (...)
> >
> > > diff --git a/content.tex b/content.tex index a486e36..13a2a94 100644
> > > --- a/content.tex
> > > +++ b/content.tex
> > > @@ -3014,7 +3014,6 @@ \chapter{Device Types}\label{sec:Device Types}
> > > \import{device-types/virtio-crypto/}{device}
> > >  \import{device-types/virtio-vsock/}{device}
> > >  \import{device-types/virtio-fs/}{device}
> > > -\input{virtio-rpmb.tex}
> >
> > This is missing
> >
> > \import{device-types/virtio-rpmb/}{device}
> >
> > (I noticed broken references when building with the patches applied)
> 
> 
> Oh, good catch. Parav, I'd really like patch submitters to run the build and
> review the resulting files.
I did the build and generated the pdf.
But for sure missed several of the entries.
I am finding out why I missed this and saw valid entries.

I am revising the series v2.

> I guess we should withdraw the ballot for now and wait until a fixed version.
> Agree?
> 
> > >  \input{virtio-iommu.tex}
> > >  \input{virtio-sound.tex}
> > >  \input{virtio-mem.tex}


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



Re: [virtio-dev] Re: [virtio-comment] [PATCH v1 13/20] virtio-rpmb: Maintain rpmb device spec in separate directory

2023-01-09 Thread Cornelia Huck
On Mon, Jan 09 2023, Cornelia Huck  wrote:

> On Mon, Jan 09 2023, "Michael S. Tsirkin"  wrote:
>
>> On Mon, Jan 09, 2023 at 01:48:27PM +0100, Cornelia Huck wrote:
>>> On Sun, Jan 01 2023, Parav Pandit  wrote:
>>> 
>>> > Place device specification, its driver and device
>>> > conformance into its own directory to have self contained device
>>> > specification.
>>> >
>>> > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
>>> > Signed-off-by: Parav Pandit 
>>> > ---
>>> > changelog:
>>> > v0->v1:
>>> > - new patch
>>> > ---
>>> >  conformance.tex   | 23 ++-
>>> >  content.tex   |  1 -
>>> >  .../virtio-rpmb/device-conformance.tex| 13 +++
>>> >  .../virtio-rpmb/device.tex|  0
>>> >  .../virtio-rpmb/driver-conformance.tex|  7 ++
>>> >  5 files changed, 22 insertions(+), 22 deletions(-)
>>> >  create mode 100644 device-types/virtio-rpmb/device-conformance.tex
>>> >  rename virtio-rpmb.tex => device-types/virtio-rpmb/device.tex (100%)
>>> >  create mode 100644 device-types/virtio-rpmb/driver-conformance.tex
>>> >
>>> 
>>> (...)
>>> 
>>> > diff --git a/content.tex b/content.tex
>>> > index a486e36..13a2a94 100644
>>> > --- a/content.tex
>>> > +++ b/content.tex
>>> > @@ -3014,7 +3014,6 @@ \chapter{Device Types}\label{sec:Device Types}
>>> >  \import{device-types/virtio-crypto/}{device}
>>> >  \import{device-types/virtio-vsock/}{device}
>>> >  \import{device-types/virtio-fs/}{device}
>>> > -\input{virtio-rpmb.tex}
>>> 
>>> This is missing
>>> 
>>> \import{device-types/virtio-rpmb/}{device}
>>> 
>>> (I noticed broken references when building with the patches applied)
>>
>>
>> Oh, good catch. Parav, I'd really like patch submitters to run the
>> build and review the resulting files.
>> I guess we should withdraw the ballot for now and wait until a fixed
>> version. Agree?
>
> Withdrawing the ballot sounds like the best option to me.
>
> For a respin, it might also be a good idea to drop the extra blank line
> before EOF for (IIRC) net and block that git am complained about.

FWIW, if I add all of the missing imports, the only diff in the
generated pdf are the typo fixes, so the remainder looks sane.


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [virtio-comment] [PATCH v1 13/20] virtio-rpmb: Maintain rpmb device spec in separate directory

2023-01-09 Thread Cornelia Huck
On Mon, Jan 09 2023, "Michael S. Tsirkin"  wrote:

> On Mon, Jan 09, 2023 at 01:48:27PM +0100, Cornelia Huck wrote:
>> On Sun, Jan 01 2023, Parav Pandit  wrote:
>> 
>> > Place device specification, its driver and device
>> > conformance into its own directory to have self contained device
>> > specification.
>> >
>> > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
>> > Signed-off-by: Parav Pandit 
>> > ---
>> > changelog:
>> > v0->v1:
>> > - new patch
>> > ---
>> >  conformance.tex   | 23 ++-
>> >  content.tex   |  1 -
>> >  .../virtio-rpmb/device-conformance.tex| 13 +++
>> >  .../virtio-rpmb/device.tex|  0
>> >  .../virtio-rpmb/driver-conformance.tex|  7 ++
>> >  5 files changed, 22 insertions(+), 22 deletions(-)
>> >  create mode 100644 device-types/virtio-rpmb/device-conformance.tex
>> >  rename virtio-rpmb.tex => device-types/virtio-rpmb/device.tex (100%)
>> >  create mode 100644 device-types/virtio-rpmb/driver-conformance.tex
>> >
>> 
>> (...)
>> 
>> > diff --git a/content.tex b/content.tex
>> > index a486e36..13a2a94 100644
>> > --- a/content.tex
>> > +++ b/content.tex
>> > @@ -3014,7 +3014,6 @@ \chapter{Device Types}\label{sec:Device Types}
>> >  \import{device-types/virtio-crypto/}{device}
>> >  \import{device-types/virtio-vsock/}{device}
>> >  \import{device-types/virtio-fs/}{device}
>> > -\input{virtio-rpmb.tex}
>> 
>> This is missing
>> 
>> \import{device-types/virtio-rpmb/}{device}
>> 
>> (I noticed broken references when building with the patches applied)
>
>
> Oh, good catch. Parav, I'd really like patch submitters to run the
> build and review the resulting files.
> I guess we should withdraw the ballot for now and wait until a fixed
> version. Agree?

Withdrawing the ballot sounds like the best option to me.

For a respin, it might also be a good idea to drop the extra blank line
before EOF for (IIRC) net and block that git am complained about.


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [virtio-comment] [PATCH v1 13/20] virtio-rpmb: Maintain rpmb device spec in separate directory

2023-01-09 Thread Michael S. Tsirkin
On Mon, Jan 09, 2023 at 01:48:27PM +0100, Cornelia Huck wrote:
> On Sun, Jan 01 2023, Parav Pandit  wrote:
> 
> > Place device specification, its driver and device
> > conformance into its own directory to have self contained device
> > specification.
> >
> > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
> > Signed-off-by: Parav Pandit 
> > ---
> > changelog:
> > v0->v1:
> > - new patch
> > ---
> >  conformance.tex   | 23 ++-
> >  content.tex   |  1 -
> >  .../virtio-rpmb/device-conformance.tex| 13 +++
> >  .../virtio-rpmb/device.tex|  0
> >  .../virtio-rpmb/driver-conformance.tex|  7 ++
> >  5 files changed, 22 insertions(+), 22 deletions(-)
> >  create mode 100644 device-types/virtio-rpmb/device-conformance.tex
> >  rename virtio-rpmb.tex => device-types/virtio-rpmb/device.tex (100%)
> >  create mode 100644 device-types/virtio-rpmb/driver-conformance.tex
> >
> 
> (...)
> 
> > diff --git a/content.tex b/content.tex
> > index a486e36..13a2a94 100644
> > --- a/content.tex
> > +++ b/content.tex
> > @@ -3014,7 +3014,6 @@ \chapter{Device Types}\label{sec:Device Types}
> >  \import{device-types/virtio-crypto/}{device}
> >  \import{device-types/virtio-vsock/}{device}
> >  \import{device-types/virtio-fs/}{device}
> > -\input{virtio-rpmb.tex}
> 
> This is missing
> 
> \import{device-types/virtio-rpmb/}{device}
> 
> (I noticed broken references when building with the patches applied)


Oh, good catch. Parav, I'd really like patch submitters to run the
build and review the resulting files.
I guess we should withdraw the ballot for now and wait until a fixed
version. Agree?

> >  \input{virtio-iommu.tex}
> >  \input{virtio-sound.tex}
> >  \input{virtio-mem.tex}


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [virtio-comment] [PATCH v1 19/20] virtio-gpio: Maintain gpio device spec in separate directory

2023-01-09 Thread Cornelia Huck
On Sun, Jan 01 2023, Parav Pandit  wrote:

> Place device specification, its driver and device
> conformance into its own directory to have self contained device
> specification.
>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
> Signed-off-by: Parav Pandit 
> ---
> changelog:
> v0->v1:
> - new patch
> ---
>  conformance.tex   | 21 +--
>  content.tex   |  2 +-
>  .../virtio-gpio/device-conformance.tex|  9 
>  .../virtio-gpio/device.tex|  0
>  .../virtio-gpio/driver-conformance.tex|  9 
>  5 files changed, 20 insertions(+), 21 deletions(-)
>  create mode 100644 device-types/virtio-gpio/device-conformance.tex
>  rename virtio-gpio.tex => device-types/virtio-gpio/device.tex (100%)
>  create mode 100644 device-types/virtio-gpio/driver-conformance.tex

(...)

> @@ -251,16 +242,6 @@ \section{Conformance Targets}\label{sec:Conformance / 
> Conformance Targets}
>  \import{device-types/virtio-mem/}{device-conformance}
>  \import{device-types/virtio-scmi/}{device-conformance}
>  
> -\conformance{\subsection}{GPIO Device Conformance}\label{sec:Conformance / 
> Device Conformance / GPIO Device Conformance}
> -
> -A General Purpose Input/Output (GPIO) device MUST conform to the following
> -normative statements:
> -
> -\begin{itemize}
> -\item \ref{devicenormative:Device Types / GPIO Device / requestq Operation}
> -\item \ref{devicenormative:Device Types / GPIO Device / eventq Operation}
> -\end{itemize}
> -

Missing

\import{device-types/virtio-gpio/}{device-conformance}

>  \conformance{\subsection}{PMEM Device Conformance}\label{sec:Conformance / 
> Device Conformance / PMEM Device Conformance}
>  
>  A PMEM device MUST conform to the following normative statements:


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [virtio-comment] [PATCH v1 17/20] virtio-i2c: Maintain i2c device spec in separate directory

2023-01-09 Thread Cornelia Huck
On Sun, Jan 01 2023, Parav Pandit  wrote:

> Place device specification, its driver and device
> conformance into its own directory to have self contained device
> specification.
>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
> Signed-off-by: Parav Pandit 
> ---
> changelog:
> v0->v1:
> - new patch
> ---
>  conformance.tex | 17 +
>  content.tex |  2 +-
>  device-types/virtio-i2c/device-conformance.tex  |  7 +++
>  .../virtio-i2c/device.tex   |  0
>  device-types/virtio-i2c/driver-conformance.tex  |  7 +++
>  5 files changed, 16 insertions(+), 17 deletions(-)
>  create mode 100644 device-types/virtio-i2c/device-conformance.tex
>  rename virtio-i2c.tex => device-types/virtio-i2c/device.tex (100%)
>  create mode 100644 device-types/virtio-i2c/driver-conformance.tex
>

(...)

> @@ -265,14 +258,6 @@ \section{Conformance Targets}\label{sec:Conformance / 
> Conformance Targets}
>  \import{device-types/virtio-iommu/}{device-conformance}
>  \import{device-types/virtio-mem/}{device-conformance}
>  
> -\conformance{\subsection}{I2C Adapter Device 
> Conformance}\label{sec:Conformance / Device Conformance / I2C Adapter Device 
> Conformance}
> -
> -An I2C Adapter device MUST conform to the following normative statements:
> -
> -\begin{itemize}
> -\item \ref{devicenormative:Device Types / I2C Adapter Device / Device 
> Operation}
> -\end{itemize}
> -

Missing

\import{device-types/virtio-i2c/}{device-conformance}

>  \conformance{\subsection}{SCMI Device Conformance}\label{sec:Conformance / 
> Device Conformance / SCMI Device Conformance}
>  
>  An SCMI device MUST conform to the following normative statements:


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [virtio-comment] [PATCH v1 15/20] virtio-sound: Maintain sound device spec in separate directory

2023-01-09 Thread Cornelia Huck
On Sun, Jan 01 2023, Parav Pandit  wrote:

> Place device specification, its driver and device
> conformance into its own directory to have self contained device
> specification.
>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
> Signed-off-by: Parav Pandit 
> ---
> changelog:
> v0->v1:
> - new patch
> ---
>  conformance.tex   | 32 +--
>  content.tex   |  2 +-
>  .../virtio-sound/device-conformance.tex   | 16 ++
>  .../virtio-sound/device.tex   |  0
>  .../virtio-sound/driver-conformance.tex   | 13 
>  5 files changed, 31 insertions(+), 32 deletions(-)
>  create mode 100644 device-types/virtio-sound/device-conformance.tex
>  rename virtio-sound.tex => device-types/virtio-sound/device.tex (100%)
>  create mode 100644 device-types/virtio-sound/driver-conformance.tex

(...)

> @@ -290,23 +277,6 @@ \section{Conformance Targets}\label{sec:Conformance / 
> Conformance Targets}
>  \import{device-types/virtio-rpmb/}{device-conformance}
>  \import{device-types/virtio-iommu/}{device-conformance}
>  
> -\conformance{\subsection}{Sound Device Conformance}\label{sec:Conformance / 
> Device Conformance / Sound Device Conformance}
> -
> -A sound device MUST conform to the following normative statements:
> -
> -\begin{itemize}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> Jack Information}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> PCM Stream Information}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> PCM Stream Parameters}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> PCM Stream Release}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> PCM Output Stream}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> PCM Input Stream}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> Channel Map Information}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> Control Element Information}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> Control Element Metadata}
> -\item \ref{devicenormative:Device Types / Sound Device / Device Operation / 
> Control Element Notifications}
> -\end{itemize}
> -

Missing

\import{device-types/virtio-sound/}{device-conformance}

>  \conformance{\subsection}{Memory Device Conformance}\label{sec:Conformance / 
> Device Conformance / Memory Device Conformance}
>  
>  A memory device MUST conform to the following normative statements:


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [virtio-comment] [PATCH v1 13/20] virtio-rpmb: Maintain rpmb device spec in separate directory

2023-01-09 Thread Cornelia Huck
On Sun, Jan 01 2023, Parav Pandit  wrote:

> Place device specification, its driver and device
> conformance into its own directory to have self contained device
> specification.
>
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/153
> Signed-off-by: Parav Pandit 
> ---
> changelog:
> v0->v1:
> - new patch
> ---
>  conformance.tex   | 23 ++-
>  content.tex   |  1 -
>  .../virtio-rpmb/device-conformance.tex| 13 +++
>  .../virtio-rpmb/device.tex|  0
>  .../virtio-rpmb/driver-conformance.tex|  7 ++
>  5 files changed, 22 insertions(+), 22 deletions(-)
>  create mode 100644 device-types/virtio-rpmb/device-conformance.tex
>  rename virtio-rpmb.tex => device-types/virtio-rpmb/device.tex (100%)
>  create mode 100644 device-types/virtio-rpmb/driver-conformance.tex
>

(...)

> diff --git a/content.tex b/content.tex
> index a486e36..13a2a94 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -3014,7 +3014,6 @@ \chapter{Device Types}\label{sec:Device Types}
>  \import{device-types/virtio-crypto/}{device}
>  \import{device-types/virtio-vsock/}{device}
>  \import{device-types/virtio-fs/}{device}
> -\input{virtio-rpmb.tex}

This is missing

\import{device-types/virtio-rpmb/}{device}

(I noticed broken references when building with the patches applied)

>  \input{virtio-iommu.tex}
>  \input{virtio-sound.tex}
>  \input{virtio-mem.tex}


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [PATCH v7] virtio-net: support inner header hash

2023-01-09 Thread Michael S. Tsirkin
On Wed, Jan 04, 2023 at 03:14:01PM +0800, Heng Qi wrote:
> +are defined below:
> +
> +\begin{lstlisting}
> +#define VIRTIO_NET_HASH_REPORT_TUNNEL_NONE 0
> +#define VIRTIO_NET_HASH_REPORT_GRE 1
> +#define VIRTIO_NET_HASH_REPORT_VXLAN   2
> +#define VIRTIO_NET_HASH_REPORT_GENEVE  3
> +\end{lstlisting}

Btw this "are defined below" all over the place is just contributing
to making the spec unnecesarily verbose. Simple "are:" will do.

-- 
MST


-
To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org



[virtio-dev] Re: [PATCH v7] virtio-net: support inner header hash

2023-01-09 Thread Michael S. Tsirkin
On Wed, Jan 04, 2023 at 03:14:01PM +0800, Heng Qi wrote:
> If the tunnel is used to encapsulate the packets, the hash calculated
> using the outer header of the receive packets is always fixed for the
> same flow packets, i.e. they will be steered to the same receive queue.
> 
> We add a feature bit VIRTIO_NET_F_HASH_TUNNEL and related bitmasks
> in \field{hash_types}, which instructs the device to calculate the
> hash using the inner headers of tunnel-encapsulated packets. Besides,
> values in \field{hash_report_tunnel} are added to report tunnel types.
> 
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/151
> 
> Reviewed-by: Jason Wang 
> Signed-off-by: Heng Qi 
> Signed-off-by: Xuan Zhuo 
> ---
> v6:
>   1. Modify the wording of some sentences for clarity. @Michael S. Tsirkin
>   2. Fix some syntax issues. @Michael S. Tsirkin
> 
> v5:
>   1. Fix some syntax and capitalization issues. @Michael S. Tsirkin
>   2. Use encapsulated/encaptulation uniformly. @Michael S. Tsirkin
>   3. Move the links to introduction section. @Michael S. Tsirkin
>   4. Clarify some sentences. @Michael S. Tsirkin
> 
> v4:
>   1. Clarify some paragraphs. @Cornelia Huck
>   2. Fix the u8 type. @Cornelia Huck
> 
> v3:
>   1. Rename VIRTIO_NET_F_HASH_GRE_VXLAN_GENEVE_INNER to 
> VIRTIO_NET_F_HASH_TUNNEL. @Jason Wang
>   2. Make things clearer. @Jason Wang @Michael S. Tsirkin
>   3. Keep the possibility to use inner hash for automatic receive 
> steering. @Jason Wang
>   4. Add the "Tunnel packet" paragraph to avoid repeating the GRE etc. 
> many times. @Michael S. Tsirkin
> 
> v2:
>   1. Add a feature bit for GRE/VXLAN/GENEVE inner hash. @Jason Wang
>   2. Chang \field{hash_tunnel} to \field{hash_report_tunnel}. @Jason 
> Wang, @Michael S. Tsirkin
> 
> v1:
>   1. Remove the patch for the bitmask fix. @Michael S. Tsirkin
>   2. Clarify some paragraphs. @Jason Wang
>   3. Add \field{hash_tunnel} and VIRTIO_NET_HASH_REPORT_GRE. @Yuri 
> Benditovich
> 
>  content.tex  | 191 +--
>  introduction.tex |  19 +
>  2 files changed, 203 insertions(+), 7 deletions(-)
> 
> diff --git a/content.tex b/content.tex
> index e863709..7845f6c 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -3084,6 +3084,9 @@ \subsection{Feature bits}\label{sec:Device Types / 
> Network Device / Feature bits
>  \item[VIRTIO_NET_F_CTRL_MAC_ADDR(23)] Set MAC address through control
>  channel.
>  
> +\item[VIRTIO_NET_F_HASH_TUNNEL(52)] Device supports inner
> +header hash for GRE, VXLAN and GENEVE tunnel-encapsulated packets.
> +
>  \item[VIRTIO_NET_F_NOTF_COAL(53)] Device supports notifications coalescing.
>  
>  \item[VIRTIO_NET_F_GUEST_USO4 (54)] Driver can receive USOv4 packets.
> @@ -3095,7 +3098,8 @@ \subsection{Feature bits}\label{sec:Device Types / 
> Network Device / Feature bits
>   to several segments when each of these smaller packets has UDP header.
>  
>  \item[VIRTIO_NET_F_HASH_REPORT(57)] Device can report per-packet hash
> -value and a type of calculated hash.
> +value, a type of calculated hash, and, if VIRTIO_NET_F_HASH_TUNNEL
> +is negotiated, an encapsulation packet type.
>  
>  \item[VIRTIO_NET_F_GUEST_HDRLEN(59)] Driver can provide the exact 
> \field{hdr_len}
>  value. Device benefits from knowing the exact header length.
> @@ -3140,6 +3144,7 @@ \subsubsection{Feature bit 
> requirements}\label{sec:Device Types / Network Device
>  \item[VIRTIO_NET_F_NOTF_COAL] Requires VIRTIO_NET_F_CTRL_VQ.
>  \item[VIRTIO_NET_F_RSC_EXT] Requires VIRTIO_NET_F_HOST_TSO4 or 
> VIRTIO_NET_F_HOST_TSO6.
>  \item[VIRTIO_NET_F_RSS] Requires VIRTIO_NET_F_CTRL_VQ.
> +\item[VIRTIO_NET_F_HASH_TUNNEL] Requires VIRTIO_NET_F_CTRL_VQ.
>  \end{description}
>  
>  \subsubsection{Legacy Interface: Feature bits}\label{sec:Device Types / 
> Network Device / Feature bits / Legacy Interface: Feature bits}
> @@ -3386,7 +3391,8 @@ \subsection{Device Operation}\label{sec:Device Types / 
> Network Device / Device O
>  le16 num_buffers;
>  le32 hash_value;(Only if VIRTIO_NET_F_HASH_REPORT negotiated)
>  le16 hash_report;   (Only if VIRTIO_NET_F_HASH_REPORT negotiated)
> -le16 padding_reserved;  (Only if VIRTIO_NET_F_HASH_REPORT negotiated)
> +u8 hash_report_tunnel;  (Only if VIRTIO_NET_F_HASH_REPORT 
> negotiated, only valid of VIRTIO_NET_F_HASH_TUNNEL negotiated)
> +u8 padding_reserved;(Only if VIRTIO_NET_F_HASH_REPORT negotiated)
>  };
>  \end{lstlisting}
>  
> @@ -3837,7 +3843,8 @@ \subsubsection{Processing of Incoming 
> Packets}\label{sec:Device Types / Network
>  A device attempts to calculate a per-packet hash in the following cases:
>  \begin{itemize}
>  \item The feature VIRTIO_NET_F_RSS was negotiated. The device uses the hash 
> to determine the receive virtqueue to place incoming packets.
> -\item The feature VIRTIO_NET_F_HASH_REPORT was negotiated. The device 
> 

Re: [virtio-dev] Re: [virtio-comment] Re: [PATCH v7] virtio-net: support inner header hash

2023-01-09 Thread Michael S. Tsirkin
On Mon, Jan 09, 2023 at 04:59:26PM +0800, Jason Wang wrote:
> On Mon, Jan 9, 2023 at 10:43 AM Heng Qi  wrote:
> >
> > On Fri, Jan 06, 2023 at 01:59:38AM -0500, Michael S. Tsirkin wrote:
> > > On Fri, Jan 06, 2023 at 02:42:21PM +0800, Heng Qi wrote:
> > > > On Fri, Jan 06, 2023 at 12:27:04AM -0500, Michael S. Tsirkin wrote:
> > > > > On Wed, Jan 04, 2023 at 03:14:01PM +0800, Heng Qi wrote:
> > > > > > If the tunnel is used to encapsulate the packets, the hash 
> > > > > > calculated
> > > > > > using the outer header of the receive packets is always fixed for 
> > > > > > the
> > > > > > same flow packets, i.e. they will be steered to the same receive 
> > > > > > queue.
> > > > > >
> > > > > > We add a feature bit VIRTIO_NET_F_HASH_TUNNEL and related bitmasks
> > > > > > in \field{hash_types}, which instructs the device to calculate the
> > > > > > hash using the inner headers of tunnel-encapsulated packets. 
> > > > > > Besides,
> > > > > > values in \field{hash_report_tunnel} are added to report tunnel 
> > > > > > types.
> > > > > >
> > > > > > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/151
> > > > > >
> > > > > > Reviewed-by: Jason Wang 
> > > > > > Signed-off-by: Heng Qi 
> > > > > > Signed-off-by: Xuan Zhuo 
> > > > >
> > > > >
> > > > > ok close to being ready. a couple of minor comments.
> > > > >
> > > > > > ---
> > > > > > v6:
> > > > > > 1. Modify the wording of some sentences for clarity. 
> > > > > > @Michael S. Tsirkin
> > > > > > 2. Fix some syntax issues. @Michael S. Tsirkin
> > > > > >
> > > > > > v5:
> > > > > > 1. Fix some syntax and capitalization issues. @Michael S. 
> > > > > > Tsirkin
> > > > > > 2. Use encapsulated/encaptulation uniformly. @Michael S. 
> > > > > > Tsirkin
> > > > > > 3. Move the links to introduction section. @Michael S. 
> > > > > > Tsirkin
> > > > > > 4. Clarify some sentences. @Michael S. Tsirkin
> > > > > >
> > > > > > v4:
> > > > > > 1. Clarify some paragraphs. @Cornelia Huck
> > > > > > 2. Fix the u8 type. @Cornelia Huck
> > > > > >
> > > > > > v3:
> > > > > > 1. Rename VIRTIO_NET_F_HASH_GRE_VXLAN_GENEVE_INNER to 
> > > > > > VIRTIO_NET_F_HASH_TUNNEL. @Jason Wang
> > > > > > 2. Make things clearer. @Jason Wang @Michael S. Tsirkin
> > > > > > 3. Keep the possibility to use inner hash for automatic 
> > > > > > receive steering. @Jason Wang
> > > > > > 4. Add the "Tunnel packet" paragraph to avoid repeating the 
> > > > > > GRE etc. many times. @Michael S. Tsirkin
> > > > > >
> > > > > > v2:
> > > > > > 1. Add a feature bit for GRE/VXLAN/GENEVE inner hash. 
> > > > > > @Jason Wang
> > > > > > 2. Chang \field{hash_tunnel} to \field{hash_report_tunnel}. 
> > > > > > @Jason Wang, @Michael S. Tsirkin
> > > > > >
> > > > > > v1:
> > > > > > 1. Remove the patch for the bitmask fix. @Michael S. Tsirkin
> > > > > > 2. Clarify some paragraphs. @Jason Wang
> > > > > > 3. Add \field{hash_tunnel} and VIRTIO_NET_HASH_REPORT_GRE. 
> > > > > > @Yuri Benditovich
> > > > > >
> > > > > >  content.tex  | 191 
> > > > > > +--
> > > > > >  introduction.tex |  19 +
> > > > > >  2 files changed, 203 insertions(+), 7 deletions(-)
> > > > > >
> > > > > > diff --git a/content.tex b/content.tex
> > > > > > index e863709..7845f6c 100644
> > > > > > --- a/content.tex
> > > > > > +++ b/content.tex
> > > > > > @@ -3084,6 +3084,9 @@ \subsection{Feature bits}\label{sec:Device 
> > > > > > Types / Network Device / Feature bits
> > > > > >  \item[VIRTIO_NET_F_CTRL_MAC_ADDR(23)] Set MAC address through 
> > > > > > control
> > > > > >  channel.
> > > > > >
> > > > > > +\item[VIRTIO_NET_F_HASH_TUNNEL(52)] Device supports inner
> > > > > > +header hash for GRE, VXLAN and GENEVE tunnel-encapsulated 
> > > > > > packets.
> > > > >
> > > > > I would probably drop the list of tunnel types here.
> > > >
> > > > Do you mean to use "Device supports inner header hash for
> > > > tunnel-encapsulated packets." instead? Why? We do want to use this
> > > > feature bit to indicate that the device supports inner hashing of
> > > > GRE, VXLAN and GENEVE encapsulated packets. As in the v3 discussion
> > > > https://lists.oasis-open.org/archives/virtio-dev/202212/msg00024.html ,
> > > > we discussed using VIRTIO_NET_F_HASH_TUNNEL to replace
> > > > VIRTIO_NET_F_HASH_GRE_VXLAN_GENEVE_INNER and plan to use
> > > > VIRTIO_NET_F_HASH_TUNNEL_XYZ for future extensions.
> > >
> > > So imagine we add a new tunnel type. Let's say there's VXLAN v2.
> > > why would we need a new feature bit? I think a new hash type
> > > will be sufficient. No?
> >
> > If the description for VIRTIO_NET_F_HASH_TUNNEL is as follows:
> > "[VIRTIO_NET_F_HASH_TUNNEL(52)] Device supports inner header hash for 
> > tunnel-encapsulated packets.".
> > Then the following may happen
> > 1. For VXLANv2, if both device src and device dst have 

Re: [virtio-dev] Re: [virtio-comment] Re: [PATCH v7] virtio-net: support inner header hash

2023-01-09 Thread Jason Wang
On Mon, Jan 9, 2023 at 10:43 AM Heng Qi  wrote:
>
> On Fri, Jan 06, 2023 at 01:59:38AM -0500, Michael S. Tsirkin wrote:
> > On Fri, Jan 06, 2023 at 02:42:21PM +0800, Heng Qi wrote:
> > > On Fri, Jan 06, 2023 at 12:27:04AM -0500, Michael S. Tsirkin wrote:
> > > > On Wed, Jan 04, 2023 at 03:14:01PM +0800, Heng Qi wrote:
> > > > > If the tunnel is used to encapsulate the packets, the hash calculated
> > > > > using the outer header of the receive packets is always fixed for the
> > > > > same flow packets, i.e. they will be steered to the same receive 
> > > > > queue.
> > > > >
> > > > > We add a feature bit VIRTIO_NET_F_HASH_TUNNEL and related bitmasks
> > > > > in \field{hash_types}, which instructs the device to calculate the
> > > > > hash using the inner headers of tunnel-encapsulated packets. Besides,
> > > > > values in \field{hash_report_tunnel} are added to report tunnel types.
> > > > >
> > > > > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/151
> > > > >
> > > > > Reviewed-by: Jason Wang 
> > > > > Signed-off-by: Heng Qi 
> > > > > Signed-off-by: Xuan Zhuo 
> > > >
> > > >
> > > > ok close to being ready. a couple of minor comments.
> > > >
> > > > > ---
> > > > > v6:
> > > > > 1. Modify the wording of some sentences for clarity. @Michael 
> > > > > S. Tsirkin
> > > > > 2. Fix some syntax issues. @Michael S. Tsirkin
> > > > >
> > > > > v5:
> > > > > 1. Fix some syntax and capitalization issues. @Michael S. 
> > > > > Tsirkin
> > > > > 2. Use encapsulated/encaptulation uniformly. @Michael S. 
> > > > > Tsirkin
> > > > > 3. Move the links to introduction section. @Michael S. Tsirkin
> > > > > 4. Clarify some sentences. @Michael S. Tsirkin
> > > > >
> > > > > v4:
> > > > > 1. Clarify some paragraphs. @Cornelia Huck
> > > > > 2. Fix the u8 type. @Cornelia Huck
> > > > >
> > > > > v3:
> > > > > 1. Rename VIRTIO_NET_F_HASH_GRE_VXLAN_GENEVE_INNER to 
> > > > > VIRTIO_NET_F_HASH_TUNNEL. @Jason Wang
> > > > > 2. Make things clearer. @Jason Wang @Michael S. Tsirkin
> > > > > 3. Keep the possibility to use inner hash for automatic 
> > > > > receive steering. @Jason Wang
> > > > > 4. Add the "Tunnel packet" paragraph to avoid repeating the 
> > > > > GRE etc. many times. @Michael S. Tsirkin
> > > > >
> > > > > v2:
> > > > > 1. Add a feature bit for GRE/VXLAN/GENEVE inner hash. @Jason 
> > > > > Wang
> > > > > 2. Chang \field{hash_tunnel} to \field{hash_report_tunnel}. 
> > > > > @Jason Wang, @Michael S. Tsirkin
> > > > >
> > > > > v1:
> > > > > 1. Remove the patch for the bitmask fix. @Michael S. Tsirkin
> > > > > 2. Clarify some paragraphs. @Jason Wang
> > > > > 3. Add \field{hash_tunnel} and VIRTIO_NET_HASH_REPORT_GRE. 
> > > > > @Yuri Benditovich
> > > > >
> > > > >  content.tex  | 191 
> > > > > +--
> > > > >  introduction.tex |  19 +
> > > > >  2 files changed, 203 insertions(+), 7 deletions(-)
> > > > >
> > > > > diff --git a/content.tex b/content.tex
> > > > > index e863709..7845f6c 100644
> > > > > --- a/content.tex
> > > > > +++ b/content.tex
> > > > > @@ -3084,6 +3084,9 @@ \subsection{Feature bits}\label{sec:Device 
> > > > > Types / Network Device / Feature bits
> > > > >  \item[VIRTIO_NET_F_CTRL_MAC_ADDR(23)] Set MAC address through control
> > > > >  channel.
> > > > >
> > > > > +\item[VIRTIO_NET_F_HASH_TUNNEL(52)] Device supports inner
> > > > > +header hash for GRE, VXLAN and GENEVE tunnel-encapsulated 
> > > > > packets.
> > > >
> > > > I would probably drop the list of tunnel types here.
> > >
> > > Do you mean to use "Device supports inner header hash for
> > > tunnel-encapsulated packets." instead? Why? We do want to use this
> > > feature bit to indicate that the device supports inner hashing of
> > > GRE, VXLAN and GENEVE encapsulated packets. As in the v3 discussion
> > > https://lists.oasis-open.org/archives/virtio-dev/202212/msg00024.html ,
> > > we discussed using VIRTIO_NET_F_HASH_TUNNEL to replace
> > > VIRTIO_NET_F_HASH_GRE_VXLAN_GENEVE_INNER and plan to use
> > > VIRTIO_NET_F_HASH_TUNNEL_XYZ for future extensions.
> >
> > So imagine we add a new tunnel type. Let's say there's VXLAN v2.
> > why would we need a new feature bit? I think a new hash type
> > will be sufficient. No?
>
> If the description for VIRTIO_NET_F_HASH_TUNNEL is as follows:
> "[VIRTIO_NET_F_HASH_TUNNEL(52)] Device supports inner header hash for 
> tunnel-encapsulated packets.".
> Then the following may happen
> 1. For VXLANv2, if both device src and device dst have negotiated this 
> feature, it is assumed that
>device src supports VXLAN and VXLANv2, but device dst may only support 
> VXLAN, not VXLANv2.
> 2. For other encapsulation protocols such as ip in ip, after device src and 
> device dst have
>negotiated this feature, it is assumed that device src supports GRE, 
> VXLAN, GENEVE and ip in ip,
>