From: Michal Privoznik <mprivozn@redhat.com> Similarly to disk controllers (see previous commits), parse and report PCI address for ethernet devices. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- 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