diff options
Diffstat (limited to 'net/sched/sch_dsmark.c')
-rw-r--r-- | net/sched/sch_dsmark.c | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/net/sched/sch_dsmark.c b/net/sched/sch_dsmark.c index 4d2c233a8611..60f89199e3da 100644 --- a/net/sched/sch_dsmark.c +++ b/net/sched/sch_dsmark.c | |||
@@ -237,25 +237,23 @@ static int dsmark_enqueue(struct sk_buff *skb,struct Qdisc *sch) | |||
237 | D2PRINTK("result %d class 0x%04x\n", result, res.classid); | 237 | D2PRINTK("result %d class 0x%04x\n", result, res.classid); |
238 | 238 | ||
239 | switch (result) { | 239 | switch (result) { |
240 | #ifdef CONFIG_NET_CLS_POLICE | 240 | #ifdef CONFIG_NET_CLS_ACT |
241 | case TC_POLICE_SHOT: | 241 | case TC_ACT_QUEUED: |
242 | kfree_skb(skb); | 242 | case TC_ACT_STOLEN: |
243 | sch->qstats.drops++; | 243 | kfree_skb(skb); |
244 | return NET_XMIT_POLICED; | 244 | return NET_XMIT_SUCCESS; |
245 | #if 0 | 245 | case TC_ACT_SHOT: |
246 | case TC_POLICE_RECLASSIFY: | 246 | kfree_skb(skb); |
247 | /* FIXME: what to do here ??? */ | 247 | sch->qstats.drops++; |
248 | return NET_XMIT_BYPASS; | ||
248 | #endif | 249 | #endif |
249 | #endif | 250 | case TC_ACT_OK: |
250 | case TC_POLICE_OK: | 251 | skb->tc_index = TC_H_MIN(res.classid); |
251 | skb->tc_index = TC_H_MIN(res.classid); | 252 | break; |
252 | break; | 253 | default: |
253 | case TC_POLICE_UNSPEC: | 254 | if (p->default_index != NO_DEFAULT_INDEX) |
254 | /* fall through */ | 255 | skb->tc_index = p->default_index; |
255 | default: | 256 | break; |
256 | if (p->default_index != NO_DEFAULT_INDEX) | ||
257 | skb->tc_index = p->default_index; | ||
258 | break; | ||
259 | } | 257 | } |
260 | } | 258 | } |
261 | 259 | ||