
Wenchao Xia <xiawenc@linux.vnet.ibm.com> Sent by: libvirt-cim-bounces@redhat.com
01/18/2012 01:41 AM
Please respond to List for discussion and development of libvirt CIM <libvirt-cim@redhat.com>
To
libvirt-cim@redhat.com
cc
Wenchao Xia <xiawenc@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@cn.ibm.com> --- libnetwork/include/netlink/route/link/info-api.h | 71 +++++++++++ +++++++++++ libnetwork/include/netlink/route/link/vlan.h | 55 ++++++++++++++++
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@redhat.com wrote on 01/18/2012 01:41:44 AM: +
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@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@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@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-cim