On 06/08/2012 02:04 AM, Michal Privoznik wrote:
This feature has been requested for a very long time. However,
we had to wait for guest agent to obtain reliable results as
user might create totally different structure of interfaces than
seen from outside (e.g. bonding, virtual interfaces, etc.).
That's the main reason why sniffing for domain traffic can
return bogus results. Fortunately, qemu guest agent implement
requested part for a while so nothing holds us back anymore.
How hard would it be to wire this API up to _also_ have the option of
using our nwfilter IP learning code (first packet detection mode has
been here for a while, and DHCP snooping mode was just added)? Use of
the flags parameter should make it possible to force which method we
attempt, use of flags==0 chooses the best method possible (GA if
present, otherwise fall back to nwfilter IP learning).
This API is called virDomainInterfacesAddresses (okay, maybe
too many plurals) and returns a dynamically allocated array
of virDomainInterface struct. The great disadvantage once
this gets released, it's written in stone and we cannot change
or add an item into it. Therefore we might add a padding into
it - something like reserved for future use. On the other hand,
everything important is already there - what else we will want
to add? :)
But that's why we invented virTypedParameter. If you would return an
allocated array of virTypedParameter instead of a hard-coded
virDomainInterface struct, then you have the flexibility to add new
named parameters down the road without ABI concerns. I haven't looked
closely at your proposal yet, but just reading this one paragraph makes
me think we need to rework it into using typed parameters.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org