From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [PATCH net-next 00/12] Mellanox 100G ethernet SRIOV Upgrades Date: Mon, 2 May 2016 19:43:32 +0300 Message-ID: <1462207424-4463-1-git-send-email-saeedm@mellanox.com> Cc: netdev@vger.kernel.org, Or Gerlitz , Tal Alon , Eran Ben Elisha , Saeed Mahameed To: "David S. Miller" Return-path: Received: from [193.47.165.129] ([193.47.165.129]:40157 "EHLO mellanox.co.il" rhost-flags-FAIL-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1754258AbcEBQo0 (ORCPT ); Mon, 2 May 2016 12:44:26 -0400 Sender: netdev-owner@vger.kernel.org List-ID: Hi Dave, This series introduces new features and upgrades for mlx5 etherenet SRIOV, while the first patch provides a bug fixes for a compilation issue introduced buy the previous aRFS series for when CONFIG_RFS_ACCEL=y and CONFIG_MLX5_CORE_EN=n. SRIOV upgrades: - Use synchronize_irq instead of the vport events spin_lock - Fix memory leak in error flow - Added full VST support - Spoofcheck support - Trusted VF promiscuous and allmulti support VST and Spoofcheck in details: - Adding Low level firmware commands support for creating ACLs (Access Control Lists) Flow tables. ACLs are regular flow tables with the only exception that they are bound to a specific e-Switch vport (VF) and they can be one of two types > egress ACL: filters traffic going from e-Switch to VF. > ingress ACL: filters traffic going from VF to e-Switch. - Ingress/Egress ACLs (per vport) for VF VST mode filtering. - Ingress/Egress ACLs (per vport) for VF spoofcheck filtering. - Ingress/Egress ACLs (per vport) configuration: > Created only when at least one of (VST, spoofcheck) is configured. > if (!spoofchk && !vst) allow all traffic. i.e. no ACLs. > if (spoofchk && vst) allow only untagged traffic with smac=original mac sent from the VF. > if (spoofchk && !vst) allow only traffic with smac=original mac sent from the VF. > if (!spoofchk && vst) allow only untagged traffic. Trusted VF promiscuous and allmulti support in details: - Added two flow groups for allmulti and promisc VFs to the e-Switch FDB table > Allmulti group: One rule that forwards any mcast traffic coming from either uplink or VFs/PF vports. > Promisc group: One rule that forwards all unmatched traffic coming from uplink. - Add vport context change event handling for promisc and allmulti If VF is trusted respect the request and: > if allmulti request: add the vport to the allmulti group. and to all other L2 mcast address in the FDB table. > if promisc request: add the vport to the promisc group. > Note: A promisc VF can only see traffic that was not explicitly matched to or requested by any other VF. Applied on top: 582a1db98892 ("Merge branch 'qed-selftests'") Thanks, Saeed. Maor Gottlieb (1): net/mlx5e: Fix aRFS compilation dependency Mohamad Haj Yahia (11): net/mlx5: Flow steering, Add vport ACL support net/mlx5: E-Switch, Replace vport spin lock with synchronize_irq() net/mlx5: E-Switch, Fix error flow memory leak net/mlx5: E-Switch, Introduce VST vport ingress/egress ACLs net/mlx5: E-Switch, Vport ingress/egress ACLs rules for VST mode net/mlx5: E-Switch, Vport ingress/egress ACLs rules for spoofchk net/mlx5: E-Switch, Enable/disable ACL tables on demand net/mlx5: E-Switch, Use vport event handler for vport cleanup net/mlx5: E-Switch, Add promiscuous and allmulti FDB flowtable groups net/mlx5: E-Switch, Implement promiscuous rx modes vf request handling net/mlx5: E-Switch, Implement trust vf ndo drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 8 + drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 17 + drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 976 +++++++++++++++++++-- drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 43 +- drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 33 + drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 85 +- drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 7 +- .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 2 + include/linux/mlx5/device.h | 12 + include/linux/mlx5/driver.h | 2 + include/linux/mlx5/fs.h | 7 + 13 files changed, 1123 insertions(+), 72 deletions(-) -- 2.8.0