diff options
author | Thomas Haller <thaller@redhat.com> | 2023-08-01 08:49:04 (GMT) |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2023-08-01 08:49:04 (GMT) |
commit | 77a8a0053a102a9d8258702a895ccb4b98d41a5e (patch) | |
tree | ba1e55b8dd26ac24923a7a6ea06f6317413a7df7 | |
parent | 739d9e6e88b7c92d10164b4754a713c15b6ca07a (diff) | |
parent | 776fc5a6deb5cb6a78f57ae2f5c6b5f450265bf2 (diff) | |
download | libnl-77a8a0053a102a9d8258702a895ccb4b98d41a5e.zip libnl-77a8a0053a102a9d8258702a895ccb4b98d41a5e.tar.gz libnl-77a8a0053a102a9d8258702a895ccb4b98d41a5e.tar.bz2 |
include: merge branch 'th/move-private-headers-2'
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__ */ @@ -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" |