diff options
| author | Jamal Hadi Salim <hadi@cyberus.ca> | 2007-10-26 05:47:23 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2007-10-26 05:47:23 -0400 |
| commit | 12da81d11a34d3bdef52d731cc75f7ec72d0e815 (patch) | |
| tree | c57948efbbb8b9fe6c760148f93db1b6951b8763 | |
| parent | c7da57a183a255f53caa73b1f688a01b097fa5bc (diff) | |
[NET_CLS_ACT]: Introduce skb_act_clone
Reworked skb_clone looks uglier with the single ifdef
CONFIG_NET_CLS_ACT This patch introduces skb_act_clone which will
replace skb_clone in tc actions
Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | include/net/sch_generic.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index a02ec9e5fea5..c9265518a378 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
| @@ -316,4 +316,19 @@ static inline u32 qdisc_l2t(struct qdisc_rate_table* rtab, unsigned int pktlen) | |||
| 316 | return rtab->data[slot]; | 316 | return rtab->data[slot]; |
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | #ifdef CONFIG_NET_CLS_ACT | ||
| 320 | static inline struct sk_buff *skb_act_clone(struct sk_buff *skb, gfp_t gfp_mask) | ||
| 321 | { | ||
| 322 | struct sk_buff *n = skb_clone(skb, gfp_mask); | ||
| 323 | |||
| 324 | if (n) { | ||
| 325 | n->tc_verd = SET_TC_VERD(n->tc_verd, 0); | ||
| 326 | n->tc_verd = CLR_TC_OK2MUNGE(n->tc_verd); | ||
| 327 | n->tc_verd = CLR_TC_MUNGED(n->tc_verd); | ||
| 328 | n->iif = skb->iif; | ||
| 329 | } | ||
| 330 | return n; | ||
| 331 | } | ||
| 332 | #endif | ||
| 333 | |||
| 319 | #endif | 334 | #endif |
