Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef __NET_TC_MIR_H |
2 | #define __NET_TC_MIR_H | |
3 | ||
4 | #include <net/act_api.h> | |
229d2850 | 5 | #include <linux/tc_act/tc_mirred.h> |
1da177e4 | 6 | |
e9ce1cd3 | 7 | struct tcf_mirred { |
ec0595cc | 8 | struct tc_action common; |
e9ce1cd3 DM |
9 | int tcfm_eaction; |
10 | int tcfm_ifindex; | |
11 | int tcfm_ok_push; | |
2ee22a90 | 12 | struct net_device __rcu *tcfm_dev; |
3b87956e | 13 | struct list_head tcfm_list; |
1da177e4 | 14 | }; |
a85a970a | 15 | #define to_mirred(a) ((struct tcf_mirred *)a) |
1da177e4 | 16 | |
229d2850 SS |
17 | static inline bool is_tcf_mirred_redirect(const struct tc_action *a) |
18 | { | |
19 | #ifdef CONFIG_NET_CLS_ACT | |
20 | if (a->ops && a->ops->type == TCA_ACT_MIRRED) | |
21 | return to_mirred(a)->tcfm_eaction == TCA_EGRESS_REDIR; | |
22 | #endif | |
23 | return false; | |
24 | } | |
25 | ||
56a20680 YG |
26 | static inline bool is_tcf_mirred_mirror(const struct tc_action *a) |
27 | { | |
28 | #ifdef CONFIG_NET_CLS_ACT | |
29 | if (a->ops && a->ops->type == TCA_ACT_MIRRED) | |
30 | return to_mirred(a)->tcfm_eaction == TCA_EGRESS_MIRROR; | |
31 | #endif | |
32 | return false; | |
33 | } | |
34 | ||
229d2850 SS |
35 | static inline int tcf_mirred_ifindex(const struct tc_action *a) |
36 | { | |
37 | return to_mirred(a)->tcfm_ifindex; | |
38 | } | |
39 | ||
e9ce1cd3 | 40 | #endif /* __NET_TC_MIR_H */ |