[virtio-dev] RE: 1.3 and branching (was: [virtio-dev] Re: [PATCH v12] virtio-net: support device stats)

2023-07-21 Thread Parav Pandit



> From: Michael S. Tsirkin 
> Sent: Friday, July 21, 2023 8:42 AM
 
> Yea, makes sense.
> I think we are all set WRT what we planned to be in 1.3 - right?
> Next step is preparing the changelog and packaging it all as WD, then voting 
> to
> approve it as a CSD/CSPRD and start public review.
> 
> Have time this week? if not I will get to it next week.

Let me know what to do for change log prep and I can prepare it today.

-
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: 1.3 and branching (was: [virtio-dev] Re: [PATCH v12] virtio-net: support device stats)

2023-07-21 Thread Michael S. Tsirkin
On Fri, Jul 21, 2023 at 02:24:57PM +0200, Cornelia Huck wrote:
> On Wed, Jul 12 2023, "Michael S. Tsirkin"  wrote:
> 
> > On Wed, Jul 12, 2023 at 02:24:32PM +0200, Cornelia Huck wrote:
> >> On Wed, Jul 12 2023, "Michael S. Tsirkin"  wrote:
> >> > Yes we were supposed to freeze for 1.3. This change can be merged on a
> >> > main branch after 1.3 forks and is under review.
> >> 
> >> Nod, that's what I would prefer to do. Being merged on virtio-next
> >> should be enough for including device/driver implementations.
> >
> > Except I'd prefer a v1.3 branch instead of a next branch - adding things
> > on the branch should be harder, not easier.
> 
> Just to clarify: What I had planned for 1.3 (and what we already did for
> 1.2) is to fork a -next branch, finish 1.3 on the master branch, and
> then merge -next back into master after we'd be done with 1.3.
> 
> I'm not sure what you mean by "adding things on the branch should be
> harder, not easier" -- I think it is already a bit harder because it is
> a branch :)
> 
> We can of course do a v1.3 branch instead and continue developing on
> master, but shouldn't we then create branches (glorified tags) for the
> older releases as well?

Yea, makes sense.
I think we are all set WRT what we planned to be in 1.3 - right?
Next step is preparing the changelog and packaging it
all as WD, then voting to approve it as a CSD/CSPRD and start
public review.

Have time this week? if not I will get to it next week.

-- 
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] 1.3 and branching (was: [virtio-dev] Re: [PATCH v12] virtio-net: support device stats)

2023-07-21 Thread Cornelia Huck
On Wed, Jul 12 2023, "Michael S. Tsirkin"  wrote:

> On Wed, Jul 12, 2023 at 02:24:32PM +0200, Cornelia Huck wrote:
>> On Wed, Jul 12 2023, "Michael S. Tsirkin"  wrote:
>> > Yes we were supposed to freeze for 1.3. This change can be merged on a
>> > main branch after 1.3 forks and is under review.
>> 
>> Nod, that's what I would prefer to do. Being merged on virtio-next
>> should be enough for including device/driver implementations.
>
> Except I'd prefer a v1.3 branch instead of a next branch - adding things
> on the branch should be harder, not easier.

Just to clarify: What I had planned for 1.3 (and what we already did for
1.2) is to fork a -next branch, finish 1.3 on the master branch, and
then merge -next back into master after we'd be done with 1.3.

I'm not sure what you mean by "adding things on the branch should be
harder, not easier" -- I think it is already a bit harder because it is
a branch :)

We can of course do a v1.3 branch instead and continue developing on
master, but shouldn't we then create branches (glorified tags) for the
older releases as well?


-
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: [PATCH v12] virtio-net: support device stats

2023-07-12 Thread Michael S. Tsirkin
On Wed, Jul 12, 2023 at 02:24:32PM +0200, Cornelia Huck wrote:
> On Wed, Jul 12 2023, "Michael S. Tsirkin"  wrote:
> 
> > On Wed, Jul 12, 2023 at 07:44:01PM +0800, Xuan Zhuo wrote:
> >> On Wed, 12 Jul 2023 07:34:38 -0400, "Michael S. Tsirkin"  
> >> wrote:
> >> > On Tue, Mar 15, 2022 at 11:24:02AM +0800, Xuan Zhuo wrote:
> >> > > This patch allows the driver to obtain some statistics from the device.
> >> > >
> >> > > In the back-end implementation, we can count a lot of such information,
> >> > > which can be used for debugging and judging the running status of the
> >> > > back-end. We hope to directly display it to the user through ethtool.
> >> > >
> >> > > To get stats atomically, try to get stats for all queue pairs in one
> >> > > command.
> >> > >
> >> > > Signed-off-by: Xuan Zhuo 
> >> > > Suggested-by: Michael S. Tsirkin 
> >> >
> >> > Functionally, I think this is close to ok now.  But the text needs
> >> > of work.  Are you trying to target 1.3 with this?
> >> 
> >> I personally worry about that 1.3 may be too late, if possible, I would 
> >> like to
> >> respond as soon as possible.
> >> 
> >> I really don't really care if it can get into 1.3 or not but I do hope 
> >> that this
> >> can be done as soon as possible.
> >> 
> >> Thanks.
> >
> > Yes we were supposed to freeze for 1.3. This change can be merged on a
> > main branch after 1.3 forks and is under review.
> 
> Nod, that's what I would prefer to do. Being merged on virtio-next
> should be enough for including device/driver implementations.

Except I'd prefer a v1.3 branch instead of a next branch - adding things
on the branch should be harder, not easier.

-- 
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: [PATCH v12] virtio-net: support device stats

2023-07-12 Thread Cornelia Huck
On Wed, Jul 12 2023, "Michael S. Tsirkin"  wrote:

> On Wed, Jul 12, 2023 at 07:44:01PM +0800, Xuan Zhuo wrote:
>> On Wed, 12 Jul 2023 07:34:38 -0400, "Michael S. Tsirkin"  
>> wrote:
>> > On Tue, Mar 15, 2022 at 11:24:02AM +0800, Xuan Zhuo wrote:
>> > > This patch allows the driver to obtain some statistics from the device.
>> > >
>> > > In the back-end implementation, we can count a lot of such information,
>> > > which can be used for debugging and judging the running status of the
>> > > back-end. We hope to directly display it to the user through ethtool.
>> > >
>> > > To get stats atomically, try to get stats for all queue pairs in one
>> > > command.
>> > >
>> > > Signed-off-by: Xuan Zhuo 
>> > > Suggested-by: Michael S. Tsirkin 
>> >
>> > Functionally, I think this is close to ok now.  But the text needs
>> > of work.  Are you trying to target 1.3 with this?
>> 
>> I personally worry about that 1.3 may be too late, if possible, I would like 
>> to
>> respond as soon as possible.
>> 
>> I really don't really care if it can get into 1.3 or not but I do hope that 
>> this
>> can be done as soon as possible.
>> 
>> Thanks.
>
> Yes we were supposed to freeze for 1.3. This change can be merged on a
> main branch after 1.3 forks and is under review.

Nod, that's what I would prefer to do. Being merged on virtio-next
should be enough for including device/driver implementations.


-
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 v12] virtio-net: support device stats

2023-07-12 Thread Michael S. Tsirkin
On Wed, Jul 12, 2023 at 07:44:01PM +0800, Xuan Zhuo wrote:
> On Wed, 12 Jul 2023 07:34:38 -0400, "Michael S. Tsirkin"  
> wrote:
> > On Tue, Mar 15, 2022 at 11:24:02AM +0800, Xuan Zhuo wrote:
> > > This patch allows the driver to obtain some statistics from the device.
> > >
> > > In the back-end implementation, we can count a lot of such information,
> > > which can be used for debugging and judging the running status of the
> > > back-end. We hope to directly display it to the user through ethtool.
> > >
> > > To get stats atomically, try to get stats for all queue pairs in one
> > > command.
> > >
> > > Signed-off-by: Xuan Zhuo 
> > > Suggested-by: Michael S. Tsirkin 
> >
> > Functionally, I think this is close to ok now.  But the text needs
> > of work.  Are you trying to target 1.3 with this?
> 
> I personally worry about that 1.3 may be too late, if possible, I would like 
> to
> respond as soon as possible.
> 
> I really don't really care if it can get into 1.3 or not but I do hope that 
> this
> can be done as soon as possible.
> 
> Thanks.

Yes we were supposed to freeze for 1.3. This change can be merged on a
main branch after 1.3 forks and is under review.


> 
> >
> > Feedback from other hw vendors would be nice. Parav could you take
> > a look and say whether the list of counters seems rich enough for
> > you? Any counters you'd like to add?
> >
> >
> > > ---
> > >  conformance.tex |   2 +
> > >  content.tex | 406 +++-
> > >  2 files changed, 405 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/conformance.tex b/conformance.tex
> > > index 42f8537..c67f877 100644
> > > --- a/conformance.tex
> > > +++ b/conformance.tex
> > > @@ -142,6 +142,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
> > > Conformance Targets}
> > >  \item \ref{drivernormative:Device Types / Network Device / Device 
> > > Operation / Control Virtqueue / Automatic receive steering in multiqueue 
> > > mode}
> > >  \item \ref{drivernormative:Device Types / Network Device / Device 
> > > Operation / Control Virtqueue / Offloads State Configuration / Setting 
> > > Offloads State}
> > >  \item \ref{drivernormative:Device Types / Network Device / Device 
> > > Operation / Control Virtqueue / Receive-side scaling (RSS) }
> > > +\item \ref{drivernormative:Device Types / Network Device / Device 
> > > Operation / Control Virtqueue / Device Stats}
> > >  \end{itemize}
> > >
> > >  \conformance{\subsection}{Block Driver 
> > > Conformance}\label{sec:Conformance / Driver Conformance / Block Driver 
> > > Conformance}
> > > @@ -401,6 +402,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
> > > Conformance Targets}
> > >  \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}
> > > +\item \ref{devicenormative:Device Types / Network Device / Device 
> > > Operation / Control Virtqueue / Device Stats}
> > >  \end{itemize}
> > >
> > >  \conformance{\subsection}{Block Device 
> > > Conformance}\label{sec:Conformance / Device Conformance / Block Device 
> > > Conformance}
> > > diff --git a/content.tex b/content.tex
> > > index c6f116c..81f325d 100644
> > > --- a/content.tex
> > > +++ b/content.tex
> > > @@ -3092,6 +3092,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_CTRL_STATS(55)] Device can provide device-level 
> > > statistics
> > > +to the driver through the control channel.
> > > +
> > >  \item[VIRTIO_NET_F_HOST_USO (56)] Device can receive USO packets. Unlike 
> > > UFO
> > >   (fragmenting the packet) the USO splits large UDP packet
> > >   to several segments when each of these smaller packets has UDP header.
> > > @@ -3137,6 +3140,7 @@ \subsubsection{Feature bit 
> > > requirements}\label{sec:Device Types / Network Device
> > >  \item[VIRTIO_NET_F_GUEST_ANNOUNCE] Requires VIRTIO_NET_F_CTRL_VQ.
> > >  \item[VIRTIO_NET_F_MQ] Requires VIRTIO_NET_F_CTRL_VQ.
> > >  \item[VIRTIO_NET_F_CTRL_MAC_ADDR] Requires VIRTIO_NET_F_CTRL_VQ.
> > > +\item[VIRTIO_NET_F_CTRL_STATS] 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.
> > >  \end{description}
> > > @@ -4015,6 +4019,7 @@ \subsubsection{Control Virtqueue}\label{sec:Device 
> > > Types / Network Device / Devi
> > >  u8 command;
> > >  u8 command-specific-data[];
> > >  u8 ack;

[virtio-dev] Re: [PATCH v12] virtio-net: support device stats

2023-07-12 Thread Michael S. Tsirkin
On Tue, Mar 15, 2022 at 11:24:02AM +0800, Xuan Zhuo wrote:
> This patch allows the driver to obtain some statistics from the device.
> 
> In the back-end implementation, we can count a lot of such information,
> which can be used for debugging and judging the running status of the
> back-end. We hope to directly display it to the user through ethtool.
> 
> To get stats atomically, try to get stats for all queue pairs in one
> command.
> 
> Signed-off-by: Xuan Zhuo 
> Suggested-by: Michael S. Tsirkin 

Functionally, I think this is close to ok now.  But the text needs
of work.  Are you trying to target 1.3 with this?

Feedback from other hw vendors would be nice. Parav could you take
a look and say whether the list of counters seems rich enough for
you? Any counters you'd like to add?


> ---
>  conformance.tex |   2 +
>  content.tex | 406 +++-
>  2 files changed, 405 insertions(+), 3 deletions(-)
> 
> diff --git a/conformance.tex b/conformance.tex
> index 42f8537..c67f877 100644
> --- a/conformance.tex
> +++ b/conformance.tex
> @@ -142,6 +142,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
> Conformance Targets}
>  \item \ref{drivernormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Automatic receive steering in multiqueue mode}
>  \item \ref{drivernormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Offloads State Configuration / Setting Offloads State}
>  \item \ref{drivernormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Receive-side scaling (RSS) }
> +\item \ref{drivernormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Device Stats}
>  \end{itemize}
>  
>  \conformance{\subsection}{Block Driver Conformance}\label{sec:Conformance / 
> Driver Conformance / Block Driver Conformance}
> @@ -401,6 +402,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
> Conformance Targets}
>  \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}
> +\item \ref{devicenormative:Device Types / Network Device / Device Operation 
> / Control Virtqueue / Device Stats}
>  \end{itemize}
>  
>  \conformance{\subsection}{Block Device Conformance}\label{sec:Conformance / 
> Device Conformance / Block Device Conformance}
> diff --git a/content.tex b/content.tex
> index c6f116c..81f325d 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -3092,6 +3092,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_CTRL_STATS(55)] Device can provide device-level statistics
> +to the driver through the control channel.
> +
>  \item[VIRTIO_NET_F_HOST_USO (56)] Device can receive USO packets. Unlike UFO
>   (fragmenting the packet) the USO splits large UDP packet
>   to several segments when each of these smaller packets has UDP header.
> @@ -3137,6 +3140,7 @@ \subsubsection{Feature bit 
> requirements}\label{sec:Device Types / Network Device
>  \item[VIRTIO_NET_F_GUEST_ANNOUNCE] Requires VIRTIO_NET_F_CTRL_VQ.
>  \item[VIRTIO_NET_F_MQ] Requires VIRTIO_NET_F_CTRL_VQ.
>  \item[VIRTIO_NET_F_CTRL_MAC_ADDR] Requires VIRTIO_NET_F_CTRL_VQ.
> +\item[VIRTIO_NET_F_CTRL_STATS] 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.
>  \end{description}
> @@ -4015,6 +4019,7 @@ \subsubsection{Control Virtqueue}\label{sec:Device 
> Types / Network Device / Devi
>  u8 command;
>  u8 command-specific-data[];
>  u8 ack;
> +u8 command-specific-data-reply[];
>  };
>  
>  /* ack values */
> @@ -4023,9 +4028,11 @@ \subsubsection{Control Virtqueue}\label{sec:Device 
> Types / Network Device / Devi
>  \end{lstlisting}
>  
>  The \field{class}, \field{command} and command-specific-data are set by the
> -driver, and the device sets the \field{ack} byte. There is little it can
> -do except issue a diagnostic if \field{ack} is not
> -VIRTIO_NET_OK.
> +driver, and the device sets the \field{ack} byte and optionally
> +\field{command-specific-data-reply}. There is little the driver can
> +do except issue a diagnostic if \field{ack} is not VIRTIO_NET_OK.
> +
> +The command VIRTIO_NET_CTRL_STATS_GET contains 
> \field{command-specific-data-reply}.
>  
>  \paragraph{Packet Receive Filtering}\label{sec:Device Types / Network Device 
> / Device Operation / Control Virtqueue / Packet Receive Filtering}
>  

[virtio-dev] Re: [PATCH v12] virtio-net: support device stats

2022-03-22 Thread Jason Wang



在 2022/3/15 上午11:24, Xuan Zhuo 写道:

This patch allows the driver to obtain some statistics from the device.

In the back-end implementation, we can count a lot of such information,
which can be used for debugging and judging the running status of the
back-end. We hope to directly display it to the user through ethtool.

To get stats atomically, try to get stats for all queue pairs in one
command.

Signed-off-by: Xuan Zhuo 
Suggested-by: Michael S. Tsirkin 
---
  conformance.tex |   2 +
  content.tex | 406 +++-
  2 files changed, 405 insertions(+), 3 deletions(-)

diff --git a/conformance.tex b/conformance.tex
index 42f8537..c67f877 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -142,6 +142,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
  \item \ref{drivernormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Automatic receive steering in multiqueue mode}
  \item \ref{drivernormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Offloads State Configuration / Setting Offloads State}
  \item \ref{drivernormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Receive-side scaling (RSS) }
+\item \ref{drivernormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Device Stats}
  \end{itemize}
  
  \conformance{\subsection}{Block Driver Conformance}\label{sec:Conformance / Driver Conformance / Block Driver Conformance}

@@ -401,6 +402,7 @@ \section{Conformance Targets}\label{sec:Conformance / 
Conformance Targets}
  \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}
+\item \ref{devicenormative:Device Types / Network Device / Device Operation / 
Control Virtqueue / Device Stats}
  \end{itemize}
  
  \conformance{\subsection}{Block Device Conformance}\label{sec:Conformance / Device Conformance / Block Device Conformance}

diff --git a/content.tex b/content.tex
index c6f116c..81f325d 100644
--- a/content.tex
+++ b/content.tex
@@ -3092,6 +3092,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_CTRL_STATS(55)] Device can provide device-level statistics

+to the driver through the control channel.
+
  \item[VIRTIO_NET_F_HOST_USO (56)] Device can receive USO packets. Unlike UFO
   (fragmenting the packet) the USO splits large UDP packet
   to several segments when each of these smaller packets has UDP header.
@@ -3137,6 +3140,7 @@ \subsubsection{Feature bit requirements}\label{sec:Device 
Types / Network Device
  \item[VIRTIO_NET_F_GUEST_ANNOUNCE] Requires VIRTIO_NET_F_CTRL_VQ.
  \item[VIRTIO_NET_F_MQ] Requires VIRTIO_NET_F_CTRL_VQ.
  \item[VIRTIO_NET_F_CTRL_MAC_ADDR] Requires VIRTIO_NET_F_CTRL_VQ.
+\item[VIRTIO_NET_F_CTRL_STATS] 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.
  \end{description}
@@ -4015,6 +4019,7 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types 
/ Network Device / Devi
  u8 command;
  u8 command-specific-data[];
  u8 ack;
+u8 command-specific-data-reply[];
  };
  
  /* ack values */

@@ -4023,9 +4028,11 @@ \subsubsection{Control Virtqueue}\label{sec:Device Types 
/ Network Device / Devi
  \end{lstlisting}
  
  The \field{class}, \field{command} and command-specific-data are set by the

-driver, and the device sets the \field{ack} byte. There is little it can
-do except issue a diagnostic if \field{ack} is not
-VIRTIO_NET_OK.
+driver, and the device sets the \field{ack} byte and optionally
+\field{command-specific-data-reply}. There is little the driver can
+do except issue a diagnostic if \field{ack} is not VIRTIO_NET_OK.
+
+The command VIRTIO_NET_CTRL_STATS_GET contains 
\field{command-specific-data-reply}.
  
  \paragraph{Packet Receive Filtering}\label{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Packet Receive Filtering}

  \label{sec:Device Types / Network Device / Device Operation / Control 
Virtqueue / Setting Promiscuous Mode}%old label for latexdiff
@@ -4471,6 +4478,399 @@ \subsubsection{Control Virtqueue}\label{sec:Device 
Types / Network Device / Devi
  according to the native endian of the guest rather than
  (necessarily when not using the legacy interface) little-endian.
  
+\paragraph{Device Stats}\label{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Device