From: Patrick McHardy <kaber@trash.net>
To: hadi@cyberus.ca
Cc: netdev@vger.kernel.org, Patrick McHardy <kaber@trash.net>
Subject: [NET_SCHED 02/05]: sch_atm: act_api support
Date: Mon, 9 Jul 2007 22:46:15 +0200 (MEST) [thread overview]
Message-ID: <20070709204614.1461.59556.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20070709204611.1461.16465.sendpatchset@localhost.localdomain>
[NET_SCHED]: sch_atm: act_api support
Handle act_api classification results.
The ATM scheduler behaves slightly different than other schedulers
in that it only handles policer results for successful classifications,
this behaviour is retained for the act_api case.
Signed-off-by: Patrick McHardy <kaber@trash.net>
---
commit c7c3ff564b59bfb21aadd54cabab9369f120eaba
tree e0c0de83f364229f0bb4b8abb586fd64c204fd12
parent d040f72f96e69c5494179d4431e8db82e8a11c74
author Patrick McHardy <kaber@trash.net> Mon, 09 Jul 2007 22:03:09 +0200
committer Patrick McHardy <kaber@trash.net> Mon, 09 Jul 2007 22:03:09 +0200
net/sched/sch_atm.c | 21 ++++++++++++++-------
1 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/net/sched/sch_atm.c b/net/sched/sch_atm.c
index 9b458c4..ccee10d 100644
--- a/net/sched/sch_atm.c
+++ b/net/sched/sch_atm.c
@@ -411,11 +411,21 @@ static int atm_tc_enqueue(struct sk_buff *skb, struct Qdisc *sch)
if (flow->vcc)
ATM_SKB(skb)->atm_options = flow->vcc->atm_options;
/*@@@ looks good ... but it's not supposed to work :-) */
-#ifdef CONFIG_NET_CLS_POLICE
+#ifdef CONFIG_NET_CLS_ACT
+ switch (result) {
+ case TC_ACT_QUEUED:
+ case TC_ACT_STOLEN:
+ kfree_skb(skb);
+ return NET_XMIT_SUCCESS;
+ case TC_ACT_SHOT:
+ kfree_skb(skb);
+ goto drop;
+ }
+#elif defined(CONFIG_NET_CLS_POLICE)
switch (result) {
case TC_POLICE_SHOT:
kfree_skb(skb);
- break;
+ goto drop;
case TC_POLICE_RECLASSIFY:
if (flow->excess)
flow = flow->excess;
@@ -431,11 +441,8 @@ static int atm_tc_enqueue(struct sk_buff *skb, struct Qdisc *sch)
}
#endif
}
- if (
-#ifdef CONFIG_NET_CLS_POLICE
- result == TC_POLICE_SHOT ||
-#endif
- (ret = flow->q->enqueue(skb, flow->q)) != 0) {
+ if ((ret = flow->q->enqueue(skb, flow->q)) != 0) {
+drop: __maybe_unused
sch->qstats.drops++;
if (flow)
flow->qstats.drops++;
next prev parent reply other threads:[~2007-07-09 20:46 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-09 20:46 [RFC NET_SCHED 00/05]: Kill NET_CLS_POLICE Patrick McHardy
2007-07-09 20:46 ` [NET_SCHED 01/05]: sch_atm: Lindent Patrick McHardy
2007-07-09 20:46 ` Patrick McHardy [this message]
2007-07-09 20:46 ` [NET_SCHED 03/05]: sch_dsmark: act_api support Patrick McHardy
2007-07-09 20:46 ` [NET_SCHED 04/05]: act_api: qdisc internal reclassify support Patrick McHardy
2007-07-09 20:46 ` [NET_SCHED 05/05]: Kill CONFIG_NET_CLS_POLICE Patrick McHardy
2007-07-15 7:00 ` [RFC NET_SCHED 00/05]: Kill NET_CLS_POLICE David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070709204614.1461.59556.sendpatchset@localhost.localdomain \
--to=kaber@trash.net \
--cc=hadi@cyberus.ca \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox