From: Michal Privoznik <[email protected]>

Similarly to disk controllers (see previous commits),
parse and report PCI address for ethernet devices.

Signed-off-by: Michal Privoznik <[email protected]>
---
 src/vmx/vmx.c                              |  7 +++++++
 tests/vmx2xmldata/esx-in-the-wild-10.xml   |  1 +
 tests/vmx2xmldata/esx-in-the-wild-11.xml   |  1 +
 tests/vmx2xmldata/esx-in-the-wild-12.xml   |  1 +
 tests/vmx2xmldata/esx-in-the-wild-13.xml   |  1 +
 tests/vmx2xmldata/esx-in-the-wild-14.xml   |  1 +
 tests/vmx2xmldata/esx-in-the-wild-15.xml   |  1 +
 tests/vmx2xmldata/esx-in-the-wild-16.xml   |  1 +
 tests/vmx2xmldata/esx-in-the-wild-17.xml   |  1 +
 tests/vmx2xmldata/esx-in-the-wild-5.xml    |  1 +
 tests/vmx2xmldata/esx-in-the-wild-6.xml    |  1 +
 tests/vmx2xmldata/esx-in-the-wild-7.xml    |  1 +
 tests/vmx2xmldata/esx-in-the-wild-8.xml    | 10 ++++++++++
 tests/vmx2xmldata/esx-in-the-wild-9.xml    |  1 +
 tests/vmx2xmldata/fusion-in-the-wild-1.xml |  2 ++
 15 files changed, 31 insertions(+)

diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index 0fee7c0e7e..1bbe0144d2 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -2930,6 +2930,8 @@ virVMXParseEthernet(virConf *conf, int controller, 
virDomainNetDef **def)
 
     int netmodel = VIR_DOMAIN_NET_MODEL_UNKNOWN;
 
+    g_autofree char *pciSlotNumberName = NULL;
+
     if (def == NULL || *def != NULL) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument"));
         return -1;
@@ -3124,6 +3126,11 @@ virVMXParseEthernet(virConf *conf, int controller, 
virDomainNetDef **def)
         goto cleanup;
     }
 
+    pciSlotNumberName = g_strdup_printf("ethernet%d.pciSlotNumber", 
controller);
+
+    if (virVMXPCISlotNumber(conf, pciSlotNumberName, &(*def)->info) < 0)
+        goto cleanup;
+
     (*def)->model = netmodel;
     result = 0;
 
diff --git a/tests/vmx2xmldata/esx-in-the-wild-10.xml 
b/tests/vmx2xmldata/esx-in-the-wild-10.xml
index 2ba801169e..153f6900d7 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-10.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-10.xml
@@ -33,6 +33,7 @@
       <mac address='00:50:56:9a:9c:7a' type='generated'/>
       <source bridge='VM Network'/>
       <model type='e1000e'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-11.xml 
b/tests/vmx2xmldata/esx-in-the-wild-11.xml
index e39a525de7..667bd2f20a 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-11.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-11.xml
@@ -40,6 +40,7 @@
       <mac address='00:50:56:ac:3e:a1' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-12.xml 
b/tests/vmx2xmldata/esx-in-the-wild-12.xml
index 907a000391..82ed0f62a7 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-12.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-12.xml
@@ -41,6 +41,7 @@
       <mac address='00:50:56:a0:cf:2f' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-13.xml 
b/tests/vmx2xmldata/esx-in-the-wild-13.xml
index f38dc063f1..5f4a32a018 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-13.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-13.xml
@@ -43,6 +43,7 @@ package:20.6.2
       <mac address='fa:16:3e:bb:2c:4a' type='static'/>
       <source bridge='Test'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' 
function='0x0'/>
     </interface>
     <serial type='null'>
       <target port='0'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-14.xml 
b/tests/vmx2xmldata/esx-in-the-wild-14.xml
index a8061b14c6..d167676bcd 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-14.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-14.xml
@@ -31,6 +31,7 @@
     <interface type='null'>
       <mac address='00:00:00:00:00:00' type='static'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-15.xml 
b/tests/vmx2xmldata/esx-in-the-wild-15.xml
index 2a169864d6..5d2ba109ba 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-15.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-15.xml
@@ -41,6 +41,7 @@
       <mac address='00:50:56:83:c9:0c' type='generated'/>
       <source bridge='inside'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='16384' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-16.xml 
b/tests/vmx2xmldata/esx-in-the-wild-16.xml
index 37023ef4f0..2b4b9cb0a2 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-16.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-16.xml
@@ -39,6 +39,7 @@
       <mac address='00:50:56:a0:a6:7e' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-17.xml 
b/tests/vmx2xmldata/esx-in-the-wild-17.xml
index fe15990118..b1221fa73f 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-17.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-17.xml
@@ -44,6 +44,7 @@
       <mac address='00:50:56:a5:b8:68' type='generated'/>
       <source bridge='Mgmt Network'/>
       <model type='e1000e'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-5.xml 
b/tests/vmx2xmldata/esx-in-the-wild-5.xml
index fe3d81db63..55d20d768c 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-5.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-5.xml
@@ -40,6 +40,7 @@
       <mac address='00:50:56:be:00:15' type='generated'/>
       <source bridge='VM-LAN'/>
       <model type='e1000'/>
+      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='4096' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-6.xml 
b/tests/vmx2xmldata/esx-in-the-wild-6.xml
index 2682679796..f7b6708b42 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-6.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-6.xml
@@ -33,6 +33,7 @@
       <mac address='00:0c:29:2c:3a:fc' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-7.xml 
b/tests/vmx2xmldata/esx-in-the-wild-7.xml
index 4cdf338640..6db4065af6 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-7.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-7.xml
@@ -32,6 +32,7 @@
       <mac address='00:50:56:9f:08:51' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-8.xml 
b/tests/vmx2xmldata/esx-in-the-wild-8.xml
index 63bdd82c6b..f7d98b98b3 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-8.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-8.xml
@@ -52,51 +52,61 @@
       <mac address='00:1a:4a:16:01:55' type='static'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:1a:4a:16:21:85' type='generated'/>
       <source bridge='VM Network'/>
       <model type='e1000'/>
+      <address type='pci' domain='0x0000' bus='0x01' slot='0x02' 
function='0x0'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:1a:4a:16:21:82' type='generated'/>
       <source bridge='VM Network'/>
       <model type='e1000e'/>
+      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' 
function='0x0'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:1a:4a:16:21:69' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' 
function='0x0'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:1a:4a:16:21:80' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' 
function='0x1'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:1a:4a:16:21:a3' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x1'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:1a:4a:16:21:a8' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' 
function='0x1'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:1a:4a:16:21:a9' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' 
function='0x1'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:1a:4a:16:21:78' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' 
function='0x2'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:1a:4a:16:21:81' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x2'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/esx-in-the-wild-9.xml 
b/tests/vmx2xmldata/esx-in-the-wild-9.xml
index 8b7f442921..d5a0a1c815 100644
--- a/tests/vmx2xmldata/esx-in-the-wild-9.xml
+++ b/tests/vmx2xmldata/esx-in-the-wild-9.xml
@@ -36,6 +36,7 @@
       <mac address='00:50:56:80:b3:81' type='generated'/>
       <source bridge='VM Network'/>
       <model type='vmxnet3'/>
+      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='8192' primary='yes'/>
diff --git a/tests/vmx2xmldata/fusion-in-the-wild-1.xml 
b/tests/vmx2xmldata/fusion-in-the-wild-1.xml
index 2c29f65d77..773889375e 100644
--- a/tests/vmx2xmldata/fusion-in-the-wild-1.xml
+++ b/tests/vmx2xmldata/fusion-in-the-wild-1.xml
@@ -31,10 +31,12 @@
     <interface type='bridge'>
       <mac address='00:0c:29:3b:64:ea' type='generated'/>
       <source bridge='VMnet0'/>
+      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' 
function='0x0'/>
     </interface>
     <interface type='bridge'>
       <mac address='00:0c:29:3b:64:f4' type='generated'/>
       <source bridge='VMnet0'/>
+      <address type='pci' domain='0x0000' bus='0x01' slot='0x02' 
function='0x0'/>
     </interface>
     <video>
       <model type='vmvga' vram='4096' primary='yes'/>
-- 
2.54.0

Reply via email to