root/include/net/tc_act/tc_mirred.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. is_tcf_mirred_egress_redirect
  2. is_tcf_mirred_egress_mirror
  3. is_tcf_mirred_ingress_redirect
  4. is_tcf_mirred_ingress_mirror
  5. tcf_mirred_dev

   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 
   8 struct 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         struct list_head        tcfm_list;
  14 };
  15 #define to_mirred(a) ((struct tcf_mirred *)a)
  16 
  17 static inline bool is_tcf_mirred_egress_redirect(const struct tc_action *a)
  18 {
  19 #ifdef CONFIG_NET_CLS_ACT
  20         if (a->ops && a->ops->id == TCA_ID_MIRRED)
  21                 return to_mirred(a)->tcfm_eaction == TCA_EGRESS_REDIR;
  22 #endif
  23         return false;
  24 }
  25 
  26 static inline bool is_tcf_mirred_egress_mirror(const struct tc_action *a)
  27 {
  28 #ifdef CONFIG_NET_CLS_ACT
  29         if (a->ops && a->ops->id == TCA_ID_MIRRED)
  30                 return to_mirred(a)->tcfm_eaction == TCA_EGRESS_MIRROR;
  31 #endif
  32         return false;
  33 }
  34 
  35 static inline bool is_tcf_mirred_ingress_redirect(const struct tc_action *a)
  36 {
  37 #ifdef CONFIG_NET_CLS_ACT
  38         if (a->ops && a->ops->id == TCA_ID_MIRRED)
  39                 return to_mirred(a)->tcfm_eaction == TCA_INGRESS_REDIR;
  40 #endif
  41         return false;
  42 }
  43 
  44 static inline bool is_tcf_mirred_ingress_mirror(const struct tc_action *a)
  45 {
  46 #ifdef CONFIG_NET_CLS_ACT
  47         if (a->ops && a->ops->id == TCA_ID_MIRRED)
  48                 return to_mirred(a)->tcfm_eaction == TCA_INGRESS_MIRROR;
  49 #endif
  50         return false;
  51 }
  52 
  53 static inline struct net_device *tcf_mirred_dev(const struct tc_action *a)
  54 {
  55         return rtnl_dereference(to_mirred(a)->tcfm_dev);
  56 }
  57 
  58 #endif /* __NET_TC_MIR_H */

/* [<][>][^][v][top][bottom][index][help] */