[Libvirt-cim] [V4 PATCH 2/8] vlan library - add missing header files in libnl-devel 1.1

Sharad Mishra snmishra at us.ibm.com
Wed Jan 18 22:12:46 UTC 2012


I guess we are okay including the LGPL code written by others in
libvirt-cim. The only issue I see is the one that DV raised earlier ... now
it becomes our baby to maintain.

Regards,
Sharad Mishra
Open Virtualization
Linux Technology Center
IBM

libvirt-cim-bounces at redhat.com wrote on 01/18/2012 01:41:44 AM:

> Wenchao Xia <xiawenc at linux.vnet.ibm.com>
> Sent by: libvirt-cim-bounces at redhat.com
>
> 01/18/2012 01:41 AM
>
> Please respond to
> List for discussion and development of libvirt CIM
<libvirt-cim at redhat.com>
>
> To
>
> libvirt-cim at redhat.com
>
> cc
>
> Wenchao Xia <xiawenc at cn.ibm.com>
>
> Subject
>
> [Libvirt-cim] [V4 PATCH 2/8] vlan library - add missing header files
> in libnl-devel 1.1
>
>     Because libnl-devel-1.1 package missed some header files even
iffunctions
> are included in its .so file, they are directly be put here. Codes
> are from the
> help documents that libnl-devel-1.1 provides.
>
> Signed-off-by: Wenchao Xia <xiawenc at cn.ibm.com>
> ---
>  libnetwork/include/netlink/route/link/info-api.h |   71 +++++++++++
> +++++++++++
>  libnetwork/include/netlink/route/link/vlan.h     |   55 ++++++++++++++++
+
>  2 files changed, 126 insertions(+), 0 deletions(-)
>  create mode 100644 libnetwork/include/netlink/route/link/info-api.h
>  create mode 100644 libnetwork/include/netlink/route/link/vlan.h
>
> diff --git a/libnetwork/include/netlink/route/link/info-api.h b/
> libnetwork/include/netlink/route/link/info-api.h
> new file mode 100644
> index 0000000..7a2e498
> --- /dev/null
> +++ b/libnetwork/include/netlink/route/link/info-api.h
> @@ -0,0 +1,71 @@
> +/*
> + * netlink/route/link/info-api.h        Link Info API
> + *
> + *      This library is free software; you can redistribute it and/or
> + *      modify it under the terms of the GNU Lesser General Public
> + *      License as published by the Free Software Foundation version 2.1
> + *      of the License.
> + *
> + * Copyright (c) 2003-2008 Thomas Graf <tgraf at suug.ch>
> + */
> +
> +#ifndef NETLINK_LINK_INFO_API_H_
> +#define NETLINK_LINK_INFO_API_H_
> +
> +#include <netlink/netlink.h>
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +/**
> + * @ingroup link_info
> + *
> + * Link info operations
> + */
> +struct rtnl_link_info_ops
> +{
> +        /** Name of operations, must match name on kernel side */
> +        char *          io_name;
> +
> +        /** Reference count (internal, do not use) */
> +        int             io_refcnt;
> +
> +        /** Called to assign an info type to a link.
> +         * Has to allocate enough resources to hold attributes. Can
> +         * use link->l_info to store a pointer. */
> +        int           (*io_alloc)(struct rtnl_link *);
> +
> +        /** Called to parse the link info attribute.
> +         * Must parse the attribute and assign all values to the link.
> +         */
> +        int           (*io_parse)(struct rtnl_link *,
> +                                  struct nlattr *,
> +                                  struct nlattr *);
> +
> +        /** Called when the link object is dumped.
> +         * Must dump the info type specific attributes. */
> +        int           (*io_dump[NL_DUMP_MAX+1])(struct rtnl_link *,
> +                                                struct
> nl_dump_params *, int);
> +
> +        /** Called when a link object is cloned.
> +         * Must clone all info type specific attributes. */
> +        int           (*io_clone)(struct rtnl_link *, struct rtnl_link
*);
> +
> +        /** Called when construction a link netlink message.
> +         * Must append all info type specific attributes to the message.
*/
> +        int           (*io_put_attrs)(struct nl_msg *, struct rtnl_link
*);
> +
> +        /** Called to release all resources previously allocated
> +         * in either io_alloc() or io_parse(). */
> +        void          (*io_free)(struct rtnl_link *);
> +
> +        struct rtnl_link_info_ops *     io_next;
> +};
> +
> +extern struct rtnl_link_info_ops *rtnl_link_info_ops_lookup(const char
*);
> +
> +extern int                      rtnl_link_register_info(struct
> rtnl_link_info_ops *);
> +extern int                      rtnl_link_unregister_info(struct
> rtnl_link_info_ops *);
> +
> +#endif
> diff --git a/libnetwork/include/netlink/route/link/vlan.h b/
> libnetwork/include/netlink/route/link/vlan.h
> new file mode 100644
> index 0000000..80aa921
> --- /dev/null
> +++ b/libnetwork/include/netlink/route/link/vlan.h
> @@ -0,0 +1,55 @@
> +/*
> + * netlink/route/link/vlan.h            VLAN interface
> + *
> + *      This library is free software; you can redistribute it and/or
> + *      modify it under the terms of the GNU Lesser General Public
> + *      License as published by the Free Software Foundation version 2.1
> + *      of the License.
> + *
> + * Copyright (c) 2003-2008 Thomas Graf <tgraf at suug.ch>
> + */
> +
> +#ifndef NETLINK_LINK_VLAN_H_
> +#define NETLINK_LINK_VLAN_H_
> +
> +#include <netlink/netlink.h>
> +#include <netlink/route/link.h>
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +struct vlan_map
> +{
> +        uint32_t                vm_from;
> +        uint32_t                vm_to;
> +};
> +
> +#define VLAN_PRIO_MAX 7
> +
> +extern char *           rtnl_link_vlan_flags2str(int, char *, size_t);
> +extern int              rtnl_link_vlan_str2flags(const char *);
> +
> +extern int              rtnl_link_vlan_set_id(struct rtnl_link *, int);
> +extern int              rtnl_link_vlan_get_id(struct rtnl_link *);
> +
> +extern int              rtnl_link_vlan_set_flags(struct rtnl_link *,
> +                                                 unsigned int);
> +extern int              rtnl_link_vlan_unset_flags(struct rtnl_link *,
> +                                                   unsigned int);
> +extern unsigned int     rtnl_link_vlan_get_flags(struct rtnl_link *);
> +
> +extern int              rtnl_link_vlan_set_ingress_map(struct rtnl_link
*,
> +                                                       int, uint32_t);
> +extern uint32_t *       rtnl_link_vlan_get_ingress_map(struct rtnl_link
*);
> +
> +extern int              rtnl_link_vlan_set_egress_map(struct rtnl_link
*,
> +                                                      uint32_t, int);
> +extern struct vlan_map *rtnl_link_vlan_get_egress_map(struct rtnl_link
*,
> +                                                      int *);
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif
> --
> 1.7.1
>
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>




More information about the Libvirt-cim mailing list