diff options
author | Eric Dumazet <edumazet@google.com> | 2016-05-06 22:55:50 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-05-09 03:53:22 (GMT) |
commit | 8a3a4c6e7b343f1b648b63e55700243e98bfc892 (patch) | |
tree | c3c42700cd2a4b4efe06aa4dea83c886b00ad4fc /net/core | |
parent | acf87a3f5794f58743996c1b627b91622df6dd1d (diff) | |
download | linux-8a3a4c6e7b343f1b648b63e55700243e98bfc892.tar.xz |
net: make sch_handle_ingress() drop monitor ready
TC_ACT_STOLEN is used when ingress traffic is mirred/redirected
to say ifb.
Packet is not dropped, but consumed.
Only TC_ACT_SHOT is a clear indication something went wrong.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dev.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index e98ba63..c749033 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3956,9 +3956,11 @@ sch_handle_ingress(struct sk_buff *skb, struct packet_type **pt_prev, int *ret, break; case TC_ACT_SHOT: qdisc_qstats_cpu_drop(cl->q); + kfree_skb(skb); + return NULL; case TC_ACT_STOLEN: case TC_ACT_QUEUED: - kfree_skb(skb); + consume_skb(skb); return NULL; case TC_ACT_REDIRECT: /* skb_mac_header check was done by cls/act_bpf, so |