summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Let git ignore generated pktloc source filesThomas Graf2010-07-031-0/+4
|
* Fix compile warning in utils.cThomas Graf2010-07-031-1/+1
|
* Fix compile warning in nl.cThomas Graf2010-07-031-1/+1
|
* Packet Location InterfaceThomas Graf2010-07-025-2/+336
|
* Fix rule attribute comparisonPatrick McHardy2010-04-191-0/+2
| | | | | | | | | | | | Rules don't have unique identifiers, so all attributes are compared by initializing the ID mask to ~0. This doesn't work however since nl_object_identical verifies whether the ID attributes are actually present before comparing the objects, which is never the case. Work around by using the intersection of present attributes when comparing two rule objects. Signed-off-by: Patrick McHardy <kaber@trash.net>
* addr: add NL_DUMP_ENV functionPatrick McHardy2010-04-191-0/+76
| | | | Signed-off-by: Patrick McHardy <kaber@trash.net>
* addr: restore anycast functionsPatrick McHardy2010-04-191-0/+32
| | | | | | Seems it got lost during some cleanups. Signed-off-by: Patrick McHardy <kaber@trash.net>
* neigh: fix id_attrs to include ifindexPatrick McHardy2010-04-191-1/+1
| | | | | | | Neighbour entries for the same destination may exist on multiple interfaces. Include the interface in the ID attributes. Signed-off-by: Patrick McHardy <kaber@trash.net>
* cache: properly invoke change_cb for deleted objects in nl_cache_resync()Patrick McHardy2010-04-191-2/+8
| | | | | | | When resyncing a cache, there are no delete messages, so they need to be synthesized for deleted objects. Signed-off-by: Patrick McHardy <kaber@trash.net>
* Fix a bug when calculating ticks_per_usecJose Ignacio Naranjo Hernández2010-03-101-19/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've noticed a wrong behavior when setting up some delays in a netem qdisc. I will try to make the things easier for the reader describing the calls path. To set up a delay (or jitter...) I use 'rtnl_netem_set_delay' which requires an int parameter that tells the delay in micro seconds. Inside this func, the delay is set up with the help of 'nl_us2ticks', which is just an arithmetic operation (us * ticks_per_usec), where us is the input parameter and ticks_per_usec is a global variable initialized in 'get_psched_settings'. And here is the problem: If this variable is going to be calculated using '/proc/net/psched', I think the file scan is not done properly. I don't understand what the meaning of the asterisk is here: int r = fscanf(fd, "%08x%08x%08x%*08x", &tick, &us, &nom); if (4 == r && nom == 1000000 && !got_tick) ticks_per_usec = (double)tick/(double)us; The execution path never gets in the if statement, because r is always 3, and if the fourth parameter is read (avoiding the asterisk), there is no variable to store it in, so it comes a segv. In my opinion we can get rid of the if statement, because I think the proc psched file has always a fixed format of 4 parameters, and 'nom' is always 1000000 (http://lxr.linux.no/#linux+v2.6.32/net/sched/sch_api.c#L1678). Find attached a patch I did, if I am correct.
* new function nfnl_queue_msg_send_verdict_payload()Karl Hiramoto2010-03-102-0/+62
| | | | | | | | | nfnl_queue_msg_send_verdict_payload() will to send the verdict, mark, and possibly changed payload through the netlink socket. Add a few docbook comments in other funcs. Signed-off-by: Karl Hiramoto <karl@hiramoto.org>
* new feature nl_send_iovec(), nl_auto_complete() and code refactoring.Karl Hiramoto2010-03-101-24/+45
| | | | | | | | | | | | | Create new function nl_send_iovec() to be used to send multiple 'struct iovec' through the netlink socket. This will be used for NF_QUEUE, to send packet payload of a modified packet. Refactor nl_send() to use nl_send_iovec() sending a single struct iovec. Create new function nl_auto_complete() by refactoring nl_send_auto_complete(), so other functions that call nl_send may also use nl_auto_complete() Signed-off-by: Karl Hiramoto <karl@hiramoto.org>
* one more fix, u32.cDenys Fedoryschenko2009-12-071-2/+1
| | | | | | One more segfault, also nl-tctree-list , fix Probably need reformat for better look Patch attached
* invalid comma cause segfault for nl-tctree-list, tbf.cDenys Fedoryschenko2009-12-071-1/+1
| | | | | | I notice segfault while running nl-tctree-list for tbf qdisc. Patch that fix this typo is attached.
* libnl: add ERANGE to errno translationPatrick McHardy2009-11-101-0/+1
| | | | Signed-off-by: Patrick McHardy <kaber@trash.net>
* libnl: fix automake breakagePatrick McHardy2009-11-101-1/+1
| | | | | | | | libnl-route must be handled before libnl-nf in lib_LTLIBRARIES since the later depends on the former. Additionally nf-monitor, nl-list-caches, nl-list-sockets and nl-util-addr have been dropped from the Makefile. Signed-off-by: Patrick McHardy <kaber@trash.net>
* - Compile with _GNU_SOURCEThomas Graf2009-09-021-2/+2
| | | | - Fixed classifier.c -> cls.c
* Merge branch 'master' of git://dev.medozas.de/libnlThomas Graf2009-09-023-129/+43
|\ | | | | | | | | | | Conflicts: lib/Makefile src/Makefile
| * build: make use of library dependenciesJan Engelhardt2009-07-051-0/+3
| |
| * Move to automake-based buildJan Engelhardt2009-06-223-128/+40
| | | | | | | | | | | | | | | | | | | | | | | | Issues solved: * PACKAGE_VERSION was abused for SOVERSION * unneeded DEP stage * did not support out-of-tree builds * no way to turn off silent mode * overriding CFLAGS at make time was not supported * no static libs were provided Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
* | Add support for getting and deleting queueing classes.olc2009-09-021-0/+78
| |
* | Fix rtnl_addr cachingDan Winship2009-09-021-2/+1
| | | | | | | | | | | | addr_obj.ops.oo_id_attrs included ADDR_ATTR_PEER, so any address that didn't have a peer address set would compare as unequal to itself, meaning it could never be removed from a cache after it was added, etc.
* | Patch for unexpectedly aligned messagesMarc de Kruijf2009-09-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | I found the following bug, where nlmsg_ok() in lib/msg.c would incorrectly return 'true' when the input argument 'remaining' was a negative number. This happens when the message is not aligned the way that libnl expects (although it is still legal). In the comparison of the signed and unsigned numbers on line 284, the signed number gets converted to an unsigned number, which is unexpected and naturally produces a bug. My patch is below. The cast is ugly, but it fixes the problem.
* | - Reworked the classifier interface.Thomas Graf2009-09-0210-187/+1046
| | | | | | | | | | | | - Added initial ematch support - Added support for the basic classifier - Added support for the cgroup classifier
* | nl_object_clone: properly clone ce_mask fieldAlexander Sack2009-07-201-0/+1
|/ | | | | based on my finding, ce_mask needs to be identical on clones; otherwise some functions (like "dump") will treat clones differently.
* release_local_port: properly compute the bitmap positionInaky Perez-Gonzalez2009-05-041-1/+1
| | | | | | | | Current calculation is always off, not reflecting the right position in the bitmap, which results in failures due to conflicts (detected at the kernel level) when trying to open a new handle. Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
* nl_object_priv() is inline, so define it in the headerPavel Roskin2009-04-161-5/+0
|
* Remove all versioned libraries on "make clean"Pavel Roskin2009-04-161-1/+1
|
* Fix parallel buildPavel Roskin2009-04-161-3/+3
| | | | | When linking against libnl, require libnl.so to exist. When linking against libnl-route, require libnl-route.so to exist.
* Fix up naming changesThomas Graf2008-12-102-2/+2
|
* restructure module documentation orderThomas Graf2008-12-1013-73/+50
| | | | split hiearchy into one top level module per library
* Consistent naming of socket functionsThomas Graf2008-12-101-3/+14
|
* Documentation updateThomas Graf2008-12-034-209/+381
|
* Allow to pass multiple group values to membership functionsHolger Eitzenberger2008-12-031-16/+42
| | | | | | | | | | | | | | | Instead of calling the membership functions several times it is helpfull to extend the API and make the single group functions a special case. The value 0 (NFNLGRP_NONE) terminates this list. Example use: nl_socket_add_memberships(sock, group_1, group_2, 0); nl_socket_drop_memberships(sock, group_1, group_2, 0); Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
* libnl: add some errno codes to nl_syserr2nlerrPatrick McHardy2008-10-301-0/+2
| | | | Signed-off-by: Patrick McHardy <kaber@trash.net>
* libnl: nfqueue: add nfqueue specific socket allocation functionPatrick McHardy2008-10-231-0/+10
| | | | | | | | | | | | | | | | | commit e92539843a0c7e5116254382626cce226bf2135e Author: Patrick McHardy <kaber@trash.net> Date: Thu Oct 23 13:46:16 2008 +0200 libnl: nfqueue: add nfqueue specific socket allocation function nfqueue users usually send verdict messages from the receive callback. When waiting for ACKs, the receive callback might be called again recursively until the stack blows up. Add a nfqueue specific socket allocation function that automatically disables ACKing for the socket. Signed-off-by: Patrick McHardy <kaber@trash.net>
* Add internal wait_for_ack() which only waits for ACK if !NL_NO_AUTO_ACKThomas Graf2008-10-2012-20/+20
| | | | | This changeset ensures that internal code properly synchronizes to ACKs if ACKs are enabled and otherwise return immediately.
* Add socket flag NL_NO_AUTO_ACK to allow disabling auto ACKSThomas Graf2008-10-202-2/+32
|
* Error handling for rtnl_cls_set_kind() & addition of rtnl_cls_get_ops()Thomas Graf2008-10-151-1/+11
|
* Use 16bit ints for classifier prio/protocolThomas Graf2008-10-151-4/+4
|
* Replace NL_KEEP code with proper message reference countingThomas Graf2008-10-142-32/+33
| | | | | | Adds reference counting to netlink messages so callbacks can hold on to a message without using the broken keep message flag.
* Only include local addr as peer addr if providedWolfgang Steudel2008-10-101-1/+1
| | | | | | | | | | | | | we're using libnl-1.1 for a project. When trying to delete all addresses of an interface by only setting interface index and address family of an rtnl_addr and executing rtnl_addr_delete() we received some error (I don't remember what it was). The bug(?) is in build_addr_msg() in lib/route/addr.c: IFA_ADDRESS is set to a_local when a_peer is not set, without checking if a_local was set. We just added if (tmpl->ce_mask & ADDR_ATTR_LOCAL) after the "else" (line 496 in the current git).
* fix lib symlinksPatrick McHardy2008-10-101-0/+4
|
* Remove XML dumpingThomas Graf2008-06-175-247/+0
| | | | Bloats the library, not frequently used
* Improvements to address utilitiesThomas Graf2008-06-171-134/+89
| | | | | | - Moved env var dumping to nl-addr-list.c - support for ipv6 lifetimes - correct and complete help texts
* Improved printing of route cache entriesThomas Graf2008-06-161-5/+23
|
* Extend nl_time2int() and rename it to nl_str2msec()Thomas Graf2008-06-161-14/+29
| | | | Support parsing of more complex time duration input.
* Introduce nla_strdup() to help parse strings attributesThomas Graf2008-06-131-0/+5
|
* Properly handle addr=NULL in nl_addr2strThomas Graf2008-06-131-2/+5
|
* Remove old line counting while dumpingThomas Graf2008-05-2332-917/+722
|