1 /* Kernel module to match NFMARK values. */
2 #include <linux/module.h>
3 #include <linux/skbuff.h>
5 #include <linux/netfilter_ipv6/ip6t_mark.h>
6 #include <linux/netfilter_ipv6/ip6_tables.h>
9 match(const struct sk_buff *skb,
10 const struct net_device *in,
11 const struct net_device *out,
12 const void *matchinfo,
18 const struct ip6t_mark_info *info = matchinfo;
20 return ((skb->nfmark & info->mask) == info->mark) ^ info->invert;
24 checkentry(const char *tablename,
25 const struct ip6t_ip6 *ip,
27 unsigned int matchsize,
28 unsigned int hook_mask)
30 if (matchsize != IP6T_ALIGN(sizeof(struct ip6t_mark_info)))
36 static struct ip6t_match mark_match
37 = { { NULL, NULL }, "mark", &match, &checkentry, NULL, THIS_MODULE };
39 static int __init init(void)
41 return ip6t_register_match(&mark_match);
44 static void __exit fini(void)
46 ip6t_unregister_match(&mark_match);
51 MODULE_LICENSE("GPL");