net: make sch_handle_ingress() drop monitor ready
authorEric Dumazet <edumazet@google.com>
Fri, 6 May 2016 22:55:50 +0000 (15:55 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 May 2016 03:53:22 +0000 (23:53 -0400)
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>
net/core/dev.c

index e98ba63fe2800c10d4d407f12d11ca8975dc1e8e..c7490339315cc0046a2da67c00a95f079e602588 100644 (file)
@@ -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