|
@@ -237,25 +237,34 @@ static int dsmark_enqueue(struct sk_buff *skb,struct Qdisc *sch)
|
|
D2PRINTK("result %d class 0x%04x\n", result, res.classid);
|
|
D2PRINTK("result %d class 0x%04x\n", result, res.classid);
|
|
|
|
|
|
switch (result) {
|
|
switch (result) {
|
|
-#ifdef CONFIG_NET_CLS_POLICE
|
|
|
|
- case TC_POLICE_SHOT:
|
|
|
|
- kfree_skb(skb);
|
|
|
|
- sch->qstats.drops++;
|
|
|
|
- return NET_XMIT_POLICED;
|
|
|
|
|
|
+#ifdef CONFIG_NET_CLS_ACT
|
|
|
|
+ case TC_ACT_QUEUED:
|
|
|
|
+ case TC_ACT_STOLEN:
|
|
|
|
+ kfree_skb(skb);
|
|
|
|
+ return NET_XMIT_SUCCESS;
|
|
|
|
+ case TC_ACT_SHOT:
|
|
|
|
+ kfree_skb(skb);
|
|
|
|
+ sch->qstats.drops++;
|
|
|
|
+ return NET_XMIT_BYPASS;
|
|
|
|
+#elif defined(CONFIG_NET_CLS_POLICE)
|
|
|
|
+ case TC_POLICE_SHOT:
|
|
|
|
+ kfree_skb(skb);
|
|
|
|
+ sch->qstats.drops++;
|
|
|
|
+ return NET_XMIT_POLICED;
|
|
#if 0
|
|
#if 0
|
|
- case TC_POLICE_RECLASSIFY:
|
|
|
|
- /* FIXME: what to do here ??? */
|
|
|
|
|
|
+ case TC_POLICE_RECLASSIFY:
|
|
|
|
+ /* FIXME: what to do here ??? */
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
- case TC_POLICE_OK:
|
|
|
|
- skb->tc_index = TC_H_MIN(res.classid);
|
|
|
|
- break;
|
|
|
|
- case TC_POLICE_UNSPEC:
|
|
|
|
- /* fall through */
|
|
|
|
- default:
|
|
|
|
- if (p->default_index != NO_DEFAULT_INDEX)
|
|
|
|
- skb->tc_index = p->default_index;
|
|
|
|
- break;
|
|
|
|
|
|
+ case TC_POLICE_OK:
|
|
|
|
+ skb->tc_index = TC_H_MIN(res.classid);
|
|
|
|
+ break;
|
|
|
|
+ case TC_POLICE_UNSPEC:
|
|
|
|
+ /* fall through */
|
|
|
|
+ default:
|
|
|
|
+ if (p->default_index != NO_DEFAULT_INDEX)
|
|
|
|
+ skb->tc_index = p->default_index;
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|