summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-08-01 08:49:04 (GMT)
committerThomas Haller <thaller@redhat.com>2023-08-01 08:49:04 (GMT)
commit77a8a0053a102a9d8258702a895ccb4b98d41a5e (patch)
treeba1e55b8dd26ac24923a7a6ea06f6317413a7df7
parent739d9e6e88b7c92d10164b4754a713c15b6ca07a (diff)
parent776fc5a6deb5cb6a78f57ae2f5c6b5f450265bf2 (diff)
downloadlibnl-77a8a0053a102a9d8258702a895ccb4b98d41a5e.zip
libnl-77a8a0053a102a9d8258702a895ccb4b98d41a5e.tar.gz
libnl-77a8a0053a102a9d8258702a895ccb4b98d41a5e.tar.bz2
include: merge branch 'th/move-private-headers-2'
-rw-r--r--Makefile.am25
-rw-r--r--include/netlink-private/netlink.h3
-rw-r--r--include/netlink-private/tc.h52
-rw-r--r--include/netlink-private/types.h7
-rw-r--r--include/nl-hidden-route/README.md10
-rw-r--r--include/nl-hidden-route/nl-hidden-route.h74
-rw-r--r--include/nl-shared-core/README.md8
-rw-r--r--include/nl-shared-core/cache-api.h (renamed from include/netlink-private/cache-api.h)0
-rw-r--r--include/nl-shared-core/object-api.h (renamed from include/netlink-private/object-api.h)0
-rw-r--r--lib/nl-core.h (renamed from include/netlink-private/socket.h)14
-rw-r--r--lib/nl.c3
-rw-r--r--lib/route/act.c3
-rw-r--r--lib/route/act/gact.c4
-rw-r--r--lib/route/act/mirred.c4
-rw-r--r--lib/route/act/nat.c4
-rw-r--r--lib/route/act/skbedit.c4
-rw-r--r--lib/route/act/vlan.c3
-rw-r--r--lib/route/class.c4
-rw-r--r--lib/route/classid.c1
-rw-r--r--lib/route/cls.c4
-rw-r--r--lib/route/cls/basic.c4
-rw-r--r--lib/route/cls/cgroup.c4
-rw-r--r--lib/route/cls/ematch.c1
-rw-r--r--lib/route/cls/ematch/cmp.c1
-rw-r--r--lib/route/cls/ematch/container.c1
-rw-r--r--lib/route/cls/ematch/meta.c1
-rw-r--r--lib/route/cls/ematch/nbyte.c1
-rw-r--r--lib/route/cls/ematch/text.c1
-rw-r--r--lib/route/cls/ematch_grammar.l1
-rw-r--r--lib/route/cls/ematch_syntax.y1
-rw-r--r--lib/route/cls/flower.c3
-rw-r--r--lib/route/cls/fw.c4
-rw-r--r--lib/route/cls/mall.c3
-rw-r--r--lib/route/cls/police.c2
-rw-r--r--lib/route/cls/u32.c3
-rw-r--r--lib/route/link-sriov.h (renamed from include/netlink-private/route/link/sriov.h)0
-rw-r--r--lib/route/link.c2
-rw-r--r--lib/route/link/sriov.c2
-rw-r--r--lib/route/nexthop-encap.h (renamed from include/netlink-private/route/nexthop-encap.h)0
-rw-r--r--lib/route/nexthop.c3
-rw-r--r--lib/route/nexthop_encap.c3
-rw-r--r--lib/route/nh_encap_mpls.c3
-rw-r--r--lib/route/pktloc.c1
-rw-r--r--lib/route/pktloc_grammar.l1
-rw-r--r--lib/route/pktloc_syntax.y1
-rw-r--r--lib/route/qdisc.c4
-rw-r--r--lib/route/qdisc/blackhole.c3
-rw-r--r--lib/route/qdisc/cbq.c4
-rw-r--r--lib/route/qdisc/dsmark.c4
-rw-r--r--lib/route/qdisc/fifo.c4
-rw-r--r--lib/route/qdisc/fq_codel.c4
-rw-r--r--lib/route/qdisc/hfsc.c4
-rw-r--r--lib/route/qdisc/htb.c4
-rw-r--r--lib/route/qdisc/ingress.c4
-rw-r--r--lib/route/qdisc/mqprio.c4
-rw-r--r--lib/route/qdisc/netem.c3
-rw-r--r--lib/route/qdisc/plug.c4
-rw-r--r--lib/route/qdisc/prio.c4
-rw-r--r--lib/route/qdisc/red.c4
-rw-r--r--lib/route/qdisc/sfq.c4
-rw-r--r--lib/route/qdisc/tbf.c4
-rw-r--r--lib/route/route_obj.c2
-rw-r--r--lib/route/tc-api.h (renamed from include/netlink-private/route/tc-api.h)112
-rw-r--r--lib/route/tc.c3
-rw-r--r--lib/socket.c3
-rw-r--r--libnl-route-3.sym7
-rw-r--r--src/lib/tc.c3
-rw-r--r--src/nl-class-add.c4
-rw-r--r--src/nl-cls-add.c4
-rw-r--r--src/nl-qdisc-add.c4
-rw-r--r--tests/cksuite-all-attr.c1
-rw-r--r--tests/test-cache-mngr.c2
-rwxr-xr-xtools/clang-format.sh13
73 files changed, 243 insertions, 251 deletions
diff --git a/Makefile.am b/Makefile.am
index 1ca4049..249e997 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -271,17 +271,14 @@ noinst_HEADERS = \
include/linux-private/linux/tc_ematch/tc_em_meta.h \
include/linux-private/linux/veth.h \
include/linux-private/linux/xfrm.h \
- include/netlink-private/cache-api.h \
include/netlink-private/netlink.h \
- include/netlink-private/object-api.h \
- include/netlink-private/route/link/sriov.h \
- include/netlink-private/route/nexthop-encap.h \
- include/netlink-private/route/tc-api.h \
- include/netlink-private/socket.h \
- include/netlink-private/tc.h \
include/netlink-private/types.h \
include/nl-aux-core/nl-core.h \
include/nl-aux-route/nl-route.h \
+ include/nl-hidden-route/nl-hidden-route.h \
+ include/nl-intern-route/nl-intern-route.h \
+ include/nl-shared-core/cache-api.h \
+ include/nl-shared-core/object-api.h \
$(NULL)
###############################################################################
@@ -342,8 +339,7 @@ lib_cppflags = \
-I$(srcdir)/include/linux-private \
-I$(srcdir)/include \
-I$(builddir)/include \
- -I$(builddir)/lib/route \
- -I$(builddir)/lib/route/cls
+ $(NULL)
lib_LTLIBRARIES += lib/libnl-3.la
@@ -361,6 +357,7 @@ lib_libnl_3_la_SOURCES = \
lib/mpls.c \
lib/mpls.h \
lib/msg.c \
+ lib/nl-core.h \
lib/nl.c \
lib/object.c \
lib/socket.c \
@@ -378,7 +375,6 @@ lib_libnl_3_la_LDFLAGS = \
lib_LTLIBRARIES += lib/libnl-route-3.la
lib_libnl_route_3_la_SOURCES = \
- include/nl-intern-route/nl-intern-route.h \
lib/fib_lookup/lookup.c \
lib/fib_lookup/request.c \
lib/route/act.c \
@@ -404,6 +400,7 @@ lib_libnl_route_3_la_SOURCES = \
lib/route/cls/mall.c \
lib/route/cls/police.c \
lib/route/cls/u32.c \
+ lib/route/link-sriov.h \
lib/route/link.c \
lib/route/link/api.c \
lib/route/link/bonding.c \
@@ -438,6 +435,7 @@ lib_libnl_route_3_la_SOURCES = \
lib/route/neigh.c \
lib/route/neightbl.c \
lib/route/netconf.c \
+ lib/route/nexthop-encap.h \
lib/route/nexthop.c \
lib/route/nexthop_encap.c \
lib/route/nh.c \
@@ -464,6 +462,7 @@ lib_libnl_route_3_la_SOURCES = \
lib/route/route_utils.c \
lib/route/rtnl.c \
lib/route/rule.c \
+ lib/route/tc-api.h \
lib/route/tc.c \
$(NULL)
nodist_lib_libnl_route_3_la_SOURCES = \
@@ -471,7 +470,11 @@ nodist_lib_libnl_route_3_la_SOURCES = \
EXTRA_lib_libnl_route_3_la_DEPENDENCIES = \
libnl-route-3.sym
lib_libnl_route_3_la_CPPFLAGS = \
- $(lib_cppflags)
+ $(lib_cppflags) \
+ -I$(srcdir)/lib/route \
+ -I$(builddir)/lib/route \
+ -I$(builddir)/lib/route/cls \
+ $(NULL)
lib_libnl_route_3_la_LDFLAGS = \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-Wl,--version-script=$(srcdir)/libnl-route-3.sym
diff --git a/include/netlink-private/netlink.h b/include/netlink-private/netlink.h
index 8cb0019..4772766 100644
--- a/include/netlink-private/netlink.h
+++ b/include/netlink-private/netlink.h
@@ -58,10 +58,9 @@
#include <netlink/handlers.h>
#include <netlink/cache.h>
#include <netlink/route/tc.h>
-#include <netlink-private/object-api.h>
-#include <netlink-private/cache-api.h>
#include <netlink-private/types.h>
+#include "nl-shared-core/cache-api.h"
#include "nl-aux-core/nl-core.h"
#define NSEC_PER_SEC 1000000000L
diff --git a/include/netlink-private/tc.h b/include/netlink-private/tc.h
deleted file mode 100644
index 5f5d1ff..0000000
--- a/include/netlink-private/tc.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.1-only */
-/*
- * Copyright (c) 2003-2013 Thomas Graf <tgraf@suug.ch>
- */
-
-#ifndef NETLINK_TC_PRIV_H_
-#define NETLINK_TC_PRIV_H_
-
-#include <netlink-private/netlink.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define TCA_ATTR_HANDLE 0x0001
-#define TCA_ATTR_PARENT 0x0002
-#define TCA_ATTR_IFINDEX 0x0004
-#define TCA_ATTR_KIND 0x0008
-#define TCA_ATTR_FAMILY 0x0010
-#define TCA_ATTR_INFO 0x0020
-#define TCA_ATTR_OPTS 0x0040
-#define TCA_ATTR_STATS 0x0080
-#define TCA_ATTR_XSTATS 0x0100
-#define TCA_ATTR_LINK 0x0200
-#define TCA_ATTR_MTU 0x0400
-#define TCA_ATTR_MPU 0x0800
-#define TCA_ATTR_OVERHEAD 0x1000
-#define TCA_ATTR_LINKTYPE 0x2000
-#define TCA_ATTR_CHAIN 0x4000
-#define TCA_ATTR_MAX TCA_ATTR_CHAIN
-
-extern int tca_parse(struct nlattr **, int, struct rtnl_tc *,
- const struct nla_policy *);
-
-#define RTNL_TC_RTABLE_SIZE 256
-
-extern int rtnl_tc_build_rate_table(struct rtnl_tc *tc, struct rtnl_ratespec *,
- uint32_t *);
-
-
-static inline void *tca_xstats(struct rtnl_tc *tca)
-{
- return tca->tc_xstats->d_data;
-}
-
-extern struct nl_af_group tc_groups[];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/include/netlink-private/types.h b/include/netlink-private/types.h
index c36e01a..edc45a2 100644
--- a/include/netlink-private/types.h
+++ b/include/netlink-private/types.h
@@ -14,11 +14,8 @@
#include <netlink/route/route.h>
#include <netlink/idiag/idiagnl.h>
#include <netlink/netfilter/ct.h>
-#include <netlink-private/object-api.h>
-#include <netlink-private/route/tc-api.h>
-#include <netlink-private/route/link/sriov.h>
+#include <netlink/route/link/sriov.h>
#include <netlink/route/nh.h>
-#include <netlink-private/route/nexthop-encap.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <linux/genetlink.h>
@@ -32,6 +29,8 @@
#include <netinet/in.h>
+#include "nl-shared-core/object-api.h"
+
#define NL_SOCK_PASSCRED (1<<1)
#define NL_OWN_PORT (1<<2)
#define NL_MSG_PEEK (1<<3)
diff --git a/include/nl-hidden-route/README.md b/include/nl-hidden-route/README.md
new file mode 100644
index 0000000..70137a1
--- /dev/null
+++ b/include/nl-hidden-route/README.md
@@ -0,0 +1,10 @@
+include/nl-hidden-route
+=======================
+
+libnl-route-3 wrongly exposes some symbols that are not part of public headers.
+They are used by other internal code.
+
+These are the symbols.
+
+This header can be used by internal code, that dynamically links with libnl-route-3.
+But best we reduce the use of such hidden API, so avoid it.
diff --git a/include/nl-hidden-route/nl-hidden-route.h b/include/nl-hidden-route/nl-hidden-route.h
new file mode 100644
index 0000000..1baba32
--- /dev/null
+++ b/include/nl-hidden-route/nl-hidden-route.h
@@ -0,0 +1,74 @@
+/* SPDX-License-Identifier: LGPL-2.1-only */
+/*
+ * Copyright (c) 2011-2013 Thomas Graf <tgraf@suug.ch>
+ */
+
+#ifndef __NL_HIDDEN_ROUTE_NL_HIDDEN_ROUTE_H__
+#define __NL_HIDDEN_ROUTE_NL_HIDDEN_ROUTE_H__
+
+/**
+ * Traffic control object operations
+ * @ingroup tc
+ *
+ * This structure holds function pointers and settings implementing
+ * the features of each traffic control object implementation.
+ */
+struct rtnl_tc_ops {
+ /**
+ * Name of traffic control module
+ */
+ char *to_kind;
+
+ /**
+ * Type of traffic control object
+ */
+ enum rtnl_tc_type to_type;
+
+ /**
+ * Size of private data
+ */
+ size_t to_size;
+
+ /**
+ * Dump callbacks
+ */
+ void (*to_dump[NL_DUMP_MAX + 1])(struct rtnl_tc *, void *,
+ struct nl_dump_params *);
+ /**
+ * Used to fill the contents of TCA_OPTIONS
+ */
+ int (*to_msg_fill)(struct rtnl_tc *, void *, struct nl_msg *);
+
+ /**
+ * Uesd to to fill tc related messages, unlike with to_msg_fill,
+ * the contents is not encapsulated with a TCA_OPTIONS nested
+ * attribute.
+ */
+ int (*to_msg_fill_raw)(struct rtnl_tc *, void *, struct nl_msg *);
+
+ /**
+ * TCA_OPTIONS message parser
+ */
+ int (*to_msg_parser)(struct rtnl_tc *, void *);
+
+ /**
+ * Called before a tc object is destroyed
+ */
+ void (*to_free_data)(struct rtnl_tc *, void *);
+
+ /**
+ * Called whenever a classifier object needs to be cloned
+ */
+ int (*to_clone)(void *, void *);
+
+ /**
+ * Internal, don't touch
+ */
+ struct nl_list_head to_list;
+};
+
+extern struct rtnl_tc_ops *rtnl_tc_lookup_ops(enum rtnl_tc_type, const char *);
+
+struct rtnl_tc_ops *rtnl_tc_get_ops(struct rtnl_tc *);
+
+#endif /* __NL_HIDDEN_ROUTE_NL_HIDDEN_ROUTE_H__ */
diff --git a/include/nl-shared-core/README.md b/include/nl-shared-core/README.md
new file mode 100644
index 0000000..9f8ecb2
--- /dev/null
+++ b/include/nl-shared-core/README.md
@@ -0,0 +1,8 @@
+include/nl-shared-core
+======================
+
+Contains internal API on top of core (libnl-3). It is
+implemented by core and usable to all users that link
+against libnl-3.
+
+Note that the ABI, while being internal, should stay stable.
diff --git a/include/netlink-private/cache-api.h b/include/nl-shared-core/cache-api.h
index 38662b7..38662b7 100644
--- a/include/netlink-private/cache-api.h
+++ b/include/nl-shared-core/cache-api.h
diff --git a/include/netlink-private/object-api.h b/include/nl-shared-core/object-api.h
index a539e37..a539e37 100644
--- a/include/netlink-private/object-api.h
+++ b/include/nl-shared-core/object-api.h
diff --git a/include/netlink-private/socket.h b/lib/nl-core.h
index 5fe77fa..f4423a4 100644
--- a/include/netlink-private/socket.h
+++ b/lib/nl-core.h
@@ -3,23 +3,15 @@
* Copyright (c) 2014 Thomas Graf <tgraf@suug.ch>
*/
-#ifndef NETLINK_SOCKET_PRIV_H_
-#define NETLINK_SOCKET_PRIV_H_
+#ifndef __LIB_NL_CORE_H__
+#define __LIB_NL_CORE_H__
#include <netlink-private/netlink.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
int _nl_socket_is_local_port_unspecified (struct nl_sock *sk);
uint32_t _nl_socket_set_local_port_no_release(struct nl_sock *sk, int generate_other);
void _nl_socket_used_ports_release_all(const uint32_t *used_ports);
void _nl_socket_used_ports_set(uint32_t *used_ports, uint32_t port);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+#endif /* __LIB_NL_CORE_H__ */
diff --git a/lib/nl.c b/lib/nl.c
index 4fbf624..a916e66 100644
--- a/lib/nl.c
+++ b/lib/nl.c
@@ -20,7 +20,6 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/socket.h>
#include "base/nl-base-utils.h"
#include <netlink/netlink.h>
#include <netlink/utils.h>
@@ -29,6 +28,8 @@
#include <netlink/attr.h>
#include <linux/socket.h>
+#include "nl-core.h"
+
/**
* @defgroup core_types Data Types
*
diff --git a/lib/route/act.c b/lib/route/act.c
index 1f7d4ee..33f0d3e 100644
--- a/lib/route/act.c
+++ b/lib/route/act.c
@@ -11,13 +11,12 @@
#include <netlink-private/netlink.h>
#include "base/nl-base-utils.h"
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/link.h>
#include <netlink/route/action.h>
+#include "tc-api.h"
static struct nl_object_ops act_obj_ops;
static struct nl_cache_ops rtnl_act_ops;
diff --git a/lib/route/act/gact.c b/lib/route/act/gact.c
index 8a02a4f..2ca11ac 100644
--- a/lib/route/act/gact.c
+++ b/lib/route/act/gact.c
@@ -11,13 +11,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/act/gact.h>
+#include "tc-api.h"
+
static struct nla_policy gact_policy[TCA_GACT_MAX + 1] = {
[TCA_GACT_PARMS] = { .minlen = sizeof(struct tc_gact) },
};
diff --git a/lib/route/act/mirred.c b/lib/route/act/mirred.c
index 2ec2bfc..191276f 100644
--- a/lib/route/act/mirred.c
+++ b/lib/route/act/mirred.c
@@ -11,13 +11,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/act/mirred.h>
+#include "tc-api.h"
+
static struct nla_policy mirred_policy[TCA_MIRRED_MAX + 1] = {
[TCA_MIRRED_PARMS] = { .minlen = sizeof(struct tc_mirred) },
};
diff --git a/lib/route/act/nat.c b/lib/route/act/nat.c
index f1cefcb..07b9512 100644
--- a/lib/route/act/nat.c
+++ b/lib/route/act/nat.c
@@ -11,14 +11,14 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/act/nat.h>
#include <netlink/route/tc.h>
+#include "tc-api.h"
+
static struct nla_policy nat_policy[TCA_NAT_MAX + 1] = {
[TCA_NAT_PARMS] = { .minlen = sizeof(struct tc_nat) },
};
diff --git a/lib/route/act/skbedit.c b/lib/route/act/skbedit.c
index 15cfe3c..bdab14a 100644
--- a/lib/route/act/skbedit.c
+++ b/lib/route/act/skbedit.c
@@ -11,13 +11,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/act/skbedit.h>
+#include "tc-api.h"
+
static struct nla_policy skbedit_policy[TCA_SKBEDIT_MAX + 1] = {
[TCA_SKBEDIT_PARMS] = { .minlen = sizeof(struct tc_skbedit) },
[TCA_SKBEDIT_PRIORITY] = { .type = NLA_U32 },
diff --git a/lib/route/act/vlan.c b/lib/route/act/vlan.c
index dac0f35..ebd5a6e 100644
--- a/lib/route/act/vlan.c
+++ b/lib/route/act/vlan.c
@@ -11,13 +11,12 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/act/vlan.h>
+#include "tc-api.h"
#define VLAN_F_VID (1 << 0)
#define VLAN_F_PROTO (1 << 1)
diff --git a/lib/route/class.c b/lib/route/class.c
index 4e5c8ee..8d7cc80 100644
--- a/lib/route/class.c
+++ b/lib/route/class.c
@@ -10,14 +10,14 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/class.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/classifier.h>
#include <netlink/utils.h>
+#include "tc-api.h"
+
static struct nl_cache_ops rtnl_class_ops;
static struct nl_object_ops class_obj_ops;
diff --git a/lib/route/classid.c b/lib/route/classid.c
index 0956c9b..65c1092 100644
--- a/lib/route/classid.c
+++ b/lib/route/classid.c
@@ -10,7 +10,6 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
#include <netlink/route/tc.h>
diff --git a/lib/route/cls.c b/lib/route/cls.c
index 45f9412..3a2387d 100644
--- a/lib/route/cls.c
+++ b/lib/route/cls.c
@@ -10,13 +10,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/classifier.h>
#include <netlink/route/link.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define CLS_ATTR_PRIO (TCA_ATTR_MAX << 1)
#define CLS_ATTR_PROTOCOL (TCA_ATTR_MAX << 2)
diff --git a/lib/route/cls/basic.c b/lib/route/cls/basic.c
index 2537998..1306ca8 100644
--- a/lib/route/cls/basic.c
+++ b/lib/route/cls/basic.c
@@ -17,14 +17,14 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/classifier.h>
#include <netlink/route/action.h>
#include <netlink/route/cls/basic.h>
#include <netlink/route/cls/ematch.h>
+#include "tc-api.h"
+
struct rtnl_basic
{
uint32_t b_target;
diff --git a/lib/route/cls/cgroup.c b/lib/route/cls/cgroup.c
index 87482cc..de7702d 100644
--- a/lib/route/cls/cgroup.c
+++ b/lib/route/cls/cgroup.c
@@ -11,15 +11,15 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/classifier.h>
#include <netlink/route/cls/cgroup.h>
#include <netlink/route/cls/ematch.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define CGROUP_ATTR_EMATCH 0x001
/** @endcond */
diff --git a/lib/route/cls/ematch.c b/lib/route/cls/ematch.c
index 9052030..af870fb 100644
--- a/lib/route/cls/ematch.c
+++ b/lib/route/cls/ematch.c
@@ -11,7 +11,6 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/route/classifier.h>
#include <netlink/route/cls/ematch.h>
diff --git a/lib/route/cls/ematch/cmp.c b/lib/route/cls/ematch/cmp.c
index 7bf86e8..12f8127 100644
--- a/lib/route/cls/ematch/cmp.c
+++ b/lib/route/cls/ematch/cmp.c
@@ -11,7 +11,6 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/route/cls/ematch.h>
#include <netlink/route/cls/ematch/cmp.h>
diff --git a/lib/route/cls/ematch/container.c b/lib/route/cls/ematch/container.c
index 77530be..5a5b539 100644
--- a/lib/route/cls/ematch/container.c
+++ b/lib/route/cls/ematch/container.c
@@ -4,7 +4,6 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/route/cls/ematch.h>
diff --git a/lib/route/cls/ematch/meta.c b/lib/route/cls/ematch/meta.c
index 3d8ef56..f86e06f 100644
--- a/lib/route/cls/ematch/meta.c
+++ b/lib/route/cls/ematch/meta.c
@@ -11,7 +11,6 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/route/cls/ematch.h>
#include <netlink/route/cls/ematch/meta.h>
diff --git a/lib/route/cls/ematch/nbyte.c b/lib/route/cls/ematch/nbyte.c
index 82b4649..70fdcf9 100644
--- a/lib/route/cls/ematch/nbyte.c
+++ b/lib/route/cls/ematch/nbyte.c
@@ -11,7 +11,6 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/route/cls/ematch.h>
#include <netlink/route/cls/ematch/nbyte.h>
diff --git a/lib/route/cls/ematch/text.c b/lib/route/cls/ematch/text.c
index b51406f..e46eefe 100644
--- a/lib/route/cls/ematch/text.c
+++ b/lib/route/cls/ematch/text.c
@@ -12,7 +12,6 @@
#include <netlink-private/netlink.h>
#include "base/nl-base-utils.h"
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/route/cls/ematch.h>
#include <netlink/route/cls/ematch/text.h>
diff --git a/lib/route/cls/ematch_grammar.l b/lib/route/cls/ematch_grammar.l
index 4f57951..6b2b8b0 100644
--- a/lib/route/cls/ematch_grammar.l
+++ b/lib/route/cls/ematch_grammar.l
@@ -5,7 +5,6 @@
%{
#include <netlink-private/netlink.h>
- #include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/route/cls/ematch.h>
#include <netlink/route/cls/ematch/cmp.h>
diff --git a/lib/route/cls/ematch_syntax.y b/lib/route/cls/ematch_syntax.y
index 0832a6e..1e445b4 100644
--- a/lib/route/cls/ematch_syntax.y
+++ b/lib/route/cls/ematch_syntax.y
@@ -5,7 +5,6 @@
%{
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
#include <netlink/route/pktloc.h>
diff --git a/lib/route/cls/flower.c b/lib/route/cls/flower.c
index ffeae39..4ee396e 100644
--- a/lib/route/cls/flower.c
+++ b/lib/route/cls/flower.c
@@ -4,15 +4,14 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/classifier.h>
#include <netlink/route/action.h>
#include <netlink/route/cls/flower.h>
+#include "tc-api.h"
/** @cond SKIP */
#define FLOWER_ATTR_FLAGS (1 << 0)
diff --git a/lib/route/cls/fw.c b/lib/route/cls/fw.c
index 4b17bf9..6c6c4a1 100644
--- a/lib/route/cls/fw.c
+++ b/lib/route/cls/fw.c
@@ -13,12 +13,12 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/classifier.h>
#include <netlink/route/cls/fw.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define FW_ATTR_CLASSID 0x001
#define FW_ATTR_ACTION 0x002
diff --git a/lib/route/cls/mall.c b/lib/route/cls/mall.c
index 90bec21..69f229f 100644
--- a/lib/route/cls/mall.c
+++ b/lib/route/cls/mall.c
@@ -11,15 +11,14 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/classifier.h>
#include <netlink/route/cls/matchall.h>
#include <netlink/route/action.h>
+#include "tc-api.h"
#define MALL_ATTR_CLASSID 0x01
#define MALL_ATTR_FLAGS 0x02
diff --git a/lib/route/cls/police.c b/lib/route/cls/police.c
index f7771ae..71bf0b6 100644
--- a/lib/route/cls/police.c
+++ b/lib/route/cls/police.c
@@ -4,10 +4,8 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/classifier.h>
#include <netlink/route/cls/police.h>
diff --git a/lib/route/cls/u32.c b/lib/route/cls/u32.c
index df5aa3d..a7c79dc 100644
--- a/lib/route/cls/u32.c
+++ b/lib/route/cls/u32.c
@@ -13,15 +13,14 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/attr.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/classifier.h>
#include <netlink/route/cls/u32.h>
#include <netlink/route/action.h>
+#include "tc-api.h"
#include "nl-aux-route/nl-route.h"
/** @cond SKIP */
diff --git a/include/netlink-private/route/link/sriov.h b/lib/route/link-sriov.h
index f7c027a..f7c027a 100644
--- a/include/netlink-private/route/link/sriov.h
+++ b/lib/route/link-sriov.h
diff --git a/lib/route/link.c b/lib/route/link.c
index 9967f2d..52fd81f 100644
--- a/lib/route/link.c
+++ b/lib/route/link.c
@@ -21,10 +21,10 @@
#include <netlink/data.h>
#include <netlink/route/rtnl.h>
#include <netlink/route/link.h>
-#include <netlink-private/route/link/sriov.h>
#include "nl-aux-route/nl-route.h"
+#include "link-sriov.h"
#include "link/link-api.h"
/** @cond SKIP */
diff --git a/lib/route/link/sriov.c b/lib/route/link/sriov.c
index b5c23a4..d4ee4f3 100644
--- a/lib/route/link/sriov.c
+++ b/lib/route/link/sriov.c
@@ -25,9 +25,9 @@
#include <linux/if_ether.h>
#include <linux/if_link.h>
-#include <netlink-private/route/link/sriov.h>
#include <netlink/route/link/sriov.h>
+#include "link-sriov.h"
#include "link-api.h"
/** @cond SKIP */
diff --git a/include/netlink-private/route/nexthop-encap.h b/lib/route/nexthop-encap.h
index dde1bfb..dde1bfb 100644
--- a/include/netlink-private/route/nexthop-encap.h
+++ b/lib/route/nexthop-encap.h
diff --git a/lib/route/nexthop.c b/lib/route/nexthop.c
index 37f2f4d..92c3b0b 100644
--- a/lib/route/nexthop.c
+++ b/lib/route/nexthop.c
@@ -10,12 +10,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/route/nexthop-encap.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
#include <netlink/route/rtnl.h>
#include <netlink/route/route.h>
+#include "nexthop-encap.h"
+
/** @cond SKIP */
#define NH_ATTR_FLAGS 0x000001
#define NH_ATTR_WEIGHT 0x000002
diff --git a/lib/route/nexthop_encap.c b/lib/route/nexthop_encap.c
index 2382886..7251432 100644
--- a/lib/route/nexthop_encap.c
+++ b/lib/route/nexthop_encap.c
@@ -2,9 +2,10 @@
#include <netlink-private/netlink.h>
#include <netlink-private/types.h>
-#include <netlink-private/route/nexthop-encap.h>
#include <linux/lwtunnel.h>
+#include "nexthop-encap.h"
+
static struct lwtunnel_encap_type {
const char *name;
struct nh_encap_ops *ops;
diff --git a/lib/route/nh_encap_mpls.c b/lib/route/nh_encap_mpls.c
index d30acc2..fb13641 100644
--- a/lib/route/nh_encap_mpls.c
+++ b/lib/route/nh_encap_mpls.c
@@ -2,11 +2,12 @@
#include <netlink-private/netlink.h>
#include <netlink-private/types.h>
-#include <netlink-private/route/nexthop-encap.h>
#include <netlink/route/nexthop.h>
#include <linux/mpls_iptunnel.h>
#include <linux/lwtunnel.h>
+#include "nexthop-encap.h"
+
struct mpls_iptunnel_encap {
struct nl_addr *dst;
uint8_t ttl;
diff --git a/lib/route/pktloc.c b/lib/route/pktloc.c
index 3c03ef0..28680df 100644
--- a/lib/route/pktloc.c
+++ b/lib/route/pktloc.c
@@ -26,7 +26,6 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
#include <netlink/route/pktloc.h>
diff --git a/lib/route/pktloc_grammar.l b/lib/route/pktloc_grammar.l
index ab592d1..c5757ae 100644
--- a/lib/route/pktloc_grammar.l
+++ b/lib/route/pktloc_grammar.l
@@ -1,6 +1,5 @@
%{
#include <netlink-private/netlink.h>
- #include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
#include <netlink/route/pktloc.h>
diff --git a/lib/route/pktloc_syntax.y b/lib/route/pktloc_syntax.y
index 3c9326f..dac149d 100644
--- a/lib/route/pktloc_syntax.y
+++ b/lib/route/pktloc_syntax.y
@@ -1,6 +1,5 @@
%{
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
#include <netlink/route/pktloc.h>
diff --git a/lib/route/qdisc.c b/lib/route/qdisc.c
index 4b6b960..af3d65c 100644
--- a/lib/route/qdisc.c
+++ b/lib/route/qdisc.c
@@ -10,15 +10,15 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
#include <netlink/route/link.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/class.h>
#include <netlink/route/classifier.h>
+#include "tc-api.h"
+
static struct nl_cache_ops rtnl_qdisc_ops;
static struct nl_object_ops qdisc_obj_ops;
diff --git a/lib/route/qdisc/blackhole.c b/lib/route/qdisc/blackhole.c
index 43d5088..3a26e56 100644
--- a/lib/route/qdisc/blackhole.c
+++ b/lib/route/qdisc/blackhole.c
@@ -11,7 +11,8 @@
#include <netlink-private/netlink.h>
#include <netlink/netlink.h>
-#include <netlink-private/route/tc-api.h>
+
+#include "tc-api.h"
static struct rtnl_tc_ops blackhole_ops = {
.to_kind = "blackhole",
diff --git a/lib/route/qdisc/cbq.c b/lib/route/qdisc/cbq.c
index 02dfde3..f5dcce0 100644
--- a/lib/route/qdisc/cbq.c
+++ b/lib/route/qdisc/cbq.c
@@ -4,16 +4,16 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/class.h>
#include <netlink/route/link.h>
#include <netlink/route/qdisc/cbq.h>
#include <netlink/route/cls/police.h>
+#include "tc-api.h"
+
/**
* @ingroup qdisc
* @ingroup class
diff --git a/lib/route/qdisc/dsmark.c b/lib/route/qdisc/dsmark.c
index a7494bd..a251a3f 100644
--- a/lib/route/qdisc/dsmark.c
+++ b/lib/route/qdisc/dsmark.c
@@ -11,14 +11,14 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
#include <netlink/route/qdisc.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/class.h>
#include <netlink/route/qdisc/dsmark.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define SCH_DSMARK_ATTR_INDICES 0x1
#define SCH_DSMARK_ATTR_DEFAULT_INDEX 0x2
diff --git a/lib/route/qdisc/fifo.c b/lib/route/qdisc/fifo.c
index bb0b71d..29d7f56 100644
--- a/lib/route/qdisc/fifo.c
+++ b/lib/route/qdisc/fifo.c
@@ -24,13 +24,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/qdisc/fifo.h>
#include <netlink/utils.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define SCH_FIFO_ATTR_LIMIT 1
/** @endcond */
diff --git a/lib/route/qdisc/fq_codel.c b/lib/route/qdisc/fq_codel.c
index 24b9397..95e92da 100644
--- a/lib/route/qdisc/fq_codel.c
+++ b/lib/route/qdisc/fq_codel.c
@@ -12,13 +12,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/qdisc/fq_codel.h>
#include <netlink/utils.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define SCH_FQ_CODEL_ATTR_TARGET 0x1
#define SCH_FQ_CODEL_ATTR_LIMIT 0x2
diff --git a/lib/route/qdisc/hfsc.c b/lib/route/qdisc/hfsc.c
index eca8122..21d752a 100644
--- a/lib/route/qdisc/hfsc.c
+++ b/lib/route/qdisc/hfsc.c
@@ -11,16 +11,16 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/cache.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/class.h>
#include <netlink/route/link.h>
#include <netlink/route/qdisc/hfsc.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define SCH_HFSC_CLS_HAS_RSC 0x001
#define SCH_HFSC_CLS_HAS_FSC 0x002
diff --git a/lib/route/qdisc/htb.c b/lib/route/qdisc/htb.c
index 463d364..85642c1 100644
--- a/lib/route/qdisc/htb.c
+++ b/lib/route/qdisc/htb.c
@@ -13,16 +13,16 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/cache.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/class.h>
#include <netlink/route/link.h>
#include <netlink/route/qdisc/htb.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define SCH_HTB_HAS_RATE2QUANTUM 0x01
#define SCH_HTB_HAS_DEFCLS 0x02
diff --git a/lib/route/qdisc/ingress.c b/lib/route/qdisc/ingress.c
index cf7807e..40d02d2 100644
--- a/lib/route/qdisc/ingress.c
+++ b/lib/route/qdisc/ingress.c
@@ -11,12 +11,12 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/utils.h>
+#include "tc-api.h"
+
struct dumb {
uint32_t foo;
};
diff --git a/lib/route/qdisc/mqprio.c b/lib/route/qdisc/mqprio.c
index 6a50f3b..7751108 100644
--- a/lib/route/qdisc/mqprio.c
+++ b/lib/route/qdisc/mqprio.c
@@ -4,13 +4,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/qdisc/mqprio.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define SCH_MQPRIO_ATTR_NUMTC (1 << 0)
#define SCH_MQPRIO_ATTR_PRIOMAP (1 << 1)
diff --git a/lib/route/qdisc/netem.c b/lib/route/qdisc/netem.c
index 85ac5c3..4b6cd3b 100644
--- a/lib/route/qdisc/netem.c
+++ b/lib/route/qdisc/netem.c
@@ -13,13 +13,12 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/qdisc/netem.h>
+#include "tc-api.h"
#include "base/nl-base-utils.h"
/** @cond SKIP */
diff --git a/lib/route/qdisc/plug.c b/lib/route/qdisc/plug.c
index 301b002..82c1192 100644
--- a/lib/route/qdisc/plug.c
+++ b/lib/route/qdisc/plug.c
@@ -55,12 +55,12 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc/plug.h>
+#include "tc-api.h"
+
static int plug_msg_fill(struct rtnl_tc *tc, void *data, struct nl_msg *msg)
{
struct rtnl_plug *plug = data;
diff --git a/lib/route/qdisc/prio.c b/lib/route/qdisc/prio.c
index 56791b3..72105f2 100644
--- a/lib/route/qdisc/prio.c
+++ b/lib/route/qdisc/prio.c
@@ -21,13 +21,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/qdisc/prio.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define SCH_PRIO_ATTR_BANDS 1
#define SCH_PRIO_ATTR_PRIOMAP 2
diff --git a/lib/route/qdisc/red.c b/lib/route/qdisc/red.c
index 8b4eb70..3fe147b 100644
--- a/lib/route/qdisc/red.c
+++ b/lib/route/qdisc/red.c
@@ -11,13 +11,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/qdisc/red.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define RED_ATTR_LIMIT 0x01
#define RED_ATTR_QTH_MIN 0x02
diff --git a/lib/route/qdisc/sfq.c b/lib/route/qdisc/sfq.c
index 38abc32..050a176 100644
--- a/lib/route/qdisc/sfq.c
+++ b/lib/route/qdisc/sfq.c
@@ -18,13 +18,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/qdisc/sfq.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define SCH_SFQ_ATTR_QUANTUM 0x01
#define SCH_SFQ_ATTR_PERTURB 0x02
diff --git a/lib/route/qdisc/tbf.c b/lib/route/qdisc/tbf.c
index b7e3af5..fec9849 100644
--- a/lib/route/qdisc/tbf.c
+++ b/lib/route/qdisc/tbf.c
@@ -10,16 +10,16 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/cache.h>
#include <netlink/utils.h>
-#include <netlink-private/route/tc-api.h>
#include <netlink/route/qdisc.h>
#include <netlink/route/class.h>
#include <netlink/route/link.h>
#include <netlink/route/qdisc/tbf.h>
+#include "tc-api.h"
+
/** @cond SKIP */
#define TBF_ATTR_LIMIT 0x01
#define TBF_ATTR_RATE 0x02
diff --git a/lib/route/route_obj.c b/lib/route/route_obj.c
index 594d446..5330bf8 100644
--- a/lib/route/route_obj.c
+++ b/lib/route/route_obj.c
@@ -27,7 +27,6 @@
#include <linux/in_route.h>
#include <netlink-private/netlink.h>
-#include <netlink-private/route/nexthop-encap.h>
#include <netlink/netlink.h>
#include <netlink/cache.h>
#include <netlink/utils.h>
@@ -39,6 +38,7 @@
#include <netlink/route/nexthop.h>
#include "nl-aux-route/nl-route.h"
+#include "nexthop-encap.h"
/** @cond SKIP */
#define ROUTE_ATTR_FAMILY 0x000001
diff --git a/include/netlink-private/route/tc-api.h b/lib/route/tc-api.h
index 1eb27dc..d57a1e9 100644
--- a/include/netlink-private/route/tc-api.h
+++ b/lib/route/tc-api.h
@@ -10,72 +10,40 @@
#include <netlink/msg.h>
#include <netlink/route/tc.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Traffic control object operations
- * @ingroup tc
- *
- * This structure holds function pointers and settings implementing
- * the features of each traffic control object implementation.
- */
-struct rtnl_tc_ops
+#include "nl-hidden-route/nl-hidden-route.h"
+
+/*****************************************************************************/
+
+#define TCA_ATTR_HANDLE 0x0001
+#define TCA_ATTR_PARENT 0x0002
+#define TCA_ATTR_IFINDEX 0x0004
+#define TCA_ATTR_KIND 0x0008
+#define TCA_ATTR_FAMILY 0x0010
+#define TCA_ATTR_INFO 0x0020
+#define TCA_ATTR_OPTS 0x0040
+#define TCA_ATTR_STATS 0x0080
+#define TCA_ATTR_XSTATS 0x0100
+#define TCA_ATTR_LINK 0x0200
+#define TCA_ATTR_MTU 0x0400
+#define TCA_ATTR_MPU 0x0800
+#define TCA_ATTR_OVERHEAD 0x1000
+#define TCA_ATTR_LINKTYPE 0x2000
+#define TCA_ATTR_CHAIN 0x4000
+#define TCA_ATTR_MAX TCA_ATTR_CHAIN
+
+extern int tca_parse(struct nlattr **, int, struct rtnl_tc *,
+ const struct nla_policy *);
+
+#define RTNL_TC_RTABLE_SIZE 256
+
+static inline void *tca_xstats(struct rtnl_tc *tca)
{
- /**
- * Name of traffic control module
- */
- char *to_kind;
-
- /**
- * Type of traffic control object
- */
- enum rtnl_tc_type to_type;
-
-
- /**
- * Size of private data
- */
- size_t to_size;
-
- /**
- * Dump callbacks
- */
- void (*to_dump[NL_DUMP_MAX+1])(struct rtnl_tc *, void *,
- struct nl_dump_params *);
- /**
- * Used to fill the contents of TCA_OPTIONS
- */
- int (*to_msg_fill)(struct rtnl_tc *, void *, struct nl_msg *);
-
- /**
- * Uesd to to fill tc related messages, unlike with to_msg_fill,
- * the contents is not encapsulated with a TCA_OPTIONS nested
- * attribute.
- */
- int (*to_msg_fill_raw)(struct rtnl_tc *, void *, struct nl_msg *);
-
- /**
- * TCA_OPTIONS message parser
- */
- int (*to_msg_parser)(struct rtnl_tc *, void *);
+ return tca->tc_xstats->d_data;
+}
- /**
- * Called before a tc object is destroyed
- */
- void (*to_free_data)(struct rtnl_tc *, void *);
+extern struct nl_af_group tc_groups[];
- /**
- * Called whenever a classifier object needs to be cloned
- */
- int (*to_clone)(void *, void *);
-
- /**
- * Internal, don't touch
- */
- struct nl_list_head to_list;
-};
+/*****************************************************************************/
struct rtnl_tc_type_ops
{
@@ -90,6 +58,12 @@ struct rtnl_tc_type_ops
struct nl_dump_params *);
};
+void *rtnl_tc_data_peek(struct rtnl_tc *tc);
+
+/*****************************************************************************/
+
+/* WARNING: the following symbols are wrongly exported in libnl-route-3
+ * library. They are private API, but leaked. */
extern int rtnl_tc_msg_parse(struct nlmsghdr *,
struct rtnl_tc *);
extern int rtnl_tc_msg_build(struct rtnl_tc *, int,
@@ -108,22 +82,20 @@ extern uint64_t rtnl_tc_compare(struct nl_object *,
struct nl_object *,
uint64_t, int);
-void * rtnl_tc_data_peek(struct rtnl_tc *tc);
extern void * rtnl_tc_data(struct rtnl_tc *);
extern void * rtnl_tc_data_check(struct rtnl_tc *,
struct rtnl_tc_ops *, int *);
-extern struct rtnl_tc_ops * rtnl_tc_lookup_ops(enum rtnl_tc_type,
- const char *);
-extern struct rtnl_tc_ops * rtnl_tc_get_ops(struct rtnl_tc *);
extern int rtnl_tc_register(struct rtnl_tc_ops *);
extern void rtnl_tc_unregister(struct rtnl_tc_ops *);
extern void rtnl_tc_type_register(struct rtnl_tc_type_ops *);
extern void rtnl_tc_type_unregister(struct rtnl_tc_type_ops *);
-#ifdef __cplusplus
-}
-#endif
+
+extern int rtnl_tc_build_rate_table(struct rtnl_tc *tc, struct rtnl_ratespec *,
+ uint32_t *);
+
+/*****************************************************************************/
#endif
diff --git a/lib/route/tc.c b/lib/route/tc.c
index 3fa41cc..efd822c 100644
--- a/lib/route/tc.c
+++ b/lib/route/tc.c
@@ -10,14 +10,13 @@
*/
#include <netlink-private/netlink.h>
-#include <netlink-private/tc.h>
#include <netlink/netlink.h>
#include <netlink/utils.h>
#include <netlink/route/rtnl.h>
#include <netlink/route/link.h>
#include <netlink/route/tc.h>
-#include <netlink-private/route/tc-api.h>
+#include "tc-api.h"
#include "base/nl-base-utils.h"
/** @cond SKIP */
diff --git a/lib/socket.c b/lib/socket.c
index e2e7d3e..cc96ae5 100644
--- a/lib/socket.c
+++ b/lib/socket.c
@@ -26,7 +26,6 @@
#include "sys/socket.h"
#include <netlink-private/netlink.h>
-#include <netlink-private/socket.h>
#include "base/nl-base-utils.h"
#include <netlink/netlink.h>
#include <netlink/utils.h>
@@ -34,6 +33,8 @@
#include <netlink/msg.h>
#include <netlink/attr.h>
+#include "nl-core.h"
+
static int default_cb = NL_CB_DEFAULT;
static void _nl_init init_default_cb(void)
diff --git a/libnl-route-3.sym b/libnl-route-3.sym
index 275b616..091ff4b 100644
--- a/libnl-route-3.sym
+++ b/libnl-route-3.sym
@@ -19,6 +19,10 @@ global:
rtnl_link_info_ops_put;
rtnl_link_register_info;
rtnl_link_unregister_info;
+
+ # these functions are in private header files and should have never
+ # been exported.
+ # declared in "lib/route/tc-api.h".
rtnl_tc_build_rate_table;
rtnl_tc_clone;
rtnl_tc_compare;
@@ -36,7 +40,8 @@ global:
rtnl_tc_unregister;
# these functions are in private header files and should have never
- # been exported. They are used by libnl internals
+ # been exported. They are used by libnl internals.
+ # declared in "include/nl-hidden-route/nl-hidden-route.h".
rtnl_tc_get_ops;
rtnl_tc_lookup_ops;
diff --git a/src/lib/tc.c b/src/lib/tc.c
index ba3de18..fbab274 100644
--- a/src/lib/tc.c
+++ b/src/lib/tc.c
@@ -5,7 +5,8 @@
#include <netlink/cli/utils.h>
#include <netlink/cli/tc.h>
-#include <netlink-private/route/tc-api.h>
+
+#include "nl-hidden-route/nl-hidden-route.h"
/**
* @ingroup cli
diff --git a/src/nl-class-add.c b/src/nl-class-add.c
index d3f9230..82de8fa 100644
--- a/src/nl-class-add.c
+++ b/src/nl-class-add.c
@@ -9,10 +9,10 @@
#include <netlink/cli/class.h>
#include <netlink/cli/link.h>
-#include <netlink-private/route/tc-api.h>
-
#include <linux/netlink.h>
+#include "nl-hidden-route/nl-hidden-route.h"
+
static int quiet = 0;
static void print_usage(void)
diff --git a/src/nl-cls-add.c b/src/nl-cls-add.c
index a29beb7..090a836 100644
--- a/src/nl-cls-add.c
+++ b/src/nl-cls-add.c
@@ -8,10 +8,10 @@
#include <netlink/cli/cls.h>
#include <netlink/cli/link.h>
-#include <netlink-private/route/tc-api.h>
-
#include <linux/netlink.h>
+#include "nl-hidden-route/nl-hidden-route.h"
+
static int quiet = 0;
static void print_usage(void)
diff --git a/src/nl-qdisc-add.c b/src/nl-qdisc-add.c
index 8cd317c..698b00b 100644
--- a/src/nl-qdisc-add.c
+++ b/src/nl-qdisc-add.c
@@ -8,10 +8,10 @@
#include <netlink/cli/qdisc.h>
#include <netlink/cli/link.h>
-#include <netlink-private/route/tc-api.h>
-
#include <linux/netlink.h>
+#include "nl-hidden-route/nl-hidden-route.h"
+
static int quiet = 0;
static void print_usage(void)
diff --git a/tests/cksuite-all-attr.c b/tests/cksuite-all-attr.c
index f929f61..a4bd271 100644
--- a/tests/cksuite-all-attr.c
+++ b/tests/cksuite-all-attr.c
@@ -10,7 +10,6 @@
#include "netlink/attr.h"
#include "netlink/msg.h"
#include "netlink/route/cls/u32.h"
-#include "netlink-private/route/tc-api.h"
#include "nl-aux-route/nl-route.h"
diff --git a/tests/test-cache-mngr.c b/tests/test-cache-mngr.c
index 33cbd8d..bae2d22 100644
--- a/tests/test-cache-mngr.c
+++ b/tests/test-cache-mngr.c
@@ -6,8 +6,6 @@
#include <sys/time.h>
#include <time.h>
-#include <netlink-private/cache-api.h>
-
#include <linux/netlink.h>
static int quit = 0;
diff --git a/tools/clang-format.sh b/tools/clang-format.sh
index 01c657d..e4b22f0 100755
--- a/tools/clang-format.sh
+++ b/tools/clang-format.sh
@@ -14,14 +14,7 @@ EXCLUDE_PATHS_TOPLEVEL=(
# The following files are currently not formatted with clang.
# Exclude them too.
EXCLUDE_PATHS_TOPLEVEL+=(
- "include/netlink-private/cache-api.h"
"include/netlink-private/netlink.h"
- "include/netlink-private/object-api.h"
- "include/netlink-private/route/link/sriov.h"
- "include/netlink-private/route/nexthop-encap.h"
- "include/netlink-private/route/tc-api.h"
- "include/netlink-private/socket.h"
- "include/netlink-private/tc.h"
"include/netlink-private/types.h"
"include/netlink/addr.h"
"include/netlink/attr.h"
@@ -142,6 +135,8 @@ EXCLUDE_PATHS_TOPLEVEL+=(
"include/netlink/xfrm/selector.h"
"include/netlink/xfrm/sp.h"
"include/netlink/xfrm/template.h"
+ "include/nl-shared-core/cache-api.h"
+ "include/nl-shared-core/object-api.h"
"lib/addr.c"
"lib/attr.c"
"lib/cache.c"
@@ -191,6 +186,7 @@ EXCLUDE_PATHS_TOPLEVEL+=(
"lib/netfilter/queue_msg.c"
"lib/netfilter/queue_msg_obj.c"
"lib/netfilter/queue_obj.c"
+ "lib/nl-core.h"
"lib/nl.c"
"lib/object.c"
"lib/route/act.c"
@@ -215,6 +211,7 @@ EXCLUDE_PATHS_TOPLEVEL+=(
"lib/route/cls/mall.c"
"lib/route/cls/police.c"
"lib/route/cls/u32.c"
+ "lib/route/link-sriov.h"
"lib/route/link.c"
"lib/route/link/api.c"
"lib/route/link/bonding.c"
@@ -247,6 +244,7 @@ EXCLUDE_PATHS_TOPLEVEL+=(
"lib/route/mdb.c"
"lib/route/neigh.c"
"lib/route/netconf.c"
+ "lib/route/nexthop-encap.h"
"lib/route/nexthop.c"
"lib/route/nexthop_encap.c"
"lib/route/nh_encap_mpls.c"
@@ -272,6 +270,7 @@ EXCLUDE_PATHS_TOPLEVEL+=(
"lib/route/route_utils.c"
"lib/route/rtnl.c"
"lib/route/rule.c"
+ "lib/route/tc-api.h"
"lib/route/tc.c"
"lib/socket.c"
"lib/utils.c"