dect
/
libnl
Archived
13
0
Fork 0
Commit Graph

405 Commits

Author SHA1 Message Date
Thomas Graf 4d2383620b bonding link module 2011-07-21 16:38:04 +02:00
Thomas Graf 50074732af more documentation updates
- improved stylesheets for both doxygen and asciidoc
 - use of xml doxygen layout
 - python script to resolve <<foo>> asciidoc references to
   <<foo, title>> based on the target caption
 - graphics for netlink and netlink error headers
 - more link documentation
2011-07-21 16:24:31 +02:00
Thomas Graf dea6de42f6 Include IFLA_LINK in link messages 2011-07-21 12:27:52 +02:00
Thomas Graf 7d484555f6 Documentation updates
- update to asciidoc 8.6.5
- added doc/README
- switched to toc2
- started adding link documentation
2011-07-18 08:50:42 +02:00
Thomas Graf 63548f5664 documentation updates 2011-07-14 12:48:00 +02:00
Thomas Graf 21d52eabba Support for NLM_F_INTR
Check if a dump was interrupted and needs to be redone
2011-07-14 10:51:49 +02:00
Thomas Graf dba0e91a09 Merge branch 'master' of master.kernel.org:/pub/scm/libs/netlink/libnl 2011-06-21 11:34:28 +02:00
Christian Ruppert 4806c5c058 Don't redefine offsetof when already defined by e.g. stddef.h 2011-06-21 11:33:44 +02:00
Thomas Graf ca0fc75580 socket: Set SOCK_CLOEXEC if available
Reported by Марк Коренберг <socketpair@gmail.com>
2011-06-15 17:37:28 +02:00
Thomas Graf c881908ac7 neigh: include ndm flags while building message
Reported by jeff courington <jeff_courington@hotmail.com>
2011-06-15 16:23:35 +02:00
Thomas Graf e56eb065b2 Work on libnl-python
Changes too numerous to describe them
2011-06-10 13:55:29 +02:00
Thomas Graf 09210d9619 HTB: Add support for level and direct pkt stats, complete access functions
- Adds support for htb class level and direct packet
  statistics
- Complete all get/set access functions
- Complete error handling
- Documentation
2011-06-09 13:32:13 +02:00
Thomas Graf 053c93fa8a Update local copies of include/linux 2011-06-09 12:56:52 +02:00
Thomas Graf aba3689937 Provide documentation for rtnl_tc_data() and rtnl_tc_data_check() 2011-06-09 12:30:15 +02:00
Thomas Graf 58e0e1eda9 Add nl_rate2str() 2011-06-09 12:29:21 +02:00
Thomas Graf ed69b2a79b Add rtnl_tc_data_check()
Behaves like rtnl_tc_data() but verifies that the traffic control
object is of the expected type.
2011-06-09 12:28:04 +02:00
Thomas Graf 4cb1666fe1 Provide silent variation of nl_cache_require()
Use in addr and tc layer to avoid warnings being printed if no
cache is available.
2011-05-11 09:33:29 +02:00
Thomas Graf f443be6e74 python interface to netlink protocols
currently includes experimental support for links, addresses
and some traffic control
2011-05-10 12:17:33 +02:00
Thomas Graf 023c662327 Use name "global" instead of "universe" for largest scope
This name is more widespread and easier to understand even though
it is less correct.
2011-05-04 17:47:09 +02:00
Thomas Graf d44c31da5f addr: store link object and provide rtnl_addr_get()
stores rtnl_link object in address if cache is availble. Provide access
via rtnl_addr_get_link() and rtnl_addr_set_link().

Add rtnl_addr_get() which searches a address cache for an address
matching ifindex and local address.
2011-05-03 11:48:14 +02:00
Romary Sonrier cb6a089d80 Adding rule with "From" option doesn't work
OK i found the bug, is is the patch !!

Can someone push it into the git tree ?
Regards,

Romary Sonrier

=========================
My analysis:

I guess that the pay load is *struct fib_rule_hdr*
struct fib_rule_hdr {
__u8 family;
__u8 dst_len;
__u8 src_len;
__u8 tos;

__u8 table;
__u8 res1; /* reserved */
__u8 res2; /* reserved */
__u8 action;

__u32 flags;
};

> [PAYLOAD] 12 octets
> 02 00 00 00 0a 00 00 01 00 00 00 00 ............
so

family = 02 , fine

table = 10, fine
but
src_len =0 !!!! should be 32
2011-05-03 11:40:21 +02:00
Thomas Graf cc33b0940f Add missing declaration of rtnl_tc_get_link() 2011-04-21 14:58:05 +02:00
Thomas Graf daefa76959 Provide rtnl_tc_get_link() and fix link refcnt
Adds rtnl_tc_get_link() returning the link associated with a tc
object.

Don't clone link associated with tc object when cloning the tc
object, refer to same link instead and bump refcnt.

Fix refcnt leak when assigning link in msg parser.
2011-04-21 14:48:54 +02:00
Thomas Graf 83f14112e2 Fix clone() of AF specific link data
Passed the original link to ao_clone() instead of the new one.
2011-04-21 14:46:06 +02:00
Thomas Graf c18730ddf6 Set tc->tc_link if link cache is available
When parsing tc objects, lookup link in link cache if such a
cache is available.
2011-04-20 16:30:49 +02:00
Thomas Graf fac4885608 Improve readability of classid string representation
1: is more readable than 01:
2011-04-20 16:29:42 +02:00
Thomas Graf 4c6dd3a8bd Expose <netlink/route/link/inet.h> 2011-04-20 11:53:04 +02:00
Thomas Graf 36b04747c7 Support link info types with no payload 2011-04-19 09:57:35 +02:00
Thomas Graf 3d70697e4c Add support for ARPHRD_NONE 2011-04-19 09:57:14 +02:00
Thomas Graf 8ffab45698 export rtnl_link_add() and rtnl_link_build_add_request() 2011-04-15 15:31:47 +02:00
Thomas Graf 5a6610190a dummy interface support 2011-04-15 15:31:22 +02:00
Thomas Graf e81814a29f Support for rtnl_link_add()
API for adding virtual links
2011-04-15 15:30:46 +02:00
Thomas Graf 96bc6d6f66 Improve rtnl_link_change() behaviour
- avoid unncessary name change requests
    The kernel does not check if the specified IFNAME is different
    from the current name. It assumes that if IFNAME and ifindex
    are both specified, a name change is requested. Therefore avoid
    specyfing IFNAME if ifindex is provided and original and new
    name are identical.
- move link building to own function (to allow link add later on)
- error if immutable changes have been made
- better documentation
2011-04-13 16:42:34 +02:00
Thomas Graf b5918b5ce3 fix line removed by mistake
This line was removed by mistake in the last commit
2011-04-11 12:40:40 +02:00
Thomas Graf 48d543cfdf API to issue direct GET requests to the kernel
Provide nl_pickup() to pick up an answer from a netlink request and parse
it using the supplied parser.

Add rtnl_link_get_kernel() which sends an RTM_GETLINK to the kernel to
fetch a single link directly from the kernel. This can be faster than
dumping the whole table, especially if lots of links are configured.
2011-04-11 12:34:01 +02:00
Thomas Graf 41fb241b7b link: Provide rtnl_link_delete() to delete virtual links
Takes a link object and extracts ifindex and name to build a deletion request
message to delete virtual network links.
2011-04-10 11:02:47 +02:00
Thomas Graf 0893aafcec link: Make return and argument type match 2011-04-10 10:24:12 +02:00
Thomas Graf 23c27b4738 Provide nl_cache_set_arg{1,2}() to specify cache args
Added based on a RFE. This is required if allocation and
(re)filling is to be splitted.
2011-04-10 10:22:27 +02:00
Thomas Graf ef327ffd44 Provide nl_object_dump_buf() to easily dump to buffers 2011-04-10 10:22:01 +02:00
Thomas Graf 2dbe7d7cfc Initialize dump buffer in case caller missed it
(Set an end to all the bug reports of applications failing
to do so.)
2011-04-10 10:18:04 +02:00
Thomas Graf 475dffa699 Provide TC_HANDLE(maj, min) macro to generate tc handles 2011-04-01 16:25:57 +02:00
Thomas Graf 350b15f9d1 Move to asciidoc
The core library documentation has been converted to use asciidoc. It
provides better flexibility in creating documentation such as tables
and more powerful formatting rules.

The doxygen based API reference remains and three scripts have been
added to:
 - gen-tags.sh: extract tag information from doxygen reference
 - tags2dict.sh: generate a name=link dictionary file
 - doxygen-link.py: replace all references in the asciidoc documentation
                    refering to API functions, struct, etc. with a link
		    into the doxygen API reference.

'make gendoc' continue to generate all documentation.

The following tools are required to generate documentation:
 - asciidoc
 - mscgen
 - asciidoc mscgen plugin
 - pygments
 - xmlstarlet
2011-03-31 14:25:57 +02:00
Thomas Graf 7c620500bb trafic class/classifer API improvements and documentation
- removed dead functions in header files
- deprecated rtnl_class_foreach_*() functions due to their missing
  handling possibility of OOM situations
- improved API documentation
2011-03-29 12:41:59 +02:00
Thomas Graf 747b892c91 Qdisc API improvements and documentation
Deprecated the functions rtnl_qdisc_change() and
rtnl_qdisc_build_change_request() for their lack of being able to
specify flags. The new functions rtnl_qdisc_update() and
rtnl_qdisc_build_update_request() may be used instead. The old
functions are still available though. However, rtnl_qdisc_update()
no longer implies NLM_F_REPLACE, it has to specified implicitely
to allow updating a qdisc without risking to replace another qdisc.

Included detailed documentation of qdisc addition/update/deletion.

Introduced APPBUG() macro to let application developer know of
API abuse.
2011-03-25 18:13:19 +01:00
Thomas Graf 23845e942c Add nl_send_sync()
Function which sends message using nl_send_auto(), frees the message and
waits for ACK/error message (if auto-ack is not disabled).
2011-03-25 18:11:52 +01:00
Nicolas Sitbon 7e9d5f69e5 correctly handle the object not found case
Removing non existent route (both ipv4 and ipv6) using
rtnl_route_delete return NLE_FAILURE generic error code. After
investigation, it seems the linux kernel return -ESRCH in that case
(see http://lxr.linux.no/linux+v2.6.38/net/ipv6/route.c#L1367). Same
behaviour apply for removing non existent address. The function
nl_syserr2nlerr (lib/error.c) which is responsible for translating
from kernel error to libnl error doesn't handle ESRCH.
2011-03-25 16:51:31 +01:00
Thomas Graf e4b507e290 Deprecate rtnl_qdisc_foreach_child() and rtnl_qdisc_foreach_cls()
Their usage is not completely safe, it is not possible to handle
the out of memory situation of the allocate filter. It is very
unlikely for this to cause any problem though.

The functions are still accessible but gcc will warn about their
deprecation.
2011-03-24 22:50:11 +01:00
Thomas Graf f523f297f7 Allow NLSYSCONFDIR environment variable to overwrite built-in sysconfdir 2011-03-24 21:14:52 +01:00
Thomas Graf 8d5493418a Cleanup <netlink/route/qdisc.h>
- remove dead prototypes
- reformat
2011-03-24 20:57:43 +01:00
Thomas Graf a62bfdb8e0 Check if all mandatory attributes are present in rtnl_tc_msg_build()
TCA_ATTR_IFINDEX | TCA_ATTR_PARENT | TCA_ATTR_KIND
2011-03-24 17:00:38 +01:00