I'm going to E2E test this before I comment further.
One thing I noticed though: I'm not sure bridge attachment is going to belong in the same code path as network attachment (the current default).
That is, if I specify a bridge to attach to, I'm going to provide a bridge name that I'd like the VM to be attached to. That might be something like 'br0'. Whereas if I'm attaching to a /network/, in libvirt terms, that's going to be something like 'default' or 'maas', which may in turn attach to a bridge at the end of the operation (such as 'virbr0').
So I think we need an XML-attachment path similar to macvlan for the bridge use case.
I'm going to E2E test this before I comment further.
One thing I noticed though: I'm not sure bridge attachment is going to belong in the same code path as network attachment (the current default).
That is, if I specify a bridge to attach to, I'm going to provide a bridge name that I'd like the VM to be attached to. That might be something like 'br0'. Whereas if I'm attaching to a /network/, in libvirt terms, that's going to be something like 'default' or 'maas', which may in turn attach to a bridge at the end of the operation (such as 'virbr0').
So I think we need an XML-attachment path similar to macvlan for the bridge use case.