diff mbox

[net-next,3/3] cls_bpf: further limit exec opcodes subset

Message ID 30adbc348f5fcefddff51c8155086a87b389ccdb.1443037354.git.daniel@iogearbox.net
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Daniel Borkmann Sept. 23, 2015, 7:56 p.m. UTC
Jamal suggested to further limit the currently allowed subset of opcodes
that may be used by a direct action return code as the intention is not
to replace the full action engine, but rather to have a minimal set that
can be used in the fast-path on things like ingress for some features
that cls_bpf supports.

Classifiers can, of course, still be chained together that have direct
action mode with those that have a full exec pass. For more complex
scenarios that go beyond this minimal set here, the full tcf_exts_exec()
path must be used.

Suggested-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
---
 net/sched/cls_bpf.c | 3 ---
 1 file changed, 3 deletions(-)

Comments

Alexei Starovoitov Sept. 23, 2015, 8:54 p.m. UTC | #1
On 9/23/15 12:56 PM, Daniel Borkmann wrote:
> Jamal suggested to further limit the currently allowed subset of opcodes
> that may be used by a direct action return code as the intention is not
> to replace the full action engine, but rather to have a minimal set that
> can be used in the fast-path on things like ingress for some features
> that cls_bpf supports.
>
> Classifiers can, of course, still be chained together that have direct
> action mode with those that have a full exec pass. For more complex
> scenarios that go beyond this minimal set here, the full tcf_exts_exec()
> path must be used.
>
> Suggested-by: Jamal Hadi Salim<jhs@mojatatu.com>
> Signed-off-by: Daniel Borkmann<daniel@iogearbox.net>

Acked-by: Alexei Starovoitov <ast@plumgrid.com>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c
index d6c0a0b..7eeffaf6 100644
--- a/net/sched/cls_bpf.c
+++ b/net/sched/cls_bpf.c
@@ -65,11 +65,8 @@  static int cls_bpf_exec_opcode(int code)
 {
 	switch (code) {
 	case TC_ACT_OK:
-	case TC_ACT_RECLASSIFY:
 	case TC_ACT_SHOT:
-	case TC_ACT_PIPE:
 	case TC_ACT_STOLEN:
-	case TC_ACT_QUEUED:
 	case TC_ACT_REDIRECT:
 	case TC_ACT_UNSPEC:
 		return code;