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

Wayne Xia xiawenc at linux.vnet.ibm.com
Thu Jan 19 03:09:22 UTC 2012


于 2012-1-19 9:04, Chip Vincent 写道:
> I installed the package and the file is indeed missing even though it is
> advertised by the rpm (I'm using RHEL 6.2--is this bug in other
> distros?). As such, I don't see another option short of manually
> creating them, which is also ours to maintain.IMO, you might as well
> place this in the libxkutil directory where we keep the other general
> purpose headers.
>
     it is a burden to take care of the baby header files by ourself,
but I think libnl-1 project have stopped to release newer version,
instead they are working on libnl-3, so these header files would not
need to be updated in the future, if we use libnl-1.

> On 01/18/2012 05:12 PM, Sharad Mishra wrote:
>> 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>
>>> + */
>>> +
>>> +#ifndefNETLINK_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
>>>
>> _______________________________________________
>> Libvirt-cim mailing list
>> Libvirt-cim at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvirt-cim
>>
>
>


-- 
Best Regards

Wayne Xia
mail:xiawenc at linux.vnet.ibm.com
tel:86-010-82450803




More information about the Libvirt-cim mailing list