cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

tc_mirred.h (1477B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __NET_TC_MIR_H
      3#define __NET_TC_MIR_H
      4
      5#include <net/act_api.h>
      6#include <linux/tc_act/tc_mirred.h>
      7
      8struct tcf_mirred {
      9	struct tc_action	common;
     10	int			tcfm_eaction;
     11	bool			tcfm_mac_header_xmit;
     12	struct net_device __rcu	*tcfm_dev;
     13	netdevice_tracker	tcfm_dev_tracker;
     14	struct list_head	tcfm_list;
     15};
     16#define to_mirred(a) ((struct tcf_mirred *)a)
     17
     18static inline bool is_tcf_mirred_egress_redirect(const struct tc_action *a)
     19{
     20#ifdef CONFIG_NET_CLS_ACT
     21	if (a->ops && a->ops->id == TCA_ID_MIRRED)
     22		return to_mirred(a)->tcfm_eaction == TCA_EGRESS_REDIR;
     23#endif
     24	return false;
     25}
     26
     27static inline bool is_tcf_mirred_egress_mirror(const struct tc_action *a)
     28{
     29#ifdef CONFIG_NET_CLS_ACT
     30	if (a->ops && a->ops->id == TCA_ID_MIRRED)
     31		return to_mirred(a)->tcfm_eaction == TCA_EGRESS_MIRROR;
     32#endif
     33	return false;
     34}
     35
     36static inline bool is_tcf_mirred_ingress_redirect(const struct tc_action *a)
     37{
     38#ifdef CONFIG_NET_CLS_ACT
     39	if (a->ops && a->ops->id == TCA_ID_MIRRED)
     40		return to_mirred(a)->tcfm_eaction == TCA_INGRESS_REDIR;
     41#endif
     42	return false;
     43}
     44
     45static inline bool is_tcf_mirred_ingress_mirror(const struct tc_action *a)
     46{
     47#ifdef CONFIG_NET_CLS_ACT
     48	if (a->ops && a->ops->id == TCA_ID_MIRRED)
     49		return to_mirred(a)->tcfm_eaction == TCA_INGRESS_MIRROR;
     50#endif
     51	return false;
     52}
     53
     54static inline struct net_device *tcf_mirred_dev(const struct tc_action *a)
     55{
     56	return rtnl_dereference(to_mirred(a)->tcfm_dev);
     57}
     58
     59#endif /* __NET_TC_MIR_H */