[libvirt] [PATCHv3 12/16] virNetDevSetIPv4Address: libnl implementation
Daniel P. Berrange
berrange at redhat.com
Wed Oct 22 10:20:24 UTC 2014
On Fri, Oct 10, 2014 at 02:04:04PM +0200, Cédric Bosdonnat wrote:
> Add a default implementation of virNetDevSetIPv4Address using netlink
> and libnl. This avoids requiring /usr/sbin/ip or /usr/sbin/ifconfig
> external binaries.
> ---
> src/libvirt_private.syms | 1 +
> src/util/virnetdev.c | 136 +++++++++++++++++++++++++++++++++++++++++++++--
> src/util/virnetlink.c | 38 +++++++++++++
> src/util/virnetlink.h | 2 +
> 4 files changed, 174 insertions(+), 3 deletions(-)
>
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index b55bf35..f96387f 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -1710,6 +1710,7 @@ virNetlinkEventServiceLocalPid;
> virNetlinkEventServiceStart;
> virNetlinkEventServiceStop;
> virNetlinkEventServiceStopAll;
> +virNetlinkGetErrorCode;
> virNetlinkShutdown;
> virNetlinkStartup;
>
> diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
> index db5623a..e4a005a 100644
> --- a/src/util/virnetdev.c
> +++ b/src/util/virnetdev.c
> @@ -786,6 +786,88 @@ int virNetDevGetVLanID(const char *ifname ATTRIBUTE_UNUSED,
> #endif /* ! SIOCGIFVLAN */
>
>
> +#if defined(__linux__) && defined(HAVE_LIBNL)
> +
> +static int
> +virNetDevGetIPAddressBinary(virSocketAddr *addr, void **data, size_t *len)
> +{
> + if (!addr)
> + return -1;
> +
> + switch (VIR_SOCKET_ADDR_FAMILY(addr)) {
> + case AF_INET:
> + *data = &addr->data.inet4.sin_addr;
> + *len = sizeof(struct in_addr);
> + break;
> + case AF_INET6:
> + *data = &addr->data.inet6.sin6_addr;
> + *len = sizeof(struct in6_addr);
> + break;
> + default:
> + return -1;
> + }
> + return 0;
> +}
> +
> +static struct nl_msg
> +*virNetDevCreateNetlinkAddressMessage(int messageType,
I'd normally expect the '*' on the same line as the return
type.
> + const char *ifname,
> + virSocketAddr *addr,
> + unsigned int prefix,
> + virSocketAddr *broadcast)
> +{
ACK
Regards,
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 :|
More information about the libvir-list
mailing list