From patchwork Mon Jan 28 18:05:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manish Chopra X-Patchwork-Id: 1032113 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=fail (p=none dis=none) header.from=marvell.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43pHfK0R1gz9sDB for ; Tue, 29 Jan 2019 05:07:37 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726954AbfA1SHe (ORCPT ); Mon, 28 Jan 2019 13:07:34 -0500 Received: from mail-eopbgr750071.outbound.protection.outlook.com ([40.107.75.71]:50166 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726738AbfA1SHd (ORCPT ); Mon, 28 Jan 2019 13:07:33 -0500 Received: from DM5PR07CA0037.namprd07.prod.outlook.com (2603:10b6:3:16::23) by DM5PR07MB2905.namprd07.prod.outlook.com (2603:10b6:3:9::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.17; Mon, 28 Jan 2019 18:07:30 +0000 Received: from BY2NAM05FT037.eop-nam05.prod.protection.outlook.com (2a01:111:f400:7e52::209) by DM5PR07CA0037.outlook.office365.com (2603:10b6:3:16::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1558.16 via Frontend Transport; Mon, 28 Jan 2019 18:07:30 +0000 Authentication-Results: spf=fail (sender IP is 199.233.58.38) smtp.mailfrom=marvell.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=fail action=none header.from=marvell.com; Received-SPF: Fail (protection.outlook.com: domain of marvell.com does not designate 199.233.58.38 as permitted sender) receiver=protection.outlook.com; client-ip=199.233.58.38; helo=CAEXCH02.caveonetworks.com; Received: from CAEXCH02.caveonetworks.com (199.233.58.38) by BY2NAM05FT037.mail.protection.outlook.com (10.152.100.174) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) id 15.20.1580.2 via Frontend Transport; Mon, 28 Jan 2019 18:07:29 +0000 Received: from dut1171.mv.qlogic.com (10.112.88.18) by CAEXCH02.caveonetworks.com (10.67.98.110) with Microsoft SMTP Server (TLS) id 14.2.347.0; Mon, 28 Jan 2019 10:05:18 -0800 Received: from dut1171.mv.qlogic.com (localhost [127.0.0.1]) by dut1171.mv.qlogic.com (8.14.7/8.14.7) with ESMTP id x0SI5GMe009947; Mon, 28 Jan 2019 10:05:16 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id x0SI5Gew009946; Mon, 28 Jan 2019 10:05:16 -0800 From: Manish Chopra To: CC: , , Subject: [PATCH net 2/5] qed: Fix LACP pdu drops for VFs Date: Mon, 28 Jan 2019 10:05:05 -0800 Message-ID: <20190128180508.9902-3-manishc@marvell.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20190128180508.9902-1-manishc@marvell.com> References: <20190128180508.9902-1-manishc@marvell.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131931724498551654; (abac79dc-c90b-41ba-8033-08d666125e47); (abac79dc-c90b-41ba-8033-08d666125e47) X-Forefront-Antispam-Report: CIP:199.233.58.38; IPV:CAL; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(396003)(39860400002)(136003)(376002)(346002)(2980300002)(1109001)(1110001)(339900001)(199004)(189003)(8676002)(105606002)(1076003)(97736004)(69596002)(81166006)(2906002)(446003)(81156014)(86362001)(48376002)(2616005)(76176011)(476003)(68736007)(486006)(11346002)(85426001)(336012)(6666004)(2351001)(80596001)(498600001)(126002)(50466002)(106466001)(47776003)(36756003)(50226002)(8936002)(16586007)(26826003)(51416003)(316002)(54906003)(107886003)(6862004)(87636003)(14444005)(53936002)(26005)(36906005)(305945005)(42186006)(356004)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB2905; H:CAEXCH02.caveonetworks.com; FPR:; SPF:Fail; LANG:en; PTR:InfoDomainNonexistent; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; BY2NAM05FT037; 1:2YrcVVZluPfvhWdN0X8+3q9/Hiq6yZm+S+GGekemew/ZBgf1yJa9UA13SJ7EuD8mMby4qg/XB3Rc4W3cY1h83qfdPbb5OYhiR/+gpXfQWvVZtzMMNcPkIhnFSl8OAbYfC/8hGuCaO+SG1Bu309xOYNJxXtFgEu6BzWj34sSe22A= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 239e77b3-1ba3-4da1-36f3-08d6854b77c0 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(5600110)(711020)(4605077)(2017052603328); SRVR:DM5PR07MB2905; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB2905; 3:bEWW9SjFr6z2FVee5QPMv1kyQCebFcTZy6hpQkOruiFZ5fpISJIpRL+aoC1oiV3E5AmuL4JRj139xJdoiK1bE55SJhof5pE2vERObrBQ+eQLybq4lW0QtkSTlKcwblZEqTamQx1J7a0aCts612y1fRjHXwqyA6wcmABiCVfDpcwmnYyKVAaQcj2zhxh9iMe2ZaozCMwTzyZWWWH5Gmu1q86fG8yOp7xgR4tFL4F7PehI1bfWwybChVmtwMycsEVQ4PUpRUaykb1NexpiyytFTqY3Iw3J0gTHxn+344tWKKteK4Ae7H6oWP49Rw43fYsYAYTxpq5E97uLp6cTrspGSLoyYVQmKCjU6aFZhAO/Oee2GTk9Dm/66gJkffVsTgzA; 25:Czz+8NYG0uVXazp+61U8pKZ8vkxTq6kMQHoHYnwL0TBNCktciIRHl3jWUN9R4tO/QbfN5N4NR2clVWA0fo+BBCgEZi1PEeNmtwxrn2E8c+paoaP5BErdhxjHJ2Sd2/ZtMXMGPb819lkkiVrD8md6Mlcq9H/24SH1aX08sOKuW5vrMvEEAfOE3T1IR9JZ0KIn092HDVoUgxpNGPWgnJAqmcdgW0HQvbwAXfLm2aexsR83jrHVNQDiwIDusb8zdICoxzvtdenmkp6c+SjS+rWK0fMif0onppdORWmLV4N3Bwco9Zbo/G5QR/XXyOgWsjla2mMLaAohJ2+hwDK0NnLn5Q== X-MS-TrafficTypeDiagnostic: DM5PR07MB2905: X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB2905; 31:WFyWOcFlda/MjODhAM2OlZ4dcVqEhoBht3LVMqCC+5Oihtx0PWbXketS4c0ku9OH+Gdqi9eYi4DT47gf0m22KHdbr2FS0gU85lK9S2f46ewXLE5piyJwofhB//uq+qSxSre0f6Cp3711AqaE6Y/DTTSFvvQcx+D8JtH1Vg5jAmHK+/w0ARhDXa72ycpwZa1GWpzyLALprBpVpCSBn2JK/9CE/BxNWCXyHoM4Sky9Xe4=; 4:jFTOXBY7fGxTIr8dfQI5rfxisaGuW9wPTIWJlP61dCBJsRg60W3qYZ+PXF6tWazYtCJDGZgiFqsWpx1/537gpton6HOxQtRVrCAa6oj0ZU3NL0uWwMvooB/Oqgh13Dv4YsPDvCA7lgUB4bdW27B0JJHzeXPbTMbMgLGjf3gsnRIusUkmeCtDlvxcIuQYtfmPInVDWGJOr91MbLdvCkTJXFzNb6iXXT33xvH/purAmxz3SUOktHbnZNhun5ARjjtwzzBodcRLmuUcgTthC3vHpl3+cWnqPLTfSvR28DiCogmPLFUPEABUuTlPRZaHpCO2 X-Microsoft-Antispam-PRVS: X-Forefront-PRVS: 0931CB1479 X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB2905; 23:UBZ3Cyk2wiac662t0amB+9LGFzJSKcmzV02+rtn0f+0+IBhicEbOrHDb1gQumrqtykVvUYFyOkaIgZGgJNGctta7IprgRF9Ba7XTNp54ramfPf+DAFUfQMsd3S/1K4saXZ0ddVe6uRV9z+Bp9baryK9ULnjoik/iwYnpa92yXz+fW5+oT4DosjREzZvuPrl0eYbWb9DpYd1d2noVEA4hVsq+iTWepoj7Tld/MXOHqAxbK5hh0h990MeHIRaQUfgziEE05Wnsh5b+Hwu7E/rycLav5QEb9E2iU3pGk+4RivcmxSmQ41dFfL97ch46b0b9LikqKSeCEGaOQes9QaFjGs62J1iP9dO0pzn/gD3dura25baqr6ET6NXljRIwpvAOsa8ROv2ZN/bPqgx+Iel5JtJKEhZ+Pc3ViSJILfxaJThzuZUEN1kGDKQfbLF5UkbN7kEZBE/68PaaGZY5MCzGeSRTvEoK2KrLggWCNNP56AEEJVTF4SYDOOfNmTLVEL8oOwf3Xlk6nGbAP41S2HIG8vL2rQnQ+D4yW6tB2lXhKKU+DiLM6t/Oo7WEsH33jBa3blkySOiuYEhnel2clsy7XtZf8022LAS087/3orqSNbcKUMwz3g96Kr4Qx5yB8043RuGF0MmVjYsLhnZPQJ1tbwTare2JTPFrR6g7QFU0Uwh4Ni7W1HR0n7CiSDha0OLK1JatXCL8Bk12h1JBUo8b1tsb4qW7vbXAYdR7Alo0Cn/+7bQf0aynSeGF8xR/axA8nWjTzcbO4SdB3cn07pnqWojxT0tFEQXtUkwN1TXzH7JrsBW5f5qp9WpEWfGODxxTyv5UJ9gcAQf1djIm1PYicMSlBTnJzXLtg2pYUwRjAqElno8uCTqYrOu+IHe5fczIk0IS13Ic4D69IjCza+W+JV9cqDu4n315om0O7kMJjOFGYRU9N208kQAqvALLQaub+s5smePZcWmhOXB8DHC7JKenKn1xHBrO1lG9QBokzYX+QPz450Pbe8N8hivinim5GMAamr9aDNQJZYatzkXmGx9eJvK1gX955bJ8BUXA20lW4RiWe+8ljz2WDk4f/ET59gP8bJAdKCNPYkv8xksCJZftYFD+A5ZVVvdn34OzU1Cn7kNdtxm8XdJaE4bVaRVFB9SETti+jCs7/AHCUziNLSf7bMfuveU8V75go8FPZVJWAv6u+TQHRW1QkYOPv1Axl7HxrVgkSxD86GYY5HMZ5v/Je2Icxbfj7XDEzpUfc3KowuqaVYiqQVWYhb/gzrUu X-Microsoft-Antispam-Message-Info: iXI0Rz6X8eJONJ5kSS+YQM/d6Ae1P/NAHOubh4rEsh0fhC/2IsdXTq56hxG+oKQo0LWxSBdSaW8nHWyi7o66uS39i2XZSfYHZIT+rL/MhzUtcAXfysWQMSZhzbk/iRTpgxUPMt/H9VLoU07isjyrTKorEBYmZgZhCOWBISBIYBVQZRPIarGspIyawYvC9oVMPwkQ0hkxDaEiWfE1wiTJoD+vU6kMq3OeNk8xDX6cAlZSdd0aOjb2gMNemfyFeFnjcgtnNft7TNm9p12R9htVaXwcIApRshjeCuT6g/Hbx+QNWhO6IqT1lU2lKYA844pKvygltuS3D6W1vkDT4uw0JkIj6pY8AjkP16aZzrUqWavhphA6/2vS7bri6+wPTcVjI1sUFp1QdLPobhAm0e8MFQyl3yj+UBQh4OA9bOjny0w= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB2905; 6:RXPpOkHmS/oaZjfs3rh7GluKWJLjIBvQd8iLi418UnK5DvjYMUPjx4GSVrMCSf06IEpjOWBgqX6T69YCeQu068FEnp5Pw9JIt+Q4+8dZi2d5GvA9RsopfSJKOeqACGeeQDG+Pd6oP2P+fT7EhNsVjuLi7IjbBSLm15Zw2hCFC8sEFato2lynNohEBBJ24gXHNmc+jJTVrodSTvfrJ52MdCB3ozJ0Q/Wj8qcvKYG004vyAUQCSxjdQM4sVMjHFzi3KUl+3auxkNMlGnnhd+RFRlUDcB9MmbSmG4tkDUHXTdnqXYyxFBo/Y5vVabHyCowS1W0uB1RUYjCrCNviSh+meJGK1gDz81xmtFbmdatIUn4j1WTikTzqqQIhxY8MZI1le8+OyhuKv5uQ5v8XRzPzCaSeNRjw9AvjUe7MlWEeN0xCqXDI1q2q+h7jARAkGW0YQuyjoeixTr8fg8Wpql+xcQ==; 5:/J//nL4C0xFciPwWu6QKcYZL5CATpXJ+YNKye6ESiwUQw3TbN3ZBMhoMOoa5WVsnjNiiAtDH2u8roWSeFtSjFAeZk5DJv/bR+chHTuNpBtiNnTrcwkAdnXYR6V2ZWZMAj9vnPLEVP0pK6U0AZKxGgS7Olxe4EtO5TBPRmkMHm9AmB3W1d6FTo6EoqXQOP6eW9vxXOVvUtA2e/JDwWBc2Qg==; 7:Bvsg+QdWq3kejW2t41KwBWZYCaMDvHb8kA3RrnJDxQ//girfyZBWOjDHfL7rnH34XrMLdtDp5nFni4HzHO2ijRbmQ+OOtFXW/exrMrE9bK4yzTUHISRKN4Mrf3rKmcaD6aRhtJg8JuK2d2nFBP5RWg== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2019 18:07:29.5078 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 239e77b3-1ba3-4da1-36f3-08d6854b77c0 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[199.233.58.38]; Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB2905 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org VF is always configured to drop control frames (with reserved mac addresses) but to work LACP on the VFs, it would require LACP control frames to be forwarded or transmitted successfully. This patch fixes this in such a way that trusted VFs (marked through ndo_set_vf_trust) would be allowed to pass the control frames such as LACP pdus. Signed-off-by: Manish Chopra Signed-off-by: Ariel Elior --- drivers/net/ethernet/qlogic/qed/qed_l2.c | 5 +++++ drivers/net/ethernet/qlogic/qed/qed_l2.h | 3 +++ drivers/net/ethernet/qlogic/qed/qed_sriov.c | 10 ++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_l2.c b/drivers/net/ethernet/qlogic/qed/qed_l2.c index b8baa6fc..e68ca83 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_l2.c +++ b/drivers/net/ethernet/qlogic/qed/qed_l2.c @@ -748,6 +748,11 @@ int qed_sp_vport_update(struct qed_hwfn *p_hwfn, return rc; } + if (p_params->update_ctl_frame_check) { + p_cmn->ctl_frame_mac_check_en = p_params->mac_chk_en; + p_cmn->ctl_frame_ethtype_check_en = p_params->ethtype_chk_en; + } + /* Update mcast bins for VFs, PF doesn't use this functionality */ qed_sp_update_mcast_bin(p_hwfn, p_ramrod, p_params); diff --git a/drivers/net/ethernet/qlogic/qed/qed_l2.h b/drivers/net/ethernet/qlogic/qed/qed_l2.h index 8d80f10..7127d5a 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_l2.h +++ b/drivers/net/ethernet/qlogic/qed/qed_l2.h @@ -219,6 +219,9 @@ struct qed_sp_vport_update_params { struct qed_rss_params *rss_params; struct qed_filter_accept_flags accept_flags; struct qed_sge_tpa_params *sge_tpa_params; + u8 update_ctl_frame_check; + u8 mac_chk_en; + u8 ethtype_chk_en; }; int qed_sp_vport_update(struct qed_hwfn *p_hwfn, diff --git a/drivers/net/ethernet/qlogic/qed/qed_sriov.c b/drivers/net/ethernet/qlogic/qed/qed_sriov.c index ca6290f..71a7af1 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_sriov.c +++ b/drivers/net/ethernet/qlogic/qed/qed_sriov.c @@ -1969,7 +1969,9 @@ static void qed_iov_vf_mbx_start_vport(struct qed_hwfn *p_hwfn, params.vport_id = vf->vport_id; params.max_buffers_per_cqe = start->max_buffers_per_cqe; params.mtu = vf->mtu; - params.check_mac = true; + + /* Non trusted VFs should enable control frame filtering */ + params.check_mac = !vf->p_vf_info.is_trusted_configured; rc = qed_sp_eth_vport_start(p_hwfn, ¶ms); if (rc) { @@ -5130,6 +5132,9 @@ static void qed_iov_handle_trust_change(struct qed_hwfn *hwfn) params.opaque_fid = vf->opaque_fid; params.vport_id = vf->vport_id; + params.update_ctl_frame_check = 1; + params.mac_chk_en = !vf_info->is_trusted_configured; + if (vf_info->rx_accept_mode & mask) { flags->update_rx_mode_config = 1; flags->rx_accept_filter = vf_info->rx_accept_mode; @@ -5147,7 +5152,8 @@ static void qed_iov_handle_trust_change(struct qed_hwfn *hwfn) } if (flags->update_rx_mode_config || - flags->update_tx_mode_config) + flags->update_tx_mode_config || + params.update_ctl_frame_check) qed_sp_vport_update(hwfn, ¶ms, QED_SPQ_MODE_EBLOCK, NULL); }