|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
From 402c8d61d2f27060be14849fcb30682f75f3bf3b Mon Sep 17 00:00:00 2001
|
|
|
|
|
From c17877e414155b9b97d10416ff62b102d25019a1 Mon Sep 17 00:00:00 2001
|
|
|
|
|
From: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
Date: Wed, 13 Mar 2019 20:54:49 +0000
|
|
|
|
|
Subject: [PATCH] net: sched: Introduce act_ctinfo action
|
|
|
|
@ -59,9 +59,9 @@ e.g. dscp 0xfc000000/0x01000000
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
---
|
|
|
|
|
include/net/tc_act/tc_ctinfo.h | 28 ++
|
|
|
|
|
include/net/tc_act/tc_ctinfo.h | 33 ++
|
|
|
|
|
include/uapi/linux/pkt_cls.h | 3 +-
|
|
|
|
|
include/uapi/linux/tc_act/tc_ctinfo.h | 34 ++
|
|
|
|
|
include/uapi/linux/tc_act/tc_ctinfo.h | 29 ++
|
|
|
|
|
net/sched/Kconfig | 17 +
|
|
|
|
|
net/sched/Makefile | 1 +
|
|
|
|
|
net/sched/act_ctinfo.c | 395 ++++++++++++++++++++++
|
|
|
|
@ -71,9 +71,12 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
create mode 100644 include/uapi/linux/tc_act/tc_ctinfo.h
|
|
|
|
|
create mode 100644 net/sched/act_ctinfo.c
|
|
|
|
|
|
|
|
|
|
diff --git a/include/net/tc_act/tc_ctinfo.h b/include/net/tc_act/tc_ctinfo.h
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 000000000000..f071c1d70a25
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/include/net/tc_act/tc_ctinfo.h
|
|
|
|
|
@@ -0,0 +1,28 @@
|
|
|
|
|
@@ -0,0 +1,33 @@
|
|
|
|
|
+/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
|
+#ifndef __NET_TC_CTINFO_H
|
|
|
|
|
+#define __NET_TC_CTINFO_H
|
|
|
|
@ -99,9 +102,16 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
+ u64 stats_cpmark_set;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+enum {
|
|
|
|
|
+ CTINFO_MODE_DSCP = BIT(0),
|
|
|
|
|
+ CTINFO_MODE_CPMARK = BIT(1)
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+#define to_ctinfo(a) ((struct tcf_ctinfo *)a)
|
|
|
|
|
+
|
|
|
|
|
+#endif /* __NET_TC_CTINFO_H */
|
|
|
|
|
diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h
|
|
|
|
|
index be382fb0592d..71e10c5a96a0 100644
|
|
|
|
|
--- a/include/uapi/linux/pkt_cls.h
|
|
|
|
|
+++ b/include/uapi/linux/pkt_cls.h
|
|
|
|
|
@@ -68,7 +68,8 @@ enum {
|
|
|
|
@ -114,9 +124,12 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define TCA_ID_MAX __TCA_ID_MAX
|
|
|
|
|
diff --git a/include/uapi/linux/tc_act/tc_ctinfo.h b/include/uapi/linux/tc_act/tc_ctinfo.h
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 000000000000..f5f26d95d0e7
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/include/uapi/linux/tc_act/tc_ctinfo.h
|
|
|
|
|
@@ -0,0 +1,34 @@
|
|
|
|
|
@@ -0,0 +1,29 @@
|
|
|
|
|
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
|
|
|
+#ifndef __UAPI_TC_CTINFO_H
|
|
|
|
|
+#define __UAPI_TC_CTINFO_H
|
|
|
|
@ -145,12 +158,9 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
+
|
|
|
|
|
+#define TCA_CTINFO_MAX (__TCA_CTINFO_MAX - 1)
|
|
|
|
|
+
|
|
|
|
|
+enum {
|
|
|
|
|
+ CTINFO_MODE_DSCP = BIT(0),
|
|
|
|
|
+ CTINFO_MODE_CPMARK = BIT(1)
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+#endif
|
|
|
|
|
diff --git a/net/sched/Kconfig b/net/sched/Kconfig
|
|
|
|
|
index e95741388311..1d79d5dba6e4 100644
|
|
|
|
|
--- a/net/sched/Kconfig
|
|
|
|
|
+++ b/net/sched/Kconfig
|
|
|
|
|
@@ -866,6 +866,23 @@ config NET_ACT_CONNMARK
|
|
|
|
@ -177,6 +187,8 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
config NET_ACT_SKBMOD
|
|
|
|
|
tristate "skb data modification action"
|
|
|
|
|
depends on NET_CLS_ACT
|
|
|
|
|
diff --git a/net/sched/Makefile b/net/sched/Makefile
|
|
|
|
|
index f0403f49edcb..bb3c2bc44af7 100644
|
|
|
|
|
--- a/net/sched/Makefile
|
|
|
|
|
+++ b/net/sched/Makefile
|
|
|
|
|
@@ -21,6 +21,7 @@ obj-$(CONFIG_NET_ACT_CSUM) += act_csum.o
|
|
|
|
@ -187,6 +199,9 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
obj-$(CONFIG_NET_ACT_SKBMOD) += act_skbmod.o
|
|
|
|
|
obj-$(CONFIG_NET_ACT_IFE) += act_ife.o
|
|
|
|
|
obj-$(CONFIG_NET_IFE_SKBMARK) += act_meta_mark.o
|
|
|
|
|
diff --git a/net/sched/act_ctinfo.c b/net/sched/act_ctinfo.c
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 000000000000..8975cb4976aa
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/net/sched/act_ctinfo.c
|
|
|
|
|
@@ -0,0 +1,395 @@
|
|
|
|
@ -585,6 +600,8 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
+MODULE_AUTHOR("Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>");
|
|
|
|
|
+MODULE_DESCRIPTION("Connection tracking mark actions");
|
|
|
|
|
+MODULE_LICENSE("GPL");
|
|
|
|
|
diff --git a/tools/testing/selftests/tc-testing/config b/tools/testing/selftests/tc-testing/config
|
|
|
|
|
index 203302065458..9d1fddcfb887 100644
|
|
|
|
|
--- a/tools/testing/selftests/tc-testing/config
|
|
|
|
|
+++ b/tools/testing/selftests/tc-testing/config
|
|
|
|
|
@@ -37,6 +37,7 @@ CONFIG_NET_ACT_SKBEDIT=m
|
|
|
|
@ -595,3 +612,6 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
|
|
|
|
|
CONFIG_NET_ACT_CONNMARK=m
|
|
|
|
|
CONFIG_NET_ACT_SKBMOD=m
|
|
|
|
|
CONFIG_NET_ACT_IFE=m
|
|
|
|
|
--
|
|
|
|
|
2.20.1 (Apple Git-117)
|
|
|
|
|
|
|
|
|
|