Hello Peter,

below is the patch used to fix the issue.

Regards,
Alexander Eichner

Index: trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
===================================================================
--- a/trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
+++ b/trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
@@ -53,4 +53,5 @@
#include <VBox/version.h>
#include <VBox/log.h>
+#include <VBox/pci.h>


@@ -210,6 +211,4 @@

#define PCI_DEVICE_ID_VIRTIONET_HOST               0x1000      /**< VirtIO 
transitional device ID for network card  */
-#define PCI_CLASS_BASE_NETWORK_CONTROLLER          0x0200      /**< PCI 
Network device class                        */
-#define PCI_CLASS_SUB_NET_ETHERNET_CONTROLLER      0x00        /**< PCI NET 
Controller subclass                     */
#define PCI_CLASS_PROG_UNSPECIFIED                 0x00        /**< Programming 
interface. N/A.                     */
#define VIRTIONET_PCI_CLASS                        0x01        /**< Base class 
Mass Storage?                        */
@@ -3516,6 +3515,6 @@
    VIRTIOPCIPARAMS VirtioPciParams;
    VirtioPciParams.uDeviceId                      = 
PCI_DEVICE_ID_VIRTIONET_HOST;
-    VirtioPciParams.uClassBase                     = 
PCI_CLASS_BASE_NETWORK_CONTROLLER;
-    VirtioPciParams.uClassSub                      = 
PCI_CLASS_SUB_NET_ETHERNET_CONTROLLER;
+    VirtioPciParams.uClassBase                     = VBOX_PCI_CLASS_NETWORK;
+    VirtioPciParams.uClassSub                      = 
VBOX_PCI_SUB_NETWORK_ETHERNET;
    VirtioPciParams.uClassProg                     = PCI_CLASS_PROG_UNSPECIFIED;
    VirtioPciParams.uSubsystemId                   = 
DEVICE_PCI_NETWORK_SUBSYSTEM;  /* VirtIO 1.0 allows PCI Device ID here */

> On 14.08.2023 18:07, Peter Palúch <peter.paluch...@gmail.com> wrote:
> 
> Hello Alexander,
> 
> Many thanks for the information!
> 
> If I may ask - can you share more details on how you fixed this issue? Also, 
> has your fix been only merged recently? 7.0.10 did not yet contain it.
> 
> Best regards,
> Peter
> 
> po 14. 8. 2023 o 17:05 Alexander Eichner <alexander.eich...@oracle.com> 
> napísal(a):
> Hi Peter, 
> 
> Thanks for the patch. We fixed the issue internally, albeit a bit differently.
> 
> Regards,
> Alexander Eichner
> 
>> On 11.08.2023 23:36, Peter Palúch via vbox-dev <vbox-dev@virtualbox.org> 
>> wrote:
>> 
>> Greetings,
>> 
>> Attaching a patch fixing the bug #21516 (Cisco CSR 1000v and 8000v does not 
>> recognize interfaces).
>> 
>> It turns out that in src/VBox/Devices/Network/DevVirtioNet.cpp, the macro 
>> PCI_CLASS_BASE_NETWORK_CONTROLLER was set to 0x0200 (0x02 =PCI Network 
>> Device Class ID, 0x00 = Ethernet subclass). However, this macro is passed to 
>> another macro, PDMPciDevSetClassBase, that expects uint8_t as the PCI device 
>> class value. This has caused the virtio-net PCI adapter to be reported with 
>> the PCI class/subclass 0x0000, confusing some host operating systems.
>> 
>> The fix is trivial - set PCI_CLASS_BASE_NETWORK_CONTROLLER to 0x02 instead 
>> of 0x0200.
>> 
>> Please consider integrating this fix at your earliest convenience.
>> 
>> Thank you!
>> 
>> Best regards,
>> Peter
>> <virtionet-21516.patch>_______________________________________________
>> vbox-dev mailing list
>> vbox-dev@virtualbox.org
>> https://www.virtualbox.org/mailman/listinfo/vbox-dev
> 

_______________________________________________
vbox-dev mailing list
vbox-dev@virtualbox.org
https://www.virtualbox.org/mailman/listinfo/vbox-dev

Reply via email to