diff options
Diffstat (limited to 'net/sched/em_meta.c')
-rw-r--r-- | net/sched/em_meta.c | 62 |
1 files changed, 11 insertions, 51 deletions
diff --git a/net/sched/em_meta.c b/net/sched/em_meta.c index 53d98f8d3d80..00eae5f9a01a 100644 --- a/net/sched/em_meta.c +++ b/net/sched/em_meta.c | |||
@@ -27,17 +27,17 @@ | |||
27 | * lvalue rvalue | 27 | * lvalue rvalue |
28 | * +-----------+ +-----------+ | 28 | * +-----------+ +-----------+ |
29 | * | type: INT | | type: INT | | 29 | * | type: INT | | type: INT | |
30 | * def | id: INDEV | | id: VALUE | | 30 | * def | id: DEV | | id: VALUE | |
31 | * | data: | | data: 3 | | 31 | * | data: | | data: 3 | |
32 | * +-----------+ +-----------+ | 32 | * +-----------+ +-----------+ |
33 | * | | | 33 | * | | |
34 | * ---> meta_ops[INT][INDEV](...) | | 34 | * ---> meta_ops[INT][DEV](...) | |
35 | * | | | 35 | * | | |
36 | * ----------- | | 36 | * ----------- | |
37 | * V V | 37 | * V V |
38 | * +-----------+ +-----------+ | 38 | * +-----------+ +-----------+ |
39 | * | type: INT | | type: INT | | 39 | * | type: INT | | type: INT | |
40 | * obj | id: INDEV | | id: VALUE | | 40 | * obj | id: DEV | | id: VALUE | |
41 | * | data: 2 |<--data got filled out | data: 3 | | 41 | * | data: 2 |<--data got filled out | data: 3 | |
42 | * +-----------+ +-----------+ | 42 | * +-----------+ +-----------+ |
43 | * | | | 43 | * | | |
@@ -170,26 +170,6 @@ META_COLLECTOR(var_dev) | |||
170 | *err = var_dev(skb->dev, dst); | 170 | *err = var_dev(skb->dev, dst); |
171 | } | 171 | } |
172 | 172 | ||
173 | META_COLLECTOR(int_indev) | ||
174 | { | ||
175 | *err = int_dev(skb->input_dev, dst); | ||
176 | } | ||
177 | |||
178 | META_COLLECTOR(var_indev) | ||
179 | { | ||
180 | *err = var_dev(skb->input_dev, dst); | ||
181 | } | ||
182 | |||
183 | META_COLLECTOR(int_realdev) | ||
184 | { | ||
185 | *err = int_dev(skb->real_dev, dst); | ||
186 | } | ||
187 | |||
188 | META_COLLECTOR(var_realdev) | ||
189 | { | ||
190 | *err = var_dev(skb->real_dev, dst); | ||
191 | } | ||
192 | |||
193 | /************************************************************************** | 173 | /************************************************************************** |
194 | * skb attributes | 174 | * skb attributes |
195 | **************************************************************************/ | 175 | **************************************************************************/ |
@@ -229,12 +209,14 @@ META_COLLECTOR(int_maclen) | |||
229 | * Netfilter | 209 | * Netfilter |
230 | **************************************************************************/ | 210 | **************************************************************************/ |
231 | 211 | ||
232 | #ifdef CONFIG_NETFILTER | ||
233 | META_COLLECTOR(int_nfmark) | 212 | META_COLLECTOR(int_nfmark) |
234 | { | 213 | { |
214 | #ifdef CONFIG_NETFILTER | ||
235 | dst->value = skb->nfmark; | 215 | dst->value = skb->nfmark; |
236 | } | 216 | #else |
217 | dst->value = 0; | ||
237 | #endif | 218 | #endif |
219 | } | ||
238 | 220 | ||
239 | /************************************************************************** | 221 | /************************************************************************** |
240 | * Traffic Control | 222 | * Traffic Control |
@@ -245,31 +227,21 @@ META_COLLECTOR(int_tcindex) | |||
245 | dst->value = skb->tc_index; | 227 | dst->value = skb->tc_index; |
246 | } | 228 | } |
247 | 229 | ||
248 | #ifdef CONFIG_NET_CLS_ACT | ||
249 | META_COLLECTOR(int_tcverd) | ||
250 | { | ||
251 | dst->value = skb->tc_verd; | ||
252 | } | ||
253 | |||
254 | META_COLLECTOR(int_tcclassid) | ||
255 | { | ||
256 | dst->value = skb->tc_classid; | ||
257 | } | ||
258 | #endif | ||
259 | |||
260 | /************************************************************************** | 230 | /************************************************************************** |
261 | * Routing | 231 | * Routing |
262 | **************************************************************************/ | 232 | **************************************************************************/ |
263 | 233 | ||
264 | #ifdef CONFIG_NET_CLS_ROUTE | ||
265 | META_COLLECTOR(int_rtclassid) | 234 | META_COLLECTOR(int_rtclassid) |
266 | { | 235 | { |
267 | if (unlikely(skb->dst == NULL)) | 236 | if (unlikely(skb->dst == NULL)) |
268 | *err = -1; | 237 | *err = -1; |
269 | else | 238 | else |
239 | #ifdef CONFIG_NET_CLS_ROUTE | ||
270 | dst->value = skb->dst->tclassid; | 240 | dst->value = skb->dst->tclassid; |
271 | } | 241 | #else |
242 | dst->value = 0; | ||
272 | #endif | 243 | #endif |
244 | } | ||
273 | 245 | ||
274 | META_COLLECTOR(int_rtiif) | 246 | META_COLLECTOR(int_rtiif) |
275 | { | 247 | { |
@@ -505,8 +477,6 @@ struct meta_ops | |||
505 | static struct meta_ops __meta_ops[TCF_META_TYPE_MAX+1][TCF_META_ID_MAX+1] = { | 477 | static struct meta_ops __meta_ops[TCF_META_TYPE_MAX+1][TCF_META_ID_MAX+1] = { |
506 | [TCF_META_TYPE_VAR] = { | 478 | [TCF_META_TYPE_VAR] = { |
507 | [META_ID(DEV)] = META_FUNC(var_dev), | 479 | [META_ID(DEV)] = META_FUNC(var_dev), |
508 | [META_ID(INDEV)] = META_FUNC(var_indev), | ||
509 | [META_ID(REALDEV)] = META_FUNC(var_realdev), | ||
510 | [META_ID(SK_BOUND_IF)] = META_FUNC(var_sk_bound_if), | 480 | [META_ID(SK_BOUND_IF)] = META_FUNC(var_sk_bound_if), |
511 | }, | 481 | }, |
512 | [TCF_META_TYPE_INT] = { | 482 | [TCF_META_TYPE_INT] = { |
@@ -515,25 +485,15 @@ static struct meta_ops __meta_ops[TCF_META_TYPE_MAX+1][TCF_META_ID_MAX+1] = { | |||
515 | [META_ID(LOADAVG_1)] = META_FUNC(int_loadavg_1), | 485 | [META_ID(LOADAVG_1)] = META_FUNC(int_loadavg_1), |
516 | [META_ID(LOADAVG_2)] = META_FUNC(int_loadavg_2), | 486 | [META_ID(LOADAVG_2)] = META_FUNC(int_loadavg_2), |
517 | [META_ID(DEV)] = META_FUNC(int_dev), | 487 | [META_ID(DEV)] = META_FUNC(int_dev), |
518 | [META_ID(INDEV)] = META_FUNC(int_indev), | ||
519 | [META_ID(REALDEV)] = META_FUNC(int_realdev), | ||
520 | [META_ID(PRIORITY)] = META_FUNC(int_priority), | 488 | [META_ID(PRIORITY)] = META_FUNC(int_priority), |
521 | [META_ID(PROTOCOL)] = META_FUNC(int_protocol), | 489 | [META_ID(PROTOCOL)] = META_FUNC(int_protocol), |
522 | [META_ID(PKTTYPE)] = META_FUNC(int_pkttype), | 490 | [META_ID(PKTTYPE)] = META_FUNC(int_pkttype), |
523 | [META_ID(PKTLEN)] = META_FUNC(int_pktlen), | 491 | [META_ID(PKTLEN)] = META_FUNC(int_pktlen), |
524 | [META_ID(DATALEN)] = META_FUNC(int_datalen), | 492 | [META_ID(DATALEN)] = META_FUNC(int_datalen), |
525 | [META_ID(MACLEN)] = META_FUNC(int_maclen), | 493 | [META_ID(MACLEN)] = META_FUNC(int_maclen), |
526 | #ifdef CONFIG_NETFILTER | ||
527 | [META_ID(NFMARK)] = META_FUNC(int_nfmark), | 494 | [META_ID(NFMARK)] = META_FUNC(int_nfmark), |
528 | #endif | ||
529 | [META_ID(TCINDEX)] = META_FUNC(int_tcindex), | 495 | [META_ID(TCINDEX)] = META_FUNC(int_tcindex), |
530 | #ifdef CONFIG_NET_CLS_ACT | ||
531 | [META_ID(TCVERDICT)] = META_FUNC(int_tcverd), | ||
532 | [META_ID(TCCLASSID)] = META_FUNC(int_tcclassid), | ||
533 | #endif | ||
534 | #ifdef CONFIG_NET_CLS_ROUTE | ||
535 | [META_ID(RTCLASSID)] = META_FUNC(int_rtclassid), | 496 | [META_ID(RTCLASSID)] = META_FUNC(int_rtclassid), |
536 | #endif | ||
537 | [META_ID(RTIIF)] = META_FUNC(int_rtiif), | 497 | [META_ID(RTIIF)] = META_FUNC(int_rtiif), |
538 | [META_ID(SK_FAMILY)] = META_FUNC(int_sk_family), | 498 | [META_ID(SK_FAMILY)] = META_FUNC(int_sk_family), |
539 | [META_ID(SK_STATE)] = META_FUNC(int_sk_state), | 499 | [META_ID(SK_STATE)] = META_FUNC(int_sk_state), |