Hi, This series refactors and tide up eswitch vport and ACL code to provide better separation between eswitch legacy mode and switchdev mode implementation in mlx5, for better future scalability and introduction of new switchdev mode functionality which might rely on shared structures with legacy mode, such as vport ACL tables. Summary: 1. Do vport ACL configuration on per vport basis when enabling/disabling a vport. This enables to have vports enabled/disabled outside of eswitch config for future. 2. Split the code for legacy vs offloads mode and make it clear 3. Tide up vport locking and workqueue usage 4. Fix metadata enablement for ECPF 5. Make explicit use of VF property to publish IB_DEVICE_VIRTUAL_FUNCTION In case of no objection this series will be applied to mlx5-next branch and sent later as pull request to both rdma-next and net-next branches. Thanks, Saeed. --- Parav Pandit (14): net/mlx5: E-switch, Introduce and use vlan rule config helper net/mlx5: Introduce and use mlx5_esw_is_manager_vport() net/mlx5: Correct comment for legacy fields net/mlx5: Move metdata fields under offloads structure net/mlx5: Move legacy drop counter and rule under legacy structure net/mlx5: Tide up state_lock and vport enabled flag usage net/mlx5: E-switch, Prepare code to handle vport enable error net/mlx5: E-switch, Legacy introduce and use per vport acl tables APIs net/mlx5: Move ACL drop counters life cycle close to ACL lifecycle net/mlx5: E-switch, Offloads introduce and use per vport acl tables APIs net/mlx5: Restrict metadata disablement to offloads mode net/mlx5: Refactor ingress acl configuration net/mlx5: E-switch, Enable metadata on own vport IB/mlx5: Introduce and use mlx5_core_is_vf() Qing Huang (1): net/mlx5: Fixed a typo in a comment in esw_del_uc_addr() Vu Pham (3): net/mlx5: E-Switch, Rename egress config to generic name net/mlx5: E-Switch, Rename ingress acl config in offloads mode net/mlx5: E-switch, Offloads shift ACL programming during enable/disable vport drivers/infiniband/hw/mlx5/main.c | 2 +- .../net/ethernet/mellanox/mlx5/core/eswitch.c | 573 +++++++++++------- .../net/ethernet/mellanox/mlx5/core/eswitch.h | 66 +- .../mellanox/mlx5/core/eswitch_offloads.c | 259 ++++---- include/linux/mlx5/driver.h | 5 + 5 files changed, 537 insertions(+), 368 deletions(-) -- 2.21.0