diff options
author | Thomas Haller <thaller@redhat.com> | 2017-03-01 21:00:14 (GMT) |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-03-02 00:33:25 (GMT) |
commit | 45cbfb9d11c23d5f64a795fb05205ced48db1c7c (patch) | |
tree | cec9fcb3513f60bd017d1c3eda94b593438fe8fc | |
parent | 3b2071e970995a9a22d46457e60a762161b46231 (diff) | |
download | libnl-45cbfb9d11c23d5f64a795fb05205ced48db1c7c.zip libnl-45cbfb9d11c23d5f64a795fb05205ced48db1c7c.tar.gz libnl-45cbfb9d11c23d5f64a795fb05205ced48db1c7c.tar.bz2 |
include: don't include kernel headers in public libnl3 headers
It would be desirable not to include kernel headers in our public
libnl3 headers. As a test, remove all those includes, and fix
compilation by explicitly including the kernel headers where needed.
In some cases, that requires forward declaration for kernel
structures, as we use them as part of our own headers.
Realistically, we cannot drop those includes as it probalby breaks
compilation for users that expect to get a certain kernel header
when including a libnl3 header. So, this will not be done and the
includes will be restored in the next commit.
Do this step to show how it would be and to verify that we could
build with such a change. The reason not to do this is backward
compatibility (at compile-time).
104 files changed, 179 insertions, 45 deletions
diff --git a/include/netlink-private/types.h b/include/netlink-private/types.h index 4139619..36fd3a5 100644 --- a/include/netlink-private/types.h +++ b/include/netlink-private/types.h @@ -23,9 +23,13 @@ #include <netlink-private/object-api.h> #include <netlink-private/route/tc-api.h> #include <netlink-private/route/link/sriov.h> +#include <linux/netlink.h> +#include <linux/rtnetlink.h> +#include <linux/genetlink.h> #include <linux/tc_act/tc_mirred.h> #include <linux/tc_act/tc_skbedit.h> #include <linux/tc_act/tc_gact.h> +#include <linux/sock_diag.h> #define NL_SOCK_PASSCRED (1<<1) #define NL_OWN_PORT (1<<2) diff --git a/include/netlink/addr.h b/include/netlink/addr.h index 9d0d24a..00ca784 100644 --- a/include/netlink/addr.h +++ b/include/netlink/addr.h @@ -18,6 +18,8 @@ extern "C" { #endif +struct nlattr; + struct nl_addr; /* Creation */ diff --git a/include/netlink/attr.h b/include/netlink/attr.h index e941a1a..2157fe1 100644 --- a/include/netlink/attr.h +++ b/include/netlink/attr.h @@ -21,6 +21,8 @@ extern "C" { #endif +struct nlattr; + struct nl_msg; /** diff --git a/include/netlink/cli/ct.h b/include/netlink/cli/ct.h index ebe7c9d..518d63e 100644 --- a/include/netlink/cli/ct.h +++ b/include/netlink/cli/ct.h @@ -13,7 +13,6 @@ #define __NETLINK_CLI_CT_H_ #include <netlink/netfilter/ct.h> -#include <linux/netfilter/nf_conntrack_common.h> extern struct nfnl_ct *nl_cli_ct_alloc(void); extern struct nl_cache *nl_cli_ct_alloc_cache(struct nl_sock *); diff --git a/include/netlink/cli/exp.h b/include/netlink/cli/exp.h index b2418f8..27440dd 100644 --- a/include/netlink/cli/exp.h +++ b/include/netlink/cli/exp.h @@ -14,7 +14,6 @@ #define __NETLINK_CLI_EXP_H_ #include <netlink/netfilter/exp.h> -#include <linux/netfilter/nf_conntrack_common.h> extern struct nfnl_exp *nl_cli_exp_alloc(void); extern struct nl_cache *nl_cli_exp_alloc_cache(struct nl_sock *); diff --git a/include/netlink/data.h b/include/netlink/data.h index b091c4b..45010fe 100644 --- a/include/netlink/data.h +++ b/include/netlink/data.h @@ -18,6 +18,8 @@ extern "C" { #endif +struct nlattr; + struct nl_data; /* General */ diff --git a/include/netlink/handlers.h b/include/netlink/handlers.h index e94cd34..4fac148 100644 --- a/include/netlink/handlers.h +++ b/include/netlink/handlers.h @@ -22,10 +22,13 @@ extern "C" { #endif +struct nlmsgerr; +struct sockaddr_nl; +struct ucred; + struct nl_cb; struct nl_sock; struct nl_msg; -struct ucred; /** * @name Callback Typedefs diff --git a/include/netlink/idiag/idiagnl.h b/include/netlink/idiag/idiagnl.h index c99f83b..d541955 100644 --- a/include/netlink/idiag/idiagnl.h +++ b/include/netlink/idiag/idiagnl.h @@ -13,7 +13,6 @@ #define NETLINK_IDIAGNL_H_ #include <netlink/netlink.h> -#include <linux/sock_diag.h> #ifdef __cplusplus extern "C" { @@ -90,15 +89,15 @@ enum { /* deprectated keep these only for compatibility, DO NOT USE THEM */ -#define IDIAG_SK_MEMINFO_RMEM_ALLOC SK_MEMINFO_RMEM_ALLOC -#define IDIAG_SK_MEMINFO_RCVBUF SK_MEMINFO_RCVBUF -#define IDIAG_SK_MEMINFO_WMEM_ALLOC SK_MEMINFO_WMEM_ALLOC -#define IDIAG_SK_MEMINFO_SNDBUF SK_MEMINFO_SNDBUF -#define IDIAG_SK_MEMINFO_FWD_ALLOC SK_MEMINFO_FWD_ALLOC -#define IDIAG_SK_MEMINFO_WMEM_QUEUED SK_MEMINFO_WMEM_QUEUED -#define IDIAG_SK_MEMINFO_OPTMEM SK_MEMINFO_OPTMEM -#define IDIAG_SK_MEMINFO_BACKLOG SK_MEMINFO_BACKLOG -#define IDIAG_SK_MEMINFO_VARS SK_MEMINFO_VARS +#define IDIAG_SK_MEMINFO_RMEM_ALLOC 0 /* SK_MEMINFO_RMEM_ALLOC */ +#define IDIAG_SK_MEMINFO_RCVBUF 1 /* SK_MEMINFO_RCVBUF */ +#define IDIAG_SK_MEMINFO_WMEM_ALLOC 2 /* SK_MEMINFO_WMEM_ALLOC */ +#define IDIAG_SK_MEMINFO_SNDBUF 3 /* SK_MEMINFO_SNDBUF */ +#define IDIAG_SK_MEMINFO_FWD_ALLOC 4 /* SK_MEMINFO_FWD_ALLOC */ +#define IDIAG_SK_MEMINFO_WMEM_QUEUED 5 /* SK_MEMINFO_WMEM_QUEUED */ +#define IDIAG_SK_MEMINFO_OPTMEM 6 /* SK_MEMINFO_OPTMEM */ +#define IDIAG_SK_MEMINFO_BACKLOG 7 /* SK_MEMINFO_BACKLOG */ +#define IDIAG_SK_MEMINFO_VARS SK_MEMINFO_VARS /* deprecated names. */ #define IDIAG_TIMER_OFF IDIAGNL_TIMER_OFF diff --git a/include/netlink/msg.h b/include/netlink/msg.h index f3d50ae..5aee97d 100644 --- a/include/netlink/msg.h +++ b/include/netlink/msg.h @@ -20,6 +20,8 @@ extern "C" { #endif +struct nlmsghdr; + #define NL_DONTPAD 0 /** diff --git a/include/netlink/netfilter/exp.h b/include/netlink/netfilter/exp.h index 736af24..8a8a13e 100644 --- a/include/netlink/netfilter/exp.h +++ b/include/netlink/netfilter/exp.h @@ -20,8 +20,6 @@ #include <netlink/cache.h> #include <netlink/msg.h> -#include <linux/version.h> - #ifdef __cplusplus extern "C" { #endif diff --git a/include/netlink/netlink.h b/include/netlink/netlink.h index f8f2082..08f366e 100644 --- a/include/netlink/netlink.h +++ b/include/netlink/netlink.h @@ -22,10 +22,6 @@ #include <sys/time.h> #include <netdb.h> #include <netlink/netlink-compat.h> -#include <linux/netlink.h> -#include <linux/rtnetlink.h> -#include <linux/genetlink.h> -#include <linux/netfilter/nfnetlink.h> #include <netinet/tcp.h> #include <netlink/version.h> #include <netlink/errno.h> @@ -38,6 +34,7 @@ extern "C" { #endif +struct nlmsghdr; struct ucred; struct nl_cache_ops; struct nl_parser_param; diff --git a/include/netlink/route/act/gact.h b/include/netlink/route/act/gact.h index 9538711..7ea138a 100644 --- a/include/netlink/route/act/gact.h +++ b/include/netlink/route/act/gact.h @@ -15,7 +15,6 @@ #include <netlink/netlink.h> #include <netlink/cache.h> #include <netlink/route/action.h> -#include <linux/tc_act/tc_gact.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/act/mirred.h b/include/netlink/route/act/mirred.h index d65ed37..2ed2cd8 100644 --- a/include/netlink/route/act/mirred.h +++ b/include/netlink/route/act/mirred.h @@ -15,7 +15,6 @@ #include <netlink/netlink.h> #include <netlink/cache.h> #include <netlink/route/action.h> -#include <linux/tc_act/tc_mirred.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/act/skbedit.h b/include/netlink/route/act/skbedit.h index 69829e8..1ff01c3 100644 --- a/include/netlink/route/act/skbedit.h +++ b/include/netlink/route/act/skbedit.h @@ -15,7 +15,6 @@ #include <netlink/netlink.h> #include <netlink/cache.h> #include <netlink/route/action.h> -#include <linux/tc_act/tc_skbedit.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/cls/ematch.h b/include/netlink/route/cls/ematch.h index 13f9c32..728884d 100644 --- a/include/netlink/route/cls/ematch.h +++ b/include/netlink/route/cls/ematch.h @@ -15,7 +15,6 @@ #include <netlink/netlink.h> #include <netlink/msg.h> #include <netlink/route/classifier.h> -#include <linux/pkt_cls.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/cls/ematch/cmp.h b/include/netlink/route/cls/ematch/cmp.h index 308113e..0ae3851 100644 --- a/include/netlink/route/cls/ematch/cmp.h +++ b/include/netlink/route/cls/ematch/cmp.h @@ -14,12 +14,13 @@ #include <netlink/netlink.h> #include <netlink/route/cls/ematch.h> -#include <linux/tc_ematch/tc_em_cmp.h> #ifdef __cplusplus extern "C" { #endif +struct tcf_em_cmp; + extern void rtnl_ematch_cmp_set(struct rtnl_ematch *, struct tcf_em_cmp *); extern struct tcf_em_cmp * diff --git a/include/netlink/route/cls/ematch/meta.h b/include/netlink/route/cls/ematch/meta.h index 2fe5899..7c397c8 100644 --- a/include/netlink/route/cls/ematch/meta.h +++ b/include/netlink/route/cls/ematch/meta.h @@ -14,7 +14,6 @@ #include <netlink/netlink.h> #include <netlink/route/cls/ematch.h> -#include <linux/tc_ematch/tc_em_meta.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/cls/ematch/nbyte.h b/include/netlink/route/cls/ematch/nbyte.h index 014c719..25b07d9 100644 --- a/include/netlink/route/cls/ematch/nbyte.h +++ b/include/netlink/route/cls/ematch/nbyte.h @@ -14,7 +14,6 @@ #include <netlink/netlink.h> #include <netlink/route/cls/ematch.h> -#include <linux/tc_ematch/tc_em_nbyte.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/cls/ematch/text.h b/include/netlink/route/cls/ematch/text.h index e599abf..190ce8e 100644 --- a/include/netlink/route/cls/ematch/text.h +++ b/include/netlink/route/cls/ematch/text.h @@ -14,7 +14,6 @@ #include <netlink/netlink.h> #include <netlink/route/cls/ematch.h> -#include <linux/tc_ematch/tc_em_text.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/link/can.h b/include/netlink/route/link/can.h index 61c9f47..442cd8d 100644 --- a/include/netlink/route/link/can.h +++ b/include/netlink/route/link/can.h @@ -14,12 +14,15 @@ #include <netlink/netlink.h> #include <netlink/route/link.h> -#include <linux/can/netlink.h> #ifdef __cplusplus extern "C" { #endif +struct can_bittiming_const; +struct can_bittiming; +struct can_berr_counter; + extern int rtnl_link_is_can(struct rtnl_link *link); extern char *rtnl_link_can_ctrlmode2str(int, char *, size_t); diff --git a/include/netlink/route/link/macsec.h b/include/netlink/route/link/macsec.h index d9cf7da..58ff7b6 100644 --- a/include/netlink/route/link/macsec.h +++ b/include/netlink/route/link/macsec.h @@ -14,13 +14,13 @@ #include <netlink/netlink.h> #include <netlink/route/link.h> -#include <linux/if_link.h> -#include <linux/if_macsec.h> #ifdef __cplusplus extern "C" { #endif +enum macsec_validation_type; + struct rtnl_link *rtnl_link_macsec_alloc(void); int rtnl_link_macsec_set_sci(struct rtnl_link *, uint64_t); diff --git a/include/netlink/route/link/vxlan.h b/include/netlink/route/link/vxlan.h index 0565777..a929a9f 100644 --- a/include/netlink/route/link/vxlan.h +++ b/include/netlink/route/link/vxlan.h @@ -19,6 +19,8 @@ extern "C" { #endif +struct ifla_vxlan_port_range; + #define VXLAN_ID_MAX 16777215 enum { diff --git a/include/netlink/route/pktloc.h b/include/netlink/route/pktloc.h index c3768ce..a54659a 100644 --- a/include/netlink/route/pktloc.h +++ b/include/netlink/route/pktloc.h @@ -16,7 +16,6 @@ #include <netlink/cache.h> #include <netlink/route/tc.h> -#include <linux/tc_ematch/tc_em_cmp.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/qdisc/hfsc.h b/include/netlink/route/qdisc/hfsc.h index dd0a2b7..4c33809 100644 --- a/include/netlink/route/qdisc/hfsc.h +++ b/include/netlink/route/qdisc/hfsc.h @@ -21,6 +21,8 @@ extern "C" { #endif +struct tc_service_curve; + extern uint32_t rtnl_qdisc_hfsc_get_defcls(const struct rtnl_qdisc *); extern int rtnl_qdisc_hfsc_set_defcls(struct rtnl_qdisc *, uint32_t); diff --git a/include/netlink/route/route.h b/include/netlink/route/route.h index 477250d..80e6bc9 100644 --- a/include/netlink/route/route.h +++ b/include/netlink/route/route.h @@ -18,7 +18,6 @@ #include <netlink/data.h> #include <netlink/route/nexthop.h> #include <netlink/route/rtnl.h> -#include <linux/in_route.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/rule.h b/include/netlink/route/rule.h index 760b782..450c5a9 100644 --- a/include/netlink/route/rule.h +++ b/include/netlink/route/rule.h @@ -16,7 +16,6 @@ #include <netlink/cache.h> #include <netlink/addr.h> #include <netlink/route/route.h> -#include <linux/fib_rules.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/route/tc.h b/include/netlink/route/tc.h index f1f0f8d..266f48d 100644 --- a/include/netlink/route/tc.h +++ b/include/netlink/route/tc.h @@ -16,8 +16,6 @@ #include <netlink/cache.h> #include <netlink/data.h> #include <netlink/route/link.h> -#include <linux/pkt_sched.h> -#include <linux/pkt_cls.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/xfrm/ae.h b/include/netlink/xfrm/ae.h index 95112dd..558474a 100644 --- a/include/netlink/xfrm/ae.h +++ b/include/netlink/xfrm/ae.h @@ -37,7 +37,6 @@ #include <netlink/netlink.h> #include <netlink/cache.h> #include <netlink/addr.h> -#include <linux/xfrm.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/xfrm/lifetime.h b/include/netlink/xfrm/lifetime.h index a5d5955..cb9fdc5 100644 --- a/include/netlink/xfrm/lifetime.h +++ b/include/netlink/xfrm/lifetime.h @@ -37,7 +37,6 @@ #include <netlink/netlink.h> #include <netlink/cache.h> #include <netlink/addr.h> -#include <linux/xfrm.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/xfrm/sa.h b/include/netlink/xfrm/sa.h index 7362c36..e2e54e2 100644 --- a/include/netlink/xfrm/sa.h +++ b/include/netlink/xfrm/sa.h @@ -37,7 +37,6 @@ #include <netlink/netlink.h> #include <netlink/cache.h> #include <netlink/addr.h> -#include <linux/xfrm.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/xfrm/selector.h b/include/netlink/xfrm/selector.h index 2ee6842..3e3ec5a 100644 --- a/include/netlink/xfrm/selector.h +++ b/include/netlink/xfrm/selector.h @@ -37,7 +37,6 @@ #include <netlink/netlink.h> #include <netlink/cache.h> #include <netlink/addr.h> -#include <linux/xfrm.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/xfrm/sp.h b/include/netlink/xfrm/sp.h index 84cbfb2..053c4de 100644 --- a/include/netlink/xfrm/sp.h +++ b/include/netlink/xfrm/sp.h @@ -39,7 +39,6 @@ #include <netlink/addr.h> #include <netlink/xfrm/template.h> #include <netlink/xfrm/lifetime.h> -#include <linux/xfrm.h> #ifdef __cplusplus extern "C" { diff --git a/include/netlink/xfrm/template.h b/include/netlink/xfrm/template.h index da51e7d..ac7189c 100644 --- a/include/netlink/xfrm/template.h +++ b/include/netlink/xfrm/template.h @@ -37,7 +37,6 @@ #include <netlink/netlink.h> #include <netlink/cache.h> #include <netlink/addr.h> -#include <linux/xfrm.h> #ifdef __cplusplus extern "C" { diff --git a/lib/cli/qdisc/hfsc.c b/lib/cli/qdisc/hfsc.c index 6a0c960..619befc 100644 --- a/lib/cli/qdisc/hfsc.c +++ b/lib/cli/qdisc/hfsc.c @@ -12,6 +12,7 @@ #include <netlink/cli/utils.h> #include <netlink/cli/tc.h> #include <netlink/route/qdisc/hfsc.h> +#include <linux/pkt_sched.h> static void print_qdisc_usage(void) { diff --git a/lib/netfilter/nfnl.c b/lib/netfilter/nfnl.c index 9b52447..fab7904 100644 --- a/lib/netfilter/nfnl.c +++ b/lib/netfilter/nfnl.c @@ -65,6 +65,8 @@ #include <netlink/netlink.h> #include <netlink/netfilter/nfnl.h> +#include <linux/netfilter/nfnetlink.h> + /** * @name Socket Creating * @{ diff --git a/lib/route/cls/ematch.c b/lib/route/cls/ematch.c index 6cbe274..95f9b3d 100644 --- a/lib/route/cls/ematch.c +++ b/lib/route/cls/ematch.c @@ -22,6 +22,7 @@ #include <netlink/route/classifier.h> #include <netlink/route/cls/ematch.h> #include <netlink/route/cls/ematch/cmp.h> +#include <linux/tc_ematch/tc_em_cmp.h> #include "ematch_syntax.h" #include "ematch_grammar.h" diff --git a/lib/route/cls/ematch/meta.c b/lib/route/cls/ematch/meta.c index e33c405..cf9fdae 100644 --- a/lib/route/cls/ematch/meta.c +++ b/lib/route/cls/ematch/meta.c @@ -21,6 +21,7 @@ #include <netlink/netlink.h> #include <netlink/route/cls/ematch.h> #include <netlink/route/cls/ematch/meta.h> +#include <linux/tc_ematch/tc_em_meta.h> struct rtnl_meta_value { diff --git a/lib/route/cls/ematch/nbyte.c b/lib/route/cls/ematch/nbyte.c index 8852489..e4216d6 100644 --- a/lib/route/cls/ematch/nbyte.c +++ b/lib/route/cls/ematch/nbyte.c @@ -21,6 +21,7 @@ #include <netlink/netlink.h> #include <netlink/route/cls/ematch.h> #include <netlink/route/cls/ematch/nbyte.h> +#include <linux/tc_ematch/tc_em_nbyte.h> struct nbyte_data { diff --git a/lib/route/cls/ematch/text.c b/lib/route/cls/ematch/text.c index e8cdcae..b14c4ab 100644 --- a/lib/route/cls/ematch/text.c +++ b/lib/route/cls/ematch/text.c @@ -21,6 +21,7 @@ #include <netlink/netlink.h> #include <netlink/route/cls/ematch.h> #include <netlink/route/cls/ematch/text.h> +#include <linux/tc_ematch/tc_em_text.h> struct text_data { diff --git a/lib/route/cls/ematch_grammar.l b/lib/route/cls/ematch_grammar.l index c3f02b0..e97f9fe 100644 --- a/lib/route/cls/ematch_grammar.l +++ b/lib/route/cls/ematch_grammar.l @@ -15,6 +15,7 @@ #include <netlink/netlink.h> #include <netlink/route/cls/ematch.h> #include <netlink/route/cls/ematch/cmp.h> + #include <linux/tc_ematch/tc_em_cmp.h> #include "ematch_syntax.h" int ematch_get_column(yyscan_t); diff --git a/lib/route/cls/ematch_syntax.y b/lib/route/cls/ematch_syntax.y index b28eb3c..a0ca4bb 100644 --- a/lib/route/cls/ematch_syntax.y +++ b/lib/route/cls/ematch_syntax.y @@ -20,6 +20,8 @@ #include <netlink/route/cls/ematch/nbyte.h> #include <netlink/route/cls/ematch/text.h> #include <netlink/route/cls/ematch/meta.h> +#include <linux/tc_ematch/tc_em_meta.h> +#include <linux/tc_ematch/tc_em_cmp.h> #define META_ALLOC rtnl_meta_value_alloc_id #define META_ID(name) TCF_META_ID_##name diff --git a/lib/route/pktloc_grammar.l b/lib/route/pktloc_grammar.l index 646ba56..ab592d1 100644 --- a/lib/route/pktloc_grammar.l +++ b/lib/route/pktloc_grammar.l @@ -4,6 +4,7 @@ #include <netlink/netlink.h> #include <netlink/utils.h> #include <netlink/route/pktloc.h> + #include <linux/tc_ematch/tc_em_cmp.h> #include "pktloc_syntax.h" int pktloc_get_column(yyscan_t); diff --git a/lib/route/route_obj.c b/lib/route/route_obj.c index 21b67b1..b8e9f77 100644 --- a/lib/route/route_obj.c +++ b/lib/route/route_obj.c @@ -41,6 +41,7 @@ #include <netlink/route/route.h> #include <netlink/route/link.h> #include <netlink/route/nexthop.h> +#include <linux/in_route.h> /** @cond SKIP */ #define ROUTE_ATTR_FAMILY 0x000001 diff --git a/lib/route/rule.c b/lib/route/rule.c index 883df81..2e40bb1 100644 --- a/lib/route/rule.c +++ b/lib/route/rule.c @@ -22,6 +22,7 @@ #include <netlink/route/rtnl.h> #include <netlink/route/rule.h> #include <inttypes.h> +#include <linux/fib_rules.h> /** @cond SKIP */ #define RULE_ATTR_FAMILY 0x0001 diff --git a/src/genl-ctrl-list.c b/src/genl-ctrl-list.c index 078c30c..e6d09c3 100644 --- a/src/genl-ctrl-list.c +++ b/src/genl-ctrl-list.c @@ -11,6 +11,8 @@ #include <netlink/cli/utils.h> +#include <linux/genetlink.h> + static struct nl_cache *alloc_genl_family_cache(struct nl_sock *sk) { return nl_cli_alloc_cache(sk, "generic netlink family", diff --git a/src/nf-ct-add.c b/src/nf-ct-add.c index 8ad4c53..fa988ac 100644 --- a/src/nf-ct-add.c +++ b/src/nf-ct-add.c @@ -14,6 +14,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/ct.h> +#include <linux/rtnetlink.h> + static int quiet = 0; static void print_usage(void) diff --git a/src/nf-ct-list.c b/src/nf-ct-list.c index bc6a337..6355d10 100644 --- a/src/nf-ct-list.c +++ b/src/nf-ct-list.c @@ -14,6 +14,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/ct.h> +#include <linux/netlink.h> + static void print_usage(void) { printf( diff --git a/src/nf-exp-add.c b/src/nf-exp-add.c index a81147e..68e2ec6 100644 --- a/src/nf-exp-add.c +++ b/src/nf-exp-add.c @@ -16,6 +16,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/exp.h> +#include <linux/netlink.h> + static int quiet = 0; static void print_usage(void) diff --git a/src/nf-exp-delete.c b/src/nf-exp-delete.c index 0965e90..43493d5 100644 --- a/src/nf-exp-delete.c +++ b/src/nf-exp-delete.c @@ -15,6 +15,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/exp.h> +#include <linux/rtnetlink.h> + static int quiet = 0; static void print_usage(void) diff --git a/src/nf-exp-list.c b/src/nf-exp-list.c index 7f5624d..d14b1fa 100644 --- a/src/nf-exp-list.c +++ b/src/nf-exp-list.c @@ -15,6 +15,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/exp.h> +#include <linux/netlink.h> + static void print_usage(void) { printf( diff --git a/src/nf-log.c b/src/nf-log.c index 1e2c1e4..c0fd978 100644 --- a/src/nf-log.c +++ b/src/nf-log.c @@ -13,10 +13,12 @@ #include <netlink/cli/utils.h> #include <netlink/cli/link.h> -#include <linux/netfilter/nfnetlink_log.h> #include <netlink/netfilter/nfnl.h> #include <netlink/netfilter/log.h> +#include <linux/netfilter/nfnetlink_log.h> +#include <linux/netlink.h> + static struct nfnl_log *alloc_log(void) { struct nfnl_log *log; diff --git a/src/nf-monitor.c b/src/nf-monitor.c index fe99af4..0b74473 100644 --- a/src/nf-monitor.c +++ b/src/nf-monitor.c @@ -14,6 +14,9 @@ #include <netlink/cli/utils.h> #include <netlink/netfilter/nfnl.h> +#include <linux/netlink.h> +#include <linux/netfilter/nfnetlink.h> + static void obj_input(struct nl_object *obj, void *arg) { struct nl_dump_params dp = { diff --git a/src/nf-queue.c b/src/nf-queue.c index b043c80..de069b0 100644 --- a/src/nf-queue.c +++ b/src/nf-queue.c @@ -20,6 +20,8 @@ #include <netlink/netfilter/queue.h> #include <netlink/netfilter/queue_msg.h> +#include <linux/netlink.h> + static struct nl_sock *nf_sock; static struct nfnl_queue *alloc_queue(void) diff --git a/src/nl-addr-add.c b/src/nl-addr-add.c index 19d07b3..0467f67 100644 --- a/src/nl-addr-add.c +++ b/src/nl-addr-add.c @@ -12,6 +12,8 @@ #include <netlink/cli/addr.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static int quiet = 0; static void print_usage(void) diff --git a/src/nl-addr-delete.c b/src/nl-addr-delete.c index 981930f..0f3ae2f 100644 --- a/src/nl-addr-delete.c +++ b/src/nl-addr-delete.c @@ -12,6 +12,8 @@ #include <netlink/cli/addr.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static struct nl_sock *sock; static int interactive = 0, default_yes = 0, quiet = 0; static int deleted = 0; diff --git a/src/nl-addr-list.c b/src/nl-addr-list.c index 20995a8..f9e4080 100644 --- a/src/nl-addr-list.c +++ b/src/nl-addr-list.c @@ -12,6 +12,8 @@ #include <netlink/cli/addr.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static void print_usage(void) { printf( diff --git a/src/nl-class-add.c b/src/nl-class-add.c index 4593471..bbba619 100644 --- a/src/nl-class-add.c +++ b/src/nl-class-add.c @@ -17,6 +17,8 @@ #include <netlink-private/route/tc-api.h> +#include <linux/netlink.h> + static int quiet = 0; static void print_usage(void) diff --git a/src/nl-class-delete.c b/src/nl-class-delete.c index e4be2c0..4570258 100644 --- a/src/nl-class-delete.c +++ b/src/nl-class-delete.c @@ -13,6 +13,8 @@ #include <netlink/cli/class.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static int quiet = 0, default_yes = 0, deleted = 0, interactive = 0; static struct nl_sock *sock; diff --git a/src/nl-class-list.c b/src/nl-class-list.c index e8cc71a..4cace9a 100644 --- a/src/nl-class-list.c +++ b/src/nl-class-list.c @@ -14,6 +14,8 @@ #include <netlink/cli/class.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static struct nl_sock *sock; static struct nl_dump_params params = { diff --git a/src/nl-classid-lookup.c b/src/nl-classid-lookup.c index 1493ebf..b633ab6 100644 --- a/src/nl-classid-lookup.c +++ b/src/nl-classid-lookup.c @@ -10,6 +10,7 @@ */ #include <netlink/cli/utils.h> +#include <linux/pkt_sched.h> static void print_usage(void) { diff --git a/src/nl-cls-add.c b/src/nl-cls-add.c index 6ac8590..e4a080a 100644 --- a/src/nl-cls-add.c +++ b/src/nl-cls-add.c @@ -15,6 +15,8 @@ #include <netlink-private/route/tc-api.h> +#include <linux/netlink.h> + static int quiet = 0; static void print_usage(void) diff --git a/src/nl-cls-delete.c b/src/nl-cls-delete.c index 78b93ec..3297992 100644 --- a/src/nl-cls-delete.c +++ b/src/nl-cls-delete.c @@ -13,6 +13,8 @@ #include <netlink/cli/cls.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static int quiet = 0, default_yes = 0, deleted = 0, interactive = 0; static struct nl_sock *sock; diff --git a/src/nl-cls-list.c b/src/nl-cls-list.c index 08956e0..2ab3d12 100644 --- a/src/nl-cls-list.c +++ b/src/nl-cls-list.c @@ -14,6 +14,8 @@ #include <netlink/cli/cls.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static struct nl_sock *sock; static struct nl_dump_params params = { diff --git a/src/nl-fib-lookup.c b/src/nl-fib-lookup.c index 705cf32..95e6acd 100644 --- a/src/nl-fib-lookup.c +++ b/src/nl-fib-lookup.c @@ -11,6 +11,8 @@ #include <netlink/cli/utils.h> +#include <linux/rtnetlink.h> + static void print_usage(void) { printf( diff --git a/src/nl-link-enslave.c b/src/nl-link-enslave.c index 2b5d47d..1a75939 100644 --- a/src/nl-link-enslave.c +++ b/src/nl-link-enslave.c @@ -13,6 +13,8 @@ #include <netlink/cli/link.h> #include <netlink/route/link/bonding.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct nl_sock *sock; diff --git a/src/nl-link-ifindex2name.c b/src/nl-link-ifindex2name.c index 68e5158..c4ed827 100644 --- a/src/nl-link-ifindex2name.c +++ b/src/nl-link-ifindex2name.c @@ -12,6 +12,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static void print_usage(void) { printf("Usage: nl-link-ifindex2name <ifindex>\n"); diff --git a/src/nl-link-list.c b/src/nl-link-list.c index b5c98b4..47d5c06 100644 --- a/src/nl-link-list.c +++ b/src/nl-link-list.c @@ -12,6 +12,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static void print_usage(void) { printf( diff --git a/src/nl-link-name2ifindex.c b/src/nl-link-name2ifindex.c index b8ae4bc..1be1d18 100644 --- a/src/nl-link-name2ifindex.c +++ b/src/nl-link-name2ifindex.c @@ -12,6 +12,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static void print_usage(void) { printf("Usage: nl-link-name2ifindex <name>\n"); diff --git a/src/nl-link-release.c b/src/nl-link-release.c index 4c9f15a..6f9de0e 100644 --- a/src/nl-link-release.c +++ b/src/nl-link-release.c @@ -13,6 +13,8 @@ #include <netlink/cli/link.h> #include <netlink/route/link/bonding.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct nl_sock *sock; diff --git a/src/nl-link-set.c b/src/nl-link-set.c index 6a6bac8..a3ff8a1 100644 --- a/src/nl-link-set.c +++ b/src/nl-link-set.c @@ -9,10 +9,12 @@ * Copyright (c) 2003-2010 Thomas Graf <tgraf@suug.ch> */ -#include <linux/if.h> #include <netlink/cli/utils.h> #include <netlink/cli/link.h> +#include <linux/if.h> +#include <linux/netlink.h> + static struct nl_sock *sock; static int quiet = 0; diff --git a/src/nl-link-stats.c b/src/nl-link-stats.c index 9bb11c8..82132f8 100644 --- a/src/nl-link-stats.c +++ b/src/nl-link-stats.c @@ -12,6 +12,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static void print_usage(void) { printf( diff --git a/src/nl-monitor.c b/src/nl-monitor.c index 16ecac0..754f8dc 100644 --- a/src/nl-monitor.c +++ b/src/nl-monitor.c @@ -12,6 +12,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/link.h> +#include <linux/rtnetlink.h> + static void obj_input(struct nl_object *obj, void *arg) { struct nl_dump_params dp = { diff --git a/src/nl-neigh-add.c b/src/nl-neigh-add.c index 09cef9a..d98330b 100644 --- a/src/nl-neigh-add.c +++ b/src/nl-neigh-add.c @@ -13,6 +13,8 @@ #include <netlink/cli/neigh.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static int quiet = 0; static void print_usage(void) diff --git a/src/nl-neigh-delete.c b/src/nl-neigh-delete.c index b6be44c..2d3be37 100644 --- a/src/nl-neigh-delete.c +++ b/src/nl-neigh-delete.c @@ -13,6 +13,8 @@ #include <netlink/cli/neigh.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static int quiet = 0, default_yes = 0, deleted = 0, interactive = 0; static struct nl_sock *sock; diff --git a/src/nl-neigh-list.c b/src/nl-neigh-list.c index c99d237..ba4ade8 100644 --- a/src/nl-neigh-list.c +++ b/src/nl-neigh-list.c @@ -13,6 +13,8 @@ #include <netlink/cli/neigh.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static void print_usage(void) { printf( diff --git a/src/nl-neightbl-list.c b/src/nl-neightbl-list.c index 2380e01..5c28e91 100644 --- a/src/nl-neightbl-list.c +++ b/src/nl-neightbl-list.c @@ -12,6 +12,8 @@ #include <netlink/cli/utils.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static void print_usage(void) { printf( diff --git a/src/nl-pktloc-lookup.c b/src/nl-pktloc-lookup.c index 7d24402..68dbdf9 100644 --- a/src/nl-pktloc-lookup.c +++ b/src/nl-pktloc-lookup.c @@ -11,6 +11,7 @@ #include <netlink/cli/utils.h> #include <netlink/route/pktloc.h> +#include <linux/tc_ematch/tc_em_cmp.h> static void print_usage(void) { diff --git a/src/nl-qdisc-add.c b/src/nl-qdisc-add.c index d8a1f73..dc0b4f1 100644 --- a/src/nl-qdisc-add.c +++ b/src/nl-qdisc-add.c @@ -16,6 +16,8 @@ #include <netlink-private/route/tc-api.h> +#include <linux/netlink.h> + static int quiet = 0; static void print_usage(void) diff --git a/src/nl-qdisc-delete.c b/src/nl-qdisc-delete.c index c4acbfe..4a63a7e 100644 --- a/src/nl-qdisc-delete.c +++ b/src/nl-qdisc-delete.c @@ -14,6 +14,8 @@ #include <netlink/cli/qdisc.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static int quiet = 0, default_yes = 0, deleted = 0, interactive = 0; static struct nl_sock *sock; diff --git a/src/nl-qdisc-list.c b/src/nl-qdisc-list.c index b8110f1..eb73e5f 100644 --- a/src/nl-qdisc-list.c +++ b/src/nl-qdisc-list.c @@ -16,6 +16,9 @@ #include <netlink/cli/cls.h> #include <netlink/cli/link.h> +#include <linux/pkt_sched.h> +#include <linux/netlink.h> + #define NUM_INDENT 4 static struct nl_sock *sock; diff --git a/src/nl-route-add.c b/src/nl-route-add.c index d4aa767..3a2dd61 100644 --- a/src/nl-route-add.c +++ b/src/nl-route-add.c @@ -13,6 +13,8 @@ #include <netlink/cli/route.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static int quiet = 0; static struct nl_cache *link_cache, *route_cache; diff --git a/src/nl-route-delete.c b/src/nl-route-delete.c index 884fd7f..56d52eb 100644 --- a/src/nl-route-delete.c +++ b/src/nl-route-delete.c @@ -13,6 +13,8 @@ #include <netlink/cli/route.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static int interactive = 0, default_yes = 0, quiet = 0; static int deleted = 0; static struct nl_sock *sock; diff --git a/src/nl-route-get.c b/src/nl-route-get.c index 1ee47e4..b031ae4 100644 --- a/src/nl-route-get.c +++ b/src/nl-route-get.c @@ -13,6 +13,8 @@ #include <netlink/cli/route.h> #include <netlink/cli/link.h> +#include <linux/rtnetlink.h> + static void print_usage(void) { printf("Usage: nl-route-get <addr>\n"); diff --git a/src/nl-route-list.c b/src/nl-route-list.c index e0e57be..06ef01a 100644 --- a/src/nl-route-list.c +++ b/src/nl-route-list.c @@ -13,6 +13,8 @@ #include <netlink/cli/route.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static void print_usage(void) { printf( diff --git a/src/nl-rule-list.c b/src/nl-rule-list.c index 7c450e2..ec73aca 100644 --- a/src/nl-rule-list.c +++ b/src/nl-rule-list.c @@ -13,6 +13,8 @@ #include <netlink/cli/rule.h> #include <netlink/cli/link.h> +#include <linux/netlink.h> + static void print_usage(void) { printf( diff --git a/src/nl-tctree-list.c b/src/nl-tctree-list.c index d90cb28..7c3b7e6 100644 --- a/src/nl-tctree-list.c +++ b/src/nl-tctree-list.c @@ -13,6 +13,8 @@ #include <netlink/cli/link.h> #include <netlink/cli/qdisc.h> #include <netlink/cli/class.h> + +#include <linux/netlink.h> #include <linux/pkt_sched.h> static struct nl_sock *sock; diff --git a/tests/check-attr.c b/tests/check-attr.c index d862230..0390997 100644 --- a/tests/check-attr.c +++ b/tests/check-attr.c @@ -13,6 +13,8 @@ #include <netlink/attr.h> #include <netlink/msg.h> +#include <linux/netlink.h> + START_TEST(attr_size) { fail_if(nla_attr_size(0) != NLA_HDRLEN, diff --git a/tests/test-cache-mngr.c b/tests/test-cache-mngr.c index 8999e58..9761452 100644 --- a/tests/test-cache-mngr.c +++ b/tests/test-cache-mngr.c @@ -5,6 +5,8 @@ #include <netlink-private/cache-api.h> +#include <linux/netlink.h> + static int quit = 0; static struct nl_dump_params dp = { diff --git a/tests/test-complex-HTB-with-hash-filters.c b/tests/test-complex-HTB-with-hash-filters.c index 453f801..c2ac783 100644 --- a/tests/test-complex-HTB-with-hash-filters.c +++ b/tests/test-complex-HTB-with-hash-filters.c @@ -18,6 +18,7 @@ #include <netlink/route/classifier.h> #include <netlink/route/class.h> #include <linux/if_ether.h> +#include <linux/pkt_cls.h> #include <netlink/attr.h> //#include "include/rtnl_u32.h" @@ -26,6 +27,8 @@ #include <string.h> //#include "include/rtnl_u32_addon.h" +#include <linux/netlink.h> + #define TC_HANDLE(maj, min) (TC_H_MAJ((maj) << 16) | TC_H_MIN(min)) /* some functions are copied from iproute-tc tool */ diff --git a/tests/test-create-bond.c b/tests/test-create-bond.c index 11bc5b0..326e0ef 100644 --- a/tests/test-create-bond.c +++ b/tests/test-create-bond.c @@ -2,6 +2,8 @@ #include <netlink/route/link.h> #include <netlink/route/link/bonding.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct rtnl_link *link; diff --git a/tests/test-create-bridge.c b/tests/test-create-bridge.c index c4bec37..fe10c63 100644 --- a/tests/test-create-bridge.c +++ b/tests/test-create-bridge.c @@ -2,6 +2,8 @@ #include <netlink/route/link.h> #include <netlink/route/link/bridge.h> +#include <linux/netlink.h> + #define TEST_BRIDGE_NAME "testbridge" #define TEST_INTERFACE_NAME "testtap1" diff --git a/tests/test-create-ifb.c b/tests/test-create-ifb.c index 99336f5..d154ffd 100644 --- a/tests/test-create-ifb.c +++ b/tests/test-create-ifb.c @@ -1,6 +1,8 @@ #include <netlink/netlink.h> #include <netlink/route/link.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct rtnl_link *link; diff --git a/tests/test-create-ipvlan.c b/tests/test-create-ipvlan.c index dd61b80..50bac54 100644 --- a/tests/test-create-ipvlan.c +++ b/tests/test-create-ipvlan.c @@ -2,6 +2,8 @@ #include <netlink/route/link.h> #include <netlink/route/link/ipvlan.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct rtnl_link *link; diff --git a/tests/test-create-macsec.c b/tests/test-create-macsec.c index abdb7f6..efadf6b 100644 --- a/tests/test-create-macsec.c +++ b/tests/test-create-macsec.c @@ -1,5 +1,9 @@ #include <netlink/netlink.h> #include <netlink/route/link.h> + +#include <linux/netlink.h> +#include <linux/if_link.h> + #include <netlink/route/link/macsec.h> int main(int argc, char *argv[]) diff --git a/tests/test-create-macvlan.c b/tests/test-create-macvlan.c index d94839b..f520b67 100644 --- a/tests/test-create-macvlan.c +++ b/tests/test-create-macvlan.c @@ -4,6 +4,8 @@ #include <netlink/route/link.h> #include <netlink/route/link/macvlan.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct rtnl_link *link; diff --git a/tests/test-create-macvtap.c b/tests/test-create-macvtap.c index dc7df95..27d1969 100644 --- a/tests/test-create-macvtap.c +++ b/tests/test-create-macvtap.c @@ -4,6 +4,8 @@ #include <netlink/route/link.h> #include <netlink/route/link/macvtap.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct rtnl_link *link; diff --git a/tests/test-create-veth.c b/tests/test-create-veth.c index db5ab8b..9600f8d 100644 --- a/tests/test-create-veth.c +++ b/tests/test-create-veth.c @@ -2,6 +2,8 @@ #include <netlink/route/link.h> #include <netlink/route/link/veth.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct rtnl_link *link; diff --git a/tests/test-create-vlan.c b/tests/test-create-vlan.c index 64e478f..04756d4 100644 --- a/tests/test-create-vlan.c +++ b/tests/test-create-vlan.c @@ -2,6 +2,8 @@ #include <netlink/route/link.h> #include <netlink/route/link/vlan.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct rtnl_link *link; diff --git a/tests/test-create-vrf.c b/tests/test-create-vrf.c index 7db6d8a..c3d23e7 100644 --- a/tests/test-create-vrf.c +++ b/tests/test-create-vrf.c @@ -2,6 +2,8 @@ #include <netlink/route/link.h> #include <netlink/route/link/vrf.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct nl_cache *link_cache; diff --git a/tests/test-create-vxlan.c b/tests/test-create-vxlan.c index 98a5103..855fdb5 100644 --- a/tests/test-create-vxlan.c +++ b/tests/test-create-vxlan.c @@ -2,6 +2,8 @@ #include <netlink/route/link.h> #include <netlink/route/link/vxlan.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct rtnl_link *link; diff --git a/tests/test-delete-link.c b/tests/test-delete-link.c index 9cf1034..8633123 100644 --- a/tests/test-delete-link.c +++ b/tests/test-delete-link.c @@ -1,6 +1,8 @@ #include <netlink/netlink.h> #include <netlink/route/link.h> +#include <linux/netlink.h> + int main(int argc, char *argv[]) { struct rtnl_link *link; diff --git a/tests/test-genl.c b/tests/test-genl.c index 74aea10..d96dadd 100644 --- a/tests/test-genl.c +++ b/tests/test-genl.c @@ -1,5 +1,7 @@ #include <netlink/cli/utils.h> + #include <linux/taskstats.h> +#include <linux/genetlink.h> static struct nla_policy attr_policy[TASKSTATS_TYPE_MAX+1] = { [TASKSTATS_TYPE_PID] = { .type = NLA_U32 }, diff --git a/tests/test-nf-cache-mngr.c b/tests/test-nf-cache-mngr.c index b4f3022..7625e3f 100644 --- a/tests/test-nf-cache-mngr.c +++ b/tests/test-nf-cache-mngr.c @@ -1,5 +1,7 @@ #include <netlink/cli/utils.h> +#include <linux/netlink.h> + static void change_cb(struct nl_cache *cache, struct nl_object *obj, int action, void *data) { diff --git a/tests/test-u32-filter-with-actions.c b/tests/test-u32-filter-with-actions.c index 70bab4d..0ca216c 100644 --- a/tests/test-u32-filter-with-actions.c +++ b/tests/test-u32-filter-with-actions.c @@ -20,12 +20,15 @@ #include <netlink/route/act/mirred.h> #include <netlink/route/act/skbedit.h> #include <netlink/route/class.h> -#include <linux/if_ether.h> - #include <netlink/attr.h> + #include <stdio.h> #include <string.h> +#include <linux/if_ether.h> +#include <linux/tc_act/tc_mirred.h> +#include <linux/netlink.h> + #define TC_HANDLE(maj, min) (TC_H_MAJ((maj) << 16) | TC_H_MIN(min)) /* some functions are copied from iproute-tc tool */ |