From patchwork Fri Jan 18 15:58:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 1027519 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="s6ejhfqU"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43h5FY4DX5z9sBQ for ; Sat, 19 Jan 2019 02:58:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727987AbfARP6I (ORCPT ); Fri, 18 Jan 2019 10:58:08 -0500 Received: from mail-eopbgr150073.outbound.protection.outlook.com ([40.107.15.73]:21666 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727946AbfARP6G (ORCPT ); Fri, 18 Jan 2019 10:58:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YbTq9aDtoJ7y0Grp5IOydvV5uYYZVjNHO5+9adbWBzQ=; b=s6ejhfqU2AEdd/jcGLpAEfxuz0AEOt7rEfPuzSvAAK9rAKDV50ngCKBwpYcg+ri90iytjlErCIL4MMXN2zJHlGowhc0aecnexOV3GucNAejQrAZYBAz0WcoJ/GWFP3VwMwdc0IYWeMDB2n+qSAGZ2DV/L0uH3IFJntg9eZ+DEJ4= Received: from AM6PR05MB6056.eurprd05.prod.outlook.com (20.179.2.148) by AM6PR05MB5702.eurprd05.prod.outlook.com (20.178.86.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.26; Fri, 18 Jan 2019 15:58:01 +0000 Received: from AM6PR05MB6056.eurprd05.prod.outlook.com ([fe80::5490:e4ea:7798:e65f]) by AM6PR05MB6056.eurprd05.prod.outlook.com ([fe80::5490:e4ea:7798:e65f%3]) with mapi id 15.20.1516.019; Fri, 18 Jan 2019 15:58:01 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , mlxsw , Alexander Petrovskiy , Ido Schimmel Subject: [PATCH net 6/8] mlxsw: spectrum_switchdev: Do not treat static FDB entries as sticky Thread-Topic: [PATCH net 6/8] mlxsw: spectrum_switchdev: Do not treat static FDB entries as sticky Thread-Index: AQHUr0aWq9dkyTVRCUGzHijEF8sKxw== Date: Fri, 18 Jan 2019 15:58:01 +0000 Message-ID: <20190118155719.14827-7-idosch@mellanox.com> References: <20190118155719.14827-1-idosch@mellanox.com> In-Reply-To: <20190118155719.14827-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P193CA0032.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:3e::45) To AM6PR05MB6056.eurprd05.prod.outlook.com (2603:10a6:20b:ab::20) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [79.183.38.137] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR05MB5702; 6:1RjP6efR/jtYDBd/23Jh2FUNhkSNQoeMukkXhbwdTmSUIMkVO0/TSQTNvl0RREJ30KxkIiz2ibv+CMItcnqoBKS7kEtHM8Xe1NuWTFa2kIhCyQswY6nB5/PhYn9JeTh3tMvS7f6ScFg5UQ0Zy3AzcK2VN6ARJLS86ymziT2gEwT9F/CH/4Ib+Xx6zgEQWBIuarjPdlTWlkQj5nJr5TJtrPnWTFF4gAywshiKavszthF/XrrPSE3wltluhwMClepmPorYkG7nTeYcnIQX/G8wbqvUBeBycer/JLCzy14KYJu7egIvJZto6ZhjIBdkGna3b2G7mo2k0luZJEZlxI+5e8tTccfUuIxDtdfGOWFElMgcCgwcR7rgGJLT80HryXyL6Uf/XKPtE0VxLzrC7RgDuZkNrzAf4p8IsolZCzgcZ9S847T8KnVIWO6Chg3wsEyaSFVi/Kcydw1vqmRAfPj6gw==; 5:thlohzjD0IdBghwFSlElkpqq1SEfQXEyteiq0LqZbvLPNOr5IVYsrUH5TclRvgHvzKlCTvRpXQ4mamJaeoEsQepMKWTxpfRQR8u3OUiGim7bRlFiXrZgqY7a6+Dh++YNLqJUNe6mvyBIiTb0FTYVRX9yktgEkU+p6LWCJeOSwpV0YiGOlxhWCFK3nPTwJHalIZHhkRnhOnyBlJUGERqg4Q==; 7:sZ0zj9b6ZVhHoSPPjlcdm2bpPKVoOPo8lzndLlxsblyUiRUP8EOwy1JduiQe/Fr22QWYH9hxlnQJ3rGsZ7i6MDuEzDx+jm6kfCzK5CnmsMeP0wiT7bo8fkd8YrW5PdrsQy/GhkGY3E5Ouo/RLZbsSQ== x-ms-office365-filtering-correlation-id: 18eef3c0-7ebd-4a72-7690-08d67d5db90f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM6PR05MB5702; x-ms-traffictypediagnostic: AM6PR05MB5702: x-microsoft-antispam-prvs: x-forefront-prvs: 0921D55E4F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(979002)(136003)(366004)(39860400002)(376002)(346002)(396003)(199004)(189003)(5640700003)(86362001)(6116002)(99286004)(316002)(2351001)(14444005)(1076003)(2501003)(71200400001)(54906003)(52116002)(256004)(71190400001)(3846002)(6436002)(6486002)(26005)(102836004)(36756003)(186003)(6916009)(5660300001)(14454004)(2906002)(106356001)(107886003)(7736002)(8936002)(486006)(478600001)(6506007)(2616005)(1730700003)(105586002)(476003)(305945005)(76176011)(8676002)(53936002)(446003)(11346002)(6512007)(50226002)(25786009)(97736004)(81156014)(68736007)(81166006)(4326008)(386003)(66066001)(66574012)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR05MB5702; H:AM6PR05MB6056.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: pzDd/LZigSPUO+HXhi+If5HdgbfrlwxW5TRS+7d+Rq0YSqKCN8aXRNIwkO9IThmfJ1xJSfQElHTEVLsG/hQ1Ix39+tf0JsbVh67zRegccB8gtGAB1z3RMC6tG56KMuoVorPBpii0ozX5kDQN58Ly0T+3jcjE92z17WR09NJW0zEFgCsi5HdqXfsG120vtYMcmWY64PmjGcZQaXqUm+vrX12c+02WrvygfbrBohNL9QeFyukLTLbPwKoEwtc/zpa3OO6AAnsHp3TvgKmq6xzD2qkW/+i8NsdUTJyreERJGInq1W7Vfddfh9CzL8LA1hrExMRc95C0PYzm5cZDy+8rfJjnv6+HJcw4xTH6b8gZST/X8UmO+nVQCezKeOOcodShK2u+HCUSuJ9DNLFHguBn3pKhihHaCTC/kcKn7bOQXEg= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18eef3c0-7ebd-4a72-7690-08d67d5db90f X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2019 15:58:00.3938 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB5702 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The driver currently treats static FDB entries as both static and sticky. This is incorrect and prevents such entries from being roamed to a different port via learning. Fix this by configuring static entries with ageing disabled and roaming enabled. In net-next we can add proper support for the newly introduced 'sticky' flag. Fixes: 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC") Signed-off-by: Ido Schimmel Reported-by: Alexander Petrovskiy Reviewed-by: Petr Machata --- .../net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 0abbaa0fbf14..c772109b638d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -1233,7 +1233,7 @@ mlxsw_sp_bridge_port_fdb_flush(struct mlxsw_sp *mlxsw_sp, static enum mlxsw_reg_sfd_rec_policy mlxsw_sp_sfd_rec_policy(bool dynamic) { return dynamic ? MLXSW_REG_SFD_REC_POLICY_DYNAMIC_ENTRY_INGRESS : - MLXSW_REG_SFD_REC_POLICY_STATIC_ENTRY; + MLXSW_REG_SFD_REC_POLICY_DYNAMIC_ENTRY_MLAG; } static enum mlxsw_reg_sfd_op mlxsw_sp_sfd_op(bool adding) @@ -1290,7 +1290,7 @@ static int mlxsw_sp_port_fdb_tunnel_uc_op(struct mlxsw_sp *mlxsw_sp, static int __mlxsw_sp_port_fdb_uc_op(struct mlxsw_sp *mlxsw_sp, u8 local_port, const char *mac, u16 fid, bool adding, enum mlxsw_reg_sfd_rec_action action, - bool dynamic) + enum mlxsw_reg_sfd_rec_policy policy) { char *sfd_pl; u8 num_rec; @@ -1301,8 +1301,7 @@ static int __mlxsw_sp_port_fdb_uc_op(struct mlxsw_sp *mlxsw_sp, u8 local_port, return -ENOMEM; mlxsw_reg_sfd_pack(sfd_pl, mlxsw_sp_sfd_op(adding), 0); - mlxsw_reg_sfd_uc_pack(sfd_pl, 0, mlxsw_sp_sfd_rec_policy(dynamic), - mac, fid, action, local_port); + mlxsw_reg_sfd_uc_pack(sfd_pl, 0, policy, mac, fid, action, local_port); num_rec = mlxsw_reg_sfd_num_rec_get(sfd_pl); err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(sfd), sfd_pl); if (err) @@ -1321,7 +1320,8 @@ static int mlxsw_sp_port_fdb_uc_op(struct mlxsw_sp *mlxsw_sp, u8 local_port, bool dynamic) { return __mlxsw_sp_port_fdb_uc_op(mlxsw_sp, local_port, mac, fid, adding, - MLXSW_REG_SFD_REC_ACTION_NOP, dynamic); + MLXSW_REG_SFD_REC_ACTION_NOP, + mlxsw_sp_sfd_rec_policy(dynamic)); } int mlxsw_sp_rif_fdb_op(struct mlxsw_sp *mlxsw_sp, const char *mac, u16 fid, @@ -1329,7 +1329,7 @@ int mlxsw_sp_rif_fdb_op(struct mlxsw_sp *mlxsw_sp, const char *mac, u16 fid, { return __mlxsw_sp_port_fdb_uc_op(mlxsw_sp, 0, mac, fid, adding, MLXSW_REG_SFD_REC_ACTION_FORWARD_IP_ROUTER, - false); + MLXSW_REG_SFD_REC_POLICY_STATIC_ENTRY); } static int mlxsw_sp_port_fdb_uc_lag_op(struct mlxsw_sp *mlxsw_sp, u16 lag_id,