aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sched/sch_dsmark.c41
1 files changed, 25 insertions, 16 deletions
diff --git a/net/sched/sch_dsmark.c b/net/sched/sch_dsmark.c
index 4d2c233a8611..2d7e891e6b0d 100644
--- a/net/sched/sch_dsmark.c
+++ b/net/sched/sch_dsmark.c
@@ -237,25 +237,34 @@ 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 case TC_ACT_SHOT:
246 kfree_skb(skb);
247 sch->qstats.drops++;
248 return NET_XMIT_BYPASS;
249#elif defined(CONFIG_NET_CLS_POLICE)
250 case TC_POLICE_SHOT:
251 kfree_skb(skb);
252 sch->qstats.drops++;
253 return NET_XMIT_POLICED;
245#if 0 254#if 0
246 case TC_POLICE_RECLASSIFY: 255 case TC_POLICE_RECLASSIFY:
247 /* FIXME: what to do here ??? */ 256 /* FIXME: what to do here ??? */
248#endif 257#endif
249#endif 258#endif
250 case TC_POLICE_OK: 259 case TC_POLICE_OK:
251 skb->tc_index = TC_H_MIN(res.classid); 260 skb->tc_index = TC_H_MIN(res.classid);
252 break; 261 break;
253 case TC_POLICE_UNSPEC: 262 case TC_POLICE_UNSPEC:
254 /* fall through */ 263 /* fall through */
255 default: 264 default:
256 if (p->default_index != NO_DEFAULT_INDEX) 265 if (p->default_index != NO_DEFAULT_INDEX)
257 skb->tc_index = p->default_index; 266 skb->tc_index = p->default_index;
258 break; 267 break;
259 } 268 }
260 } 269 }
261 270