From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010023.outbound.protection.outlook.com [40.93.198.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42E12314D11 for ; Mon, 27 Oct 2025 17:49:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.23 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761587409; cv=fail; b=rE2C0YuoOuUexV4XubbiTGpYXXcWYvGLxZHP/g9p+wt2+X8Jh8J5l8cmbDrtQlh7dEy0WiimNWCdH1tLUNIyazIWEbSw8fP6rg/7xGTClFx61Gaf0I2ktCj6NxM146uEFmIDQXYESKnltpGXXUTB29/D0pnDtqzhWumTWDvUcDw= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761587409; c=relaxed/simple; bh=hTWidGTJxbYzKXqY1sBmD7+OiEaQHewaJj63hcAfk14=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=D/U5jGDtDvnnCXjPj1VxPRUepFgh6JJhAGjtNam+azSxFTXZB2maxtUrmIAO0mGrkR72Fkl+tnlKdJ+qwLdKr2jIojO2l5armZIA5nTfGQ9v4qAVMQpybKJeqp0HiXBd7VgYpivUy0yMTfNOAo7USzw2X33jlCdeaENKlUMoKrQ= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ZzFzw55U; arc=fail smtp.client-ip=40.93.198.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ZzFzw55U" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=diJqxxzB6MLbut0bLIHn/G9ysS1Z7n2qpubI1ZWh3sFjAADfWqE90fuU0ghUyMIHtp+m4LQipiQR5N/eZVKaA4ZTGuiqXrki/CzTz4/pLtzU9TrBAXaTozv6iog6z6ewZt9TCoBwAC0QDG8oN54sb1uNDbuDlAIp1w6/tT59KtgWKepoCFswVeHkOWIHL3kkRtL+tcuUYwHG6VYJgI3dYsTYSz8cZZdEq+SfCYNYJQNLkNVc4JO+4Hw2e6VvYERFf4snEJBNZqStv17srr+b1Ki1Fer8dJZ5OCn5X9POnFTNHEPqQwhNhbGXBIn7L38PySaro04dMSRZUNlaWjyziw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z6ty640DNf/XwOE2H+Wdfcgm29aoe4iIy2bWQaivr7s=; b=wjY2tCETn4xAOm7uSs+UEl0X/u4WRz2qkWQ4wYgws4AmHKCUdE7wHmOn2dladFWJXFBNl64gTgkbx6wELQyxXp4zyAN4p7y9sSmX0aiE9E/uAR5HhlOiQqYpu9AafqxU7O/OgFmoqP5cp3XiHF4GlVePYNy/sZ9n0Ax9fxXGprFLXH7nRsXvpGtBO4GBg3cokn0Y9cwim/mqc8yrYpmCkcRKGIvqBbhl5JjfefrvFrEjSdnnN2zWTB549i4x8JGXBH2ulDA+UqUXP9xVi3xvOEEN2C0Mi6usJHISpTcNCMVZ71oiJKFdwuqiGehNkSzVqkq8KGK2nOARog2Cn15TuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=lists.linux.dev smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z6ty640DNf/XwOE2H+Wdfcgm29aoe4iIy2bWQaivr7s=; b=ZzFzw55UqJefwxKKWUaZhJyjwIEB2icUIe62CHXp8rEDlrORYhr84CIkZdpo1+2TbuzmXr0tjVmX0MnGNF+D4r52IQGe3PRLIevYSWLIcJa1T/JSHctE8d48rhYffgWsOHjVXzYbZC0W6RAZaJ6VGJ3EMaGQbQvEz/TuB90+Vnfa2/tw0GMjAeTjeEM6fxdT9yMrStwnrG1Nk7G4W0bGGd1dMDAexhDvmoZcP3Wf6PCkVsvj7Thvi8t1eMqWxyxQDt5Jbm4Ht52hvVWgzaT5GN0v0YuoiVlhfYrupIOHS3G/b1T0bZz5EQEXSlJSv+Z+uH4uwmsYxHwWnP5DmxUgXg== Received: from CH2PR17CA0013.namprd17.prod.outlook.com (2603:10b6:610:53::23) by MN2PR12MB4333.namprd12.prod.outlook.com (2603:10b6:208:1d3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.18; Mon, 27 Oct 2025 17:49:44 +0000 Received: from CH1PEPF0000AD7F.namprd04.prod.outlook.com (2603:10b6:610:53:cafe::ac) by CH2PR17CA0013.outlook.office365.com (2603:10b6:610:53::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9253.18 via Frontend Transport; Mon, 27 Oct 2025 17:49:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH1PEPF0000AD7F.mail.protection.outlook.com (10.167.244.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.10 via Frontend Transport; Mon, 27 Oct 2025 17:49:43 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 27 Oct 2025 10:49:24 -0700 Received: from vr-arch-host06.mtvr.labs.mlnx (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Mon, 27 Oct 2025 10:49:21 -0700 From: Parav Pandit To: , , , CC: , Parav Pandit Subject: [PATCH 1/4] edit: remove old changelog Date: Mon, 27 Oct 2025 19:47:53 +0200 Message-ID: <20251027174756.56284-2-parav@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251027174756.56284-1-parav@nvidia.com> References: <20251027174756.56284-1-parav@nvidia.com> Precedence: bulk X-Mailing-List: virtio-comment@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7F:EE_|MN2PR12MB4333:EE_ X-MS-Office365-Filtering-Correlation-Id: 06e944b0-4759-459f-472b-08de1581365f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013|13003099007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?dU9lZHBtUzZGMEE0WlZmOXVmWE1BL21KYVVhTHBGNGJ6enNVSVFjdE41SU5q?= =?utf-8?B?TFUrMFF3ZDBPaDgvcm5Nd0hrTVAvMXBNWE9XR1Y3eW1FaVRmdW8wemZxb2dq?= =?utf-8?B?M0FuNDU5WExrWVRHN0d6VUpkQVVyZ1FTZG9TSWJYUmNHUVFvMTg0ZEpJSTN4?= =?utf-8?B?RUJPYURaMitTUGVBTGtjQWU3VWNrMndnNEJ5WXVlS1ZKR3RTOWFIRzlGeGN6?= =?utf-8?B?bTBCSWtoOEtqRC9zaXFZTVNtWVgvWURFSXR2VjBaV084TkNGYVZEdUhBcGN2?= =?utf-8?B?NHk0K2JCYkowQnFxSjJhblUzb05HMWc3c1FiYzUyV3U3VjhkNmMvVDI3NkZ0?= =?utf-8?B?eTFZNGFFQlNTQnBvaTVGSTFtTUc1Y3ZqYjRqYWdDNk9jZzFZZDlzTVRoV1Rp?= =?utf-8?B?bzFLNWVrR1NDSGJJaGZMeElnQWhqSUZOelFoV0JPem9vZUYzb1VvTG1TdFpq?= =?utf-8?B?VVdONm80T0ZSb0ptWHl3MW5nMjhvZklweml0K2w3SXpIblFGakhzTCtkY0NE?= =?utf-8?B?RVcxRUVFZTVodWh1TVI1SmI3ZGNUMkg3NU9rTFFzS1VrTUZTZllFSU9GNmhW?= =?utf-8?B?TFYxbFluWjNEQUVNTEIrWkxNUURpUStWWWZSQ2VWaWRzd1VtaENFNGtHalZR?= =?utf-8?B?eDFJeWgzc2RRK3RVQ2d0Y2E2dDk2SVpwOTRGUzdjQWY4U3RnNExEMlN4SHJN?= =?utf-8?B?OG1NZk9DdXVJVE44WStuVDI4MG5UcXB4OXhvaUxRM2dXWFNHNDMxYmlRYktI?= =?utf-8?B?aDFoejZaSitxWmdUc2YzNFJhMkE0Z04zTHZDZVRyWks4c1RMRVA3M2xrbzN0?= =?utf-8?B?SjBibFNodHdpYU5hdnZCaTg4RkV4cXpZYU8xVC9WN2E4OHF1bkl3ODhCa3dl?= =?utf-8?B?azI3Mjd0THh2cXQ2MUtFRktnd1dHZTdnVHNKWnY3T044QnVVVEluWGs0VjFs?= =?utf-8?B?TUV5VWlGNnQ2cm5jN29BTGpsTk5kY3ltL3VtUWdHK0RMVWl6R2o0aWlBWDJt?= =?utf-8?B?WjlrV200QWRZeWZ5emxNR0tMeXpoTzZvR2xFU0tBSXd0MXYyYnRTVUhVeXEz?= =?utf-8?B?R1VSZWtScGlSZi9JK3JBcGNTcDg5czM1UXhRZEc4TE1kWGJmQys4YzFIU3ZJ?= =?utf-8?B?cUE5V0ZudUFhL000Q2VkRWs5bENWQlUyelVSWGdtS1IxSGxLM255ODhvV0FF?= =?utf-8?B?OTRydjMvZ0gwUEQ0RmIvekFQdDVaQWpLTng3VDUvOUp0NDlZcHd0dDlpK3Rr?= =?utf-8?B?U3Y5Sk5oZytWSmg2OGtjZkVmRGExYTFtbk96K1ZkRm1mZjdqbFZHb294R1U4?= =?utf-8?B?YndodDZacEdRTDEzbE55bVJKdnR6bDA5Y3MrOXExVGwrMVZzc21lSVZRU0R4?= =?utf-8?B?R2lrNHgvRG1NUGhieXoxaHR2cVlMNU9aOG9nSUZwdWE1ZHpFVFNONER4Q2FP?= =?utf-8?B?Zk1PbVBIVmIrV0M0TmhuTWU1bkxJSFdvQmZqKy9qU0xLdUhmdldoU0t1Q1lt?= =?utf-8?B?K3gwSk42cEZYY29CYlRVY01QNFdmd3VmU2pkbDJLY3VFa242ZEE5eE9VS2Va?= =?utf-8?B?ak1yUWVQaE5GUWV0Q2FFdy9jaHBaVTFWQzhrQ3RneVBhOWl4eWRJZFcwUmdu?= =?utf-8?B?N0g0RnNXbTVIbEtTQ0JaTjVRWVhnY0tMelF1S3pSbmJwbDdwbFFXeWtXS3pY?= =?utf-8?B?N1lMRS9jbG1pdExXUU5yNy82UCtSVjFLelJzMWN4MHRPNW9ScCtMb1lKZm1E?= =?utf-8?B?UFpaY0xwVWZLT0hadGhTSStBbHdYdXNqV0Y4RjU5UUdqRmh6M1lydmJIYzY5?= =?utf-8?B?c3QvN3RGUENWcUdobFNxV3BwZGZzWGgwME5IN0wxSHU1NXA2aVQ3NnllTXNV?= =?utf-8?B?NlhvNHpySmE3ZzFqZ0FwQzZxK2tKYitZZTY1ekJaV3ROdkRvZnRpTUlhMFVn?= =?utf-8?B?U3JGbDV3bjFmZmtKcGJqdVY3M01tSUhOUnhlZDJuT0xGdjZNVE40cmQzcHJS?= =?utf-8?B?ZitaYVBUZXZRMGtMWmptNklEMXJaMzJmMWhXK1M0dGlNK1YrNnFITVRDNWhy?= =?utf-8?B?WXQ3Y25JMGliR1doVWhvOFIrYWZBUVdLdUt4RU9ZOEtvZDBsR25TOFNJYlZK?= =?utf-8?Q?Io6A=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013)(13003099007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2025 17:49:43.8805 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 06e944b0-4759-459f-472b-08de1581365f X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000AD7F.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4333 Prepare the changelog file for 1.4, so remove old change log and move it to cl-cs05.tex. Signed-off-by: Parav Pandit --- cl-cs05.tex | 2120 +++++++++++++++++++++++++++++++++++++++++++++++++++ cl-os.tex | 2120 --------------------------------------------------- 2 files changed, 2120 insertions(+), 2120 deletions(-) create mode 100644 cl-cs05.tex diff --git a/cl-cs05.tex b/cl-cs05.tex new file mode 100644 index 0000000..77727e5 --- /dev/null +++ b/cl-cs05.tex @@ -0,0 +1,2120 @@ +5da7c1414e7e & 13 Jun 2022 & Stefan Hajnoczi & {\noindent virtio-blk: document that the capacity field can change\vspace{\baselineskip} + + +Block devices can change size during operation. A configuration change +notification is sent by the device and the driver detects that the field +has changed. Document this behavior that has already been implemented in +Linux and QEMU since 2011. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/136} + +Signed-off-by: Stefan Hajnoczi + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Block Device / Device Operation}. + } \\ +\hline +ad2e1674bb69 & 13 Jun 2022 & Laura Loghin & {\noindent vsock: add documentation about len header field\vspace{\baselineskip} + + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/137} + +Reviewed-by: Stefano Garzarella + +Signed-off-by: Laura Loghin + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Socket Device / Device Operation}. + } \\ +\hline +fca015771bc9 & 13 Jun 2022 & Xuan Zhuo & {\noindent virtio-net: support reset queue\vspace{\baselineskip} + + +A separate reset queue function introduced by Virtqueue Reset. + +However, it is currently not defined what to do if the destination queue is +being reset when virtio-net is steering in multi-queue mode. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/138} + +Reviewed-by: Jason Wang + +Signed-off-by: Xuan Zhuo + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Automatic receive steering in multiqueue mode}, +and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Receive-side scaling (RSS) / Setting RSS parameters}. + } \\ +\hline +6328f51e21b5 & 24 Jun 2022 & Yuri Benditovich & {\noindent virtio-net: define guest USO features\vspace{\baselineskip} + + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/120} + +Add definition for large UDP packets device-to-driver. + +Signed-off-by: Yuri Benditovich + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Feature bits}, +\ref{sec:Device Types / Network Device / Feature bits / Feature bit requirements}, +\ref{sec:Device Types / Network Device / Device Initialization}, +\ref{sec:Device Types / Network Device / Device Operation / Setting Up Receive Buffers}, +\ref{sec:Device Types / Network Device / Device Operation / Processing of Incoming Packets}, +and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Offloads State Configuration / Setting Offloads State}. + } \\ +\hline +49ff7805924c & 24 Jun 2022 & Anton Yakovlev & {\noindent virtio-snd: add support for audio controls\vspace{\baselineskip} + + +This patch extends the virtio sound device specification by adding +support for audio controls. Audio controls can be used to set the volume +level, mute/unmute the audio signal, switch different modes/states of +the virtual sound device, etc. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/107} + +Signed-off-by: Anton Yakovlev + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Driver Conformance / Sound Driver Conformance}, +\ref{sec:Conformance / Device Conformance / Sound Device Conformance}, +\ref{sec:Device Types / Sound Device / Feature Bits}, +\ref{sec:Device Types / Sound Device / Device Configuration Layout}, +\ref{sec:Device Types / Sound Device / Device Operation}, +and \ref{sec:Device Types / Sound Device / Device Operation / Control Elements}. + } \\ +\hline +4d9068effa81 & 11 Jul 2022 & Alvaro Karsz & {\noindent Introduction of Virtio Network device notifications coalescing feature.\vspace{\baselineskip} + + +Control a network device notifications coalescing parameters using the control virtqueue. +A new control class was added: VIRTIO_NET_CTRL_NOTF_COAL. + +This class provides 2 commands: + +\begin{itemize} +\item VIRTIO_NET_CTRL_NOTF_COAL_TX_SET: + Ask the network device to change the tx_usecs and tx_max_packets parameters. + +\begin{itemize} + \item tx_usecs: Maximum number of usecs to delay a TX notification. + + \item tx_max_packets: Maximum number of packets to send before a TX notification. +\end{itemize} + + +\item VIRTIO_NET_CTRL_NOTF_COAL_RX_SET: + Ask the network device to change the rx_usecs and rx_max_packets parameters. + +\begin{itemize} + \item rx_usecs: Maximum number of usecs to delay a RX notification. + + \item rx_max_packets: Maximum number of packets to receive before a RX notification. +\end{itemize} +\end{itemize} + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/141} + +Reviewed-by: Jason Wang + +Signed-off-by: Alvaro Karsz + +[CH: fixed commit message] + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Driver Conformance / Network Driver Conformance}, +\ref{sec:Conformance / Device Conformance / Network Device Conformance}, +\ref{sec:Device Types / Network Device / Feature bits}, +\ref{sec:Device Types / Network Device / Feature bits / Feature bit requirements}, +and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Notifications Coalescing}. + } \\ +\hline +abbe8afda8db & 03 Aug 2022 & Lei He & {\noindent virtio-crypto: introduce akcipher service\vspace{\baselineskip} + + +Introduce akcipher (asymmetric key cipher) service type, several +asymmetric algorithms and relevent information: + + - RSA(padding algorithm, ASN.1 schema definition) + + - ECDSA(ECC algorithm) + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/129} + +Signed-off-by: zhenwei pi + +Signed-off-by: Lei He + +Signed-off-by: Cornelia Huck + +See \ref{sec:Normative References}, +\ref{sec:Device Types / Crypto Device}, +\ref{sec:Device Types / Crypto Device / Feature bits}, +\ref{sec:Device Types / Crypto Device / Feature bit requirements}, +\ref{sec:Device Types / Crypto Device / Supported crypto services}, +\ref{sec: Device Types / Crypto Device / Supported crypto services / AKCIPHER services}, +\ref{sec:Device Types / Crypto Device / Device configuration layout}, +\ref{sec:Device Types / Crypto Device / Device Operation / Operation status}, +\ref{sec:Device Types / Crypto Device / Device Operation / Control Virtqueue}, +\ref{sec:Device Types / Crypto Device / Device Operation / Control Virtqueue / Session operation / Session operation: AKCIPHER session}, +\ref{sec:Device Types / Crypto Device / Device Operation / Data Virtqueue}, +and \ref{sec:Device Types / Crypto Device / Device Operation / AKCIPHER Service Operation}. + } \\ +\hline +26ed30ccb049 & 03 Aug 2022 & Stefano Garzarella & {\noindent virtio-vsock: add VIRTIO_VSOCK_F_NO_IMPLIED_STREAM feature bit\vspace{\baselineskip} + + +Initially virtio-vsock only supported the stream type, which is why +there was no feature. Later we added the seqpacket type and in the future +we may have other types (e.g. datagram). + +seqpacket is an extension of stream, so it might be implied that if +seqpacket is supported, stream is too, but this might not be true for +other types. + +As we discussed here [1] should be better to add a new +VIRTIO_VSOCK_F_NO_IMPLIED_STREAM feature bit to avoid this implication. + +Let's also add normative sections to better define the behavior when +VIRTIO_VSOCK_F_NO_IMPLIED_STREAM is negotiated or not. + +[1] \url{http://markmail.org/message/2s3qd74drgjxkvte} + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/142} + +Suggested-by: Michael S. Tsirkin + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Stefano Garzarella + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Driver Conformance / Socket Driver Conformance}, +\ref{sec:Conformance / Device Conformance / Socket Device Conformance}, +and \ref{sec:Device Types / Socket Device / Feature bits}. + } \\ +\hline +a7251b0cb4d9 & 14 Nov 2022 & Hrishivarya Bhageeradhan & {\noindent content: reserve device ID 43 for Camera device\vspace{\baselineskip} + + +The virtio-camera device allows to stream a camera video with +ability to change controls, formats and get camera captures. +This patch is to reserve the next available device ID for +virtio-camera. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/148} + +Signed-off-by: Hrishivarya Bhageeradhan + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types}. + } \\ +\hline +b4e8efa0fa6c & 05 Dec 2022 & Dmitry Fomichev & {\noindent virtio-blk: add zoned block device specification\vspace{\baselineskip} + + +Introduce support for Zoned Block Devices to virtio. + +Zoned Block Devices (ZBDs) aim to achieve a better capacity, latency +and/or cost characteristics compared to commonly available block +devices by getting the entire LBA space of the device divided to block +regions that are much larger than the LBA size. These regions are +called zones and they can only be written sequentially. More details +about ZBDs can be found at + +\url{https://zonedstorage.io/docs/introduction/zoned-storage} . + +In its current form, the virtio protocol for block devices (virtio-blk) +is not aware of ZBDs but it allows the driver to successfully scan a +host-managed drive provided by the virtio block device. As the result, +the host-managed drive is recognized by virtio driver as a regular, +non-zoned drive that will operate erroneously under the most common +write workloads. Host-aware ZBDs are currently usable, but their +performance may not be optimal because the driver can only see them as +non-zoned block devices. + +To fix this, the virtio-blk protocol needs to be extended to add the +capabilities to convey the zone characteristics of ZBDs at the device +side to the driver and to provide support for ZBD-specific commands - +Report Zones, four zone operations (Open, Close, Finish and Reset) and +(optionally) Zone Append. The proposed standard extension aims to +define this new functionality. + +This patch extends the virtio-blk section of virtio specification with +the minimum set of requirements that are necessary to support ZBDs. +The resulting device model is a subset of the models defined in ZAC/ZBC +and ZNS standards documents. The included functionality mirrors +the existing Linux kernel block layer ZBD support and should be +sufficient to handle the host-managed and host-aware HDDs that are on +the market today as well as ZNS SSDs that are entering the market at +the time of submission of this patch. + +I would like to thank the following people for their useful feedback +and suggestions while working on the initial iterations of this patch. + +Damien Le Moal + +Matias Bjørling + +Niklas Cassel + +Hans Holmberg + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/143} + +Signed-off-by: Dmitry Fomichev + +Reviewed-by: Stefan Hajnoczi + +Reviewed-by: Damien Le Moal + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Block Device / Feature bits}, +\ref{sec:Device Types / Block Device / Device configuration layout}, +\ref{sec:Device Types / Block Device / Device Initialization}, +and \ref{sec:Device Types / Block Device / Device Operation}. + } \\ +\hline +985bbf397db4 & 07 Dec 2022 & Xuan Zhuo & {\noindent content: reserve device ID 44 for ISM device\vspace{\baselineskip} + + +The virtio-ism device provides the ability to share memory between +different guests on a host. A guest's memory got from ism device can be +shared with multiple peers at the same time. This shared relationship +can be dynamically created and released. + +The shared memory obtained from the device is divided into multiple ism +regions for share. ISM device provides a mechanism to notify other ism +region referrers of content update events. + +This patch is to reserve the next available device ID for virtio-ism. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/150} + +Signed-off-by: Xuan Zhuo + +Signed-off-by: Jiang Liu + +Signed-off-by: Dust Li + +Signed-off-by: Tony Lu + +Signed-off-by: Helin Guo + +Signed-off-by: Hans Zhang + +Signed-off-by: He Rongguang + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types}. + } \\ +\hline +f2b28698a28a & 30 Jan 2023 & Parav Pandit & {\noindent virtio-net: Maintain network device spec in separate directory\vspace{\baselineskip} + + +Move virtio network 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. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device}, +\ref{sec:Conformance / Device Conformance / Network Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Network Driver Conformance}. + } \\ +\hline +81694cddc4c1 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-net: Fix spelling errors\vspace{\baselineskip} + + +Fix two spelling errors in the virtio network device specification. + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Device Initialization}, +and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. + } \\ +\hline +335342f5cd88 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-blk: Maintain block device spec in separate directory\vspace{\baselineskip} + + +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. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Block Device}, +\ref{sec:Conformance / Device Conformance / Block Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Block Driver Conformance}. + } \\ +\hline +d3d06187eabb & 30 Jan 2023 & Parav Pandit & {\noindent virtio-console: Maintain console device spec in separate directory\vspace{\baselineskip} + + +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. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Console Device}, +\ref{sec:Conformance / Device Conformance / Console Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Console Driver Conformance}. + } \\ +\hline +c71e88e86d35 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-entropy: Maintain entropy device spec in separate directory\vspace{\baselineskip} + + +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. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Entropy Device}, +\ref{sec:Conformance / Device Conformance / Entropy Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Entropy Driver Conformance}. + } \\ +\hline +c06f3b670dd6 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-balloon: Maintain mem balloon device spec in separate directory\vspace{\baselineskip} + + +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. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Memory Balloon Device}, +\ref{sec:Conformance / Device Conformance / Traditional Memory Balloon Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Traditional Memory Balloon Driver Conformance}. + } \\ +\hline +d404f1c4e886 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-scsi: Maintain scsi host device spec in separate directory\vspace{\baselineskip} + + +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. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / SCSI Host Device}, +\ref{sec:Conformance / Device Conformance / SCSI Host Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / SCSI Host Driver Conformance}. + } \\ +\hline +442bb643a9ad & 30 Jan 2023 & Parav Pandit & {\noindent virtio-gpu: Maintain gpu device spec in separate directory\vspace{\baselineskip} + + +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. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / GPU Device Conformance}. + } \\ +\hline +c9686f241819 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-input: Maintain input device spec in separate directory\vspace{\baselineskip} + + +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. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / Input Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Input Driver Conformance}. + } \\ +\hline +8463bba27c79 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-crypto: Maintain crypto device spec in separate directory\vspace{\baselineskip} + + +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. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / Crypto Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Crypto Driver Conformance}. + } \\ +\hline +828754b98e3b & 30 Jan 2023 & Parav Pandit & {\noindent virtio-vsock: Maintain socket device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Reviewed-by: Stefano Garzarella + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / Socket Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Socket Driver Conformance}. + } \\ +\hline +8632f80e251f & 30 Jan 2023 & Parav Pandit & {\noindent virtio-fs: Maintain file system device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / File System Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / File System Driver Conformance}. + } \\ +\hline +b067de47a506 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-rpmb: Maintain rpmb device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / RPMB Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / RPMB Driver Conformance}. + } \\ +\hline +b1cf73e96173 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-iommu: Maintain iommu device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / IOMMU Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / IOMMU Driver Conformance}. + } \\ +\hline +6813e3cc271e & 30 Jan 2023 & Parav Pandit & {\noindent virtio-sound: Maintain sound device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / Sound Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Sound Driver Conformance}. + } \\ +\hline +5042a5031502 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-mem: Maintain memory device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / Memory Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / Memory Driver Conformance}. + } \\ +\hline +00b9935238bf & 30 Jan 2023 & Parav Pandit & {\noindent virtio-i2c: Maintain i2c device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / I2C Adapter Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / I2C Adapter Driver Conformance}. + } \\ +\hline +674489b191ab & 30 Jan 2023 & Parav Pandit & {\noindent virtio-scmi: Maintain scmi device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / SCMI Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / SCMI Driver Conformance}. + } \\ +\hline +6c9c04d2bf5e & 30 Jan 2023 & Parav Pandit & {\noindent virtio-gpio: Maintain gpio device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / GPIO Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / GPIO Driver Conformance}. + } \\ +\hline +d04d253b1055 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-pmem: Maintain pmem device spec in separate directory\vspace{\baselineskip} + + +Place device specification, its driver and device +conformance into its own directory to have self contained device +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Conformance / Device Conformance / PMEM Device Conformance}, +and \ref{sec:Conformance / Driver Conformance / PMEM Driver Conformance}. + } \\ +\hline +b1fb6b62495f & 02 Feb 2023 & Parav Pandit & {\noindent virtio-net: Clarify VLAN filter table configuration\vspace{\baselineskip} + + +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] \url{https://lists.oasis-open.org/archives/virtio-dev/202301/msg00210.html} + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/147} + +Suggested-by: Si-Wei Liu + +Reviewed-by: Si-Wei Liu + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / VLAN Filtering}, +\ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}, +and \ref{sec:Conformance / Device Conformance / Network Device Conformance}. + } \\ +\hline +53b0cb13169c & 02 Feb 2023 & Parav Pandit & {\noindent virtio-net: Avoid confusing device configuration text\vspace{\baselineskip} + + +The added text in commit of Fixes tag was redundant and +confusing in context of VLAN filtering description. + +Hence remove it as discussed in [1] and [2]. + +[1] \url{https://lists.oasis-open.org/archives/virtio-dev/202301/msg00282.html} +[2] \url{https://lists.oasis-open.org/archives/virtio-dev/202301/msg00286.html} + +\vspace{\baselineskip} +Fixes: 296303444f6b ("virtio-net: Clarify VLAN filter table configuration") + +Suggested-by: Halil Pasic + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +[CH: applied as editorial change] + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. + } \\ +\hline +3b9b6acb0936 & 09 Feb 2023 & Michael S. Tsirkin & {\noindent audio->sound\vspace{\baselineskip} + + +Spec calls the device "sound device". Make the name in the +ID section match. + +\vspace{\baselineskip} +MST: applied as editorial change. + +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Cornelia Huck + +See \ref{sec:Device Types}. + } \\ +\hline +0ce03bc6995a & 14 Feb 2023 & Parav Pandit & {\noindent virtio-net: Avoid confusion between a card and a device\vspace{\baselineskip} + + +Historically virtio network device is documented as an Ethernet card. +A modern card in the industry has one to multiple ports, one to multiple +PCI functions. However the virtio network device is usually just a +single link/port network interface controller. + +Hence, avoid this confusing term 'card' and align the specification +to adhere to widely used specification term as 'device' used for all +virtio device types. + +Replaced 'card' with 'network interface controller'. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/154} + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery}, +\ref{sec:Device Types}, +\ref{sec:Device Types / Network Device}, +\ref{sec:Device Types / Network Device / Feature bits}, +and \ref{sec:Device Types / Network Device / Device Initialization}. + } \\ +\hline +be2ce1ee17e0 & 15 Feb 2023 & Parav Pandit & {\noindent content.tex Fix Driver notifications label\vspace{\baselineskip} + + +Driver notifications section is under "Basic Facilities of a Virtio +Device". However, the label is placed under "Virtqueues" section. + +Fix the label references. + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +[CH: pushed as an editorial update] + +Signed-off-by: Cornelia Huck + +See \ref{sec:Basic Facilities of a Virtio Device / Driver notifications}. + } \\ +\hline +2ea4627093fb & 20 Feb 2023 & Alvaro Karsz & {\noindent virtio-net: Mention VIRTIO_NET_F_HASH_REPORT dependency on VIRTIO_NET_F_CTRL_VQ\vspace{\baselineskip} + + +If the VIRTIO_NET_F_HASH_REPORT feature is negotiated, the driver may +send VIRTIO_NET_CTRL_MQ_HASH_CONFIG commands, thus, the control VQ +feature should be negotiated. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/158} + +Signed-off-by: Alvaro Karsz + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Device configuration layout}. + } \\ +\hline +73ce5bb02003 & 01 Mar 2023 & Alvaro Karsz & {\noindent virtio-net: Fix and update VIRTIO_NET_F_NOTF_COAL feature\vspace{\baselineskip} + + +This patch makes several improvements to the notification coalescing +feature, including: + +\begin{itemize} + +\item Consolidating virtio_net_ctrl_coal_tx and virtio_net_ctrl_coal_rx + into a single struct, virtio_net_ctrl_coal, as they are identical. + +\item Emphasizing that the coalescing commands are best-effort. + +\item Defining the behavior of coalescing with regards to delivering + notifications when a change occur. + +\item Stating that the commands should apply to all the receive/transmit + virtqueues. + +\item Stating that every receive/transmit virtqueue should count it's own + packets. + +\item A new intro explaining the entire coalescing operation. + +\end{itemize} + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/159} + +Signed-off-by: Alvaro Karsz + +Reviewed-by: Parav Pandit + +Acked-by: Michael S. Tsirkin + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. + } \\ +\hline +3508347769af & 01 Mar 2023 & Parav Pandit & {\noindent virtio-net: Improve introductory description\vspace{\baselineskip} + + +The control VQ of the virtio network device is used beyond advance +steering control. The control VQ dynamically changes multiple features +of the initialized device. + +Hence, update this area of control VQ introductory description at few +places and also place the link to its description. + +Also update the introduction section to better describe receive and +transmit virtqueues. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/156} + +Reviewed-by: David Edmondson + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device}, +\ref{sec:Device Types / Network Device / Virtqueues}, +and \ref{sec:Device Types / Network Device / Device Operation}. + } \\ +\hline +91a469991433 & 10 Mar 2023 & Parav Pandit & {\noindent transport-pci: Split PCI transport to its own file\vspace{\baselineskip} + + +Place PCI transport specification in its own file to better maintain it. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus}. + } \\ +\hline +9e88ba9c47d0 & 10 Mar 2023 & Parav Pandit & {\noindent transport-mmio: Split MMIO transport to its own file\vspace{\baselineskip} + + +Place MMIO transport specification in its own file to better maintain it. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Virtio Transport Options / Virtio Over MMIO}. + } \\ +\hline +0af264f9d4ea & 10 Mar 2023 & Parav Pandit & {\noindent transport-ccw: Split Channel IO transport to its own file\vspace{\baselineskip} + + +Place Channel IO transport specification in its own file to +better maintain it. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Virtio Transport Options / Virtio Over Channel I/O}. + } \\ +\hline +deb0aa0c7faa & 10 Mar 2023 & Parav Pandit & {\noindent transport-pci: Fix spellings and white spaces\vspace{\baselineskip} + + +Now that we have individual files, fix reported spelling errors. + +While at it, remove trailing white spaces. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus}, +\ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / ISR status capability}, +and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization}. + } \\ +\hline +ca97719ea35e & 10 Mar 2023 & Parav Pandit & {\noindent transport-mmio: Fix spellings and white spaces\vspace{\baselineskip} + + +Now that we have individual files, fix reported spelling errors. + +While at it, remove trailing white spaces. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO Device Register Layout}, +and \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}. + } \\ +\hline +8797f4d4e410 & 10 Mar 2023 & Parav Pandit & {\noindent transport-ccw: Fix spellings and white spaces\vspace{\baselineskip} + + +Now that we have individual files, fix reported spelling errors. + +While at it, remove extra white spaces. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Basic Concepts}, +\ref{sec:Virtio Transport Options / Virtio over channel I/O / Basic Concepts/ Notifications}, +\ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Initialization / Setting Up Indicators}, +and \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Operation / Guest->Host Notification}. + } \\ +\hline +d3f832b6605d & 15 Mar 2023 & Parav Pandit & {\noindent virtio-net: Describe dev cfg fields read only\vspace{\baselineskip} + + +Device configuration fields are read only. Avoid duplicating this +description for multiple fields. + +Instead describe it one time and do it in the driver requirements +section. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/161} + +Reviewed-by: David Edmondson + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Device configuration layout}. + } \\ +\hline +115ceb97f813 & 15 Mar 2023 & Parav Pandit & {\noindent virtio-net: Define cfg fields before description\vspace{\baselineskip} + + +Currently some fields of the virtio_net_config structure are defined +before introducing the structure and some are defined after. +Better to define the configuration layout first followed by +description of all the fields. + +Device configuration fields are described in the section. Change wording +from 'listed' to 'described' as suggested in patch [1]. + +[1] \url{https://lists.oasis-open.org/archives/virtio-dev/202302/msg00004.html} + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/161} + +Reviewed-by: David Edmondson + +Signed-off-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Device configuration layout}. + } \\ +\hline +2d1d8dfa3474 & 15 Mar 2023 & Parav Pandit & {\noindent virtio-net: Fix virtqueues spelling error\vspace{\baselineskip} + + +Correct spelling from virtqueus to virtqueues. + +Signed-off-by: Parav Pandit + +Acked-by: Michael S. Tsirkin + +Reviewed-by: Jiri Pirko + +[CH: pushed as editorial update] + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. + } \\ +\hline +2d5495083c12 & 15 Mar 2023 & Parav Pandit & {\noindent transport-pci: Remove duplicate word structure\vspace{\baselineskip} + + +Remove duplicate word structure. + +Signed-off-by: Parav Pandit + +Acked-by: Michael S. Tsirkin + +Reviewed-by: Halil Pasic + +Reviewed-by: Jiri Pirko + +[CH: pushed as editorial update] + +Signed-off-by: Cornelia Huck + +See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Legacy Interfaces: A Note on PCI Device Layout}. + } \\ +\hline +b0414098602f & 15 Mar 2023 & Parav Pandit & {\noindent virtio-blk: Define dev cfg layout before its fields\vspace{\baselineskip} + + +Define device configuration layout structure before describing its +individual fields. + +This is an editorial change. + +Suggested-by: Cornelia Huck + +Reviewed-by: Max Gurtovoy + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Stefan Hajnoczi + +See \ref{sec:Device Types / Network Device / Device configuration layout}. + } \\ +\hline +380ed02bdb88 & 04 Apr 2023 & Parav Pandit & {\noindent transport-pci: Remove empty line at end of file\vspace{\baselineskip} + + +Remove empty line at end of file. + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: David Edmondson + +See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus}. + } \\ +\hline +1ed0754c6134 & 11 Apr 2023 & Heng Qi & {\noindent virtio-net: support the virtqueue coalescing moderation\vspace{\baselineskip} + + +Currently, coalescing parameters are grouped for all transmit and receive +virtqueues. This patch supports setting or getting the parameters for a +specified virtqueue, and a typical application of this function is netdim[1]. + +When the traffic between virtqueues is unbalanced, for example, one virtqueue +is busy and another virtqueue is idle, then it will be very useful to +control coalescing parameters at the virtqueue granularity. + +[1] \url{https://docs.kernel.org/networking/net_dim.html} + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/166} + +Signed-off-by: Heng Qi + +Reviewed-by: Xuan Zhuo + +Reviewed-by: Parav Pandit + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Feature bits}, +\ref{sec:Device Types / Network Device / Feature bits / Feature bit requirements}, +and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Notifications Coalescing}. + } \\ +\hline +362ebd007271 & 11 Apr 2023 & Alvaro Karsz & {\noindent virtio-net: define the VIRTIO_NET_F_CTRL_RX_EXTRA feature bit\vspace{\baselineskip} + + +The VIRTIO_NET_F_CTRL_RX_EXTRA feature bit is mentioned in the spec +since version 1.0, but it's not properly defined. + +This patch defines the feature bit and defines the dependency on VIRTIO_NET_F_CTRL_VQ. + +Since this dependency is missing in previous versions, we add it now as +a "SHOULD". + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/162} + +Reviewed-by: Parav Pandit + +Signed-off-by: Alvaro Karsz + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Feature bits}, +and \ref{sec:Device Types / Network Device / Device configuration layout}. + } \\ +\hline +d3b2a19bc369 & 21 Apr 2023 & Parav Pandit & {\noindent device-types/multiple: replace queues with enqueues\vspace{\baselineskip} + + +Queue is a verb and noun both. Replacing it with enqueue avoids +ambiguity around plural queues noun vs verb; similar to virtio fs device +description. + +\vspace{\baselineskip} +Acked-by: Michael S. Tsirkin + +Signed-off-by: Parav Pandit + +[CH: pushed as editorial update] + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Block Device / Device Operation}, +\ref{sec:Device Types / GPIO Device / requestq Operation / Message Flow}, +\ref{sec:Device Types / GPIO Device / eventq Operation}, +\ref{sec:Device Types / I2C Adapter Device / Device Operation: Request Queue}, +\ref{sec:Device Types / SCSI Host Device / Device Operation / Device Operation: Request Queues}, +and \ref{sec:Device Types / Socket Device / Device Operation / Receive and Transmit}. + } \\ +\hline +aadefe688680 & 19 May 2023 & Michael S. Tsirkin & {\noindent virtio: document forward compatibility guarantees\vspace{\baselineskip} + + +Feature negotiation forms the basis of forward compatibility +guarantees of virtio but has never been properly documented. +Do it now. + +\vspace{\baselineskip} +Suggested-by: Halil Pasic + +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Parav Pandit + +Reviewed-by: Zhu Lingshan + +See \ref{sec:Basic Facilities of a Virtio Device / Feature Bits}. + } \\ +\hline +f3ce853c8a91 & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: introduce device group and related concepts\vspace{\baselineskip} + + +Each device group has a type. For now, define one initial group type: + +SR-IOV type - PCI SR-IOV virtual functions (VFs) of a given +PCI SR-IOV physical function (PF). This group may contain zero or more +virtio devices according to NumVFs configured. + +Each device within a group has a unique identifier. This identifier +is the group member identifier. + +Note: one can argue both ways whether the new device group handling +functionality (this and following patches) is closer +to a new device type or a new transport type. + +However, it's expected that we will add more features in the near +future. To facilitate this as much as possible of the text is located in +the new admin chapter. + +Effort was made to minimize transport-specific text. + +There's a bit of duplication with 0x1 repeated twice and +no special section for group type identifiers. +It seems ok to defer adding these until we have more group +types. + +\vspace{\baselineskip} +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Stefan Hajnoczi + +See \ref{sec:Basic Facilities of a Virtio Device / Device groups}. + } \\ +\hline +2cbaaa19b15a & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: introduce group administration commands\vspace{\baselineskip} + + +This introduces a general structure for group administration commands, +used to control device groups through their owner. + +Following patches will introduce specific commands and an interface for +submitting these commands to the owner. + +Note that the commands are focused on controlling device groups: +this is why group related fields are in the generic part of +the structure. +Without this the admin vq would become a "whatever" vq which does not do +anything specific at all, just a general transport like thing. +I feel going this way opens the design space to the point where +we no longer know what belongs in e.g. config space +what in the control q and what in the admin q. +As it is, whatever deals with groups is in the admin q; other +things not in the admin q. + +There are specific exceptions such as query but that's an exception that +proves the rule ;) + +\vspace{\baselineskip} +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Stefan Hajnoczi + +Reviewed-by: Zhu Lingshan + +See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}, +and \ref{sec:Normative References}. + } \\ +\hline +5f1a8ac61c15 & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: introduce virtio admin virtqueues\vspace{\baselineskip} + + +The admin virtqueues will be the first interface used to issue admin commands. + +Currently the virtio specification defines control virtqueue to manipulate +features and configuration of the device it operates on: +virtio-net, virtio-scsi, etc all have existing control virtqueues. However, +control virtqueue commands are device type specific, which makes it very +difficult to extend for device agnostic commands. + +Keeping the device-specific virtqueue separate from the admin virtqueue +is simpler and has fewer potential problems. I don't think creating +common infrastructure for device-specific control virtqueues across +device types worthwhile or within the scope of this patch series. + +To support this requirement in a more generic way, this patch introduces +a new admin virtqueue interface. +The admin virtqueue can be seen as the virtqueue analog to a transport. +The admin queue thus does nothing device type-specific (net, scsi, etc) +and instead focuses on transporting the admin commands. + +We also support more than one admin virtqueue, for QoS and +scalability requirements. + +\vspace{\baselineskip} +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Stefan Hajnoczi + +See \ref{sec:Basic Facilities of a Virtio Device / Administration Virtqueues}, +\ref{sec:Basic Facilities of a Virtio Device / Feature Bits}, +and \ref{sec:Reserved Feature Bits}. + } \\ +\hline +677aeaebf6a7 & 19 May 2023 & Michael S. Tsirkin & {\noindent pci: add admin vq registers to virtio over pci\vspace{\baselineskip} + + +Add new registers to the PCI common configuration structure. + +These registers will be used for querying the indices of the admin +virtqueues of the owner device. To configure, reset or enable the admin +virtqueues, the driver should follow existing queue configuration/setup +sequence. + +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Parav Pandit + +Reviewed-by: Zhu Lingshan + +See \ref{sec:Reserved Feature Bits}, +and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}. + } \\ +\hline +a9a59f70be46 & 19 May 2023 & Michael S. Tsirkin & {\noindent mmio: document ADMIN_VQ as reserved\vspace{\baselineskip} + + +Adding relevant registers needs more work and it's not +clear what the use-case will be as currently only +the PCI transport is supported. But let's keep the +door open on this. +We already say it's reserved in a central place, but it +does not hurt to remind implementers to mask it. + +\vspace{\baselineskip} +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Parav Pandit + +Reviewed-by: Stefan Hajnoczi + +See \ref{sec:Virtio Transport Options / Virtio Over MMIO / Features reserved for future use}. + } \\ +\hline +325046c1460e & 19 May 2023 & Michael S. Tsirkin & {\noindent ccw: document ADMIN_VQ as reserved\vspace{\baselineskip} + + +Adding relevant registers needs more work and it's not +clear what the use-case will be as currently only +the PCI transport is supported. But let's keep the +door open on this. +We already say it's reserved in a central place, but it +does not hurt to remind implementers to mask it. + +Note: there are more features to add to this list. +Will be done later with a patch on top. + +\vspace{\baselineskip} +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Stefan Hajnoczi + +Reviewed-by: Parav Pandit + +Reviewed-by: Zhu Lingshan + +See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Features reserved for future use}. + } \\ +\hline +3dc7196cba2d & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: command list discovery\vspace{\baselineskip} + + +Add commands to find out which commands does each group support, +as well as enable their use by driver. +This will be especially useful once we have multiple group types. + +An alternative is per-type VQs. This is possible but will +require more per-transport work. Discovery through the vq +helps keep things contained. + +e.g. lack of support for some command can switch to a legacy mode + +note that commands are expected to be avolved by adding new +fields to command specific data at the tail, so +we generally do not need feature bits for compatibility. + +\vspace{\baselineskip} +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Stefan Hajnoczi + +Reviewed-by: Zhu Lingshan + +See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}. + } \\ +\hline +bf1d6b0d24ae & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: conformance clauses\vspace{\baselineskip} + + +Add conformance clauses for admin commands and admin virtqueues. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/171} + +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Stefan Hajnoczi + +See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}, +\ref{sec:Basic Facilities of a Virtio Device / Administration Virtqueues}, +and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}. + } \\ +\hline +b04be31f0bf0 & 19 May 2023 & Michael S. Tsirkin & {\noindent ccw: document more reserved features\vspace{\baselineskip} + + +vq reset and shared memory are unsupported, too. + +\vspace{\baselineskip} +Signed-off-by: Michael S. Tsirkin + +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/160} + +Reviewed-by: Stefan Hajnoczi + +Reviewed-by: Zhu Lingshan + +See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Features reserved for future use}. + } \\ +\hline +619f60ae4ccf & 19 May 2023 & Parav Pandit & {\noindent admin: Fix reference and table formation\vspace{\baselineskip} + + +This patch brings three fixes. + +\begin{enumerate} + +\item Opcode table has 3 columns, only two were enumerated. Due to this +pdf generation script stops. Fix it and also have resizeable description +column as it needs wrap. + +\item Status description column content needs to wrap. Without it pdf + does not read good. Fix it by having resizeable description column. + +\item Fix the broken link to the Device groups. + +\end{enumerate} + +\vspace{\baselineskip} +Fixes: 2cbaaa1 ("admin: introduce group administration commands") + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: Cornelia Huck + +See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}. + } \\ +\hline +c1cd68b97611 & 19 May 2023 & Parav Pandit & {\noindent transport-pci: Improve config msix vector description\vspace{\baselineskip} + + +config_msix_vector is the register that holds the MSI-X vector number +for receiving configuration change related interrupts. + +It is not "for MSI-X". + +Hence, replace the confusing text with appropriate one. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/169} + +Reviewed-by: Max Gurtovoy + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}. + } \\ +\hline +0f433d62e81d & 19 May 2023 & Parav Pandit & {\noindent transport-pci: Improve queue msix vector register desc\vspace{\baselineskip} + + +queue_msix_vector register is for receiving virtqueue notification +interrupts from the device for the virtqueue. + +"for MSI-X" is confusing term. + +Also it is the register that driver "writes" to, similar to +many other registers such as queue_desc, queue_driver etc. + +Hence, replace the verb from use to write. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/169} + +Signed-off-by: Parav Pandit + +Reviewed-by: Max Gurtovoy + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}. + } \\ +\hline +b0fbccd4062f & 19 May 2023 & Parav Pandit & {\noindent content: Add vq index text\vspace{\baselineskip} + + +Introduce vq index and its range so that subsequent patches can refer +to it. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: David Edmondson + +Reviewed-by: Halil Pasic + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues}. + } \\ +\hline +362f1cac2516 & 19 May 2023 & Parav Pandit & {\noindent content.tex Replace virtqueue number with index\vspace{\baselineskip} + + +Replace virtqueue number with index to align to rest of the +specification. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: David Edmondson + +Reviewed-by: Halil Pasic + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Basic Facilities of a Virtio Device / Driver notifications}. + } \\ +\hline +cc4a5604b259 & 19 May 2023 & Parav Pandit & {\noindent content: Rename confusing queue_notify_data and vqn names\vspace{\baselineskip} + + +Currently queue_notify_data register indicates the device +internal queue notification content. This register is +meaningful only when feature bit VIRTIO_F_NOTIF_CONFIG_DATA is +negotiated. + +However, above register name often get confusing association with +very similar feature bit VIRTIO_F_NOTIFICATION_DATA. + +When VIRTIO_F_NOTIFICATION_DATA feature bit is negotiated, +notification really involves sending additional queue progress +related information (not queue identifier or index). + +Hence + +\begin{enumerate} + +\item to avoid any misunderstanding and association of +queue_notify_data with similar name VIRTIO_F_NOTIFICATION_DATA, + +and + +\item to reflect that queue_notify_data is the actual device +internal virtqueue identifier/index/data/cookie, + +\end{enumerate} + +\begin{enumerate}[label=\alph*.] + +\item rename queue_notify_data to queue_notif_config_data. + +\item rename ambiguous vqn to a union of vq_index and vq_config_data + +\item The driver notification section assumes that queue notification contains +vq index always. CONFIG_DATA feature bit introduction missed to +update the driver notification section. Hence, correct it. + +\end{enumerate} + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Acked-by: Halil Pasic + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +Reviewed-by: David Edmondson + +See \ref{sec:Basic Facilities of a Virtio Device / Driver notifications}, +\ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}, +and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Available Buffer Notifications}. +} \\ +\hline +fbb119dad56d & 19 May 2023 & Parav Pandit & {\noindent transport-pci: Avoid first vq index reference\vspace{\baselineskip} + + +Drop reference to first virtqueue as it is already +covered now by the generic section in first patch. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: David Edmondson + +Acked-by: Halil Pasic + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization}. + } \\ +\hline +a7a21e451987 & 19 May 2023 & Parav Pandit & {\noindent transport-mmio: Rename QueueNum register\vspace{\baselineskip} + + +These are further named differently between pci and mmio transport. +PCI transport indicates queue size as queue_size. + +To bring consistency between pci and mmio transport, +rename the QueueNumMax and QueueNum +registers to QueueSizeMax and QueueSize respectively. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: Cornelia Huck + +Reviewed-by: Jiri Pirko + +Reviewed-by: Halil Pasic + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO Device Register Layout}, +and \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}. + } \\ +\hline +9ddc59553984 & 19 May 2023 & Parav Pandit & {\noindent transport-mmio: Avoid referring to zero based index\vspace{\baselineskip} + + +VQ range is already described in the first patch in basic virtqueue +section. Hence remove the duplicate reference to it. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: David Edmondson + +Acked-by: Halil Pasic + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO Device Register Layout}, +and \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}. + } \\ +\hline +e7a764f66598 & 19 May 2023 & Parav Pandit & {\noindent transport-ccw: Rename queue depth/size to other transports\vspace{\baselineskip} + + +max_num field reflects the maximum queue size/depth. Hence align name of +this field with similar field in PCI and MMIO transport to +max_queue_size. +Similarly rename 'num' to 'size'. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: Halil Pasic + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Initialization / Configuring a Virtqueue}. + } \\ +\hline +c3092410ac51 & 19 May 2023 & Parav Pandit & {\noindent transport-ccw: Refer to the vq by its index\vspace{\baselineskip} + + +Currently specification uses virtqueue index and +number interchangeably to refer to the virtqueue. + +Instead refer to it by its index. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: Halil Pasic + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Operation / Guest->Host Notification}. + } \\ +\hline +d6f310dbb3bf & 19 May 2023 & Parav Pandit & {\noindent virtio-net: Avoid duplicate receive queue example\vspace{\baselineskip} + + +Receive queue number/index example is duplicate which is already defined +in the Setting RSS parameters section. + +Hence, avoid such duplicate example and prepare it for the subsequent +patch to describe using receive queue handle. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: Cornelia Huck + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. + } \\ +\hline +da0e16928d0b & 19 May 2023 & Parav Pandit & {\noindent virtio-net: Describe RSS using rss rq id\vspace{\baselineskip} + + +The content of the indirection table and unclassified_queue were +originally described based on mathematical operations. In order to +make it easier to understand and to avoid intermixing the array +index with the vq index, introduce a structure +rss_rq_id (RSS receive queue +ID) and use it to describe the unclassified_queue and +indirection_table fields. + +As part of it, have the example that uses non-zero virtqueue +index which helps to have better mapping between receiveX +object with virtqueue index and the actual value in the +indirection table. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: David Edmondson + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. + } \\ +\hline +f9ff777fba59 & 19 May 2023 & Parav Pandit & {\noindent virtio-net: Update vqn to vq_index for cvq cmds\vspace{\baselineskip} + + +Replace field name vqn to vq_index for recent virtqueue level commands. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} + +Reviewed-by: David Edmondson + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. + } \\ +\hline +74460ef69d5f & 19 May 2023 & Parav Pandit & {\noindent transport-mmio: Replace virtual queue with virtqueue\vspace{\baselineskip} + + +Basic facilities define the virtqueue construct for device <-> driver +communication. + +PCI transport and individual devices description also refers to it as +virtqueue. + +MMIO refers to it as 'virtual queue'. + +Align MMIO transport description to call such object a virtqueue. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/168} + +Reviewed-by: Stefan Hajnoczi + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +See \ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO Device Register Layout}, +\ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO-specific Initialization And Device Operation / Virtqueue Configuration}, +and \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}. + } \\ +\hline +6724756eaf0a & 07 Jul 2023 & Parav Pandit & {\noindent admin: Split opcode table rows with a line\vspace{\baselineskip} + + +Currently all opcode appears to be in a single row. +Separate them with a line similar to other tables. + +\vspace{\baselineskip} +Signed-off-by: Parav Pandit + +Reviewed-by: Cornelia Huck + +[CH: pushed as editorial update] + +Signed-off-by: Cornelia Huck + +See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}. + } \\ +\hline +1518c9ce2cde & 07 Jul 2023 & Parav Pandit & {\noindent admin: Fix section numbering\vspace{\baselineskip} + + +Requirements are put one additional level down. Fix it. + +Signed-off-by: Parav Pandit + +Reviewed-by: Cornelia Huck + +[CH: pushed as editorial update] + +Signed-off-by: Cornelia Huck + +See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}. + } \\ +\hline +9c3ba1ec6acb & 14 Jul 2023 & Heng Qi & {\noindent virtio-net: support inner header hash\vspace{\baselineskip} + +\begin{enumerate} + +\item Currently, a received encapsulated packet has an outer and an inner header, but +the virtio device is unable to calculate the hash for the inner header. The same +flow can traverse through different tunnels, resulting in the encapsulated +packets being spread across multiple receive queues (refer to the figure below). +However, in certain scenarios, we may need to direct these encapsulated packets of +the same flow to a single receive queue. This facilitates the processing +of the flow by the same CPU to improve performance (warm caches, less locking, etc.). + +\begin{lstlisting} + client1 client2 + | +-------+ | + +------->|tunnels|<--------+ + +-------+ + | | + v v + +-----------------+ + | monitoring host | + +-----------------+ +\end{lstlisting} + +To achieve this, the device can calculate a symmetric hash based on the inner headers +of the same flow. + +\item For legacy systems, they may lack entropy fields which modern protocols have in +the outer header, resulting in multiple flows with the same outer header but +different inner headers being directed to the same receive queue. This results in +poor receive performance. + +To address this limitation, inner header hash can be used to enable the device to advertise +the capability to calculate the hash for the inner packet, regaining better receive performance. + +\end{enumerate} + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/173} + +Signed-off-by: Heng Qi + +Reviewed-by: Xuan Zhuo + +Reviewed-by: Parav Pandit + +[CH: added missing lstlisting and hyperref escapes, fixed references] + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types / Network Device / Feature bits}, +\ref{sec:Device Types / Network Device / Feature bits / Feature bit requirements}, +\ref{sec:Device Types / Network Device / Device configuration layout}, +\ref{sec:Device Types / Network Device / Device Operation / Processing of Incoming Packets}, +\ref{sec:Device Types / Network Device / Device Operation / Processing of Incoming Packets / Inner Header Hash}, +\ref{sec:Conformance / Device Conformance / Network Device Conformance}, +\ref{sec:Conformance / Driver Conformance / Network Driver Conformance}, +and \ref{sec:Normative References}. + } \\ +\hline +73c2fd96af96 & 17 Jul 2023 & Haixu Cui & {\noindent virtio-spi: define the DEVICE ID for virtio SPI master\vspace{\baselineskip} + + +Define the DEVICE ID of virtio SPI master device as 45. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/174} + +Signed-off-by: Cornelia Huck + +See \ref{sec:Device Types}. + } \\ +\hline +03c2d32e5093 & 21 Jul 2023 & Parav Pandit & {\noindent admin: Add group member legacy register access commands\vspace{\baselineskip} + + +Introduce group member legacy common configuration and legacy device +configuration access read/write commands. + +Group member legacy registers access commands enable group owner driver +software to access legacy registers on behalf of the guest virtual +machine. + +\vspace{\baselineskip} +Usecase: + +======== + +\begin{enumerate} + +\item A hypervisor/system needs to provide transitional + virtio devices to the guest VM at scale of thousands, + typically, one to eight devices per VM. + +\item A hypervisor/system needs to provide such devices using a + vendor agnostic driver in the hypervisor system. + +\item A hypervisor system prefers to have single stack regardless of + virtio device type (net/blk) and be future compatible with a + single vfio stack using SR-IOV or other scalable device + virtualization technology to map PCI devices to the guest VM. + (as transitional or otherwise) + +\end{enumerate} + +\vspace{\baselineskip} +Motivation/Background: + +===================== + +The existing virtio transitional PCI device is missing support for +PCI SR-IOV based devices. Currently it does not work beyond +PCI PF, or as software emulated device in reality. Currently it +has below cited system level limitations: + +[a] PCIe spec citation: +VFs do not support I/O Space and thus VF BARs shall not indicate I/O Space. + +[b] cpu arch citiation: +Intel 64 and IA-32 Architectures Software Developer’s Manual: +The processor’s I/O address space is separate and distinct from +the physical-memory address space. The I/O address space consists +of 64K individually addressable 8-bit I/O ports, numbered 0 through FFFFH. + +[c] PCIe spec citation: +If a bridge implements an I/O address range,...I/O address range will be +aligned to a 4 KB boundary. + +\vspace{\baselineskip} +Overview: + +========= + +Above usecase requirements is solved by PCI PF group owner accessing +its group member PCI VFs legacy registers using the administration +commands of the group owner PCI PF. + +Two types of administration commands are added which read/write PCI VF +registers. + +Software usage example: + +======================= +\vspace{\baselineskip} + +1. One way to use and map to the guest VM is by using vfio driver +framework in Linux kernel. + +... +}\\ +\hline + & & & {\noindent +... + +\begin{lstlisting} + + +----------------------+ + |pci_dev_id = 0x100X | ++---------------|pci_rev_id = 0x0 |-----+ +|vfio device |BAR0 = I/O region | | +| |Other attributes | | +| +----------------------+ | +| | ++ +--------------+ +-----------------+ | +| |I/O BAR to AQ | | Other vfio | | +| |rd/wr mapper\& | | functionalities | | +| | forwarder | | | | +| +--------------+ +-----------------+ | +| | ++------+-------------------------+-----------+ + | | + Config region | + access Driver notifications + | | + +----+------------+ +----+------------+ + | +-----+ | | PCI VF device A | + | | AQ |-------------+---->+-------------+ | + | +-----+ | | | | legacy regs | | + | PCI PF device | | | +-------------+ | + +-----------------+ | +-----------------+ + | + | +----+------------+ + | | PCI VF device N | + +---->+-------------+ | + | | legacy regs | | + | +-------------+ | + +-----------------+ +\end{lstlisting} + +2. Continue to use the virtio pci driver to bind to the + listed device id and use it as in the host. + +3. Use it in a light weight hypervisor to run bare-metal OS. + +\vspace{\baselineskip} +Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/167} + +Signed-off-by: Parav Pandit + +Signed-off-by: Michael S. Tsirkin + +Signed-off-by: Cornelia Huck + +See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands / Legacy Interface}, +\ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}, +and \ref{sec:Conformance / Conformance Targets}. + } \\ +\hline diff --git a/cl-os.tex b/cl-os.tex index 77727e5..e69de29 100644 --- a/cl-os.tex +++ b/cl-os.tex @@ -1,2120 +0,0 @@ -5da7c1414e7e & 13 Jun 2022 & Stefan Hajnoczi & {\noindent virtio-blk: document that the capacity field can change\vspace{\baselineskip} - - -Block devices can change size during operation. A configuration change -notification is sent by the device and the driver detects that the field -has changed. Document this behavior that has already been implemented in -Linux and QEMU since 2011. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/136} - -Signed-off-by: Stefan Hajnoczi - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Block Device / Device Operation}. - } \\ -\hline -ad2e1674bb69 & 13 Jun 2022 & Laura Loghin & {\noindent vsock: add documentation about len header field\vspace{\baselineskip} - - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/137} - -Reviewed-by: Stefano Garzarella - -Signed-off-by: Laura Loghin - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Socket Device / Device Operation}. - } \\ -\hline -fca015771bc9 & 13 Jun 2022 & Xuan Zhuo & {\noindent virtio-net: support reset queue\vspace{\baselineskip} - - -A separate reset queue function introduced by Virtqueue Reset. - -However, it is currently not defined what to do if the destination queue is -being reset when virtio-net is steering in multi-queue mode. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/138} - -Reviewed-by: Jason Wang - -Signed-off-by: Xuan Zhuo - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Automatic receive steering in multiqueue mode}, -and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Receive-side scaling (RSS) / Setting RSS parameters}. - } \\ -\hline -6328f51e21b5 & 24 Jun 2022 & Yuri Benditovich & {\noindent virtio-net: define guest USO features\vspace{\baselineskip} - - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/120} - -Add definition for large UDP packets device-to-driver. - -Signed-off-by: Yuri Benditovich - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Feature bits}, -\ref{sec:Device Types / Network Device / Feature bits / Feature bit requirements}, -\ref{sec:Device Types / Network Device / Device Initialization}, -\ref{sec:Device Types / Network Device / Device Operation / Setting Up Receive Buffers}, -\ref{sec:Device Types / Network Device / Device Operation / Processing of Incoming Packets}, -and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Offloads State Configuration / Setting Offloads State}. - } \\ -\hline -49ff7805924c & 24 Jun 2022 & Anton Yakovlev & {\noindent virtio-snd: add support for audio controls\vspace{\baselineskip} - - -This patch extends the virtio sound device specification by adding -support for audio controls. Audio controls can be used to set the volume -level, mute/unmute the audio signal, switch different modes/states of -the virtual sound device, etc. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/107} - -Signed-off-by: Anton Yakovlev - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Driver Conformance / Sound Driver Conformance}, -\ref{sec:Conformance / Device Conformance / Sound Device Conformance}, -\ref{sec:Device Types / Sound Device / Feature Bits}, -\ref{sec:Device Types / Sound Device / Device Configuration Layout}, -\ref{sec:Device Types / Sound Device / Device Operation}, -and \ref{sec:Device Types / Sound Device / Device Operation / Control Elements}. - } \\ -\hline -4d9068effa81 & 11 Jul 2022 & Alvaro Karsz & {\noindent Introduction of Virtio Network device notifications coalescing feature.\vspace{\baselineskip} - - -Control a network device notifications coalescing parameters using the control virtqueue. -A new control class was added: VIRTIO_NET_CTRL_NOTF_COAL. - -This class provides 2 commands: - -\begin{itemize} -\item VIRTIO_NET_CTRL_NOTF_COAL_TX_SET: - Ask the network device to change the tx_usecs and tx_max_packets parameters. - -\begin{itemize} - \item tx_usecs: Maximum number of usecs to delay a TX notification. - - \item tx_max_packets: Maximum number of packets to send before a TX notification. -\end{itemize} - - -\item VIRTIO_NET_CTRL_NOTF_COAL_RX_SET: - Ask the network device to change the rx_usecs and rx_max_packets parameters. - -\begin{itemize} - \item rx_usecs: Maximum number of usecs to delay a RX notification. - - \item rx_max_packets: Maximum number of packets to receive before a RX notification. -\end{itemize} -\end{itemize} - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/141} - -Reviewed-by: Jason Wang - -Signed-off-by: Alvaro Karsz - -[CH: fixed commit message] - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Driver Conformance / Network Driver Conformance}, -\ref{sec:Conformance / Device Conformance / Network Device Conformance}, -\ref{sec:Device Types / Network Device / Feature bits}, -\ref{sec:Device Types / Network Device / Feature bits / Feature bit requirements}, -and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Notifications Coalescing}. - } \\ -\hline -abbe8afda8db & 03 Aug 2022 & Lei He & {\noindent virtio-crypto: introduce akcipher service\vspace{\baselineskip} - - -Introduce akcipher (asymmetric key cipher) service type, several -asymmetric algorithms and relevent information: - - - RSA(padding algorithm, ASN.1 schema definition) - - - ECDSA(ECC algorithm) - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/129} - -Signed-off-by: zhenwei pi - -Signed-off-by: Lei He - -Signed-off-by: Cornelia Huck - -See \ref{sec:Normative References}, -\ref{sec:Device Types / Crypto Device}, -\ref{sec:Device Types / Crypto Device / Feature bits}, -\ref{sec:Device Types / Crypto Device / Feature bit requirements}, -\ref{sec:Device Types / Crypto Device / Supported crypto services}, -\ref{sec: Device Types / Crypto Device / Supported crypto services / AKCIPHER services}, -\ref{sec:Device Types / Crypto Device / Device configuration layout}, -\ref{sec:Device Types / Crypto Device / Device Operation / Operation status}, -\ref{sec:Device Types / Crypto Device / Device Operation / Control Virtqueue}, -\ref{sec:Device Types / Crypto Device / Device Operation / Control Virtqueue / Session operation / Session operation: AKCIPHER session}, -\ref{sec:Device Types / Crypto Device / Device Operation / Data Virtqueue}, -and \ref{sec:Device Types / Crypto Device / Device Operation / AKCIPHER Service Operation}. - } \\ -\hline -26ed30ccb049 & 03 Aug 2022 & Stefano Garzarella & {\noindent virtio-vsock: add VIRTIO_VSOCK_F_NO_IMPLIED_STREAM feature bit\vspace{\baselineskip} - - -Initially virtio-vsock only supported the stream type, which is why -there was no feature. Later we added the seqpacket type and in the future -we may have other types (e.g. datagram). - -seqpacket is an extension of stream, so it might be implied that if -seqpacket is supported, stream is too, but this might not be true for -other types. - -As we discussed here [1] should be better to add a new -VIRTIO_VSOCK_F_NO_IMPLIED_STREAM feature bit to avoid this implication. - -Let's also add normative sections to better define the behavior when -VIRTIO_VSOCK_F_NO_IMPLIED_STREAM is negotiated or not. - -[1] \url{http://markmail.org/message/2s3qd74drgjxkvte} - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/142} - -Suggested-by: Michael S. Tsirkin - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Stefano Garzarella - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Driver Conformance / Socket Driver Conformance}, -\ref{sec:Conformance / Device Conformance / Socket Device Conformance}, -and \ref{sec:Device Types / Socket Device / Feature bits}. - } \\ -\hline -a7251b0cb4d9 & 14 Nov 2022 & Hrishivarya Bhageeradhan & {\noindent content: reserve device ID 43 for Camera device\vspace{\baselineskip} - - -The virtio-camera device allows to stream a camera video with -ability to change controls, formats and get camera captures. -This patch is to reserve the next available device ID for -virtio-camera. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/148} - -Signed-off-by: Hrishivarya Bhageeradhan - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types}. - } \\ -\hline -b4e8efa0fa6c & 05 Dec 2022 & Dmitry Fomichev & {\noindent virtio-blk: add zoned block device specification\vspace{\baselineskip} - - -Introduce support for Zoned Block Devices to virtio. - -Zoned Block Devices (ZBDs) aim to achieve a better capacity, latency -and/or cost characteristics compared to commonly available block -devices by getting the entire LBA space of the device divided to block -regions that are much larger than the LBA size. These regions are -called zones and they can only be written sequentially. More details -about ZBDs can be found at - -\url{https://zonedstorage.io/docs/introduction/zoned-storage} . - -In its current form, the virtio protocol for block devices (virtio-blk) -is not aware of ZBDs but it allows the driver to successfully scan a -host-managed drive provided by the virtio block device. As the result, -the host-managed drive is recognized by virtio driver as a regular, -non-zoned drive that will operate erroneously under the most common -write workloads. Host-aware ZBDs are currently usable, but their -performance may not be optimal because the driver can only see them as -non-zoned block devices. - -To fix this, the virtio-blk protocol needs to be extended to add the -capabilities to convey the zone characteristics of ZBDs at the device -side to the driver and to provide support for ZBD-specific commands - -Report Zones, four zone operations (Open, Close, Finish and Reset) and -(optionally) Zone Append. The proposed standard extension aims to -define this new functionality. - -This patch extends the virtio-blk section of virtio specification with -the minimum set of requirements that are necessary to support ZBDs. -The resulting device model is a subset of the models defined in ZAC/ZBC -and ZNS standards documents. The included functionality mirrors -the existing Linux kernel block layer ZBD support and should be -sufficient to handle the host-managed and host-aware HDDs that are on -the market today as well as ZNS SSDs that are entering the market at -the time of submission of this patch. - -I would like to thank the following people for their useful feedback -and suggestions while working on the initial iterations of this patch. - -Damien Le Moal - -Matias Bjørling - -Niklas Cassel - -Hans Holmberg - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/143} - -Signed-off-by: Dmitry Fomichev - -Reviewed-by: Stefan Hajnoczi - -Reviewed-by: Damien Le Moal - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Block Device / Feature bits}, -\ref{sec:Device Types / Block Device / Device configuration layout}, -\ref{sec:Device Types / Block Device / Device Initialization}, -and \ref{sec:Device Types / Block Device / Device Operation}. - } \\ -\hline -985bbf397db4 & 07 Dec 2022 & Xuan Zhuo & {\noindent content: reserve device ID 44 for ISM device\vspace{\baselineskip} - - -The virtio-ism device provides the ability to share memory between -different guests on a host. A guest's memory got from ism device can be -shared with multiple peers at the same time. This shared relationship -can be dynamically created and released. - -The shared memory obtained from the device is divided into multiple ism -regions for share. ISM device provides a mechanism to notify other ism -region referrers of content update events. - -This patch is to reserve the next available device ID for virtio-ism. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/150} - -Signed-off-by: Xuan Zhuo - -Signed-off-by: Jiang Liu - -Signed-off-by: Dust Li - -Signed-off-by: Tony Lu - -Signed-off-by: Helin Guo - -Signed-off-by: Hans Zhang - -Signed-off-by: He Rongguang - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types}. - } \\ -\hline -f2b28698a28a & 30 Jan 2023 & Parav Pandit & {\noindent virtio-net: Maintain network device spec in separate directory\vspace{\baselineskip} - - -Move virtio network 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. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device}, -\ref{sec:Conformance / Device Conformance / Network Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Network Driver Conformance}. - } \\ -\hline -81694cddc4c1 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-net: Fix spelling errors\vspace{\baselineskip} - - -Fix two spelling errors in the virtio network device specification. - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Device Initialization}, -and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. - } \\ -\hline -335342f5cd88 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-blk: Maintain block device spec in separate directory\vspace{\baselineskip} - - -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. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Block Device}, -\ref{sec:Conformance / Device Conformance / Block Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Block Driver Conformance}. - } \\ -\hline -d3d06187eabb & 30 Jan 2023 & Parav Pandit & {\noindent virtio-console: Maintain console device spec in separate directory\vspace{\baselineskip} - - -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. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Console Device}, -\ref{sec:Conformance / Device Conformance / Console Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Console Driver Conformance}. - } \\ -\hline -c71e88e86d35 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-entropy: Maintain entropy device spec in separate directory\vspace{\baselineskip} - - -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. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Entropy Device}, -\ref{sec:Conformance / Device Conformance / Entropy Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Entropy Driver Conformance}. - } \\ -\hline -c06f3b670dd6 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-balloon: Maintain mem balloon device spec in separate directory\vspace{\baselineskip} - - -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. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Memory Balloon Device}, -\ref{sec:Conformance / Device Conformance / Traditional Memory Balloon Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Traditional Memory Balloon Driver Conformance}. - } \\ -\hline -d404f1c4e886 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-scsi: Maintain scsi host device spec in separate directory\vspace{\baselineskip} - - -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. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / SCSI Host Device}, -\ref{sec:Conformance / Device Conformance / SCSI Host Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / SCSI Host Driver Conformance}. - } \\ -\hline -442bb643a9ad & 30 Jan 2023 & Parav Pandit & {\noindent virtio-gpu: Maintain gpu device spec in separate directory\vspace{\baselineskip} - - -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. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / GPU Device Conformance}. - } \\ -\hline -c9686f241819 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-input: Maintain input device spec in separate directory\vspace{\baselineskip} - - -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. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / Input Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Input Driver Conformance}. - } \\ -\hline -8463bba27c79 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-crypto: Maintain crypto device spec in separate directory\vspace{\baselineskip} - - -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. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / Crypto Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Crypto Driver Conformance}. - } \\ -\hline -828754b98e3b & 30 Jan 2023 & Parav Pandit & {\noindent virtio-vsock: Maintain socket device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Reviewed-by: Stefano Garzarella - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / Socket Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Socket Driver Conformance}. - } \\ -\hline -8632f80e251f & 30 Jan 2023 & Parav Pandit & {\noindent virtio-fs: Maintain file system device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / File System Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / File System Driver Conformance}. - } \\ -\hline -b067de47a506 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-rpmb: Maintain rpmb device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / RPMB Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / RPMB Driver Conformance}. - } \\ -\hline -b1cf73e96173 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-iommu: Maintain iommu device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / IOMMU Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / IOMMU Driver Conformance}. - } \\ -\hline -6813e3cc271e & 30 Jan 2023 & Parav Pandit & {\noindent virtio-sound: Maintain sound device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / Sound Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Sound Driver Conformance}. - } \\ -\hline -5042a5031502 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-mem: Maintain memory device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / Memory Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / Memory Driver Conformance}. - } \\ -\hline -00b9935238bf & 30 Jan 2023 & Parav Pandit & {\noindent virtio-i2c: Maintain i2c device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / I2C Adapter Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / I2C Adapter Driver Conformance}. - } \\ -\hline -674489b191ab & 30 Jan 2023 & Parav Pandit & {\noindent virtio-scmi: Maintain scmi device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / SCMI Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / SCMI Driver Conformance}. - } \\ -\hline -6c9c04d2bf5e & 30 Jan 2023 & Parav Pandit & {\noindent virtio-gpio: Maintain gpio device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / GPIO Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / GPIO Driver Conformance}. - } \\ -\hline -d04d253b1055 & 30 Jan 2023 & Parav Pandit & {\noindent virtio-pmem: Maintain pmem device spec in separate directory\vspace{\baselineskip} - - -Place device specification, its driver and device -conformance into its own directory to have self contained device -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/153} - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Conformance / Device Conformance / PMEM Device Conformance}, -and \ref{sec:Conformance / Driver Conformance / PMEM Driver Conformance}. - } \\ -\hline -b1fb6b62495f & 02 Feb 2023 & Parav Pandit & {\noindent virtio-net: Clarify VLAN filter table configuration\vspace{\baselineskip} - - -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] \url{https://lists.oasis-open.org/archives/virtio-dev/202301/msg00210.html} - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/147} - -Suggested-by: Si-Wei Liu - -Reviewed-by: Si-Wei Liu - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / VLAN Filtering}, -\ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}, -and \ref{sec:Conformance / Device Conformance / Network Device Conformance}. - } \\ -\hline -53b0cb13169c & 02 Feb 2023 & Parav Pandit & {\noindent virtio-net: Avoid confusing device configuration text\vspace{\baselineskip} - - -The added text in commit of Fixes tag was redundant and -confusing in context of VLAN filtering description. - -Hence remove it as discussed in [1] and [2]. - -[1] \url{https://lists.oasis-open.org/archives/virtio-dev/202301/msg00282.html} -[2] \url{https://lists.oasis-open.org/archives/virtio-dev/202301/msg00286.html} - -\vspace{\baselineskip} -Fixes: 296303444f6b ("virtio-net: Clarify VLAN filter table configuration") - -Suggested-by: Halil Pasic - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -[CH: applied as editorial change] - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. - } \\ -\hline -3b9b6acb0936 & 09 Feb 2023 & Michael S. Tsirkin & {\noindent audio->sound\vspace{\baselineskip} - - -Spec calls the device "sound device". Make the name in the -ID section match. - -\vspace{\baselineskip} -MST: applied as editorial change. - -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Cornelia Huck - -See \ref{sec:Device Types}. - } \\ -\hline -0ce03bc6995a & 14 Feb 2023 & Parav Pandit & {\noindent virtio-net: Avoid confusion between a card and a device\vspace{\baselineskip} - - -Historically virtio network device is documented as an Ethernet card. -A modern card in the industry has one to multiple ports, one to multiple -PCI functions. However the virtio network device is usually just a -single link/port network interface controller. - -Hence, avoid this confusing term 'card' and align the specification -to adhere to widely used specification term as 'device' used for all -virtio device types. - -Replaced 'card' with 'network interface controller'. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/154} - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Discovery}, -\ref{sec:Device Types}, -\ref{sec:Device Types / Network Device}, -\ref{sec:Device Types / Network Device / Feature bits}, -and \ref{sec:Device Types / Network Device / Device Initialization}. - } \\ -\hline -be2ce1ee17e0 & 15 Feb 2023 & Parav Pandit & {\noindent content.tex Fix Driver notifications label\vspace{\baselineskip} - - -Driver notifications section is under "Basic Facilities of a Virtio -Device". However, the label is placed under "Virtqueues" section. - -Fix the label references. - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -[CH: pushed as an editorial update] - -Signed-off-by: Cornelia Huck - -See \ref{sec:Basic Facilities of a Virtio Device / Driver notifications}. - } \\ -\hline -2ea4627093fb & 20 Feb 2023 & Alvaro Karsz & {\noindent virtio-net: Mention VIRTIO_NET_F_HASH_REPORT dependency on VIRTIO_NET_F_CTRL_VQ\vspace{\baselineskip} - - -If the VIRTIO_NET_F_HASH_REPORT feature is negotiated, the driver may -send VIRTIO_NET_CTRL_MQ_HASH_CONFIG commands, thus, the control VQ -feature should be negotiated. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/158} - -Signed-off-by: Alvaro Karsz - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Device configuration layout}. - } \\ -\hline -73ce5bb02003 & 01 Mar 2023 & Alvaro Karsz & {\noindent virtio-net: Fix and update VIRTIO_NET_F_NOTF_COAL feature\vspace{\baselineskip} - - -This patch makes several improvements to the notification coalescing -feature, including: - -\begin{itemize} - -\item Consolidating virtio_net_ctrl_coal_tx and virtio_net_ctrl_coal_rx - into a single struct, virtio_net_ctrl_coal, as they are identical. - -\item Emphasizing that the coalescing commands are best-effort. - -\item Defining the behavior of coalescing with regards to delivering - notifications when a change occur. - -\item Stating that the commands should apply to all the receive/transmit - virtqueues. - -\item Stating that every receive/transmit virtqueue should count it's own - packets. - -\item A new intro explaining the entire coalescing operation. - -\end{itemize} - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/159} - -Signed-off-by: Alvaro Karsz - -Reviewed-by: Parav Pandit - -Acked-by: Michael S. Tsirkin - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. - } \\ -\hline -3508347769af & 01 Mar 2023 & Parav Pandit & {\noindent virtio-net: Improve introductory description\vspace{\baselineskip} - - -The control VQ of the virtio network device is used beyond advance -steering control. The control VQ dynamically changes multiple features -of the initialized device. - -Hence, update this area of control VQ introductory description at few -places and also place the link to its description. - -Also update the introduction section to better describe receive and -transmit virtqueues. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/156} - -Reviewed-by: David Edmondson - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device}, -\ref{sec:Device Types / Network Device / Virtqueues}, -and \ref{sec:Device Types / Network Device / Device Operation}. - } \\ -\hline -91a469991433 & 10 Mar 2023 & Parav Pandit & {\noindent transport-pci: Split PCI transport to its own file\vspace{\baselineskip} - - -Place PCI transport specification in its own file to better maintain it. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus}. - } \\ -\hline -9e88ba9c47d0 & 10 Mar 2023 & Parav Pandit & {\noindent transport-mmio: Split MMIO transport to its own file\vspace{\baselineskip} - - -Place MMIO transport specification in its own file to better maintain it. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Virtio Transport Options / Virtio Over MMIO}. - } \\ -\hline -0af264f9d4ea & 10 Mar 2023 & Parav Pandit & {\noindent transport-ccw: Split Channel IO transport to its own file\vspace{\baselineskip} - - -Place Channel IO transport specification in its own file to -better maintain it. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Virtio Transport Options / Virtio Over Channel I/O}. - } \\ -\hline -deb0aa0c7faa & 10 Mar 2023 & Parav Pandit & {\noindent transport-pci: Fix spellings and white spaces\vspace{\baselineskip} - - -Now that we have individual files, fix reported spelling errors. - -While at it, remove trailing white spaces. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus}, -\ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / ISR status capability}, -and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization}. - } \\ -\hline -ca97719ea35e & 10 Mar 2023 & Parav Pandit & {\noindent transport-mmio: Fix spellings and white spaces\vspace{\baselineskip} - - -Now that we have individual files, fix reported spelling errors. - -While at it, remove trailing white spaces. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO Device Register Layout}, -and \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}. - } \\ -\hline -8797f4d4e410 & 10 Mar 2023 & Parav Pandit & {\noindent transport-ccw: Fix spellings and white spaces\vspace{\baselineskip} - - -Now that we have individual files, fix reported spelling errors. - -While at it, remove extra white spaces. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/157} - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Basic Concepts}, -\ref{sec:Virtio Transport Options / Virtio over channel I/O / Basic Concepts/ Notifications}, -\ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Initialization / Setting Up Indicators}, -and \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Operation / Guest->Host Notification}. - } \\ -\hline -d3f832b6605d & 15 Mar 2023 & Parav Pandit & {\noindent virtio-net: Describe dev cfg fields read only\vspace{\baselineskip} - - -Device configuration fields are read only. Avoid duplicating this -description for multiple fields. - -Instead describe it one time and do it in the driver requirements -section. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/161} - -Reviewed-by: David Edmondson - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Device configuration layout}. - } \\ -\hline -115ceb97f813 & 15 Mar 2023 & Parav Pandit & {\noindent virtio-net: Define cfg fields before description\vspace{\baselineskip} - - -Currently some fields of the virtio_net_config structure are defined -before introducing the structure and some are defined after. -Better to define the configuration layout first followed by -description of all the fields. - -Device configuration fields are described in the section. Change wording -from 'listed' to 'described' as suggested in patch [1]. - -[1] \url{https://lists.oasis-open.org/archives/virtio-dev/202302/msg00004.html} - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/161} - -Reviewed-by: David Edmondson - -Signed-off-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Device configuration layout}. - } \\ -\hline -2d1d8dfa3474 & 15 Mar 2023 & Parav Pandit & {\noindent virtio-net: Fix virtqueues spelling error\vspace{\baselineskip} - - -Correct spelling from virtqueus to virtqueues. - -Signed-off-by: Parav Pandit - -Acked-by: Michael S. Tsirkin - -Reviewed-by: Jiri Pirko - -[CH: pushed as editorial update] - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. - } \\ -\hline -2d5495083c12 & 15 Mar 2023 & Parav Pandit & {\noindent transport-pci: Remove duplicate word structure\vspace{\baselineskip} - - -Remove duplicate word structure. - -Signed-off-by: Parav Pandit - -Acked-by: Michael S. Tsirkin - -Reviewed-by: Halil Pasic - -Reviewed-by: Jiri Pirko - -[CH: pushed as editorial update] - -Signed-off-by: Cornelia Huck - -See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Legacy Interfaces: A Note on PCI Device Layout}. - } \\ -\hline -b0414098602f & 15 Mar 2023 & Parav Pandit & {\noindent virtio-blk: Define dev cfg layout before its fields\vspace{\baselineskip} - - -Define device configuration layout structure before describing its -individual fields. - -This is an editorial change. - -Suggested-by: Cornelia Huck - -Reviewed-by: Max Gurtovoy - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Stefan Hajnoczi - -See \ref{sec:Device Types / Network Device / Device configuration layout}. - } \\ -\hline -380ed02bdb88 & 04 Apr 2023 & Parav Pandit & {\noindent transport-pci: Remove empty line at end of file\vspace{\baselineskip} - - -Remove empty line at end of file. - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: David Edmondson - -See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus}. - } \\ -\hline -1ed0754c6134 & 11 Apr 2023 & Heng Qi & {\noindent virtio-net: support the virtqueue coalescing moderation\vspace{\baselineskip} - - -Currently, coalescing parameters are grouped for all transmit and receive -virtqueues. This patch supports setting or getting the parameters for a -specified virtqueue, and a typical application of this function is netdim[1]. - -When the traffic between virtqueues is unbalanced, for example, one virtqueue -is busy and another virtqueue is idle, then it will be very useful to -control coalescing parameters at the virtqueue granularity. - -[1] \url{https://docs.kernel.org/networking/net_dim.html} - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/166} - -Signed-off-by: Heng Qi - -Reviewed-by: Xuan Zhuo - -Reviewed-by: Parav Pandit - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Feature bits}, -\ref{sec:Device Types / Network Device / Feature bits / Feature bit requirements}, -and \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue / Notifications Coalescing}. - } \\ -\hline -362ebd007271 & 11 Apr 2023 & Alvaro Karsz & {\noindent virtio-net: define the VIRTIO_NET_F_CTRL_RX_EXTRA feature bit\vspace{\baselineskip} - - -The VIRTIO_NET_F_CTRL_RX_EXTRA feature bit is mentioned in the spec -since version 1.0, but it's not properly defined. - -This patch defines the feature bit and defines the dependency on VIRTIO_NET_F_CTRL_VQ. - -Since this dependency is missing in previous versions, we add it now as -a "SHOULD". - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/162} - -Reviewed-by: Parav Pandit - -Signed-off-by: Alvaro Karsz - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Feature bits}, -and \ref{sec:Device Types / Network Device / Device configuration layout}. - } \\ -\hline -d3b2a19bc369 & 21 Apr 2023 & Parav Pandit & {\noindent device-types/multiple: replace queues with enqueues\vspace{\baselineskip} - - -Queue is a verb and noun both. Replacing it with enqueue avoids -ambiguity around plural queues noun vs verb; similar to virtio fs device -description. - -\vspace{\baselineskip} -Acked-by: Michael S. Tsirkin - -Signed-off-by: Parav Pandit - -[CH: pushed as editorial update] - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Block Device / Device Operation}, -\ref{sec:Device Types / GPIO Device / requestq Operation / Message Flow}, -\ref{sec:Device Types / GPIO Device / eventq Operation}, -\ref{sec:Device Types / I2C Adapter Device / Device Operation: Request Queue}, -\ref{sec:Device Types / SCSI Host Device / Device Operation / Device Operation: Request Queues}, -and \ref{sec:Device Types / Socket Device / Device Operation / Receive and Transmit}. - } \\ -\hline -aadefe688680 & 19 May 2023 & Michael S. Tsirkin & {\noindent virtio: document forward compatibility guarantees\vspace{\baselineskip} - - -Feature negotiation forms the basis of forward compatibility -guarantees of virtio but has never been properly documented. -Do it now. - -\vspace{\baselineskip} -Suggested-by: Halil Pasic - -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Parav Pandit - -Reviewed-by: Zhu Lingshan - -See \ref{sec:Basic Facilities of a Virtio Device / Feature Bits}. - } \\ -\hline -f3ce853c8a91 & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: introduce device group and related concepts\vspace{\baselineskip} - - -Each device group has a type. For now, define one initial group type: - -SR-IOV type - PCI SR-IOV virtual functions (VFs) of a given -PCI SR-IOV physical function (PF). This group may contain zero or more -virtio devices according to NumVFs configured. - -Each device within a group has a unique identifier. This identifier -is the group member identifier. - -Note: one can argue both ways whether the new device group handling -functionality (this and following patches) is closer -to a new device type or a new transport type. - -However, it's expected that we will add more features in the near -future. To facilitate this as much as possible of the text is located in -the new admin chapter. - -Effort was made to minimize transport-specific text. - -There's a bit of duplication with 0x1 repeated twice and -no special section for group type identifiers. -It seems ok to defer adding these until we have more group -types. - -\vspace{\baselineskip} -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Stefan Hajnoczi - -See \ref{sec:Basic Facilities of a Virtio Device / Device groups}. - } \\ -\hline -2cbaaa19b15a & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: introduce group administration commands\vspace{\baselineskip} - - -This introduces a general structure for group administration commands, -used to control device groups through their owner. - -Following patches will introduce specific commands and an interface for -submitting these commands to the owner. - -Note that the commands are focused on controlling device groups: -this is why group related fields are in the generic part of -the structure. -Without this the admin vq would become a "whatever" vq which does not do -anything specific at all, just a general transport like thing. -I feel going this way opens the design space to the point where -we no longer know what belongs in e.g. config space -what in the control q and what in the admin q. -As it is, whatever deals with groups is in the admin q; other -things not in the admin q. - -There are specific exceptions such as query but that's an exception that -proves the rule ;) - -\vspace{\baselineskip} -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Stefan Hajnoczi - -Reviewed-by: Zhu Lingshan - -See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}, -and \ref{sec:Normative References}. - } \\ -\hline -5f1a8ac61c15 & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: introduce virtio admin virtqueues\vspace{\baselineskip} - - -The admin virtqueues will be the first interface used to issue admin commands. - -Currently the virtio specification defines control virtqueue to manipulate -features and configuration of the device it operates on: -virtio-net, virtio-scsi, etc all have existing control virtqueues. However, -control virtqueue commands are device type specific, which makes it very -difficult to extend for device agnostic commands. - -Keeping the device-specific virtqueue separate from the admin virtqueue -is simpler and has fewer potential problems. I don't think creating -common infrastructure for device-specific control virtqueues across -device types worthwhile or within the scope of this patch series. - -To support this requirement in a more generic way, this patch introduces -a new admin virtqueue interface. -The admin virtqueue can be seen as the virtqueue analog to a transport. -The admin queue thus does nothing device type-specific (net, scsi, etc) -and instead focuses on transporting the admin commands. - -We also support more than one admin virtqueue, for QoS and -scalability requirements. - -\vspace{\baselineskip} -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Stefan Hajnoczi - -See \ref{sec:Basic Facilities of a Virtio Device / Administration Virtqueues}, -\ref{sec:Basic Facilities of a Virtio Device / Feature Bits}, -and \ref{sec:Reserved Feature Bits}. - } \\ -\hline -677aeaebf6a7 & 19 May 2023 & Michael S. Tsirkin & {\noindent pci: add admin vq registers to virtio over pci\vspace{\baselineskip} - - -Add new registers to the PCI common configuration structure. - -These registers will be used for querying the indices of the admin -virtqueues of the owner device. To configure, reset or enable the admin -virtqueues, the driver should follow existing queue configuration/setup -sequence. - -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Parav Pandit - -Reviewed-by: Zhu Lingshan - -See \ref{sec:Reserved Feature Bits}, -and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}. - } \\ -\hline -a9a59f70be46 & 19 May 2023 & Michael S. Tsirkin & {\noindent mmio: document ADMIN_VQ as reserved\vspace{\baselineskip} - - -Adding relevant registers needs more work and it's not -clear what the use-case will be as currently only -the PCI transport is supported. But let's keep the -door open on this. -We already say it's reserved in a central place, but it -does not hurt to remind implementers to mask it. - -\vspace{\baselineskip} -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Parav Pandit - -Reviewed-by: Stefan Hajnoczi - -See \ref{sec:Virtio Transport Options / Virtio Over MMIO / Features reserved for future use}. - } \\ -\hline -325046c1460e & 19 May 2023 & Michael S. Tsirkin & {\noindent ccw: document ADMIN_VQ as reserved\vspace{\baselineskip} - - -Adding relevant registers needs more work and it's not -clear what the use-case will be as currently only -the PCI transport is supported. But let's keep the -door open on this. -We already say it's reserved in a central place, but it -does not hurt to remind implementers to mask it. - -Note: there are more features to add to this list. -Will be done later with a patch on top. - -\vspace{\baselineskip} -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Stefan Hajnoczi - -Reviewed-by: Parav Pandit - -Reviewed-by: Zhu Lingshan - -See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Features reserved for future use}. - } \\ -\hline -3dc7196cba2d & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: command list discovery\vspace{\baselineskip} - - -Add commands to find out which commands does each group support, -as well as enable their use by driver. -This will be especially useful once we have multiple group types. - -An alternative is per-type VQs. This is possible but will -require more per-transport work. Discovery through the vq -helps keep things contained. - -e.g. lack of support for some command can switch to a legacy mode - -note that commands are expected to be avolved by adding new -fields to command specific data at the tail, so -we generally do not need feature bits for compatibility. - -\vspace{\baselineskip} -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Stefan Hajnoczi - -Reviewed-by: Zhu Lingshan - -See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}. - } \\ -\hline -bf1d6b0d24ae & 19 May 2023 & Michael S. Tsirkin & {\noindent admin: conformance clauses\vspace{\baselineskip} - - -Add conformance clauses for admin commands and admin virtqueues. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/171} - -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Stefan Hajnoczi - -See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}, -\ref{sec:Basic Facilities of a Virtio Device / Administration Virtqueues}, -and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}. - } \\ -\hline -b04be31f0bf0 & 19 May 2023 & Michael S. Tsirkin & {\noindent ccw: document more reserved features\vspace{\baselineskip} - - -vq reset and shared memory are unsupported, too. - -\vspace{\baselineskip} -Signed-off-by: Michael S. Tsirkin - -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/160} - -Reviewed-by: Stefan Hajnoczi - -Reviewed-by: Zhu Lingshan - -See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Features reserved for future use}. - } \\ -\hline -619f60ae4ccf & 19 May 2023 & Parav Pandit & {\noindent admin: Fix reference and table formation\vspace{\baselineskip} - - -This patch brings three fixes. - -\begin{enumerate} - -\item Opcode table has 3 columns, only two were enumerated. Due to this -pdf generation script stops. Fix it and also have resizeable description -column as it needs wrap. - -\item Status description column content needs to wrap. Without it pdf - does not read good. Fix it by having resizeable description column. - -\item Fix the broken link to the Device groups. - -\end{enumerate} - -\vspace{\baselineskip} -Fixes: 2cbaaa1 ("admin: introduce group administration commands") - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: Cornelia Huck - -See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}. - } \\ -\hline -c1cd68b97611 & 19 May 2023 & Parav Pandit & {\noindent transport-pci: Improve config msix vector description\vspace{\baselineskip} - - -config_msix_vector is the register that holds the MSI-X vector number -for receiving configuration change related interrupts. - -It is not "for MSI-X". - -Hence, replace the confusing text with appropriate one. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/169} - -Reviewed-by: Max Gurtovoy - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}. - } \\ -\hline -0f433d62e81d & 19 May 2023 & Parav Pandit & {\noindent transport-pci: Improve queue msix vector register desc\vspace{\baselineskip} - - -queue_msix_vector register is for receiving virtqueue notification -interrupts from the device for the virtqueue. - -"for MSI-X" is confusing term. - -Also it is the register that driver "writes" to, similar to -many other registers such as queue_desc, queue_driver etc. - -Hence, replace the verb from use to write. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/169} - -Signed-off-by: Parav Pandit - -Reviewed-by: Max Gurtovoy - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}. - } \\ -\hline -b0fbccd4062f & 19 May 2023 & Parav Pandit & {\noindent content: Add vq index text\vspace{\baselineskip} - - -Introduce vq index and its range so that subsequent patches can refer -to it. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: David Edmondson - -Reviewed-by: Halil Pasic - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Basic Facilities of a Virtio Device / Virtqueues}. - } \\ -\hline -362f1cac2516 & 19 May 2023 & Parav Pandit & {\noindent content.tex Replace virtqueue number with index\vspace{\baselineskip} - - -Replace virtqueue number with index to align to rest of the -specification. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: David Edmondson - -Reviewed-by: Halil Pasic - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Basic Facilities of a Virtio Device / Driver notifications}. - } \\ -\hline -cc4a5604b259 & 19 May 2023 & Parav Pandit & {\noindent content: Rename confusing queue_notify_data and vqn names\vspace{\baselineskip} - - -Currently queue_notify_data register indicates the device -internal queue notification content. This register is -meaningful only when feature bit VIRTIO_F_NOTIF_CONFIG_DATA is -negotiated. - -However, above register name often get confusing association with -very similar feature bit VIRTIO_F_NOTIFICATION_DATA. - -When VIRTIO_F_NOTIFICATION_DATA feature bit is negotiated, -notification really involves sending additional queue progress -related information (not queue identifier or index). - -Hence - -\begin{enumerate} - -\item to avoid any misunderstanding and association of -queue_notify_data with similar name VIRTIO_F_NOTIFICATION_DATA, - -and - -\item to reflect that queue_notify_data is the actual device -internal virtqueue identifier/index/data/cookie, - -\end{enumerate} - -\begin{enumerate}[label=\alph*.] - -\item rename queue_notify_data to queue_notif_config_data. - -\item rename ambiguous vqn to a union of vq_index and vq_config_data - -\item The driver notification section assumes that queue notification contains -vq index always. CONFIG_DATA feature bit introduction missed to -update the driver notification section. Hence, correct it. - -\end{enumerate} - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Acked-by: Halil Pasic - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -Reviewed-by: David Edmondson - -See \ref{sec:Basic Facilities of a Virtio Device / Driver notifications}, -\ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI Device Layout / Common configuration structure layout}, -and \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Available Buffer Notifications}. -} \\ -\hline -fbb119dad56d & 19 May 2023 & Parav Pandit & {\noindent transport-pci: Avoid first vq index reference\vspace{\baselineskip} - - -Drop reference to first virtqueue as it is already -covered now by the generic section in first patch. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: David Edmondson - -Acked-by: Halil Pasic - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Virtio Transport Options / Virtio Over PCI Bus / PCI-specific Initialization And Device Operation / Device Initialization}. - } \\ -\hline -a7a21e451987 & 19 May 2023 & Parav Pandit & {\noindent transport-mmio: Rename QueueNum register\vspace{\baselineskip} - - -These are further named differently between pci and mmio transport. -PCI transport indicates queue size as queue_size. - -To bring consistency between pci and mmio transport, -rename the QueueNumMax and QueueNum -registers to QueueSizeMax and QueueSize respectively. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: Cornelia Huck - -Reviewed-by: Jiri Pirko - -Reviewed-by: Halil Pasic - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO Device Register Layout}, -and \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}. - } \\ -\hline -9ddc59553984 & 19 May 2023 & Parav Pandit & {\noindent transport-mmio: Avoid referring to zero based index\vspace{\baselineskip} - - -VQ range is already described in the first patch in basic virtqueue -section. Hence remove the duplicate reference to it. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: David Edmondson - -Acked-by: Halil Pasic - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO Device Register Layout}, -and \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}. - } \\ -\hline -e7a764f66598 & 19 May 2023 & Parav Pandit & {\noindent transport-ccw: Rename queue depth/size to other transports\vspace{\baselineskip} - - -max_num field reflects the maximum queue size/depth. Hence align name of -this field with similar field in PCI and MMIO transport to -max_queue_size. -Similarly rename 'num' to 'size'. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: Halil Pasic - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Initialization / Configuring a Virtqueue}. - } \\ -\hline -c3092410ac51 & 19 May 2023 & Parav Pandit & {\noindent transport-ccw: Refer to the vq by its index\vspace{\baselineskip} - - -Currently specification uses virtqueue index and -number interchangeably to refer to the virtqueue. - -Instead refer to it by its index. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: Halil Pasic - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Virtio Transport Options / Virtio over channel I/O / Device Operation / Guest->Host Notification}. - } \\ -\hline -d6f310dbb3bf & 19 May 2023 & Parav Pandit & {\noindent virtio-net: Avoid duplicate receive queue example\vspace{\baselineskip} - - -Receive queue number/index example is duplicate which is already defined -in the Setting RSS parameters section. - -Hence, avoid such duplicate example and prepare it for the subsequent -patch to describe using receive queue handle. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: Cornelia Huck - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. - } \\ -\hline -da0e16928d0b & 19 May 2023 & Parav Pandit & {\noindent virtio-net: Describe RSS using rss rq id\vspace{\baselineskip} - - -The content of the indirection table and unclassified_queue were -originally described based on mathematical operations. In order to -make it easier to understand and to avoid intermixing the array -index with the vq index, introduce a structure -rss_rq_id (RSS receive queue -ID) and use it to describe the unclassified_queue and -indirection_table fields. - -As part of it, have the example that uses non-zero virtqueue -index which helps to have better mapping between receiveX -object with virtqueue index and the actual value in the -indirection table. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: David Edmondson - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. - } \\ -\hline -f9ff777fba59 & 19 May 2023 & Parav Pandit & {\noindent virtio-net: Update vqn to vq_index for cvq cmds\vspace{\baselineskip} - - -Replace field name vqn to vq_index for recent virtqueue level commands. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/163} - -Reviewed-by: David Edmondson - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Device Types / Network Device / Device Operation / Control Virtqueue}. - } \\ -\hline -74460ef69d5f & 19 May 2023 & Parav Pandit & {\noindent transport-mmio: Replace virtual queue with virtqueue\vspace{\baselineskip} - - -Basic facilities define the virtqueue construct for device <-> driver -communication. - -PCI transport and individual devices description also refers to it as -virtqueue. - -MMIO refers to it as 'virtual queue'. - -Align MMIO transport description to call such object a virtqueue. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/168} - -Reviewed-by: Stefan Hajnoczi - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -See \ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO Device Register Layout}, -\ref{sec:Virtio Transport Options / Virtio Over MMIO / MMIO-specific Initialization And Device Operation / Virtqueue Configuration}, -and \ref{sec:Virtio Transport Options / Virtio Over MMIO / Legacy interface}. - } \\ -\hline -6724756eaf0a & 07 Jul 2023 & Parav Pandit & {\noindent admin: Split opcode table rows with a line\vspace{\baselineskip} - - -Currently all opcode appears to be in a single row. -Separate them with a line similar to other tables. - -\vspace{\baselineskip} -Signed-off-by: Parav Pandit - -Reviewed-by: Cornelia Huck - -[CH: pushed as editorial update] - -Signed-off-by: Cornelia Huck - -See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}. - } \\ -\hline -1518c9ce2cde & 07 Jul 2023 & Parav Pandit & {\noindent admin: Fix section numbering\vspace{\baselineskip} - - -Requirements are put one additional level down. Fix it. - -Signed-off-by: Parav Pandit - -Reviewed-by: Cornelia Huck - -[CH: pushed as editorial update] - -Signed-off-by: Cornelia Huck - -See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}. - } \\ -\hline -9c3ba1ec6acb & 14 Jul 2023 & Heng Qi & {\noindent virtio-net: support inner header hash\vspace{\baselineskip} - -\begin{enumerate} - -\item Currently, a received encapsulated packet has an outer and an inner header, but -the virtio device is unable to calculate the hash for the inner header. The same -flow can traverse through different tunnels, resulting in the encapsulated -packets being spread across multiple receive queues (refer to the figure below). -However, in certain scenarios, we may need to direct these encapsulated packets of -the same flow to a single receive queue. This facilitates the processing -of the flow by the same CPU to improve performance (warm caches, less locking, etc.). - -\begin{lstlisting} - client1 client2 - | +-------+ | - +------->|tunnels|<--------+ - +-------+ - | | - v v - +-----------------+ - | monitoring host | - +-----------------+ -\end{lstlisting} - -To achieve this, the device can calculate a symmetric hash based on the inner headers -of the same flow. - -\item For legacy systems, they may lack entropy fields which modern protocols have in -the outer header, resulting in multiple flows with the same outer header but -different inner headers being directed to the same receive queue. This results in -poor receive performance. - -To address this limitation, inner header hash can be used to enable the device to advertise -the capability to calculate the hash for the inner packet, regaining better receive performance. - -\end{enumerate} - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/173} - -Signed-off-by: Heng Qi - -Reviewed-by: Xuan Zhuo - -Reviewed-by: Parav Pandit - -[CH: added missing lstlisting and hyperref escapes, fixed references] - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types / Network Device / Feature bits}, -\ref{sec:Device Types / Network Device / Feature bits / Feature bit requirements}, -\ref{sec:Device Types / Network Device / Device configuration layout}, -\ref{sec:Device Types / Network Device / Device Operation / Processing of Incoming Packets}, -\ref{sec:Device Types / Network Device / Device Operation / Processing of Incoming Packets / Inner Header Hash}, -\ref{sec:Conformance / Device Conformance / Network Device Conformance}, -\ref{sec:Conformance / Driver Conformance / Network Driver Conformance}, -and \ref{sec:Normative References}. - } \\ -\hline -73c2fd96af96 & 17 Jul 2023 & Haixu Cui & {\noindent virtio-spi: define the DEVICE ID for virtio SPI master\vspace{\baselineskip} - - -Define the DEVICE ID of virtio SPI master device as 45. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/174} - -Signed-off-by: Cornelia Huck - -See \ref{sec:Device Types}. - } \\ -\hline -03c2d32e5093 & 21 Jul 2023 & Parav Pandit & {\noindent admin: Add group member legacy register access commands\vspace{\baselineskip} - - -Introduce group member legacy common configuration and legacy device -configuration access read/write commands. - -Group member legacy registers access commands enable group owner driver -software to access legacy registers on behalf of the guest virtual -machine. - -\vspace{\baselineskip} -Usecase: - -======== - -\begin{enumerate} - -\item A hypervisor/system needs to provide transitional - virtio devices to the guest VM at scale of thousands, - typically, one to eight devices per VM. - -\item A hypervisor/system needs to provide such devices using a - vendor agnostic driver in the hypervisor system. - -\item A hypervisor system prefers to have single stack regardless of - virtio device type (net/blk) and be future compatible with a - single vfio stack using SR-IOV or other scalable device - virtualization technology to map PCI devices to the guest VM. - (as transitional or otherwise) - -\end{enumerate} - -\vspace{\baselineskip} -Motivation/Background: - -===================== - -The existing virtio transitional PCI device is missing support for -PCI SR-IOV based devices. Currently it does not work beyond -PCI PF, or as software emulated device in reality. Currently it -has below cited system level limitations: - -[a] PCIe spec citation: -VFs do not support I/O Space and thus VF BARs shall not indicate I/O Space. - -[b] cpu arch citiation: -Intel 64 and IA-32 Architectures Software Developer’s Manual: -The processor’s I/O address space is separate and distinct from -the physical-memory address space. The I/O address space consists -of 64K individually addressable 8-bit I/O ports, numbered 0 through FFFFH. - -[c] PCIe spec citation: -If a bridge implements an I/O address range,...I/O address range will be -aligned to a 4 KB boundary. - -\vspace{\baselineskip} -Overview: - -========= - -Above usecase requirements is solved by PCI PF group owner accessing -its group member PCI VFs legacy registers using the administration -commands of the group owner PCI PF. - -Two types of administration commands are added which read/write PCI VF -registers. - -Software usage example: - -======================= -\vspace{\baselineskip} - -1. One way to use and map to the guest VM is by using vfio driver -framework in Linux kernel. - -... -}\\ -\hline - & & & {\noindent -... - -\begin{lstlisting} - - +----------------------+ - |pci_dev_id = 0x100X | -+---------------|pci_rev_id = 0x0 |-----+ -|vfio device |BAR0 = I/O region | | -| |Other attributes | | -| +----------------------+ | -| | -+ +--------------+ +-----------------+ | -| |I/O BAR to AQ | | Other vfio | | -| |rd/wr mapper\& | | functionalities | | -| | forwarder | | | | -| +--------------+ +-----------------+ | -| | -+------+-------------------------+-----------+ - | | - Config region | - access Driver notifications - | | - +----+------------+ +----+------------+ - | +-----+ | | PCI VF device A | - | | AQ |-------------+---->+-------------+ | - | +-----+ | | | | legacy regs | | - | PCI PF device | | | +-------------+ | - +-----------------+ | +-----------------+ - | - | +----+------------+ - | | PCI VF device N | - +---->+-------------+ | - | | legacy regs | | - | +-------------+ | - +-----------------+ -\end{lstlisting} - -2. Continue to use the virtio pci driver to bind to the - listed device id and use it as in the host. - -3. Use it in a light weight hypervisor to run bare-metal OS. - -\vspace{\baselineskip} -Fixes: \url{https://github.com/oasis-tcs/virtio-spec/issues/167} - -Signed-off-by: Parav Pandit - -Signed-off-by: Michael S. Tsirkin - -Signed-off-by: Cornelia Huck - -See \ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands / Legacy Interface}, -\ref{sec:Basic Facilities of a Virtio Device / Device groups / Group administration commands}, -and \ref{sec:Conformance / Conformance Targets}. - } \\ -\hline -- 2.34.1