[libvirt PATCH 0/3] vmx: fix handling of VMX MAC address options
Michal Privoznik
mprivozn at redhat.com
Thu Jul 23 14:26:30 UTC 2020
On 7/20/20 6:32 PM, Daniel P. Berrangé wrote:
> We first had a proposal to add a "check" attribute for MAC addresses
>
> https://www.redhat.com/archives/libvir-list/2020-July/msg00617.html
>
> For reasons I don't understand this was then replaced by a "type"
> attribute
>
> https://www.redhat.com/archives/libvir-list/2020-July/msg00656.html
>
> with the "type" attribute having the side-effect of changing the
> VMX checkMACAddress config. See the first patch for more detailed
> description of the flaws.
>
> The core problem with the original VMX code before either of these
> patches was that we have multiple distinct VMX config settings and
> they were all being overloaded into a single MAC address attribute
> in the XML. This overloading is inherantly loosing information so
> cannot be reliably round-trippped.
>
> The only way to solve this is to actually have explicit attributes
> for the config parameters from VMX and stop overloading things.
>
> IOW, we needed *both* the "check" and "type" attributes.
>
> That is what this series does. It also adds the missing VMX -> XML
> conversion step so we round-trip everything.
>
> There are still some pieces that are not perfect.
>
> - libvirt has type=static|generated, but VMX has
> type=static|generated|vpx. "vpx" is just a synonym for
> "generated", but using a different MAC addr range. We
> use the range to do the mapping, and can probablylive
> with that.
>
> - VMX has a a address offset field - I've not found any
> info on what this is needed for, but we hardcode it
> to 0 for XML -> VMX config, and ignore it entirely
> for VMX -> XML config. This means we won't roundtrip
> this setting. This needs fixing if anyone expects
> we'll see offset != 0 in the real world.
>
> Bastien Orivel (1):
> Add a check attribute on the mac address element
>
> Daniel P. Berrangé (2):
> vmx: fix logic handling mac address type
> vmx: support outputing the type attribute for MAC addresses
>
> docs/schemas/domaincommon.rng | 5 ++
> src/conf/domain_conf.c | 14 ++++
> src/conf/domain_conf.h | 1 +
> src/vmx/vmx.c | 77 ++++++++++++++-----
> .../network-interface-mac-check.xml | 29 +++++++
> tests/genericxml2xmltest.c | 2 +
> .../vmx2xml-case-insensitive-1.xml | 2 +-
> .../vmx2xml-case-insensitive-2.xml | 2 +-
> .../vmx2xmldata/vmx2xml-esx-in-the-wild-1.xml | 2 +-
> .../vmx2xmldata/vmx2xml-esx-in-the-wild-2.xml | 2 +-
> .../vmx2xmldata/vmx2xml-esx-in-the-wild-3.xml | 2 +-
> .../vmx2xmldata/vmx2xml-esx-in-the-wild-4.xml | 4 +-
> .../vmx2xmldata/vmx2xml-esx-in-the-wild-5.xml | 2 +-
> .../vmx2xmldata/vmx2xml-esx-in-the-wild-6.xml | 2 +-
> .../vmx2xmldata/vmx2xml-esx-in-the-wild-7.xml | 2 +-
> .../vmx2xmldata/vmx2xml-esx-in-the-wild-8.xml | 20 ++---
> .../vmx2xmldata/vmx2xml-esx-in-the-wild-9.xml | 2 +-
> .../vmx2xmldata/vmx2xml-ethernet-bridged.xml | 2 +-
> tests/vmx2xmldata/vmx2xml-ethernet-custom.xml | 2 +-
> tests/vmx2xmldata/vmx2xml-ethernet-e1000.xml | 2 +-
> .../vmx2xml-ethernet-generated.xml | 2 +-
> tests/vmx2xmldata/vmx2xml-ethernet-nat.xml | 2 +-
> tests/vmx2xmldata/vmx2xml-ethernet-other.xml | 2 +-
> tests/vmx2xmldata/vmx2xml-ethernet-static.xml | 2 +-
> .../vmx2xmldata/vmx2xml-ethernet-vmxnet2.xml | 2 +-
> tests/vmx2xmldata/vmx2xml-ethernet-vpx.xml | 2 +-
> .../vmx2xml-fusion-in-the-wild-1.xml | 4 +-
> .../vmx2xmldata/vmx2xml-gsx-in-the-wild-1.xml | 2 +-
> .../vmx2xmldata/vmx2xml-gsx-in-the-wild-2.xml | 2 +-
> .../vmx2xmldata/vmx2xml-gsx-in-the-wild-3.xml | 4 +-
> .../vmx2xmldata/vmx2xml-gsx-in-the-wild-4.xml | 2 +-
> .../vmx2xmldata/vmx2xml-ws-in-the-wild-1.xml | 2 +-
> .../vmx2xmldata/vmx2xml-ws-in-the-wild-2.xml | 2 +-
> .../xml2vmxdata/xml2vmx-ethernet-mac-type.vmx | 7 +-
> .../xml2vmxdata/xml2vmx-ethernet-mac-type.xml | 4 +-
> 35 files changed, 154 insertions(+), 63 deletions(-)
> create mode 100644 tests/genericxml2xmlindata/network-interface-mac-check.xml
>
Reviewed-by: Michal Privoznik <mprivozn at redhat.com>
Michal
More information about the libvir-list
mailing list