From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id C73A2ECAAD5 for ; Sun, 4 Sep 2022 02:06:48 +0000 (UTC) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D21524021D; Sun, 4 Sep 2022 04:06:47 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id C58604003C for ; Sun, 4 Sep 2022 04:06:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662257206; x=1693793206; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=9l2AL5lYTkazfQKssIySjkBXSsrdn1/Mk9SboIrs2ZA=; b=UB3HNgMMBuLC+OyFPrv9jW95Aqw3XOL9Nir5WKzOU7jKXkCoBWxE71TB C/5ddpSr+s5xbt9NSgBiDd2QdXd777h9rcarPcPFjeb5L1PyAKcZ1K366 1LUB/bTPaPt2ys3EmsVbVZx4rp8a1ufqNYtu5st5N8ytOXxg12/Vb6oRl W/P/QKNArt7S1P6NToOwgo7a2phPQBn9VOVRGANxpOoi6TC3QAxgkMAHa 9yIiLESS6Lx0gKD+nKxoZ91wMbSrri/6Pf6TZCsxGe4QMmhDx8pRZCz6r dTcZ4vCTdOfw2I2Ml/uFV6kZqbNfqiu8gz8Q6njG+YYVgT8KIf2Bup2RL w==; X-IronPort-AV: E=McAfee;i="6500,9779,10459"; a="360158168" X-IronPort-AV: E=Sophos;i="5.93,288,1654585200"; d="scan'208";a="360158168" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Sep 2022 19:06:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,288,1654585200"; d="scan'208";a="564365852" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga003.jf.intel.com with ESMTP; 03 Sep 2022 19:06:44 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sat, 3 Sep 2022 19:06:44 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Sat, 3 Sep 2022 19:06:44 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.42) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Sat, 3 Sep 2022 19:06:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kyd2TnHEGwToOJan9seW48m21YTziuPxZnJQJWdrCp/NMetYGcGXTLOF7eMI1Nl8Mhz9flv/dqOyPb8gD+6xP8WcB404tB+n2QNU82/OKCzbmSZjkb1nWT2Dq/NZ8vQ7uBrFUvoWaBpPLUwhJ+EqRIRJO1fSMtsQ3+ltsI8/OVwAz+USIfX6Mxvfw4AKJur7YjPZmxutp8op6XX6CCawGu7KzwFWVJNoVdIKhNZs2fBNFfxv/xA0Y5KqhY6jQwax43v47tx4DGfT/qK8XQ5T86TXCGPsmCt9NA6P/SwxnwYTaI/p4EEersMa/Abz1hHV/XNyiy4eGpMwwu22STGfUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=X/3s7feeb4SXGerThhGknkvISDfy+jKHkUWczJjBAi8=; b=Fg1F3htd7QTieANKAGR87R5TxMw6TWN83V4GFbTPv/FnjSs0cY/j6gvsPm4o7tXUp0MD48gtqpIn+OzoezGja7QLHEO4JozwIDJvHqQ+jGLaA0xqAaPfyRd2lDpktV9RPtDOZJIh1Z5zGC2xG9gfa6ilhXAgaJEuVjHhi0Orpw53+Up0/J5aTf2p27y8qp0UMtSxk1AXeEyP8Sh4kSbMhadl1/SLc6K0287n1MZ9tj9aNAXCFS+SgGQqDsliEdHZ6CauBQNd5fHmX3D3qW/EyZqCJsF1Dw83N/dMMvHciVUQKIQo3RXWD111goH4T5C7Zc/c/dnh895Js9rR1b2MZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM4PR11MB5994.namprd11.prod.outlook.com (2603:10b6:8:5d::20) by DM5PR11MB1851.namprd11.prod.outlook.com (2603:10b6:3:114::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10; Sun, 4 Sep 2022 02:06:40 +0000 Received: from DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::d94c:1798:9e3b:804e]) by DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::d94c:1798:9e3b:804e%9]) with mapi id 15.20.5588.011; Sun, 4 Sep 2022 02:06:40 +0000 From: "Zhang, Qi Z" To: Markus Theil , "dev@dpdk.org" CC: "Yang, Qiming" , "Theil, Markus" Subject: RE: [PATCH 2/2] net/ice: add basic flow ctrl support for enable/disable/get Thread-Topic: [PATCH 2/2] net/ice: add basic flow ctrl support for enable/disable/get Thread-Index: AQHYvkfcEPv1zKRnjEi2tmI+cWJSqq3Oh3Cg Date: Sun, 4 Sep 2022 02:06:40 +0000 Message-ID: References: <20220901211350.87631-1-markus.theil@tu-ilmenau.de> <20220901211350.87631-2-markus.theil@tu-ilmenau.de> In-Reply-To: <20220901211350.87631-2-markus.theil@tu-ilmenau.de> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.6.500.17 dlp-product: dlpe-windows authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9ee7934a-c6a8-490f-3136-08da8e1a1b84 x-ms-traffictypediagnostic: DM5PR11MB1851:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3lwL+Kggi6dfZnkJic87wg/lbXhRD+GwD7QWPGuUp/T4Nh6WAzgPomwKJk73TOSsGryTHZvqmaLNKpGshmqbocNuhE2F0vsF/ocM80amWfAuMwKhYIG02twBwNwwCvbyQswWik7xhTXJWb0+5MjopfhlSfTlTHfn7Ukvsep/jDE591phL5f3UT3F9b2/uWnjWRZ0lV9i7yAWM8stQzV5p2761Oc+SSg5UR/lAX0MgQ7psxSY0b4NBn3DlbQC18NKdW4m/XBsxoXP3ZFW02d5f5Cvo6a4tpEvhHHKp/tUECJmM9GBlRhCYP6gjjewh5uvmUuO1dbt6mEGS6aOjgOvHpvPJwb28FH505qzjwNI80XlUTpEWn8+g7pQv2nrcsDa2JlL9FqFT9SRIKdSTsSnidRDuY8joJbyqWZH0nUi6uSWIH2t+j9Catw9KN8Xm8dzPX2VKV6I4Q8NlEk05pKnrA3nHd/AujUsdjr4wT838uBm1SrV9/dxSZbKHkaJ8ve8/FVOnoAOwv+CCjjD8u0mcijYV1nsRGoGlW2zmXJ0z+VOONWkCyzXf9PErIsF7G3Z/4k0f+xImBPtiDIXVXD73lTplYo6HF9Nfad76Yb9nkEY+IryWhW9xd/dX7do7DZ7HqSg69l0TsDuW70sRkwSBaJpgvpvgmRDEc5CRzo+eWXXxbrcyiBIGFteMJwYF2UzazU3c+AcjIWzYgouhiECYXk5wtnAluXk2q7hkwN7Hgu0hejD4fUrp+1vScYjzbl6Crk5V1qRWludNrXYdCvnGw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5994.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(376002)(136003)(346002)(366004)(396003)(39860400002)(5660300002)(8936002)(52536014)(41300700001)(33656002)(122000001)(2906002)(9686003)(26005)(38100700002)(478600001)(76116006)(66556008)(66446008)(66946007)(66476007)(86362001)(64756008)(6506007)(7696005)(8676002)(4326008)(53546011)(38070700005)(82960400001)(54906003)(110136005)(186003)(71200400001)(316002)(55016003)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?05zfBtyylk1VJs0hFa/WzDOAWP/XG0am2575qpNqmqdhIArkiLDuK85plQK1?= =?us-ascii?Q?wE343jPy5BmTYmABI7KHNFVfrUQjJr9foca0MNJire0EJR6/+XmGqu9FYYbJ?= =?us-ascii?Q?pQOgKI4Ru5KcZZRbKl8Rfx6eRZ6B5MIpecVNt/+gsq/LC1gqzk/apA1FG3kh?= =?us-ascii?Q?MjBpYOSIekP1L2JfdLOrONOS02GD87VlBeAPwUwa7nChtITAQEh4yXCVyag8?= =?us-ascii?Q?o7EM1BAgQ5mzxrIxXEG5QoSwG21JyOsa2y9vYcHu4JaepPe7s8XmQahYDtCm?= =?us-ascii?Q?ITwMot2nACeZvIQl3otQpWpEDS4EHDk5znBHW5Av2h/NyKh2Q9tgHsGJj6+M?= =?us-ascii?Q?rz8C60vv6geJAOpmeqmHey3cUGd7zlh0NxLiBsZpSPehcp7F/BFvABosSzDt?= =?us-ascii?Q?B9Jl1xygHQTk2Ee4j2cfZUOU4WARzNsjDF6SPJK4uFXNZ79KSL/Oq6Q9a4Un?= =?us-ascii?Q?ntCkUZzabVHOPLOAHdsF/BhR8ShxKUWVTB75yW4VpA7cHl7V2qAqMrcQGV6E?= =?us-ascii?Q?LT5ZXS/b3gWwINDJvQHiFlaQ5hlL/ZKMZcnzjIvy+7m83ZjWsx/wakVW/7yH?= =?us-ascii?Q?6zaLyLh3Hzl8Dg8ES1uWqk7hqQjCLcFwyJ34Zhc/PNQY9jwZ4+GR6yZpTr8L?= =?us-ascii?Q?oXUQtfQUyNFoJobXBG5t3ltmRMXDNb4h9LINAfEcqWZgwq56yROEbnfKtojS?= =?us-ascii?Q?Xg/1wM9glJ3TXv2ZUknDQx8hfU+o4IGhkWe0XPkTrmd8d4xZqpwj86kDcqCe?= =?us-ascii?Q?WXBRbB+biQLEHhzHqh0hqC6hcFd8X9u2pTU2eVww6eBKP/XYMBhmraxVUk7F?= =?us-ascii?Q?K4MzUN++SuPHHBKPRhPD/POytkpmqhDJBc3X2DykAX6u4qZJXLGEYS82q4XL?= =?us-ascii?Q?K6q/PWuESQnAyhtQ5kak3FL416/FsXKAIzI4km8uD/sTYUkAtgd3bZCFuTNL?= =?us-ascii?Q?dXXq10d+j0Vl0sMdFsT4oi24RvG6sjtQ1qZUTcK6sUY2GzpQLu80wycCCqzf?= =?us-ascii?Q?wBNod6uXiiUSD8g3+VL2UCCNs+ataUiFC6QPAI6Jj/a/tYI0/WsFbMsDXLAt?= =?us-ascii?Q?qVBx5pt2C13SngNj0SoEIXc86ns6Mo/ZcyPrh70NQCBTtc7RXQx4PFMwhDO0?= =?us-ascii?Q?0b0/xj2XpaMbuirMkNhw5EXGUn+OH/CdPxh4h4Ykx7cvdiwWjLinFATlLo01?= =?us-ascii?Q?rbDtUW78odv/1R1xwGByD5RznMrh9FVEz2Btw41hqLXniX8MFAlTfkt2nQXl?= =?us-ascii?Q?kYA4TcQtRCLwu9K4SKSa12t/5aCV49mKbqV6/gx42STHXT0ColsgrEvMZ+HD?= =?us-ascii?Q?n78+EBSoo9y4+Wz/p3iPy3fuh4yhNq79DzjiqgcT+CuunUWySuSS5gprK2mp?= =?us-ascii?Q?YTul0RxNmWeh+cEYxIZzwJ8latEUtSderVHGJCFAR0kiHxWxDl1FeXP4E3mF?= =?us-ascii?Q?pGLc5mK3lR2P7Ar4NXFZNIRz6mw+cJwL89jtHcV3/2vWHS8UpaCQfyQJ77v9?= =?us-ascii?Q?ngL6nWJn4UtavM6+Poh7Vl9Af1ZZsj+5wTLjVLggfQEywMI4B4vxsZN4jLHi?= =?us-ascii?Q?bUgCMK1+76GjggTJYBSDZF2KqSHcWK3HX/WCinMi?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5994.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ee7934a-c6a8-490f-3136-08da8e1a1b84 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Sep 2022 02:06:40.7976 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: MDzcL78vivQkqevRLqXP/APhFlKUqLA0AYl2E0FwoVEpKKjUdH51Bqel627PLi0Tr++yuBiKUkoq5Ft4ZhULXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1851 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Markus Theil > Sent: Friday, September 2, 2022 5:14 AM > To: dev@dpdk.org > Cc: Yang, Qiming ; Zhang, Qi Z > ; Theil, Markus > Subject: [PATCH 2/2] net/ice: add basic flow ctrl support for enable/disa= ble/get >=20 > From: Markus Theil Thanks for contribute this. As this expose new features of Intel E810 NIC and this is not in Intel's pl= an on DPDK 22.11.=20 To help maintainer to decide if we should accept the patches in 22.11. Coul= d you help to share more background? especially the test cases you performe= d as well as the test result. Thanks Qi >=20 > Signed-off-by: Markus Theil > --- > drivers/net/ice/ice_ethdev.c | 108 +++++++++++++++++++++++++++++++++++ > 1 file changed, 108 insertions(+) >=20 > diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c = index > f5820d6ccb..ad93ec8155 100644 > --- a/drivers/net/ice/ice_ethdev.c > +++ b/drivers/net/ice/ice_ethdev.c > @@ -92,6 +92,10 @@ static int ice_dev_set_link_up(struct rte_eth_dev *dev= ); > static int ice_dev_set_link_down(struct rte_eth_dev *dev); static int > ice_dev_led_on(struct rte_eth_dev *dev); static int ice_dev_led_off(stru= ct > rte_eth_dev *dev); > +static int ice_dev_flow_ctrl_get(struct rte_eth_dev *dev, > + struct rte_eth_fc_conf *fc_conf); > +static int ice_dev_flow_ctrl_set(struct rte_eth_dev *dev, > + struct rte_eth_fc_conf *fc_conf); >=20 > static int ice_mtu_set(struct rte_eth_dev *dev, uint16_t mtu); static i= nt > ice_vlan_offload_set(struct rte_eth_dev *dev, int mask); @@ -219,6 +223,8 > @@ static const struct eth_dev_ops ice_eth_dev_ops =3D { > .dev_set_link_down =3D ice_dev_set_link_down, > .dev_led_on =3D ice_dev_led_on, > .dev_led_off =3D ice_dev_led_off, > + .flow_ctrl_get =3D ice_dev_flow_ctrl_get, > + .flow_ctrl_set =3D ice_dev_flow_ctrl_set, > .rx_queue_start =3D ice_rx_queue_start, > .rx_queue_stop =3D ice_rx_queue_stop, > .tx_queue_start =3D ice_tx_queue_start, > @@ -4096,6 +4102,108 @@ ice_dev_led_off(struct rte_eth_dev *dev) > return status =3D=3D ICE_SUCCESS ? 0 : -ENOTSUP; } >=20 > +static int > +ice_dev_flow_ctrl_get(struct rte_eth_dev *dev, struct rte_eth_fc_conf > +*fc_conf) { > + struct ice_hw *hw =3D ICE_DEV_PRIVATE_TO_HW(dev->data- > >dev_private); > + struct ice_aqc_get_phy_caps_data *pcaps; > + int tx_pause, rx_pause; > + int status; > + > + pcaps =3D (struct ice_aqc_get_phy_caps_data *) > + ice_malloc(hw, sizeof(*pcaps)); > + if (!pcaps) > + return -ENOMEM; > + > + status =3D ice_aq_get_phy_caps(hw->port_info, false, > + ICE_AQC_REPORT_ACTIVE_CFG, pcaps, NULL); > + if(status) > + goto out; > + > + fc_conf->autoneg =3D ice_is_phy_caps_an_enabled(pcaps); > + tx_pause =3D !!(pcaps->caps & ICE_AQC_PHY_EN_TX_LINK_PAUSE); > + rx_pause =3D !!(pcaps->caps & ICE_AQC_PHY_EN_RX_LINK_PAUSE); > + > + if (rx_pause && tx_pause) > + fc_conf->mode =3D RTE_ETH_FC_FULL; > + else if (rx_pause) > + fc_conf->mode =3D RTE_ETH_FC_RX_PAUSE; > + else if (tx_pause) > + fc_conf->mode =3D RTE_ETH_FC_TX_PAUSE; > + else > + fc_conf->mode =3D RTE_ETH_FC_NONE; > + > +out: > + ice_free(hw, pcaps); > + return status; > +} > + > +static int > +ice_dev_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf > +*fc_conf) { > + struct ice_hw *hw =3D ICE_DEV_PRIVATE_TO_HW(dev->data- > >dev_private); > + struct ice_port_info *pi =3D hw->port_info; > + struct ice_link_status *ls =3D &pi->phy.link_info; > + bool link_up =3D !!(ls->link_info & ICE_AQ_LINK_UP); > + struct ice_aqc_get_phy_caps_data *pcaps; > + u8 aq_failures; > + int status; > + > + pcaps =3D (struct ice_aqc_get_phy_caps_data *) > + ice_malloc(hw, sizeof(*pcaps)); > + if (!pcaps) > + return -ENOMEM; > + > + status =3D ice_aq_get_phy_caps(hw->port_info, false, > + ICE_AQC_REPORT_ACTIVE_CFG, pcaps, NULL); > + if(status) { > + status =3D -EIO; > + goto out; > + } > + if(fc_conf->autoneg !=3D ice_is_phy_caps_an_enabled(pcaps)) { > + status =3D -ENOTSUP; > + goto out; > + } > + > + switch(fc_conf->mode) { > + case RTE_ETH_FC_FULL: > + pi->fc.req_mode =3D ICE_FC_FULL; > + break; > + case RTE_ETH_FC_RX_PAUSE: > + pi->fc.req_mode =3D ICE_FC_RX_PAUSE; > + break; > + case RTE_ETH_FC_TX_PAUSE: > + pi->fc.req_mode =3D ICE_FC_TX_PAUSE; > + break; > + case RTE_ETH_FC_NONE: > + pi->fc.req_mode =3D ICE_FC_NONE; > + break; > + } > + > + status =3D ice_set_fc(pi, &aq_failures, link_up); > + > + if (aq_failures & ICE_SET_FC_AQ_FAIL_GET) { > + PMD_DRV_LOG(ERR, > + "port %d fc set failed on get, err %d aq status %i\n", > + dev->data->port_id, status, hw- > >adminq.sq_last_status); > + status =3D -EIO; > + } else if (aq_failures & ICE_SET_FC_AQ_FAIL_SET) { > + PMD_DRV_LOG(ERR, > + "port %d fc set failed on set, err %d aq status %i\n", > + dev->data->port_id, status, hw- > >adminq.sq_last_status); > + status =3D -EIO; > + } else if (aq_failures & ICE_SET_FC_AQ_FAIL_UPDATE) { > + PMD_DRV_LOG(ERR, > + "port %d fc set failed on update, err %d aq > status %i\n", > + dev->data->port_id, status, hw- > >adminq.sq_last_status); > + status =3D -EIO; > + } > + > +out: > + ice_free(hw, pcaps); > + return status; > +} > + > static int > ice_mtu_set(struct rte_eth_dev *dev, uint16_t mtu __rte_unused) { > -- > 2.37.3