Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
824618e
virtio-msg: rework GET_DEVICES
bertrand-marquis Nov 18, 2025
e47da75
virtio-msg: remove emph or textbf for MUST/MAY/SHOULD
bertrand-marquis Nov 18, 2025
1a617c7
virtio-msg: Remove introduction as chapter
bertrand-marquis Nov 18, 2025
92a39c6
virtio-msg: create a Device discovery section
bertrand-marquis Nov 18, 2025
d150afd
virtio-msg: remove bus operation section
bertrand-marquis Nov 18, 2025
91a41ba
virtio-msg: merge all bus vs transport chapters in one
bertrand-marquis Nov 19, 2025
d81941b
virtio-msg: move compatibility rules in basic concepts
bertrand-marquis Nov 19, 2025
f55c83c
virtio-msg: add new command for bus normative
bertrand-marquis Nov 20, 2025
2cae300
virtio-msg: normative in bus vs transport relationship
bertrand-marquis Nov 20, 2025
00abb58
virtio-msg: rework transport revision
bertrand-marquis Nov 20, 2025
da563c1
virtio-msg: Add normative statement for message size
bertrand-marquis Dec 1, 2025
963fa80
virtio-msg: Add normative statements for version compat
bertrand-marquis Dec 1, 2025
7296f14
virtio-msg: Switch to normative in device numbers
bertrand-marquis Nov 20, 2025
6859b5b
virtio-msg: switch generation count to normative
bertrand-marquis Nov 20, 2025
db203b9
virtio-msg: apply normative in feature blocks
bertrand-marquis Nov 20, 2025
718d1c0
virtio-msg: Switch error signaling to normative
bertrand-marquis Nov 20, 2025
b804cc4
virtio-msg: switch endianness to normative
bertrand-marquis Nov 20, 2025
a971eb2
virtio-msg: convert common message format to normative
bertrand-marquis Nov 20, 2025
231b768
virtio-msg: convert correlation to normative
bertrand-marquis Nov 20, 2025
6a1f550
virtio-msg: convert device discovery to normative
bertrand-marquis Nov 20, 2025
9c88065
virtio-msg: convert flow overview to normative
bertrand-marquis Nov 20, 2025
3a942a1
virtio-msg: convert device information to normative
bertrand-marquis Nov 20, 2025
8913885
virtio-msg: convert feature negotiation to normative
bertrand-marquis Nov 20, 2025
3646c29
virtio-msg: switch device configuration to normative
bertrand-marquis Nov 20, 2025
5ee179d
virtio-msg: Switch virqueue config to normative
bertrand-marquis Nov 20, 2025
59ac96c
virtio-msg: switch status information to normative
bertrand-marquis Nov 20, 2025
f87efe2
virtio-msg: switch finalize init to normative
bertrand-marquis Nov 20, 2025
983b776
virtio-msg: convert driver notifications to normative
bertrand-marquis Nov 20, 2025
299d5e3
virtio-msg: switch device notifications to normative
bertrand-marquis Nov 20, 2025
da771b3
virtio-msg: convert config changes to normative
bertrand-marquis Nov 20, 2025
a7efbca
virtio-msg: convert virtqueue change to normative
bertrand-marquis Nov 20, 2025
d08bd5c
virtio-msg: convert reset and shutdown to normative
bertrand-marquis Nov 20, 2025
1002f30
virtio-msg: convert hotplug and removal to normative
bertrand-marquis Nov 20, 2025
2060d08
virtio-msg: convert transport messages intro to normative
bertrand-marquis Nov 20, 2025
770f340
virtio-msg: convert GET_DEVICE_INFO to normative
bertrand-marquis Nov 20, 2025
d17f18f
virtio-msg: convert get_features to normative
bertrand-marquis Nov 20, 2025
f363356
virtio-msg: convert set_features to normative
bertrand-marquis Nov 20, 2025
e55a0c3
virtio-msg: convert get/set config to normative
bertrand-marquis Nov 20, 2025
42b70ab
virtio-msg: convert get/set status to normative
bertrand-marquis Nov 20, 2025
e2b3e9f
virtio-msg: convert vqueue messages to normative
bertrand-marquis Nov 20, 2025
bd256d6
virtio-msg: convert get_shm to normative
bertrand-marquis Nov 20, 2025
9d097f3
virtio-msg: convert event messages to normative
bertrand-marquis Nov 20, 2025
c85ef0d
virtio-msg: reword bus message intro and overview
bertrand-marquis Nov 20, 2025
a4b4100
virtio-msg: convert get_devices to normative
bertrand-marquis Nov 20, 2025
17d1729
virtio-msg: convert event dev and ping to normative
bertrand-marquis Nov 20, 2025
433d538
virtio-msg: remove compliance chapter
bertrand-marquis Nov 20, 2025
518d845
virtio-msg: Simplify correlation handling
bertrand-marquis Nov 20, 2025
b67346b
virtio-msg: Remove (xx) in normative
bertrand-marquis Nov 20, 2025
3688857
virtio-msg: add conformance entries in conformance chapter
bertrand-marquis Nov 20, 2025
3851e6e
virtio-msg: Improve message ID specification
bertrand-marquis Dec 1, 2025
1f2e4d9
virtio-msg: Use struct instead of tables for messages
bertrand-marquis Dec 1, 2025
c25b9bd
virtio-msg: Remove compressed chapter lable/normative
bertrand-marquis Dec 1, 2025
7891b6b
virtio-msg: move ping before event_device
bertrand-marquis Dec 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion commands.tex
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@
% How we format a field name
\newcommand{\field}[1]{\emph{#1}}

% Mark a normative section (driver or device)
% Mark a normative section (driver, device, or bus)
\newcommand{\drivernormative}[3]{#1{Driver Requirements: #2}\label{drivernormative:#3}}
\newcommand{\devicenormative}[3]{#1{Device Requirements: #2}\label{devicenormative:#3}}
\newcommand{\busnormative}[3]{#1{Bus Requirements: #2}\label{busnormative:#3}}
\newcounter{clausecounter}
\newcommand{\conformance}[2]{
\stepcounter{clausecounter}
Expand Down
105 changes: 103 additions & 2 deletions conformance.tex
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
\item[Driver] A driver MUST conform to four conformance clauses:
\begin{itemize}
\item Clause \ref{sec:Conformance / Driver Conformance}.
\item One of clauses \ref{sec:Conformance / Driver Conformance / PCI Driver Conformance}, \ref{sec:Conformance / Driver Conformance / MMIO Driver Conformance} or \ref{sec:Conformance / Driver Conformance / Channel I/O Driver Conformance}.
\item One of clauses \ref{sec:Conformance / Driver Conformance / PCI Driver Conformance}, \ref{sec:Conformance / Driver Conformance / MMIO Driver Conformance}, \ref{sec:Conformance / Driver Conformance / Channel I/O Driver Conformance} or \ref{sec:Conformance / Driver Conformance / Virtio Over Messages Driver Conformance}.
\item One of clauses
\ref{sec:Conformance / Driver Conformance / Network Driver Conformance},
\ref{sec:Conformance / Driver Conformance / Block Driver Conformance},
Expand Down Expand Up @@ -42,7 +42,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
\item[Device] A device MUST conform to four conformance clauses:
\begin{itemize}
\item Clause \ref{sec:Conformance / Device Conformance}.
\item One of clauses \ref{sec:Conformance / Device Conformance / PCI Device Conformance}, \ref{sec:Conformance / Device Conformance / MMIO Device Conformance} or \ref{sec:Conformance / Device Conformance / Channel I/O Device Conformance}.
\item One of clauses \ref{sec:Conformance / Device Conformance / PCI Device Conformance}, \ref{sec:Conformance / Device Conformance / MMIO Device Conformance}, \ref{sec:Conformance / Device Conformance / Channel I/O Device Conformance} or \ref{sec:Conformance / Device Conformance / Virtio Over Messages Device Conformance}.
\item One of clauses
\ref{sec:Conformance / Device Conformance / Network Device Conformance},
\ref{sec:Conformance / Device Conformance / Block Device Conformance},
Expand All @@ -68,6 +68,7 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}

\item Clause \ref{sec:Conformance / Legacy Interface: Transitional Device and Transitional Driver Conformance}.
\end{itemize}
\item[Bus] A bus implementation MUST conform to clause \ref{sec:Conformance / Bus Conformance / Virtio Over Messages Bus Conformance} when providing Virtio Over Messages.
\end{description}

\conformance{\section}{Driver Conformance}\label{sec:Conformance / Driver Conformance}
Expand Down Expand Up @@ -142,6 +143,42 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
\item \ref{drivernormative:Virtio Transport Options / Virtio over channel I/O / Device Operation / Resetting Devices}
\end{itemize}

\conformance{\subsection}{Virtio Over Messages Driver Conformance}\label{sec:Conformance / Driver Conformance / Virtio Over Messages Driver Conformance}

A Virtio Over Messages driver MUST conform to the following normative statements:

\begin{itemize}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Revisions / Driver Limits}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Versioning and Forward Compatibility / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Configuration Generation Count / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Endianness / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Common Message Format / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Overview / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Device Information / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Device Features / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Device Configuration / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Virtqueue Configuration / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Status Information / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Finalizing Initialization / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Driver Notifications / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Device Notifications / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Configuration Changes During Operation / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Virtqueue Changes During Operation / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Reset / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / Mandatory / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_GET_DEVICE_INFO / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_GET_DEVICE_FEATURES / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_SET_DRIVER_FEATURES / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_GET_CONFIG / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_SET_CONFIG / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_SET_DEVICE_STATUS / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_SET_VQUEUE / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_RESET_VQUEUE / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_EVENT_CONFIG / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_EVENT_AVAIL / Driver}
\item \ref{drivernormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_EVENT_USED / Driver}
\end{itemize}

\input{device-types/net/driver-conformance.tex}
\input{device-types/blk/driver-conformance.tex}
\input{device-types/console/driver-conformance.tex}
Expand Down Expand Up @@ -233,6 +270,43 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
\item \ref{devicenormative:Virtio Transport Options / Virtio over channel I/O / Device Operation / Resetting Devices}
\end{itemize}

\conformance{\subsection}{Virtio Over Messages Device Conformance}\label{sec:Conformance / Device Conformance / Virtio Over Messages Device Conformance}

A Virtio Over Messages device MUST conform to the following normative statements:

\begin{itemize}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Revisions / Device Limits}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Versioning and Forward Compatibility / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Configuration Generation Count / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Feature Blocks / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Error Signaling / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Endianness / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Common Message Format / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Device Features / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Device Configuration / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Virtqueue Configuration / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Status Information / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Device Initialization / Finalizing Initialization / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Device Notifications / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Configuration Changes During Operation / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Virtqueue Changes During Operation / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Reset / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / Mandatory / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_GET_DEVICE_INFO / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_GET_DEVICE_FEATURES / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_SET_DRIVER_FEATURES / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_GET_CONFIG / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_SET_CONFIG / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_GET_DEVICE_STATUS / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_SET_DEVICE_STATUS / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_GET_VQUEUE / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_SET_VQUEUE / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_RESET_VQUEUE / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_GET_SHM / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_EVENT_CONFIG / Device}
\item \ref{devicenormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_EVENT_USED / Device}
\end{itemize}

\input{device-types/net/device-conformance.tex}
\input{device-types/blk/device-conformance.tex}
\input{device-types/console/device-conformance.tex}
Expand All @@ -255,6 +329,33 @@ \section{Conformance Targets}\label{sec:Conformance / Conformance Targets}
\input{device-types/can/device-conformance.tex}
\input{device-types/spi/device-conformance.tex}

\conformance{\section}{Bus Conformance}\label{sec:Conformance / Bus Conformance}

A bus implementation MUST conform to the relevant bus normative statements.

\conformance{\subsection}{Virtio Over Messages Bus Conformance}\label{sec:Conformance / Bus Conformance / Virtio Over Messages Bus Conformance}

A Virtio Over Messages bus implementation MUST conform to the following normative statements:

\begin{itemize}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Relationship between bus and transport / Bus Messages}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Relationship between bus and transport / Transport Message Forwarding}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Revisions / Advertising Transport Parameters}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Revisions / Message Size}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Versioning and Forward Compatibility / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Device Numbers / Assignment}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Error Signaling / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Common Message Format / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Basic Concepts / Ordering / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Device Discovery / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Driver Notifications / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Device Notifications / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Device Operation / Hotplug and Removal / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Transport Messages / VIRTIO_MSG_EVENT_AVAIL / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Bus Messages / GET_DEVICES / Bus}
\item \ref{busnormative:Virtio Transport Options / Virtio Over Messages / Bus Messages / PING / Bus}
\end{itemize}

\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
non-transitional, see \ref{intro:Legacy
Expand Down
Loading
Loading