net: sched: add em_ipt ematch for calling xtables matches
The commit a new tc ematch for using netfilter xtable matches. This allows early classification as well as mirroning/redirecting traffic based on logic implemented in netfilter extensions. Current supported use case is classification based on the incoming IPSec state used during decpsulation using the 'policy' iptables extension (xt_policy). The module dynamically fetches the netfilter match module and calls it using a fake xt_action_param structure based on validated userspace provided parameters. As the xt_policy match does not access skb->data, no skb modifications are needed on match. Signed-off-by: Eyal Birger <eyal.birger@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
022ddbca86
commit
ccc007e4a7
5 changed files with 292 additions and 1 deletions
|
|
@ -555,7 +555,8 @@ enum {
|
|||
#define TCF_EM_VLAN 6
|
||||
#define TCF_EM_CANID 7
|
||||
#define TCF_EM_IPSET 8
|
||||
#define TCF_EM_MAX 8
|
||||
#define TCF_EM_IPT 9
|
||||
#define TCF_EM_MAX 9
|
||||
|
||||
enum {
|
||||
TCF_EM_PROG_TC
|
||||
|
|
|
|||
20
include/uapi/linux/tc_ematch/tc_em_ipt.h
Normal file
20
include/uapi/linux/tc_ematch/tc_em_ipt.h
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
#ifndef __LINUX_TC_EM_IPT_H
|
||||
#define __LINUX_TC_EM_IPT_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/pkt_cls.h>
|
||||
|
||||
enum {
|
||||
TCA_EM_IPT_UNSPEC,
|
||||
TCA_EM_IPT_HOOK,
|
||||
TCA_EM_IPT_MATCH_NAME,
|
||||
TCA_EM_IPT_MATCH_REVISION,
|
||||
TCA_EM_IPT_NFPROTO,
|
||||
TCA_EM_IPT_MATCH_DATA,
|
||||
__TCA_EM_IPT_MAX
|
||||
};
|
||||
|
||||
#define TCA_EM_IPT_MAX (__TCA_EM_IPT_MAX - 1)
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue