]> git.ipfire.org Git - thirdparty/kernel/stable.git/blame - include/net/tc_act/tc_mirred.h
net: Change TCA_ACT_* to TCA_ID_* to match that of TCA_ID_POLICE
[thirdparty/kernel/stable.git] / include / net / tc_act / tc_mirred.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
1da177e4
LT
2#ifndef __NET_TC_MIR_H
3#define __NET_TC_MIR_H
4
5#include <net/act_api.h>
229d2850 6#include <linux/tc_act/tc_mirred.h>
1da177e4 7
e9ce1cd3 8struct tcf_mirred {
ec0595cc 9 struct tc_action common;
e9ce1cd3 10 int tcfm_eaction;
16577923 11 bool tcfm_mac_header_xmit;
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
5724b8b5 17static inline bool is_tcf_mirred_egress_redirect(const struct tc_action *a)
229d2850
SS
18{
19#ifdef CONFIG_NET_CLS_ACT
eddd2cf1 20 if (a->ops && a->ops->id == TCA_ID_MIRRED)
229d2850
SS
21 return to_mirred(a)->tcfm_eaction == TCA_EGRESS_REDIR;
22#endif
23 return false;
24}
25
5724b8b5 26static inline bool is_tcf_mirred_egress_mirror(const struct tc_action *a)
56a20680
YG
27{
28#ifdef CONFIG_NET_CLS_ACT
eddd2cf1 29 if (a->ops && a->ops->id == TCA_ID_MIRRED)
56a20680
YG
30 return to_mirred(a)->tcfm_eaction == TCA_EGRESS_MIRROR;
31#endif
32 return false;
33}
34
9f8a739e 35static inline struct net_device *tcf_mirred_dev(const struct tc_action *a)
229d2850 36{
9f8a739e 37 return rtnl_dereference(to_mirred(a)->tcfm_dev);
229d2850
SS
38}
39
e9ce1cd3 40#endif /* __NET_TC_MIR_H */