From patchwork Sat Sep 8 20:30:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Mody, Rasesh" X-Patchwork-Id: 44451 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C73225B16; Sat, 8 Sep 2018 22:32:02 +0200 (CEST) Received: from NAM04-BN3-obe.outbound.protection.outlook.com (mail-eopbgr680087.outbound.protection.outlook.com [40.107.68.87]) by dpdk.org (Postfix) with ESMTP id D2F7D4CC5 for ; Sat, 8 Sep 2018 22:31:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c5I5oAVdWRmhSc2v/YdMs55ws2Y+lNLNRL98FsGBV4I=; b=AgWIHeqa5rljolqh/dGbhyI8IQ5g4X73cAKuGgE7bfaSFi+nVX7inkWbq1m2FvMQV0E69U1yRxgffiEUME5dXDyLWBDJQpRWFNhigO+tBD9+amBXLyYiBKok9MlqeswfnO/GHXFDpXmUqWAMNxgQspVOX5Eqf/aEJ6EVtOLBTmw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; Received: from cavium.com (198.186.1.5) by DM6PR07MB5372.namprd07.prod.outlook.com (2603:10b6:5:44::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1101.18; Sat, 8 Sep 2018 20:31:51 +0000 From: Rasesh Mody To: dev@dpdk.org Cc: Shahed Shaikh , ferruh.yigit@intel.com, Dept-EngDPDKDev@cavium.com Date: Sat, 8 Sep 2018 13:30:57 -0700 Message-Id: <1536438666-22184-9-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1536438666-22184-1-git-send-email-rasesh.mody@cavium.com> References: <1536438666-22184-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 X-Originating-IP: [198.186.1.5] X-ClientProxiedBy: BYAPR02CA0031.namprd02.prod.outlook.com (2603:10b6:a02:ee::44) To DM6PR07MB5372.namprd07.prod.outlook.com (2603:10b6:5:44::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e80f1021-2ead-4189-1bdc-08d615ca1bcf X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:DM6PR07MB5372; X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB5372; 3:fa2Pqsa9HRs2yXSFRAibP7JLnnsM6VnL+Jr4rHggtwlNyyKHsD7JnOeog0hwRPJ83MydZGCMaIl5KzLT8bo+84+7i6PwYyDRCIn11Dbin5nKITNiw9oodkXVbqI4a4BYYl5PTl0sMWS/JzqU7I+iDnY8sDy/fSZlXmFac9QcszXWMmgtvSaNuBVjlHonjkPQ2b6EdKj26HYi8EpjF0X/POX3uiUBFUe8ceiHDwStA4gDTJxYUhQuVOIqcvlG5GS4; 25:URTpY7NspmuH195djamhiJf++Zd7O4QlhoGFyZt+Mi8nw6Y+E2i7SWhhRDME66LoQAOzzdU8VEx8HdJp6AdKkk/nWNPTvEIF/5xESf3j2aHqgChrAiax4AzNhSsFeBNdd9SdbL6ewD2nkdwN2HvKDZUs5JHm8AwL8hGPIUBmti2JEoQxMeZOufqtQXmjT2qZr5mR6nu7mFb6wLlKu6pZuyfyJ3a7apIToooHfrC1kRNT4glgT7pwKBtfGDpH1JRwE9COfTQUZvGe+UDz35djFb8GEC/ASM+SZwR++lCICKArS5h/NgjQqLFAYUXi/hwQRWbHCQdfzO3xSuHoX6yaYg==; 31:EoWoy5+r5FJDB48K1Two7Sy2g3UOYkUh4y1JKX2KGD+w4CaT//pquRDQVib0aaoSWZji8q+yx1w8ycvsKx1KhOBEU3SWqG9YnyqQihFfizIoChdnLvYOlmueKxMovAvT0fD5fs1wDHwrBMbD0KCCvgukxJ7PuewDoE7HhZw3vHl0U5Nq9xK5uwBXE4GFL9nYYvMMY9Ql6vRd1+sXn3j41PtCATLn7cZqND4SsdoAfZk= X-MS-TrafficTypeDiagnostic: DM6PR07MB5372: X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB5372; 20:Yt2rjUMH4d8Rd93ABaXtfaV05uvt6cxzwRMocjz1hnExfQFNCqxWqHUN6dwKW5DistwrKQZQt+FmtzpoP/LtEeKFaarOTzyh2ArwA53gkjXqPohAp/imdUknviHg31Gk/mb2AtITykWkqcIHx5wqUhCVaf+8Z8b8xcm8hrwGTWUsq2RbzqMkhtgL6obd1/7RlHgvArjsHbKGCHQFh8ajqRJaQdcvtmPgzBUmMauE/QB7usKYrG/HtvmE16zUd15M37lv1ynIeYVn/sF83lsJm9qFhRAC931zOMnUwL92FEPpUn9IybXyH5/CiUxM7PLOVD3VBVAv+6IMisfSDD0qMQTVEsXlUJHIC1xXHBg//jORrCUbQMtPxDo2t06WFQmY6Gl28Ry0D0Y4+9LVYfLujBkO08kCSXGIZSZ3217VUH6Sa9ef2AIxt4hxI89JiLeccmnsJYcOQH98hazuhEOX+Z5xua3WIGLmnyRUW+kC3VL8+hw8ZncjDOaNwtju/M4+; 4:GUQZUWlHGMKLVcRZkThCR99bbYrk9TasRsdKnNJQvjIb+az0e41cSjGkcRQkomTauEOHcO6lnelzfJdO9x0osxM2JuJgUFxHm1eIz2vLtqow4mA3mr45odf4FPIJpHi+7V2FEL4GBurLBhBECNbBR7YDZARvrPo17GKwLkqdUEioNtDdU24TGE5v1wSFuSjU/bn2fX6D/8BBKrkMgyv8DW9iE8ruftDpsnfS3ts4gJ9vcTMgV5NfJbsjR9bfK+TD0QnWcp3jMEeClCF0NbYi3A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(823301075)(3002001)(10201501046)(3231311)(944501410)(52105095)(93006095)(93001095)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050); SRVR:DM6PR07MB5372; BCL:0; PCL:0; RULEID:; SRVR:DM6PR07MB5372; X-Forefront-PRVS: 07891BF289 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(136003)(346002)(376002)(39860400002)(199004)(189003)(4720700003)(97736004)(2351001)(106356001)(105586002)(72206003)(66066001)(47776003)(4326008)(50466002)(25786009)(305945005)(7736002)(2361001)(8676002)(478600001)(316002)(52116002)(69596002)(107886003)(186003)(50226002)(44832011)(16526019)(486006)(21086003)(2906002)(55016002)(23676004)(26005)(8936002)(476003)(956004)(81156014)(81166006)(86362001)(5660300001)(36756003)(11346002)(446003)(2870700001)(2616005)(76176011)(3846002)(6116002)(6916009)(68736007)(14444005)(386003)(53936002)(7696005); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR07MB5372; H:cavium.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BDM6PR07MB5372=3B23=3AZGhd?= =?utf-8?q?IJaKQZHxWxLH0Tk6/Bi6mLrBRNxEGSqy/1cwgM5T6ir51/4PpTqWEvxz?= =?utf-8?q?FMl4Sk4YLMBq4m/0YvZvONZiAH9WR0liul60oXK08Ol3GTWcAwZIvYdj?= =?utf-8?q?eXtRpkFTN2JlkzMjZzKc6JY/iBSLFrF7rokZTY/zSIVLZbd57vlgmcBv?= =?utf-8?q?PHD+nYOCJsdoJfwiFocKp+nNQ33SKuJNqvY57zVfQJ8S/lun5y4COFGt?= =?utf-8?q?tFEeNL6BVkI60j7BbCqdOi4OKJn0lHGcUagq44tCi99nLxi/d4Gt0NT1?= =?utf-8?q?V7jK4agrmAQ283opwy5b5tXqm/y9zGTc5VZ3LZ0CbMRVRC8+RZtuN9S6?= =?utf-8?q?zcBC1Kl7FSdtuqXu8yCRfV+N2ji72R/CDJEzs9gMDfYEpf2UaArDp4pI?= =?utf-8?q?yYanK5rH7ATbSaX2rkFGNiDwnAe774S/RGeKRinJ9REFEquFsS8YDVXd?= =?utf-8?q?+l/syhJjIr1CbSLGqLGE/jOzzH5i1Dk5IohlepPgLX0pwKpc3tq56r7r?= =?utf-8?q?Jw8NzXCJ3ErQGqYJTK6jDUgHAxbSvSLCJUgzDmvDGSNreQuUk1zdu5g+?= =?utf-8?q?UPyi3aFASOKCsd2MEIA2nf9v+zyjyh8bbZ5JTFgiV9VbI74WOLVsTEwj?= =?utf-8?q?LLB4V335m81DxloFKVizEL7hP0g8R0g1WR9HCIhU1yrfzFuFaBlGFA4P?= =?utf-8?q?93kCadpO7yMHpVF9OyOqDHxoBBByAqw/Og9rGHyyWI2Md2VZX7RIjZ8a?= =?utf-8?q?wLsMeWgnVBxYGvLt9VRWfO9hcGvy/jXVJi6mTBo9Nyb1Qnt9BdG+qruy?= =?utf-8?q?bt1EbIAl9hasuwCsnV0LTkpUhHTBAA74aQOdzST+OLx32py1s6mvyHPw?= =?utf-8?q?F3EQOousm6kbzZJcV9Ra/ZVDCfAoE8l19PZ2K8+s9KiRjno5LfBUKHdz?= =?utf-8?q?45P9RQ6noUjSEjF7DPIjb71CioeCbT5K+esyQ/yAgfZyaV9VXK1mGcaR?= =?utf-8?q?F7yKqCwp9vd9q3BgS1EdsH9h+YxhxF5W59ppoQ2fQlrOXyxMW+FTGntZ?= =?utf-8?q?XRsfc6rocKTOpJiNwV+2LquxCTPN3wjxmmfGWuCUHwPn6g8zHvy7PCpW?= =?utf-8?q?4EXQ/e/bDR++sbb2lEvxcYBxxwN4iM50c0pX+57GamOQePSjmDlhIxBF?= =?utf-8?q?6HHVDFkjdCVZOqc3zB19P5aURgRK//0B44fhHICEM3ybljOTvcaRm4zG?= =?utf-8?q?3XDlnQ8+beO2Gzsz6Q3dmgSePaI4du7WLsHuNRNOWaaUHL3QlrgwPlk9?= =?utf-8?q?PznPx+bJ/FG5DdyWKV1qAq9VSM61ugJNYiEy7koxZIT1wQjSMbPl2U5W?= =?utf-8?q?f4szDjWxGzE9oK/yeOu/GxR8cgz2gK8=3D?= X-Microsoft-Antispam-Message-Info: ZUWsjuyZqstjGVEFmR6m98AAWDIzb3RTDnzl2wf6mXCZyvX6KLvfuxL8GY4tkVm8s6s5apfGu8iLA51rzHuGmt/9KaKTA2JsODwY0I/FX73rN/L+xPw5wzfXkX2RvEHJ7n0d7fdid8Gxb3PmMoWtfodY6/yY0zId3KV70rnl3akh+VtNmfOD+R6bUvsTSHqFHrhKqjxiC75a8peo/GLpKcZbjq9xp8zz9sdSeZWjscQxCL/eHTTDPMqlHvCBS9X52u9Nu3jySc5HivmPMgwSbKBJrWw4zmCEGTd7KDePYBanP3kxPKPlrBLJzC+zGL2fXycsLktz1mNViy1NHpBEN86EVFxN9xK+89dIyN1Mr68= X-Microsoft-Exchange-Diagnostics: 1; DM6PR07MB5372; 6:A09teEXWc/qA3TQBZM+vsF0N75cDNq3wBiMqZVoM2hq51u+LAlCdVXmBvGdy3JRU2nMCLeXVMCG7cj+SdvGzCp04gFUemYGCKexZ6UvlirnacWdixLEaQj9eYaPFsh7pR2vMdoMxZ7Sd2gT5H6t4tzxKDJXvSW4w6dSWm7p8GWS2WHhxngqNHIuvqRsfpw/8w7vUJifUCr1DajOLC52HTcpIz2awWdhVIzdvuxDND+rr4UL71QfJT+ZPz/T2qfVVTuqCQOQy2M/nbs8Ys90AZ6T06e/gb4CaqiHe5lMyyxUTp4bFSTjfxa0wUiuM4CL8M7J7PPwACfR2vT08NSypQdMyMAJ/UKqgfAQZjlsyxc2OYC6WPGX5Sl93tSdnmGzO1zH9Q51Kv12REWOEibnXYtLnO5RJyb29fofaYHMF5rBQR283mrCKKkOdp5Z4m7zXCK3GEwEO8pUa0A+eQzFrpQ==; 5:un/4vKFN/KMI8mxZw8rF3WFX8env7bmIG15bxWfUQwp4ZYdcyOknX51rgxXqLhmPWW2o+e+bSBCs64PA0oQrrZG2e7WyAr/ld6caaRcvqH0IuxtCLXAiFyZ5+klZ1NcLHDk463CqY1+nPgUVyJzrrnOA+te1dU0+3v60lgU6jPs=; 7:Cw7dwO/B2uTtjy6fgsbElP5PjfBgdtYFRPK0Pc9rnv7F9N4bskGLby/HoYerRMWKCV2tyEKVfEIe/xoepaZKxFdL+k97CSbhDjKR3StCt2SQYWwU2ofWsA5Kr4Cwips6Sp40/AmrlGwmaR6E8dnRHJ3AkZOK9VoasYWF9mohyHZYdKk6X66dXs4lClZJqi0ToeVwsTX1CYvtnptv8R2iv5SyoFYxXkIq9583gQBo9LaWNrcu/Kf/3mPyING5kY0V SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2018 20:31:51.0513 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e80f1021-2ead-4189-1bdc-08d615ca1bcf X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR07MB5372 Subject: [dpdk-dev] [PATCH 08/17] net/qede/base: use trust mode for forced MAC limitations X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Shahed Shaikh When trust mode is set to ON, VF can change it's MAC address inspite PF has set a forced MAC for that VF from HV. Earlier similar functionality is provided by module parameter "allow_vf_mac_change_mode" of qed. This change makes few changes in behavior of VF shadow config - - Let driver track the VF mac in shadow config as long as trust mode is OFF. - Once trust mode is ON, we should not care about MACs in shadow config (because we never intend to fall back because of lack of restore implementation). - Delete existing shadow MAC (this helps when trust mode is turned OFF, and VF tries to add new MAC – it won’t fail that time since we have a clean slate). - Skip addition and deletion of MACs in shadow configs. Signed-off-by: Shahed Shaikh --- drivers/net/qede/base/ecore_iov_api.h | 7 +++++++ drivers/net/qede/base/ecore_sriov.c | 36 ++++++++++++++++++++++++--------- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/drivers/net/qede/base/ecore_iov_api.h b/drivers/net/qede/base/ecore_iov_api.h index 29001d7..d398478 100644 --- a/drivers/net/qede/base/ecore_iov_api.h +++ b/drivers/net/qede/base/ecore_iov_api.h @@ -84,6 +84,13 @@ struct ecore_public_vf_info { */ u8 forced_mac[ETH_ALEN]; u16 forced_vlan; + + /* Trusted VFs can configure promiscuous mode and + * set MAC address inspite PF has set forced MAC. + * Also store shadow promisc configuration if needed. + */ + bool is_trusted_configured; + bool is_trusted_request; }; struct ecore_iov_vf_init_params { diff --git a/drivers/net/qede/base/ecore_sriov.c b/drivers/net/qede/base/ecore_sriov.c index f7ebf7a..9e4a57b 100644 --- a/drivers/net/qede/base/ecore_sriov.c +++ b/drivers/net/qede/base/ecore_sriov.c @@ -1968,7 +1968,8 @@ static void ecore_iov_vf_mbx_acquire(struct ecore_hwfn *p_hwfn, return ECORE_INVAL; if ((events & (1 << MAC_ADDR_FORCED)) || - p_hwfn->pf_params.eth_pf_params.allow_vf_mac_change) { + p_hwfn->pf_params.eth_pf_params.allow_vf_mac_change || + p_vf->p_vf_info.is_trusted_configured) { /* Since there's no way [currently] of removing the MAC, * we can always assume this means we need to force it. */ @@ -1989,7 +1990,8 @@ static void ecore_iov_vf_mbx_acquire(struct ecore_hwfn *p_hwfn, return rc; } - if (p_hwfn->pf_params.eth_pf_params.allow_vf_mac_change) + if (p_hwfn->pf_params.eth_pf_params.allow_vf_mac_change || + p_vf->p_vf_info.is_trusted_configured) p_vf->configured_features |= 1 << VFPF_BULLETIN_MAC_ADDR; else @@ -3351,6 +3353,15 @@ static void ecore_iov_vf_mbx_vport_update(struct ecore_hwfn *p_hwfn, if (p_vf->bulletin.p_virt->valid_bitmap & (1 << MAC_ADDR_FORCED)) return ECORE_SUCCESS; + /* Since we don't have the implementation of the logic for removing + * a forced MAC and restoring shadow MAC, let's not worry about + * processing shadow copies of MAC as long as VF trust mode is ON, + * to keep things simple. + */ + if (p_hwfn->pf_params.eth_pf_params.allow_vf_mac_change || + p_vf->p_vf_info.is_trusted_configured) + return ECORE_SUCCESS; + /* First remove entries and then add new ones */ if (p_params->opcode == ECORE_FILTER_REMOVE) { for (i = 0; i < ECORE_ETH_VF_NUM_MAC_FILTERS; i++) { @@ -4415,17 +4426,23 @@ void ecore_iov_bulletin_set_forced_mac(struct ecore_hwfn *p_hwfn, return; } - if (p_hwfn->pf_params.eth_pf_params.allow_vf_mac_change) + if (p_hwfn->pf_params.eth_pf_params.allow_vf_mac_change || + vf_info->p_vf_info.is_trusted_configured) { feature = 1 << VFPF_BULLETIN_MAC_ADDR; - else + /* Trust mode will disable Forced MAC */ + vf_info->bulletin.p_virt->valid_bitmap &= + ~(1 << MAC_ADDR_FORCED); + } else { feature = 1 << MAC_ADDR_FORCED; + /* Forced MAC will disable MAC_ADDR */ + vf_info->bulletin.p_virt->valid_bitmap &= + ~(1 << VFPF_BULLETIN_MAC_ADDR); + } - OSAL_MEMCPY(vf_info->bulletin.p_virt->mac, mac, ETH_ALEN); + OSAL_MEMCPY(vf_info->bulletin.p_virt->mac, + mac, ETH_ALEN); vf_info->bulletin.p_virt->valid_bitmap |= feature; - /* Forced MAC will disable MAC_ADDR */ - vf_info->bulletin.p_virt->valid_bitmap &= - ~(1 << VFPF_BULLETIN_MAC_ADDR); ecore_iov_configure_vport_forced(p_hwfn, vf_info, feature); } @@ -4460,7 +4477,8 @@ enum _ecore_status_t ecore_iov_bulletin_set_mac(struct ecore_hwfn *p_hwfn, vf_info->bulletin.p_virt->valid_bitmap |= feature; - if (p_hwfn->pf_params.eth_pf_params.allow_vf_mac_change) + if (p_hwfn->pf_params.eth_pf_params.allow_vf_mac_change || + vf_info->p_vf_info.is_trusted_configured) ecore_iov_configure_vport_forced(p_hwfn, vf_info, feature); return ECORE_SUCCESS;