On 17-07-31 08:37 PM, Amritha Nambiar wrote:
The Mirred/redirect action is extended to forward to a traffic
class on the device. The traffic class index needs to be
provided in addition to the device's ifindex.

Example:
# tc filter add dev eth0 protocol ip parent ffff: prio 1 flower\
   dst_ip 192.168.1.1/32 ip_proto udp dst_port 22\
   skip_sw indev eth0 action mirred ingress redirect dev eth0 tc 1

Signed-off-by: Amritha Nambiar <amritha.namb...@intel.com>
---
  include/net/tc_act/tc_mirred.h        |    7 +++++++
  include/uapi/linux/tc_act/tc_mirred.h |    5 +++++
  net/sched/act_mirred.c                |   17 +++++++++++++++++
  3 files changed, 29 insertions(+)

diff --git a/include/net/tc_act/tc_mirred.h b/include/net/tc_act/tc_mirred.h
index 604bc31..60058c4 100644
--- a/include/net/tc_act/tc_mirred.h
+++ b/include/net/tc_act/tc_mirred.h
@@ -9,6 +9,8 @@ struct tcf_mirred {
        int                     tcfm_eaction;
        int                     tcfm_ifindex;
        bool                    tcfm_mac_header_xmit;
+       u8                      tcfm_tc;
+       u32                     flags;
        struct net_device __rcu *tcfm_dev;
        struct list_head        tcfm_list;
  };
@@ -37,4 +39,9 @@ static inline int tcf_mirred_ifindex(const struct tc_action 
*a)
        return to_mirred(a)->tcfm_ifindex;
  }
+static inline int tcf_mirred_tc(const struct tc_action *a)
+{
+       return to_mirred(a)->tcfm_tc;
+}
+
  #endif /* __NET_TC_MIR_H */
diff --git a/include/uapi/linux/tc_act/tc_mirred.h 
b/include/uapi/linux/tc_act/tc_mirred.h
index 3d7a2b3..8ff4d76 100644
--- a/include/uapi/linux/tc_act/tc_mirred.h
+++ b/include/uapi/linux/tc_act/tc_mirred.h
@@ -9,6 +9,10 @@
  #define TCA_EGRESS_MIRROR 2 /* mirror packet to EGRESS */
  #define TCA_INGRESS_REDIR 3  /* packet redirect to INGRESS*/
  #define TCA_INGRESS_MIRROR 4 /* mirror packet to INGRESS */
+
+#define MIRRED_F_TC_MAP                0x1
+#define MIRRED_TC_MAP_MAX      0x10

Assuming this is the max number of queues?
Where does this upper bound come from? Is it a spec
or an intel thing? If spec - mentioning which
spec and section would be useful.

cheers,
jamal

Reply via email to