diff options
Diffstat (limited to 'net/sched/sch_red.c')
-rw-r--r-- | net/sched/sch_red.c | 61 |
1 files changed, 30 insertions, 31 deletions
diff --git a/net/sched/sch_red.c b/net/sched/sch_red.c index 9f98dbd32d4c..6649463da1b6 100644 --- a/net/sched/sch_red.c +++ b/net/sched/sch_red.c | |||
@@ -36,8 +36,7 @@ | |||
36 | if RED works correctly. | 36 | if RED works correctly. |
37 | */ | 37 | */ |
38 | 38 | ||
39 | struct red_sched_data | 39 | struct red_sched_data { |
40 | { | ||
41 | u32 limit; /* HARD maximal queue length */ | 40 | u32 limit; /* HARD maximal queue length */ |
42 | unsigned char flags; | 41 | unsigned char flags; |
43 | struct red_parms parms; | 42 | struct red_parms parms; |
@@ -55,7 +54,7 @@ static inline int red_use_harddrop(struct red_sched_data *q) | |||
55 | return q->flags & TC_RED_HARDDROP; | 54 | return q->flags & TC_RED_HARDDROP; |
56 | } | 55 | } |
57 | 56 | ||
58 | static int red_enqueue(struct sk_buff *skb, struct Qdisc* sch) | 57 | static int red_enqueue(struct sk_buff *skb, struct Qdisc *sch) |
59 | { | 58 | { |
60 | struct red_sched_data *q = qdisc_priv(sch); | 59 | struct red_sched_data *q = qdisc_priv(sch); |
61 | struct Qdisc *child = q->qdisc; | 60 | struct Qdisc *child = q->qdisc; |
@@ -67,29 +66,29 @@ static int red_enqueue(struct sk_buff *skb, struct Qdisc* sch) | |||
67 | red_end_of_idle_period(&q->parms); | 66 | red_end_of_idle_period(&q->parms); |
68 | 67 | ||
69 | switch (red_action(&q->parms, q->parms.qavg)) { | 68 | switch (red_action(&q->parms, q->parms.qavg)) { |
70 | case RED_DONT_MARK: | 69 | case RED_DONT_MARK: |
71 | break; | 70 | break; |
72 | 71 | ||
73 | case RED_PROB_MARK: | 72 | case RED_PROB_MARK: |
74 | sch->qstats.overlimits++; | 73 | sch->qstats.overlimits++; |
75 | if (!red_use_ecn(q) || !INET_ECN_set_ce(skb)) { | 74 | if (!red_use_ecn(q) || !INET_ECN_set_ce(skb)) { |
76 | q->stats.prob_drop++; | 75 | q->stats.prob_drop++; |
77 | goto congestion_drop; | 76 | goto congestion_drop; |
78 | } | 77 | } |
79 | 78 | ||
80 | q->stats.prob_mark++; | 79 | q->stats.prob_mark++; |
81 | break; | 80 | break; |
82 | 81 | ||
83 | case RED_HARD_MARK: | 82 | case RED_HARD_MARK: |
84 | sch->qstats.overlimits++; | 83 | sch->qstats.overlimits++; |
85 | if (red_use_harddrop(q) || !red_use_ecn(q) || | 84 | if (red_use_harddrop(q) || !red_use_ecn(q) || |
86 | !INET_ECN_set_ce(skb)) { | 85 | !INET_ECN_set_ce(skb)) { |
87 | q->stats.forced_drop++; | 86 | q->stats.forced_drop++; |
88 | goto congestion_drop; | 87 | goto congestion_drop; |
89 | } | 88 | } |
90 | 89 | ||
91 | q->stats.forced_mark++; | 90 | q->stats.forced_mark++; |
92 | break; | 91 | break; |
93 | } | 92 | } |
94 | 93 | ||
95 | ret = qdisc_enqueue(skb, child); | 94 | ret = qdisc_enqueue(skb, child); |
@@ -106,7 +105,7 @@ congestion_drop: | |||
106 | return NET_XMIT_CN; | 105 | return NET_XMIT_CN; |
107 | } | 106 | } |
108 | 107 | ||
109 | static struct sk_buff * red_dequeue(struct Qdisc* sch) | 108 | static struct sk_buff *red_dequeue(struct Qdisc *sch) |
110 | { | 109 | { |
111 | struct sk_buff *skb; | 110 | struct sk_buff *skb; |
112 | struct red_sched_data *q = qdisc_priv(sch); | 111 | struct red_sched_data *q = qdisc_priv(sch); |
@@ -123,7 +122,7 @@ static struct sk_buff * red_dequeue(struct Qdisc* sch) | |||
123 | return skb; | 122 | return skb; |
124 | } | 123 | } |
125 | 124 | ||
126 | static struct sk_buff * red_peek(struct Qdisc* sch) | 125 | static struct sk_buff *red_peek(struct Qdisc *sch) |
127 | { | 126 | { |
128 | struct red_sched_data *q = qdisc_priv(sch); | 127 | struct red_sched_data *q = qdisc_priv(sch); |
129 | struct Qdisc *child = q->qdisc; | 128 | struct Qdisc *child = q->qdisc; |
@@ -131,7 +130,7 @@ static struct sk_buff * red_peek(struct Qdisc* sch) | |||
131 | return child->ops->peek(child); | 130 | return child->ops->peek(child); |
132 | } | 131 | } |
133 | 132 | ||
134 | static unsigned int red_drop(struct Qdisc* sch) | 133 | static unsigned int red_drop(struct Qdisc *sch) |
135 | { | 134 | { |
136 | struct red_sched_data *q = qdisc_priv(sch); | 135 | struct red_sched_data *q = qdisc_priv(sch); |
137 | struct Qdisc *child = q->qdisc; | 136 | struct Qdisc *child = q->qdisc; |
@@ -150,7 +149,7 @@ static unsigned int red_drop(struct Qdisc* sch) | |||
150 | return 0; | 149 | return 0; |
151 | } | 150 | } |
152 | 151 | ||
153 | static void red_reset(struct Qdisc* sch) | 152 | static void red_reset(struct Qdisc *sch) |
154 | { | 153 | { |
155 | struct red_sched_data *q = qdisc_priv(sch); | 154 | struct red_sched_data *q = qdisc_priv(sch); |
156 | 155 | ||
@@ -217,7 +216,7 @@ static int red_change(struct Qdisc *sch, struct nlattr *opt) | |||
217 | return 0; | 216 | return 0; |
218 | } | 217 | } |
219 | 218 | ||
220 | static int red_init(struct Qdisc* sch, struct nlattr *opt) | 219 | static int red_init(struct Qdisc *sch, struct nlattr *opt) |
221 | { | 220 | { |
222 | struct red_sched_data *q = qdisc_priv(sch); | 221 | struct red_sched_data *q = qdisc_priv(sch); |
223 | 222 | ||