On Tue, Oct 01, 2013 at 05:39:02PM -0600, Eric Blake wrote:
On 09/26/2013 02:08 AM, Nehal J Wani wrote:
> Introduce 3 new APIs, virNetworkGetDHCPLeases, virNetworkGetDHCPLeasesForMAC
> and virNetworkDHCPLeaseFree.
>
> * virNetworkGetDHCPLeases: returns the dhcp leases information for a given
> virtual network.
>
> For DHCPv4, the information includes:
> - Expirytime
> - MAC Address
> - IPv4 address (with type and prefix)
> - Hostname (can be NULL)
> - Client ID (can be NULL)
>
> For DHCPv6, the information includes
> - Expirytime
> - IAID
> - IPv6 address (with type and prefix)
> - Hostname (can be NULL)
> - Client DUID
>
> * virNetworkGetDHCPLeasesForMAC: returns the dhcp leases information for a
> given virtual network and specified MAC Address.
>
> * virNetworkDHCPLeaseFree: allows the upper layer application to free the
> network interface object conveniently.
>
> There is no support for flags, so user is expected to pass 0 for
> both the APIs.
> +typedef struct _virNetworkDHCPLeases virNetworkDHCPLeases;
> +typedef virNetworkDHCPLeases *virNetworkDHCPLeasesPtr;
> +struct _virNetworkDHCPLeases {
> + long long expirytime; /* Seconds since epoch */
> + union {
> + char *mac; /* MAC address */
> + unsigned long iaid; /* Identity association identifier (IAID) */
> + } id;
I'm not sure I like iaid - the whole point of this interface was to
return IP addresses associated with a MAC. Either the iaid is important
and deserves a separate field, or all we care about is the MAC address.
Not to mention that you didn't document which leg of the id union is
valid based on the type discriminator.
Agreed, we want the MAC address to be unconditionally available
here. IMHO the IAID is not something we care about exposing. That
is a impl detail of the DHCP comms protocol that is not useful
to people outside.
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|