@@ -67,35 +67,48 @@ First, thank you for the detailed comments and broad interest on v1.
6767We tried to address most review feedback in this revision.
6868
6969Spec Functional / Behavioral:
70- * Finalized the common header and addressing model:
70+ * Finalized the common header, addressing, and forwarding model:
7171 * Keep a 16-byte common header
7272 * Use 64-bit device numbers
7373 * Use 16-bit msg_size plus 16-bit reserved
74- Rationale: support larger device-number spaces while keeping the transport
75- control-plane focused and limiting payload-transfer misuse.
74+ * Bus messages are identified by the type field and MUST carry dev_num = 0
75+ * Device number 0 is not reserved for transport messages
76+ * Bus implementations MUST validate transport-message device numbers before
77+ forwarding
78+ Rationale: support larger device-number spaces, remove ambiguity in bus-vs-
79+ transport addressing, and keep forwarding behavior well-defined.
7680* Clarified device-number lifecycle guidance so bus implementations should avoid
7781 immediate reuse of removed device numbers.
7882 Rationale: reduce races with delayed messages when devices are removed and
7983 added again.
80- * Added explicit configuration semantics profiles (baseline vs strict) and
81- gated generation-mismatch refusal to strict-profile negotiation.
84+ * Added explicit configuration semantics profiles (baseline vs strict), tied to
85+ VIRTIO_MSG_F_STRICT_CONFIG_GENERATION, and gated generation-mismatch refusal
86+ to strict-profile negotiation.
8287 Rationale: preserve compatibility in baseline mode while allowing stricter
83- behavior when both sides opt in.
88+ behavior when both sides opt in, and make the controlling feature
89+ negotiation explicit in message semantics.
8490* Clarified SET_CONFIG rejection behavior: rejected responses return
8591 length = 0 with no payload.
8692 Rationale: remove ambiguity for parser/validation behavior.
87- * Clarified ordering baseline: request/response ordering is per-device in-order,
88- while events remain asynchronous and may arrive at any time relative to
89- request/response traffic.
90- Rationale: keep baseline semantics clear without over-constraining event
91- delivery.
93+ * Clarified ordering and response-association baseline:
94+ * Request/response ordering is per-device in-order
95+ * Bus implementations own token-based request/response correlation and any
96+ reordering compensation
97+ * Repeated request parameters in responses may be used for validation but do
98+ not define response association
99+ * Events remain asynchronous and may arrive at any time relative to
100+ request/response traffic
101+ Rationale: keep baseline semantics clear while making bus responsibilities
102+ for correlation and ordering explicit.
92103* Clarified virtqueue state transitions and reconfiguration rules around
93104 enabled/disabled/reset states.
94105 Rationale: align with transport expectations and avoid ambiguous queue-state
95106 behavior.
96- * Clarified GET_DEVICE_INFO semantics using number of 32-bit feature blocks and
97- aligned related field descriptions.
98- Rationale: improve consistency and implementation clarity.
107+ * Clarified GET_DEVICE_INFO semantics using number of 32-bit feature blocks,
108+ and added UUID guidance referencing RFC4122 nil-UUID semantics while
109+ recommending version 4 UUIDs for non-nil device_uuid values.
110+ Rationale: improve consistency and implementation clarity for both feature
111+ discovery and device identification.
99112* Clarified GET_DEVICES semantics using direct slot/byte units; responders must
100113 not return count values larger than requested; smaller (including zero) count
101114 is valid when appropriate.
0 commit comments