Skip to content

Commit 4bafe93

Browse files
bertrand-marquiswmamills
authored andcommitted
virtio-msg: Relax error handling in the bus
Relax error handling in the virtio-msg bus and introduce wording to allow the virtio-msg bus to report error to the virtio-msg transport if a request could not be transmited or a malformed response was received. This prevents the need to generate dummy responses in the bus and make the specification coherent with the current Linux PoC implementation. Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
1 parent c7848cb commit 4bafe93

1 file changed

Lines changed: 25 additions & 10 deletions

File tree

transport-msg.tex

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -232,16 +232,31 @@ \subsubsection{Feature Negotiation Blocks}
232232
\subsubsection{Error Signaling}
233233
\label{sec:Virtio Transport Options / Virtio Over Messages / Basic Concepts / ErrorSignaling}
234234

235-
All legal transactions are defined at the transport level and responses defined.
236-
If the transport level does something invalid or the bus has error conditions,
237-
this \emph{SHOULD} be handled at the bus implementation level.
238-
239-
How the bus recovers from an error (e.g., by retrying, resetting
240-
devices, or escalating to a bus-wide reset) is environment-specific, but
241-
\emph{MUST} adhere to any mandatory behaviors (see
242-
\ref{sec:Virtio Transport Options / Virtio Over Messages / Bus Operation}
243-
and
244-
\ref{sec:Virtio Transport Options / Virtio Over Messages / Device Operation}).
235+
Errors may arise from: (a) malformed or unsupported transport messages, (b)
236+
transmission or routing issues within a bus implementation, or (c) device-side
237+
failures while processing a valid request. Local detection and recovery are
238+
preferred, but a virtio-msg bus \textbf{MAY} report transmission errors to the
239+
virtio-msg transport when it cannot deliver a request or obtain a response
240+
within a bounded policy.
241+
242+
The following rules apply:
243+
\begin{itemize}
244+
\item A bus implementation \textbf{MAY} surface a transport-visible failure
245+
(implementation-defined) after exhausting any bounded retry policy for
246+
a transmission error.
247+
\item Malformed headers or unsupported \field{msg_op} values \textbf{SHOULD}
248+
be discarded; the receiver \textbf{MAY} log them and \textbf{SHOULD NOT}
249+
generate further protocol traffic in response.
250+
\item Event (one-way) messages \textbf{MUST NOT} elicit an error response.
251+
\item Recovery actions (retry, selective reset, device removal) are
252+
environment-specific but \textbf{MUST} comply with any normative reset
253+
or status handling semantics described in
254+
\ref{sec:Virtio Transport Options / Virtio Over Messages / Device Operation}.
255+
\end{itemize}
256+
257+
This specification does not mandate a specific error reporting message for
258+
transmission failures; it only permits a virtio-msg bus to surface such
259+
failures to the virtio-msg transport when silent recovery is not feasible.
245260

246261
\subsubsection{Bus vs. Transport Messages}
247262
\label{sec:Virtio Transport Options / Virtio Over Messages / Basic Concepts / BusVsTransport}

0 commit comments

Comments
 (0)