diff options
| author | Thomas Graf <tgraf@suug.ch> | 2005-11-05 15:14:18 -0500 |
|---|---|---|
| committer | Thomas Graf <tgr@axs.localdomain> | 2005-11-05 16:02:27 -0500 |
| commit | c3b553cdaf50ce915bcd995fa8ec2905f227de64 (patch) | |
| tree | b85ff8cb0b93499259c59f9d5c57f31ab53b937b | |
| parent | 301d063c2915e8307e3d128245d8a393ad776539 (diff) | |
[PKT_SCHED]: GRED: Report congestion related drops as NET_XMIT_CN
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
| -rw-r--r-- | net/sched/sch_gred.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/sched/sch_gred.c b/net/sched/sch_gred.c index 50f184cd7f1f..f7c6c0359ce5 100644 --- a/net/sched/sch_gred.c +++ b/net/sched/sch_gred.c | |||
| @@ -219,12 +219,12 @@ gred_enqueue(struct sk_buff *skb, struct Qdisc* sch) | |||
| 219 | case RED_PROB_MARK: | 219 | case RED_PROB_MARK: |
| 220 | sch->qstats.overlimits++; | 220 | sch->qstats.overlimits++; |
| 221 | q->stats.prob_drop++; | 221 | q->stats.prob_drop++; |
| 222 | goto drop; | 222 | goto congestion_drop; |
| 223 | 223 | ||
| 224 | case RED_HARD_MARK: | 224 | case RED_HARD_MARK: |
| 225 | sch->qstats.overlimits++; | 225 | sch->qstats.overlimits++; |
| 226 | q->stats.forced_drop++; | 226 | q->stats.forced_drop++; |
| 227 | goto drop; | 227 | goto congestion_drop; |
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | if (q->backlog + skb->len <= q->limit) { | 230 | if (q->backlog + skb->len <= q->limit) { |
| @@ -242,6 +242,11 @@ drop: | |||
| 242 | kfree_skb(skb); | 242 | kfree_skb(skb); |
| 243 | sch->qstats.drops++; | 243 | sch->qstats.drops++; |
| 244 | return NET_XMIT_DROP; | 244 | return NET_XMIT_DROP; |
| 245 | |||
| 246 | congestion_drop: | ||
| 247 | kfree_skb(skb); | ||
| 248 | sch->qstats.drops++; | ||
| 249 | return NET_XMIT_CN; | ||
| 245 | } | 250 | } |
| 246 | 251 | ||
| 247 | static int | 252 | static int |
