mbox series

[net,mlxsw,0/2] mlxsw: Fix ACL actions error condition handling

Message ID 20180729114659.15917-1-nird@mellanox.com (mailing list archive)
Headers show
Series mlxsw: Fix ACL actions error condition handling | expand

Message

Nir Dotan July 29, 2018, 11:46 a.m. UTC
Two issues were lately noticed within mlxsw ACL actions error condition
handling. The first patch deals with conflicting actions such as:

- tc filter add dev swp49 parent ffff: protocol ip pref 10 flower skip_sw dst_ip 192.168.101.1 action goto chain 100 action mirred egress redirect dev swp4i

The second action will never execute, however SW model allows this configuration,
while the mlxsw driver cannot allow for it as it implements actions in sets of up
to three actions per set with a single termination marking. Conflicting actions 
create a contradiction over this single marking and thus cannot be configured.
The fix replaces a misplaced warning with an error code to be returned.

The second patch fixes a condition of duplicate destruction of resources. 
Some actions require allocation of specific resource prior to setting the action 
itself. On error condition this resource was destroyed twice, leading to a crash 
when using mirror action, and to a redundant destruction in other cases, since 
for error condition rule destruction also takes care of resource destruction.
In order to fix this state a symmetry in behavior is added and resource 
destruction also takes care of removing the resource from rule's resource list.

Nir Dotan (2):
  mlxsw: core_acl_flex_actions: Return error for conflicting actions
  mlxsw: core_acl_flex_actions: Remove redundant resource destruction

 .../mellanox/mlxsw/core_acl_flex_actions.c         | 51 ++++++++++++----------
 1 file changed, 29 insertions(+), 22 deletions(-)