aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-07-15 03:02:10 -0400
committerDavid S. Miller <davem@davemloft.net>2007-07-15 03:02:10 -0400
commitf6853e2df3de82c1dac8f62ddcf3a8dfa302419e (patch)
treeacc1e2c17cc794f7e91fcce6459a3ab6b1ac7768
parent9210080445b0c51a73b488750a26eb17177d8684 (diff)
[NET_SCHED]: sch_dsmark: act_api support
Handle act_api classification results. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-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