net/mlx5: prepare to add E-switch rule flags check
authorViacheslav Ovsiienko <viacheslavo@mellanox.com>
Mon, 12 Nov 2018 20:01:41 +0000 (20:01 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 15 Nov 2018 22:54:53 +0000 (23:54 +0100)
commit59d64571110b1f6007a90615d9c9958b148ed585
treec30502758e7adff5288090eb4059f03aae5c5adf
parent84cacbe34b6bb3071af0313694b119f3872cbb8b
net/mlx5: prepare to add E-switch rule flags check

The tc flower filter rules are used to control E-switch from
the application side. In order to gain garanteed rule hardware
offload the skip_sw flag should be specified while applying the
rule. But some tc rules is rejected by kernel if skip_sw flag
is set by design. Currently this regards VXLAN tunneling rules,
which are applied to special VXLAN virtual devices. Albeit these
rules are applied with skip_sw flag reset kernel tries to
perform hardware offload. If kernel succeeded the in_hw flag
is set in rule properties and application should check this
flag to get know whether the applied rule is actually hardware
offloaded.

This patch prepares for the rule flags query and check in_hw flag.
The driver checks only the rules with skip_sw flag reset, so we
need to test the actual flags of rule is being applied. The pointer
to flags field into translated rule is introduced and flags are
tested directly in the rule body. It is more reliable than save and
check flags copy.

Also patch swaps the flow_tcf_apply() and flow_tcf_remove(),
we are going to call flow_tcf_remove() from flow_tcf_appy() if
no in_hw flag set found in applied rule.

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
drivers/net/mlx5/mlx5_flow.h
drivers/net/mlx5/mlx5_flow_tcf.c