From: Eric Dumazet <eduma...@google.com>

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 <eduma...@google.com>
Cc: Jamal Hadi Salim <j...@mojatatu.com>
---
 net/core/dev.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/core/dev.c b/net/core/dev.c
index 
e98ba63fe2800c10d4d407f12d11ca8975dc1e8e..c7490339315cc0046a2da67c00a95f079e602588
 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


Reply via email to