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 DM |
7 | struct tcf_mirred { |
8 | struct tcf_common common; | |
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 | }; |
86062033 WC |
15 | #define to_mirred(a) \ |
16 | container_of(a->priv, struct tcf_mirred, common) | |
1da177e4 | 17 | |
229d2850 SS |
18 | static inline bool is_tcf_mirred_redirect(const struct tc_action *a) |
19 | { | |
20 | #ifdef CONFIG_NET_CLS_ACT | |
21 | if (a->ops && a->ops->type == TCA_ACT_MIRRED) | |
22 | return to_mirred(a)->tcfm_eaction == TCA_EGRESS_REDIR; | |
23 | #endif | |
24 | return false; | |
25 | } | |
26 | ||
56a20680 YG |
27 | static inline bool is_tcf_mirred_mirror(const struct tc_action *a) |
28 | { | |
29 | #ifdef CONFIG_NET_CLS_ACT | |
30 | if (a->ops && a->ops->type == TCA_ACT_MIRRED) | |
31 | return to_mirred(a)->tcfm_eaction == TCA_EGRESS_MIRROR; | |
32 | #endif | |
33 | return false; | |
34 | } | |
35 | ||
229d2850 SS |
36 | static inline int tcf_mirred_ifindex(const struct tc_action *a) |
37 | { | |
38 | return to_mirred(a)->tcfm_ifindex; | |
39 | } | |
40 | ||
e9ce1cd3 | 41 | #endif /* __NET_TC_MIR_H */ |