summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-08-01 06:47:43 (GMT)
committerThomas Haller <thaller@redhat.com>2023-08-01 07:37:45 (GMT)
commitcf41e14dd44bbe6f80074335ae774567f55a5f47 (patch)
tree38098b246c151df31ed23808a66f85f56e9f7327
parentdb810cfb8ce7f2620f3d865ac4e9e3f757030eb3 (diff)
downloadlibnl-cf41e14dd44bbe6f80074335ae774567f55a5f47.zip
libnl-cf41e14dd44bbe6f80074335ae774567f55a5f47.tar.gz
libnl-cf41e14dd44bbe6f80074335ae774567f55a5f47.tar.bz2
route: move "include/netlink-private/route/tc-api.h" to lib/route
This header is entirely private to lib/route (libnl-route-3). Move the header there, it should not be used by anybody else. Note that libnl-route-3 exports symbols from this private header. That is ugly, make that clearer by adding comments.
-rw-r--r--Makefile.am4
-rw-r--r--include/netlink-private/types.h1
-rw-r--r--include/nl-hidden-route/README.md10
-rw-r--r--lib/route/act.c2
-rw-r--r--lib/route/act/gact.c3
-rw-r--r--lib/route/act/mirred.c3
-rw-r--r--lib/route/act/nat.c3
-rw-r--r--lib/route/act/skbedit.c3
-rw-r--r--lib/route/act/vlan.c2
-rw-r--r--lib/route/class.c3
-rw-r--r--lib/route/cls.c3
-rw-r--r--lib/route/cls/basic.c3
-rw-r--r--lib/route/cls/cgroup.c3
-rw-r--r--lib/route/cls/flower.c2
-rw-r--r--lib/route/cls/fw.c3
-rw-r--r--lib/route/cls/mall.c2
-rw-r--r--lib/route/cls/police.c3
-rw-r--r--lib/route/cls/u32.c2
-rw-r--r--lib/route/qdisc.c3
-rw-r--r--lib/route/qdisc/blackhole.c3
-rw-r--r--lib/route/qdisc/cbq.c3
-rw-r--r--lib/route/qdisc/dsmark.c3
-rw-r--r--lib/route/qdisc/fifo.c3
-rw-r--r--lib/route/qdisc/fq_codel.c3
-rw-r--r--lib/route/qdisc/hfsc.c3
-rw-r--r--lib/route/qdisc/htb.c3
-rw-r--r--lib/route/qdisc/ingress.c3
-rw-r--r--lib/route/qdisc/mqprio.c3
-rw-r--r--lib/route/qdisc/netem.c2
-rw-r--r--lib/route/qdisc/plug.c3
-rw-r--r--lib/route/qdisc/prio.c3
-rw-r--r--lib/route/qdisc/red.c3
-rw-r--r--lib/route/qdisc/sfq.c3
-rw-r--r--lib/route/qdisc/tbf.c3
-rw-r--r--lib/route/tc-api.h (renamed from include/netlink-private/route/tc-api.h)15
-rw-r--r--lib/route/tc.c2
-rw-r--r--libnl-route-3.sym4
-rwxr-xr-xtools/clang-format.sh2
38 files changed, 81 insertions, 44 deletions
diff --git a/Makefile.am b/Makefile.am
index b7f23fe..53b9e1a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -276,13 +276,13 @@ noinst_HEADERS = \
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 \
$(NULL)
###############################################################################
@@ -378,7 +378,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 \
@@ -464,6 +463,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 = \
diff --git a/include/netlink-private/types.h b/include/netlink-private/types.h
index c36e01a..bb31c44 100644
--- a/include/netlink-private/types.h
+++ b/include/netlink-private/types.h
@@ -15,7 +15,6 @@
#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/nh.h>
#include <netlink-private/route/nexthop-encap.h>
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/lib/route/act.c b/lib/route/act.c
index 1f7d4ee..c07628c 100644
--- a/lib/route/act.c
+++ b/lib/route/act.c
@@ -14,10 +14,10 @@
#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..5f36748 100644
--- a/lib/route/act/gact.c
+++ b/lib/route/act/gact.c
@@ -15,9 +15,10 @@
#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..32faa3b 100644
--- a/lib/route/act/mirred.c
+++ b/lib/route/act/mirred.c
@@ -15,9 +15,10 @@
#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..72dceb6 100644
--- a/lib/route/act/nat.c
+++ b/lib/route/act/nat.c
@@ -15,10 +15,11 @@
#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..b5e9a2b 100644
--- a/lib/route/act/skbedit.c
+++ b/lib/route/act/skbedit.c
@@ -15,9 +15,10 @@
#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..b7685aa 100644
--- a/lib/route/act/vlan.c
+++ b/lib/route/act/vlan.c
@@ -15,9 +15,9 @@
#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..07e84ef 100644
--- a/lib/route/class.c
+++ b/lib/route/class.c
@@ -12,12 +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/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/cls.c b/lib/route/cls.c
index 45f9412..7b710ac 100644
--- a/lib/route/cls.c
+++ b/lib/route/cls.c
@@ -13,10 +13,11 @@
#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..2fb7eb4 100644
--- a/lib/route/cls/basic.c
+++ b/lib/route/cls/basic.c
@@ -19,12 +19,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/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..75639da 100644
--- a/lib/route/cls/cgroup.c
+++ b/lib/route/cls/cgroup.c
@@ -15,11 +15,12 @@
#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/flower.c b/lib/route/cls/flower.c
index ffeae39..df2e60d 100644
--- a/lib/route/cls/flower.c
+++ b/lib/route/cls/flower.c
@@ -8,11 +8,11 @@
#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..f68b769 100644
--- a/lib/route/cls/fw.c
+++ b/lib/route/cls/fw.c
@@ -15,10 +15,11 @@
#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..688e73a 100644
--- a/lib/route/cls/mall.c
+++ b/lib/route/cls/mall.c
@@ -15,11 +15,11 @@
#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..53f0882 100644
--- a/lib/route/cls/police.c
+++ b/lib/route/cls/police.c
@@ -7,10 +7,11 @@
#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>
+#include "tc-api.h"
+
/**
* @name Policer Type
* @{
diff --git a/lib/route/cls/u32.c b/lib/route/cls/u32.c
index df5aa3d..83e5413 100644
--- a/lib/route/cls/u32.c
+++ b/lib/route/cls/u32.c
@@ -17,11 +17,11 @@
#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/lib/route/qdisc.c b/lib/route/qdisc.c
index 4b6b960..7bf8f18 100644
--- a/lib/route/qdisc.c
+++ b/lib/route/qdisc.c
@@ -14,11 +14,12 @@
#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..55b9172 100644
--- a/lib/route/qdisc/cbq.c
+++ b/lib/route/qdisc/cbq.c
@@ -7,13 +7,14 @@
#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..e13ced7 100644
--- a/lib/route/qdisc/dsmark.c
+++ b/lib/route/qdisc/dsmark.c
@@ -15,10 +15,11 @@
#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..5392b92 100644
--- a/lib/route/qdisc/fifo.c
+++ b/lib/route/qdisc/fifo.c
@@ -26,11 +26,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/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..ecfe02a 100644
--- a/lib/route/qdisc/fq_codel.c
+++ b/lib/route/qdisc/fq_codel.c
@@ -14,11 +14,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/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..0617e08 100644
--- a/lib/route/qdisc/hfsc.c
+++ b/lib/route/qdisc/hfsc.c
@@ -15,12 +15,13 @@
#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..6c48adc 100644
--- a/lib/route/qdisc/htb.c
+++ b/lib/route/qdisc/htb.c
@@ -17,12 +17,13 @@
#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..7ff33a2 100644
--- a/lib/route/qdisc/ingress.c
+++ b/lib/route/qdisc/ingress.c
@@ -13,10 +13,11 @@
#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..da43991 100644
--- a/lib/route/qdisc/mqprio.c
+++ b/lib/route/qdisc/mqprio.c
@@ -7,10 +7,11 @@
#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..75f3a9c 100644
--- a/lib/route/qdisc/netem.c
+++ b/lib/route/qdisc/netem.c
@@ -16,10 +16,10 @@
#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..72d9784 100644
--- a/lib/route/qdisc/plug.c
+++ b/lib/route/qdisc/plug.c
@@ -58,9 +58,10 @@
#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..570ee45 100644
--- a/lib/route/qdisc/prio.c
+++ b/lib/route/qdisc/prio.c
@@ -24,10 +24,11 @@
#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..6f87425 100644
--- a/lib/route/qdisc/red.c
+++ b/lib/route/qdisc/red.c
@@ -14,10 +14,11 @@
#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..de96522 100644
--- a/lib/route/qdisc/sfq.c
+++ b/lib/route/qdisc/sfq.c
@@ -21,10 +21,11 @@
#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..1ec45f1 100644
--- a/lib/route/qdisc/tbf.c
+++ b/lib/route/qdisc/tbf.c
@@ -14,12 +14,13 @@
#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/include/netlink-private/route/tc-api.h b/lib/route/tc-api.h
index cbfb021..7de8915 100644
--- a/include/netlink-private/route/tc-api.h
+++ b/lib/route/tc-api.h
@@ -12,10 +12,6 @@
#include "nl-hidden-route/nl-hidden-route.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct rtnl_tc_type_ops
{
enum rtnl_tc_type tt_type;
@@ -29,6 +25,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,
@@ -47,7 +49,6 @@ 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 *);
@@ -58,8 +59,6 @@ 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
+/*****************************************************************************/
#endif
diff --git a/lib/route/tc.c b/lib/route/tc.c
index 3fa41cc..2770f53 100644
--- a/lib/route/tc.c
+++ b/lib/route/tc.c
@@ -16,8 +16,8 @@
#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/libnl-route-3.sym b/libnl-route-3.sym
index 052569c..3dc9b36 100644
--- a/libnl-route-3.sym
+++ b/libnl-route-3.sym
@@ -20,6 +20,10 @@ global:
rtnl_link_register_info;
rtnl_link_unregister_info;
rtnl_tc_build_rate_table;
+
+ # these functions are in private header files and should have never
+ # been exported.
+ # declared in "lib/route/tc-api.h".
rtnl_tc_clone;
rtnl_tc_compare;
rtnl_tc_data;
diff --git a/tools/clang-format.sh b/tools/clang-format.sh
index 01c657d..9a48c82 100755
--- a/tools/clang-format.sh
+++ b/tools/clang-format.sh
@@ -19,7 +19,6 @@ EXCLUDE_PATHS_TOPLEVEL+=(
"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"
@@ -272,6 +271,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"