From patchwork Tue Sep 19 01:51:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Mody, Rasesh" X-Patchwork-Id: 28921 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 5A2AA1B1FA; Tue, 19 Sep 2017 03:52:32 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0076.outbound.protection.outlook.com [104.47.36.76]) by dpdk.org (Postfix) with ESMTP id 193591B19D for ; Tue, 19 Sep 2017 03:52:13 +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; bh=HO7Ut1kEJHXVhnnMLEaSPxUnuwSmT/dH8w5O2EeVkjo=; b=HQNUG53UHuFQsQgd68Owll3uGbp9K4oGOKkPxCjyxI4rw7PijVv6MDSiwFqM3nkqN+Lfy7yUTmdW++jQW+CRFcEufVO2b7wo7gjzMyBXEt844+tSmxsBsLNw93y0r9SwddY/BXwoe2ocjqhiGpfg8iIcUBpJareQp2oEuGTgaic= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; Received: from cavium.com (198.186.0.2) by DM5PR0701MB3832.namprd07.prod.outlook.com (2603:10b6:4:7f::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.11; Tue, 19 Sep 2017 01:52:11 +0000 From: Rasesh Mody To: dev@dpdk.org, ferruh.yigit@intel.com Cc: Rasesh Mody , Dept-EngDPDKDev@cavium.com Date: Mon, 18 Sep 2017 18:51:36 -0700 Message-Id: <1505785903-1741-17-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1505785903-1741-1-git-send-email-rasesh.mody@cavium.com> References: <1505785903-1741-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 X-Originating-IP: [198.186.0.2] X-ClientProxiedBy: MWHPR14CA0048.namprd14.prod.outlook.com (2603:10b6:300:12b::34) To DM5PR0701MB3832.namprd07.prod.outlook.com (2603:10b6:4:7f::30) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 76276523-fe15-48d1-9e1f-08d4ff010ba9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR0701MB3832; X-Microsoft-Exchange-Diagnostics: 1; DM5PR0701MB3832; 3:UH92zCfG5hvoiA4Bz5zKWrNjj/5d/jAB+O7N/jITMiDJC/iYVidVaLeGiLi0cfNTYV6vmyyvbaTPGDflaawshEmuMvrhT7RNoYydT3vHUInbRYRHV15UeCgOfiew10ZtFRv0K9WILJh58lGFNynRY/2S1YgCDrM2Cks2Weck50wzdZnK0lDuSt7LQHIJjwQW/oXEiWtjSOtkivOvlNGH/L/oXsvm1d4bTIOe3SOocDSiHIvmCak7TYbcJGHa3q2x; 25:Tsf/E1afxkzHLIt68MmKgkyE1OZhLX8IMt3wAcA41JnaI71IimgmGYUCe2mhuO9cflIaNPxSeooGmEqpfZTtxG8X4IygKEs6KewWRJ309vXFXrcX7BOVl5hvyyHCAwrqHrBGa5uUsyn3scSaqmmarmg2NgmE5KQdIXY9y6SePZxiMoWZupSms2GoepJCTr7r6u0TFWqNGp3CwZOyv7KHUTsDtNAvq78L46Fi0uDUG2INS02JmfkuRj22Y1egfLXCJBByKw5/4Z3zPIx1znnqD4Zc3+Rzz8GvCBHkZpLWWQmx/A+ibq9/yyateq6vn4KEaiqVLkoCpWYWP9wj5ZV+xQ==; 31:BrCWLnRzN2M8BzdCwOr2bWtu37jMP+su0EX6me+vrd1T/FCjhn/Bk/v/JDY+telBu7wTBKw2K9DUlSwoNhea5KZCNLmhslNZP/9/VoiivZTe0i0BpqO+1sY2A7ME5NqcvSRSSXz5E3pOOQLuM0mbv5ugzJY2qXZX1k8zFLG1gibeV8AoXIo3LkQiwpSC6flkNOUqlccnroO37XazbrZZ3UGFU0tFmKPF4nzvHtAAg6c= X-MS-TrafficTypeDiagnostic: DM5PR0701MB3832: X-Microsoft-Exchange-Diagnostics: 1; DM5PR0701MB3832; 20:7TFEAvZjSUNULPQkhRlPnnxOPKzA0suGSgZvkG+JvdUfFWwZmSyoToU4YS6dexKJagOFrGb9g/StOndclxCaCbFkkXob/loAFFk5un//+VuTKfMe2Uh9Yd0+QZUft7iBLtSnmgYLZDlkzx18joKN73h47tzea1G615h9E/FrhFUdZRcGKQXI5U9G8tHn47Yh2opEMBqfooEfWZ0YRaC17FlcQEzP7TS+MpeP2DIBUshPzZptbKKIulvGwG8oIMED+JR6R9tsdDZjBYYTvjj9ajJ0RTSgWDdNM9yzL/yTC7z4NwbTAylUY0buyJfd30a/mdLft96JDqa1ROlwqN/00TAbZiXHH4EFCpfBqD5yzw0eSzTDvdMZXMeaZ9U3RSSG1K4dRWmapI2y9eofgSidaPcR7/1c7gS+Y/jC28WahYEHUTXCqbHYxmi4EAqC2cu/rc/cqW6bJoyttkR3Zvl4Mxuqq4FU/NLuuDEnx5WF2Dp0IXKwT2eXRCmsO5DfFFik; 4:Eqf+j+jgQ2mRBe+YPK+HzwJk/WVl/iIFm8YDUoxvNPisJB0PrhKIMzaxX1SceEvqrpScdf7uyhKoYGRhWg0SFW+N/D/N2nropWGY9gJGq3YAMHG25Khyrxz3YwnOF206gT3KYpaNaikWQqrnouDzBxynTFAWW8QQsIje21V6lMUQ0ap56lWGJX1WkPWQn7SX2AuhY8xNzzkiPzk71EACyKdM972r2NyZzOE2TUJ9rC3Tu2zYm4nmY1+Hf75uXXNI X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR0701MB3832; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR0701MB3832; X-Forefront-PRVS: 04359FAD81 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(199003)(189002)(72206003)(106356001)(305945005)(105586002)(7736002)(36756003)(2950100002)(50226002)(478600001)(25786009)(6666003)(3846002)(4720700003)(55016002)(8676002)(189998001)(66066001)(5003940100001)(81166006)(81156014)(50986999)(107886003)(76176999)(316002)(5660300001)(16526017)(16586007)(47776003)(4326008)(6116002)(33646002)(21086003)(86362001)(8936002)(97736004)(68736007)(69596002)(53936002)(50466002)(2906002)(48376002)(101416001)(309714004); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR0701MB3832; H:cavium.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR0701MB3832; 23:ZUaaoG0lz+ug6eQ+hrzVcHeyodPumgxoZQdEm2B?= 5zGEC/q1ugd27iLMDppVabXIL8NtM6xZRcQu/eFlCMURvbPvYy1mRAbTtIUf8O21ZQHsu9w/Pe6AvlTDf8j9LhbXlzrnHEGfMeervgMQt/15U/2lJepOHuv2lvSmSVszUEASayI0+kE6tYFRZMoP1ax1tNF8mF2O0R5zG7oIj7mdb6ky+JczPgmyoQohsv61Vqoq7cA+AlyU2WveZO3HGc5QHAo60JMkAxTs1ijGv616uMkxm96QF6HzBXBoc9dzq2Y1I8Ta16pHxLz61Ij53u3oxHDYDqqP4g+nGmaiZ1xZj7d+PXhxHVK380M5i5MW0/6TECd/EDJe295+OjfNyvNK8nWalCn1oNF6StAOYMZe0CuNInJhimr/WyTZEvd42Fs8jbwz/uMCMel5P0RJtOYTTCsIDRqB2+xaUeyCj6vpyXEna3ARBO4laO8oAvFf2toa57ADS1zitB9KBYQZ6TX6qYXmgGLfw+qDPk1iNQqu7LDgjRea4R7HBe3M1GVDZ+146T5xQnxQZ1OzaK6u+8ELl29qPHIZnPsiKInFZlId3s4AhPPD0MvWOUf4DTPt4Ek0VHgks5TAjdhYfb2Udk1jxuOAgpXQk4LtnNS/mSQQXoNphm59TPb290IbYrTmrc6FA+6U6J1Np38++wHAVTUWykULxslaeTOxECruUUnAsiUCOsTWiR8fBdMnZF5r55BEnrp8eSMezQvWHamptAkfeE2l6lQyRw6Z30ojt3ygh2JcEyPV+oQP627HymGbdH6TBFNeHmJ5ivmlTXBO01UbQTMIl9cLGHWqcxhyP2+1NSUySm3O8+CE7H9M91AnYFNv0sm9k6D06Ve3fZPG2cm5HmhUtfRj1NjcamVEwe7l214WTwyOs+770m1idzLcHbr9puWzf8zMgQQ8rS9M5W6raUOsH80jYrE5JqRR4o3F9nKDBPZCZV0coH3QkK1HNmTEyUwO59fON1mkIOB2z6FLvrJycXcL7bv2BxqkYi8ysD6VsRntxRadVNrGi5pc6P0KziHFCrf2rNpKqxb8iUIKId/fvcFXJWKwvnZeoukWzOgzdjV6dhEYZKCyEgmm1zZHR9vMIBd26dS1DhXTjkwPW X-Microsoft-Exchange-Diagnostics: 1; DM5PR0701MB3832; 6:MCVdljNF9E1Es//Qd+uhgyCJDZxHEKlWtqYj2bSk3cCPTmstUQC8dbhxFyBTN0VkILMRsHZoUp7Y1SNcAZ0Z2SUAGIRlr5H52MrJUHHLG39qRgsDLikSKGcNP0/rhvoTX8Ba0CE5MzI8TsLHTdSfKKkxoXhzZ0yX6damGZpvgehRM2p/6HfpfmB7YtCTpqHhTvdsGHgoRBNLSlMShmpKkBwEqwenWqO6vuonvSkEGAfRSZJQHsqgb62uTQW/2629Atxf0nbRN4AfDtj8vU4gtv9U/sgdQWnSlFQdfLpIcQ2dkp2iRfr2OFc29jPiAaL9t0XNPyDc1jQdlOEV9U7Ftw==; 5:G1b5pxElY3ciE85oeGTLepj8Rp2a+kMaW73wY5Myh+PN4bYzwfdpND7iQ0Qc7hPj2JKHdHWrAATd8MK4BmOFzWIjo+A/WypGUiFiYEEKwwPzJ3PDgajKOe+iW+3TUNvT+Z1YSYZRnEjZRlmODCoUQA==; 24:q3xy53hN/bKu15wT225VIikXS/8vGv5DI8HxgEHBtG/aZcbifjuZJFQVQIQ3hiawKSg/hUxhhEnEBullOjrSSrq8yjxXkIsKG9JMZVjnmJ4=; 7:gL3CCYvOiVCTAYhlJ1g186UTO80BlaOjzCkqD0G98OkOUzrvAe8OAV4Mlk6T+lCCJWyqci6WTMt8jiXOavEg0Aof9UT08dXLnfo4DhMNkoD4Z8/ASicbfOfzqv6wqfSTW0GC9RSPs3KqteKPc3Eu2z33rQ/TryaNFA5HE+qFX6yuJixpCRHEMd5YZScUD2/g3FFILB8Q2e9F61+opAbJv5qwBa3D4viCFGMGZqjlQiI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2017 01:52:11.7579 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR0701MB3832 Subject: [dpdk-dev] [PATCH 46/53] net/qede/base: dcbx dscp related extensions 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" - Add an internal API ecore_dcbx_get_dscp_value() for getting the dscp value for a given priority. - Initialize dscp parameters in the dcbx-config cache to be used by the clients for configuring dcbx parameters. - Reset NIG_REG_DSCP_TO_TC_MAP_ENABLE register when user disables the dscp. - Fix to always send "dscp + dcbx" update to FW. Signed-off-by: Rasesh Mody --- drivers/net/qede/base/ecore_dcbx.c | 105 +++++++++++++++++++++--------------- drivers/net/qede/base/ecore_dcbx.h | 5 ++ 2 files changed, 66 insertions(+), 44 deletions(-) diff --git a/drivers/net/qede/base/ecore_dcbx.c b/drivers/net/qede/base/ecore_dcbx.c index ba3560a..54c61bf 100644 --- a/drivers/net/qede/base/ecore_dcbx.c +++ b/drivers/net/qede/base/ecore_dcbx.c @@ -114,6 +114,21 @@ static bool ecore_dcbx_iwarp_tlv(struct ecore_hwfn *p_hwfn, u32 app_info_bitmap, } } +u8 ecore_dcbx_get_dscp_value(struct ecore_hwfn *p_hwfn, u8 pri) +{ + struct ecore_dcbx_dscp_params *dscp = &p_hwfn->p_dcbx_info->get.dscp; + u8 i; + + if (!dscp->enabled) + return ECORE_DCBX_DSCP_DISABLED; + + for (i = 0; i < ECORE_DCBX_DSCP_SIZE; i++) + if (pri == dscp->dscp_pri_map[i]) + return i; + + return ECORE_DCBX_DSCP_DISABLED; +} + static void ecore_dcbx_set_params(struct ecore_dcbx_results *p_data, struct ecore_hwfn *p_hwfn, @@ -121,29 +136,18 @@ static bool ecore_dcbx_iwarp_tlv(struct ecore_hwfn *p_hwfn, u32 app_info_bitmap, enum dcbx_protocol_type type, enum ecore_pci_personality personality) { - struct ecore_dcbx_dscp_params *dscp = &p_hwfn->p_dcbx_info->get.dscp; - /* PF update ramrod data */ p_data->arr[type].enable = enable; p_data->arr[type].priority = prio; p_data->arr[type].tc = tc; - p_data->arr[type].dscp_enable = dscp->enabled; - if (p_data->arr[type].dscp_enable) { - u8 i; - - for (i = 0; i < ECORE_DCBX_DSCP_SIZE; i++) - if (prio == dscp->dscp_pri_map[i]) { - p_data->arr[type].dscp_val = i; - break; - } + p_data->arr[type].dscp_val = ecore_dcbx_get_dscp_value(p_hwfn, prio); + if (p_data->arr[type].dscp_val == ECORE_DCBX_DSCP_DISABLED) { + p_data->arr[type].dscp_enable = false; + p_data->arr[type].dscp_val = 0; + } else { + p_data->arr[type].dscp_enable = true; } - - if (enable && p_data->arr[type].dscp_enable) - p_data->arr[type].update = UPDATE_DCB_DSCP; - else if (enable) - p_data->arr[type].update = UPDATE_DCB; - else - p_data->arr[type].update = DONT_UPDATE_DCB_DSCP; + p_data->arr[type].update = UPDATE_DCB_DSCP; /* QM reconf data */ if (p_hwfn->hw_info.personality == personality) @@ -582,6 +586,31 @@ static bool ecore_dcbx_iwarp_tlv(struct ecore_hwfn *p_hwfn, u32 app_info_bitmap, params->remote.valid = true; } +static void ecore_dcbx_get_dscp_params(struct ecore_hwfn *p_hwfn, + struct ecore_dcbx_get *params) +{ + struct ecore_dcbx_dscp_params *p_dscp; + struct dcb_dscp_map *p_dscp_map; + int i, j, entry; + u32 pri_map; + + p_dscp = ¶ms->dscp; + p_dscp_map = &p_hwfn->p_dcbx_info->dscp_map; + p_dscp->enabled = GET_MFW_FIELD(p_dscp_map->flags, DCB_DSCP_ENABLE); + + /* MFW encodes 64 dscp entries into 8 element array of u32 entries, + * where each entry holds the 4bit priority map for 8 dscp entries. + */ + for (i = 0, entry = 0; i < ECORE_DCBX_DSCP_SIZE / 8; i++) { + pri_map = OSAL_BE32_TO_CPU(p_dscp_map->dscp_pri_map[i]); + DP_VERBOSE(p_hwfn, ECORE_MSG_DCB, "elem %d pri_map 0x%x\n", + entry, pri_map); + for (j = 0; j < ECORE_DCBX_DSCP_SIZE / 8; j++, entry++) + p_dscp->dscp_pri_map[entry] = (u32)(pri_map >> + (j * 4)) & 0xf; + } +} + static void ecore_dcbx_get_operational_params(struct ecore_hwfn *p_hwfn, struct ecore_dcbx_get *params) @@ -640,31 +669,6 @@ static bool ecore_dcbx_iwarp_tlv(struct ecore_hwfn *p_hwfn, u32 app_info_bitmap, p_operational->valid = true; } -static void ecore_dcbx_get_dscp_params(struct ecore_hwfn *p_hwfn, - struct ecore_dcbx_get *params) -{ - struct ecore_dcbx_dscp_params *p_dscp; - struct dcb_dscp_map *p_dscp_map; - int i, j, entry; - u32 pri_map; - - p_dscp = ¶ms->dscp; - p_dscp_map = &p_hwfn->p_dcbx_info->dscp_map; - p_dscp->enabled = GET_MFW_FIELD(p_dscp_map->flags, DCB_DSCP_ENABLE); - - /* MFW encodes 64 dscp entries into 8 element array of u32 entries, - * where each entry holds the 4bit priority map for 8 dscp entries. - */ - for (i = 0, entry = 0; i < ECORE_DCBX_DSCP_SIZE / 8; i++) { - pri_map = OSAL_BE32_TO_CPU(p_dscp_map->dscp_pri_map[i]); - DP_VERBOSE(p_hwfn, ECORE_MSG_DCB, "elem %d pri_map 0x%x\n", - entry, pri_map); - for (j = 0; j < ECORE_DCBX_DSCP_SIZE / 8; j++, entry++) - p_dscp->dscp_pri_map[entry] = (u32)(pri_map >> - (j * 4)) & 0xf; - } -} - static void ecore_dcbx_get_local_lldp_params(struct ecore_hwfn *p_hwfn, struct ecore_dcbx_get *params) { @@ -894,7 +898,9 @@ enum _ecore_status_t /* Update the DSCP to TC mapping bit if required */ if ((type == ECORE_DCBX_OPERATIONAL_MIB) && p_hwfn->p_dcbx_info->dscp_nig_update) { - ecore_wr(p_hwfn, p_ptt, NIG_REG_DSCP_TO_TC_MAP_ENABLE, 0x1); + u8 val = !!p_hwfn->p_dcbx_info->get.dscp.enabled; + + ecore_wr(p_hwfn, p_ptt, NIG_REG_DSCP_TO_TC_MAP_ENABLE, val); p_hwfn->p_dcbx_info->dscp_nig_update = false; } @@ -972,6 +978,8 @@ enum _ecore_status_t ecore_dcbx_query_params(struct ecore_hwfn *p_hwfn, if (rc != ECORE_SUCCESS) goto out; + ecore_dcbx_get_dscp_params(p_hwfn, p_get); + rc = ecore_dcbx_get_params(p_hwfn, p_get, type); out: @@ -1191,6 +1199,12 @@ enum _ecore_status_t ecore_dcbx_query_params(struct ecore_hwfn *p_hwfn, p_hwfn->p_dcbx_info->dscp_nig_update = true; DP_VERBOSE(p_hwfn, ECORE_MSG_DCB, "flags = 0x%x\n", p_dscp_map->flags); + DP_VERBOSE(p_hwfn, ECORE_MSG_DCB, + "pri_map[] = 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n", + p_dscp_map->dscp_pri_map[0], p_dscp_map->dscp_pri_map[1], + p_dscp_map->dscp_pri_map[2], p_dscp_map->dscp_pri_map[3], + p_dscp_map->dscp_pri_map[4], p_dscp_map->dscp_pri_map[5], + p_dscp_map->dscp_pri_map[6], p_dscp_map->dscp_pri_map[7]); return ECORE_SUCCESS; } @@ -1281,6 +1295,9 @@ enum _ecore_status_t ecore_dcbx_get_config_params(struct ecore_hwfn *p_hwfn, p_hwfn->p_dcbx_info->set.ver_num |= DCBX_CONFIG_VERSION_STATIC; p_hwfn->p_dcbx_info->set.enabled = dcbx_info->operational.enabled; + OSAL_MEMCPY(&p_hwfn->p_dcbx_info->set.dscp, + &p_hwfn->p_dcbx_info->get.dscp, + sizeof(struct ecore_dcbx_dscp_params)); OSAL_MEMCPY(&p_hwfn->p_dcbx_info->set.config.params, &dcbx_info->operational.params, sizeof(p_hwfn->p_dcbx_info->set.config.params)); diff --git a/drivers/net/qede/base/ecore_dcbx.h b/drivers/net/qede/base/ecore_dcbx.h index a42ebb4..5986245 100644 --- a/drivers/net/qede/base/ecore_dcbx.h +++ b/drivers/net/qede/base/ecore_dcbx.h @@ -17,6 +17,8 @@ #include "ecore_hsi_common.h" #include "ecore_dcbx_api.h" +#define ECORE_DCBX_DSCP_DISABLED 0XFF + struct ecore_dcbx_info { struct lldp_status_params_s lldp_remote[LLDP_MAX_LLDP_AGENTS]; struct lldp_config_params_s lldp_local[LLDP_MAX_LLDP_AGENTS]; @@ -52,4 +54,7 @@ enum _ecore_status_t void ecore_dcbx_set_pf_update_params(struct ecore_dcbx_results *p_src, struct pf_update_ramrod_data *p_dest); +/* Returns TOS value for a given priority */ +u8 ecore_dcbx_get_dscp_value(struct ecore_hwfn *p_hwfn, u8 pri); + #endif /* __ECORE_DCBX_H__ */