net_sched: move tc_action into tcf_common
[cascardo/linux.git] / include / net / tc_act / tc_mirred.h
index e891835..89aebd2 100644 (file)
@@ -12,8 +12,7 @@ struct tcf_mirred {
        struct net_device __rcu *tcfm_dev;
        struct list_head        tcfm_list;
 };
-#define to_mirred(a) \
-       container_of(a->priv, struct tcf_mirred, common)
+#define to_mirred(a) ((struct tcf_mirred *)a)
 
 static inline bool is_tcf_mirred_redirect(const struct tc_action *a)
 {
@@ -24,6 +23,15 @@ static inline bool is_tcf_mirred_redirect(const struct tc_action *a)
        return false;
 }
 
+static inline bool is_tcf_mirred_mirror(const struct tc_action *a)
+{
+#ifdef CONFIG_NET_CLS_ACT
+       if (a->ops && a->ops->type == TCA_ACT_MIRRED)
+               return to_mirred(a)->tcfm_eaction == TCA_EGRESS_MIRROR;
+#endif
+       return false;
+}
+
 static inline int tcf_mirred_ifindex(const struct tc_action *a)
 {
        return to_mirred(a)->tcfm_ifindex;