[libvirt] [PATCH 2/2] macvtap: listen for netlink messages from lldpad

Daniel P. Berrange berrange at redhat.com
Thu Jan 26 17:00:03 UTC 2012


On Fri, Jan 20, 2012 at 03:56:27PM +0100, D. Herrendoerfer wrote:
> From: "D. Herrendoerfer" <d.herrendoerfer at herrendoerfer.name>
> 
> Make macvtap setup code register a callback to handle link status
> changes sent by lldpad.
> 
> This is prototype code for reference only.
> 
> Signed-off-by: D. Herrendoerfer <d.herrendoerfer at herrendoerfer.name>
> ---
>  src/util/virnetdevmacvlan.c |  161 ++++++++++++++++++++++++++++++++++++++++++-
>  src/util/virnetdevmacvlan.h |    1 +
>  2 files changed, 161 insertions(+), 1 deletions(-)
> 
> diff --git a/src/util/virnetdevmacvlan.c b/src/util/virnetdevmacvlan.c
> index 5e55b72..e4a280b 100644
> --- a/src/util/virnetdevmacvlan.c
> +++ b/src/util/virnetdevmacvlan.c
> @@ -46,7 +46,6 @@ VIR_ENUM_IMPL(virNetDevMacVLanMode, VIR_NETDEV_MACVLAN_MODE_LAST,
>                "passthrough")
>  
>  #if WITH_MACVTAP
> -
>  # include <stdint.h>
>  # include <stdio.h>
>  # include <errno.h>
> @@ -57,6 +56,8 @@ VIR_ENUM_IMPL(virNetDevMacVLanMode, VIR_NETDEV_MACVLAN_MODE_LAST,
>  # include <linux/if.h>
>  # include <linux/if_tun.h>
>  
> +# include <c-ctype.h>
> +
>  /* Older kernels lacked this enum value.  */
>  # if !HAVE_DECL_MACVLAN_MODE_PASSTHRU
>  #  define MACVLAN_MODE_PASSTHRU 8
> @@ -67,6 +68,7 @@ VIR_ENUM_IMPL(virNetDevMacVLanMode, VIR_NETDEV_MACVLAN_MODE_LAST,
>  # include "uuid.h"
>  # include "virfile.h"
>  # include "netlink.h"
> +# include "netlink-event.h"
>  # include "virnetdev.h"
>  
>  # define MACVTAP_NAME_PREFIX	"macvtap"
> @@ -75,6 +77,7 @@ VIR_ENUM_IMPL(virNetDevMacVLanMode, VIR_NETDEV_MACVLAN_MODE_LAST,
>  # define MACVLAN_NAME_PREFIX	"macvlan"
>  # define MACVLAN_NAME_PATTERN	"macvlan%d"
>  
> +
>  /**
>   * virNetDevMacVLanCreate:
>   *
> @@ -445,6 +448,142 @@ static const uint32_t modeMap[VIR_NETDEV_MACVLAN_MODE_LAST] = {
>      [VIR_NETDEV_MACVLAN_MODE_PASSTHRU] = MACVLAN_MODE_PASSTHRU,
>  };
>  
> +# define LLDPAD_PID_FILE  "/var/run/lldpad.pid"
> +
> +static uint32_t
> +GetLldpadPid(void) {

Please use standard name prefixes for all functions & structs, even
if they are static. eg  virNetDevMacVLanGetLldpadPid()


> +/* Struct to hold the state and configuration of a 802.1qbg port */
> +struct netlinkCallbackData {

struct    virNetDevMacVLanCallbackData


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