All of lore.kernel.org
 help / color / mirror / Atom feed
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++;

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.