qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC PATCH] spapr: add ibmveth to the supported network ada


From: Alexey Kardashevskiy
Subject: [Qemu-devel] [RFC PATCH] spapr: add ibmveth to the supported network adapters list
Date: Fri, 11 Oct 2013 14:09:55 +1100

The problem is that "-net nic,model=?" does not print "ibmveth" in
the list while it is actually supported.

Most of the QEMU emulated network devices are PCI but "ibmveth"
(a.k.a. spapr-vlan) is not. However with "-net nic,model=?", QEMU prints
only PCI devices in the list, even if it does not say that the list is
all about PCI devices.

This adds "?"/"help" handling in spapr.c and adds "ibmveth" in the beginning
of the list.

Signed-off-by: Alexey Kardashevskiy <address@hidden>
---

This is an RFC patch.

The other solutions could be:
1. add "ibmveth" into pci_nic_models[] in hw/pci/pci.c but this would not
be correct as "ibmveth" is not PCI and it must appear only on pseries machine.

2. implemement short version of qdev_print_category_devices() and call it
with DEVICE_CATEGORY_NETWORK but that would print more devices than
pci_nic_init_nofail() can handle (vmxnet3, usb-bt-dongle).

3. fix qemu_check_nic_model() to specifically say that this is a list of
PCI devices and there might be some other devices which "-net nic,model+"
supports but there are not PCI but that could break compatibility (some
management software may rely on this exact string).

4. Reject the patch and just say that people must stop using "-net". Ok for me 
:)

Since "-net" is kind of obsolete interface and does not seem to be extended 
ever,
the proposed patch does not look too ugly, does not it?
---
 hw/ppc/spapr.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index c0613e4..45ed3da 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1276,6 +1276,21 @@ static void ppc_spapr_init(QEMUMachineInitArgs *args)
 
         if (strcmp(nd->model, "ibmveth") == 0) {
             spapr_vlan_create(spapr->vio_bus, nd);
+        } else if (is_help_option(nd->model)) {
+            static const char * const nic_models[] = {
+                "ibmveth",
+                "ne2k_pci",
+                "i82551",
+                "i82557b",
+                "i82559er",
+                "rtl8139",
+                "e1000",
+                "pcnet",
+                "virtio",
+                NULL
+            };
+            qemu_show_nic_models(nd->model, nic_models);
+            exit(0);
         } else {
             pci_nic_init_nofail(&nd_table[i], phb->bus, nd->model, NULL);
         }
-- 
1.8.4.rc4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]