[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1431679850-31896-4-git-send-email-fw@strlen.de>
Date: Fri, 15 May 2015 10:50:50 +0200
From: Florian Westphal <fw@...len.de>
To: <netdev@...r.kernel.org>
Cc: jhs@...atatu.com, alexei.starovoitov@...il.com,
daniel@...earbox.net, Florian Westphal <fw@...len.de>
Subject: [PATCH -next 3/3] net: core: use skb_tc_state to skip ingress classifiers
We can use either the tc_verd NCLS bit or tc_skb_state for this purpose.
If skb was received from network, both are zero.
If the skb was re-injected via sch_ingress + ifb driver, then
NCLS is set, but skb->tc_skb_state retains last value set up by
mirred action that brought us to ifb in first place (TC_FROM_INGRESS).
We can thus also use tc_skb_state instead to detect ifb
reinject-to-ingress.
After this patch NCLS bit is only used by ifb to skip the classsifiers
attached to its egress device.
Signed-off-by: Florian Westphal <fw@...len.de>
---
net/core/dev.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c
index 802b9b9..e817fa9 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3805,9 +3805,9 @@ another_round:
}
#ifdef CONFIG_NET_CLS_ACT
- if (skb->tc_verd & TC_NCLS) {
- skb->tc_verd = CLR_TC_NCLS(skb->tc_verd);
- goto ncls;
+ if (skb->skb_tc_state) {
+ skb->skb_tc_state = 0;
+ goto skip_tc_ingress;
}
#endif
@@ -3839,7 +3839,7 @@ skip_taps:
#endif
#ifdef CONFIG_NET_CLS_ACT
skb->tc_verd = 0;
-ncls:
+skip_tc_ingress:
#endif
if (pfmemalloc && !skb_pfmemalloc_protocol(skb))
goto drop;
--
2.0.5
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists