11 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
15 #include <linux/module.h>
17 #include <linux/tcp.h>
19 #include <linux/netfilter/x_tables.h>
21 #include <linux/netfilter_ipv4/ip_tables.h>
22 #include <linux/netfilter_ipv6/ip6_tables.h>
39 th = skb_header_pointer(skb, par->
thoff,
sizeof(_tcph), &_tcph);
66 static inline bool match_ip(
const struct sk_buff *skb,
100 pr_info(
"cannot match TCP bits in rule for non-tcp packets\n");
107 static inline bool match_ipv6(
const struct sk_buff *skb,
123 !match_tcp(skb, par))
142 pr_info(
"cannot match TCP bits in rule for non-tcp packets\n");
155 .checkentry = ecn_mt_check4,
163 .checkentry = ecn_mt_check6,
168 static int __init ecn_mt_init(
void)
173 static void __exit ecn_mt_exit(
void)