]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx5e: Support offloading TC NIC hairpin flows
authorOr Gerlitz <ogerlitz@mellanox.com>
Wed, 22 Nov 2017 19:09:05 +0000 (21:09 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Tue, 9 Jan 2018 05:40:48 +0000 (07:40 +0200)
commit8c473669491d4221e58cfab02d52a9352b4d4cd0
tree68f303c3a2daedab38123801abd6001ad3efe9c3
parent82a546235218c761b4369b8e8885fd7fcf1b6cfb
net/mlx5e: Support offloading TC NIC hairpin flows

We refer to TC NIC rule that involves forwarding as "hairpin".

All hairpin rules from the current NIC device (called "func" in
the code) to a given NIC device ("peer") are steered into the
same hairpin RQ/SQ pair.

The hairpin pair is set on demand and removed when there are no
TC rules that need it.

Here's a TC rule that matches on icmp, does header re-write of the
dst mac and hairpin from RX/enp1s2f1 to TX/enp1s2f2 (enp1s2f1/2 are
two mlx5 devices):

tc filter add dev enp1s2f1 protocol ip parent ffff: prio 2
    flower skip_sw ip_proto icmp
     action pedit ex munge eth dst set 10:22:33:44:55:66 pipe
     action mirred egress redirect dev enp1s2f2

Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en.h
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c