Commit graph

115 commits

Author SHA1 Message Date
Jan Engelhardt
bda0f668b6 build: separate compiler and linker flags
-Wall is a compiler flag, and thus should be in CFLAGS,
not CPPFLAGS. Similarly, -l belongs into LDADD/LIBADD because of
ordering constraints.

Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2013-11-27 23:38:50 +01:00
Julien BERNARD
27019c5671 nl-link-set: Add --state option
I modified the nl-link-set.c file to be able to set the interface up or
down. I joined the patch.
With the new nl-link-set binary I can set the tap interface down.
I am working with Ubuntu 12.04 LTS 64bits and the libnl and libnl-route
packages built from libnl3-3.2.3 from ubuntu reprositories.

--
Julien BERNARD

Signed-off-by: Thomas Graf <tgraf@suug.ch>
2013-10-22 14:20:41 +02:00
maksqwe
c31467e0a4 Priority of the '<' operator is higher than that of the '=' operator
Signed-off-by: maksqwe <maksqwe1@ukr.net>
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2013-08-26 10:06:30 +02:00
Joe Damato
c97c8c2bfd Add idiag-socket-details
This small program lists all sockets on the system seen by netlink and serves
as a simple example showing how to alloc an idiag msg cache and dump the
objects in it.
2013-07-25 16:36:16 -07:00
Joe Damato
81d2b1d509 Add support for inet diag Netlink protocol.
- Inet diag allows users to gather low-level socket information.
- This library provides a higher-level API for creating inetdiag requests (via
  idiagnl_connect and idiagnl_send_simple) and parsing the replies (via
  idiagnl_msg_parse). A cache is also provided (via idiagnl_msg_alloc_cache).
- Request and message objects provide APIs for accessing and setting the
  various properties of each.
- This library also allows the user to parse the inetdiag response attributes
  which contain information about traffic class, TOS, congestion, socket
  memory info, and more depending on the kernel version used.
- Includes doxygen documentation.
2013-07-19 02:06:21 -07:00
roopa
6c9be5a316 nl-route-add: Add NLM_F_EXCL flag to route add
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2013-03-24 10:58:18 +01:00
Thomas Graf
4d7680c19c Use thread-safe strerror_r() instead of strerror()
We have only ever fed well known error codes into strerror()
so it should never have been a problem though.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
2013-02-28 13:07:04 +01:00
Thomas Graf
4cb375a812 Merge pull request #29 from rmfought/natdir32
netfilter: expectation NAT direction is 32 bit attribute
2013-01-24 08:32:35 -08:00
Thomas Graf
c4f803366e Fix build warnings of nl-(qdisc|class|cls)-add
Reported-by: Jeroen Roovers <jer@gentoo.org>
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2013-01-24 14:10:33 +01:00
Thomas Graf
9680f910f4 Move private header files to <netlink-private/*>
This clarifies the seperation between public and private
header files.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
2013-01-24 13:51:24 +01:00
Rich Fought
56352ab9f6 netfilter: expectation NAT direction is 32 bit attribute 2013-01-23 13:59:27 -08:00
Thomas Graf
00132b4696 cache: provide safe variant of nl_cache_mngt_require() and use it
This makes runtime removal of cache operations possible if non-safe
API is not in use by application. The non-safe API will be removed
in the next major version.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
2012-11-16 01:11:55 +01:00
Thomas Graf
609b47961b Merge branch 'master' of https://github.com/rmfought/libnl 2012-10-26 12:48:22 +02:00
Rich Fought
d2fff93cce Source cleanup for upstream 2012-10-19 11:18:52 -07:00
Коренберг Марк (дома)
e7ec197da3 nf-log example: correct copy-range parsing 2012-10-19 22:43:17 +06:00
Rich Fought
2d707513c6 Updated nfnetlink includes; removed ifdefs; added delete exp program 2012-10-16 12:13:33 -07:00
Rich Fought
416459570f Bugfixes 2012-10-10 13:08:23 -07:00
Rich Fought
d3bec59eb9 bugfixes 2012-10-09 15:16:00 -07:00
Rich Fought
3cb581d598 update gitignore 2012-10-09 10:54:07 -07:00
Rich Fought
453492c9b2 Expectation get cli tool 2012-10-09 10:52:34 -07:00
Rich Fought
daf5f93a13 Compile CLI 2012-10-09 09:50:31 -07:00
Rich Fought
4a702e6b72 Starting CLI work 2012-10-08 17:31:42 -07:00
Коренберг Марк (дома)
ab15d06d13 "%llu" replaced with "%" PRIu64
On some architectures, uint64_t is defined as:

typedef unsigned long long int __u64;

on another architectures as:

typedef unsigned long int __u64;

So, according to man 3 printf,
uint64_t should be printed as "%llu" on some architectures, and as "%lu" on another. The same for scanf.

To eliminate that challenge, there is inttypes.h, in which appropriate constants
are defined for current architecture.

32-bit types (and even 16 and 8 bit types) should be printed using such constants if
printed variable defined as uint_XXXt or intXXXt type. But in reality 32-bit and less
types does not gain run-time error (except in scanf), because they pushed to stack as
32-bit values at least. So, I decide not to fix that.
2012-08-30 03:19:04 +06:00
Коренберг Марк (дома)
052a131193 nl_cli_route_parse_table fixed typo in code
Bug introduced in 2bdcde7e8e
2012-08-28 18:53:29 +06:00
Коренберг Марк
2bdcde7e8e Fix types-related warnings based on clang diagnostics
1. Fix some places where unsigned value compared < 0
2. Fix obsolete %Z specifier to more portable %z
3. Some erroneous types substitution
4. nl_msec2str() - 64-bit msec is now properly used,

Only safe changes. I mean int <--> uint32_t and signed/unsigned fixes.
Some functinos require size_t argument instead of int, but changes of
signatures of that functions is terrible thing.

Also, I do not pretend for a full list of fixes.
Just to shut up clang -Wall -Wextra

One more thing. ifindex. I don't change that because changes will
be too big for simple fix.
2012-06-13 13:30:26 +02:00
Thomas Graf
faef2fa45f genl: Support registration of families without depending on caches
Introduces the functions genl_register_family() and
genl_unregister_family() to register a Generic Netlink family
which does not implement a cachable type.

API users can direct received messages into genl_handle_msg() which
will validate the messages and call the callback functions defined
in the commands definition.

See test/test-genl.c for an example on how to use it.
2012-06-01 11:48:08 +02:00
Isaac
996b502961 FTBFS with musl libc: Missing includes
Hello,
libnl 3.2.9 does not build with musl libc, without patching.
I' using a current musl libc (http://www.etalabs.net/musl/)
with linux 2.6.32 headers.
At first there were a couple problems on the musl side, but those are
resolved.
However, I found some other issues:
First, two files were missing
#include <byteswap.h>:
lib/netfilter/log_msg.c
lib/netfilter/queue_msg.c
These files used __bswap_64 (which should be bswap_64), a macro
declared in byteswap.h

Second, I got this error after fixing that:

In file included from nf-queue.c:16:
./include/linux/netfilter.h:53: error: field in has incomplete type
./include/linux/netfilter.h:54: error: field in6 has incomplete type

I found that src/nf-queue.c is missing an
#include <netinet/in.h>

Attached is a patch which resolves these issues.  I've tested with both
musl and glibc, and it builds cleanly on both.
2012-05-13 11:18:28 +02:00
Thomas Graf
5f4d4d3bec genl-ctrl-list: Mark for installation 2012-04-20 15:28:48 +02:00
Thomas Graf
4a2962d897 genl-ctrl-list: fix copyright and summary 2012-04-20 15:27:52 +02:00
Thomas Graf
073ef6a66e genl-ctrl-list: Introduce -d|--details as a shortcut for --format=details 2012-04-20 15:18:21 +02:00
Thomas Graf
0d9958e9ef Ingnore src/nl-link-enslave and nl-link-release 2011-09-19 11:24:52 +02:00
Thomas Graf
96f17ce146 bonding: API to create/enslave/release
Although it has been possible to create bonding devices, enslave and
release using the regular link API. The added API simplifies usage
and hides some of the compatibility logic.

F.e. enslave() and release() will both verify that the master assignment
has in fact been changed and return -NLE_OPNOTSUPP if it did not.

Also the API will make sure to use RTM_NEWLINK or RTM_SETLINK depending
on what is availble.

Examples are provided in src/ as nl-link-enslave.c and nl-link-release.c
2011-09-16 12:57:52 +02:00
Thomas Graf
109ea68ac0 tools: Use LDADD and link against .la files instead of LDFLAGS and -llib 2011-09-13 23:21:52 +02:00
Thomas Graf
4c210adcb5 Switch to libtool versioning system
It has been a request that multiple libnl versions should be installabe
in parallel.

In order to achieve this, the basename of the library was changed to
libnl-3 which reflects the 3rd generation of libnl APIs. It also means
that release based library versioning is left behind and libtool
versioning is used instead.

Projects using pkgconfig will automatically link against the new library
basename and will not notice a difference.

The SO versioning is based on the glib model:
  current := 100 * minor + micro - revision
  revision := revision
  age := age (number of backwards compatible versions)
2011-09-13 22:58:08 +02:00
Thomas Graf
7ac948c643 Remove GPL-3.0 license file.
There is no code licensed GPL-3.0 so we might as well remove this file.
2011-09-08 15:08:22 +02:00
Jiri Pirko
eabb7539dd nl-link-name2ifindex: fix usage text
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
2011-08-30 09:56:54 +02:00
Pavel Roskin
7701c8572f Make some functions and global variables static 2011-08-11 14:49:51 +02:00
Thomas Graf
f1c8d5b0a3 3.1 release 2011-08-11 14:30:24 +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
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
722a227795 fix module parent references 2011-03-21 16:54:37 +01:00
Thomas Graf
8eb5b5532e Unified TC API
Finally got rid of all the qdisc/class/cls code duplication in
the tc module API. The API takes care of allocation/freeing the
tc object specific data.

I hope I got it right this time.
2011-03-21 15:51:52 +01:00
Thomas Graf
a3ea8a603f Make syntax of nl-link-list consistent and install it 2010-11-16 15:08:36 +01:00
Gery Kahn
f64ebab092 Add all libraries for libtool to improve linkage
This will fix finding libs while link, by adding them to LDFLAGS

[It's no ideal but it's less of a mess than what we have now. -tgraf]

Signed-off-by: Gery Kahn <geryk@ti.com>
2010-11-11 22:35:00 +01:00
Thomas Graf
7ff4deeb56 Extend rtnl_link_alloc_cache() to support address families
Adds a family argument which allows to request link dumps for a certain
address family. This allows to f.e. dump ipv6 specific statistics and data.

nl-link-list --family inet6
2010-11-11 22:26:11 +01:00
Thomas Graf
8970c5cde6 link: Support IFLA_IFALIAS attribute
- parse IFLA_IFALIAS if available
- provides API to access/change ifalias
     rtnl_link_get_ifalias(link)
     rtnl_link_set_ifalias(link, alias)
- extends nl-link-set to test functionality
2010-11-11 13:57:10 +01:00
Thomas GraF
59880cb01e pktloc: support to specify a shift operator for packet locations
no users yet though.
2010-11-04 20:01:36 +01:00
Thomas GraF
738ee7fea1 nl-qdisc-delete: Do not attempt to delete default qdiscs 2010-11-03 21:41:24 +01:00
Thomas Graf
df36c25bbf nl-classid-lookup: Added --raw option to print classid without pretty printing it 2010-11-01 15:20:43 +01:00