From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E213CA0C43; Wed, 20 Oct 2021 10:39:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A452D40687; Wed, 20 Oct 2021 10:39:13 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2043.outbound.protection.outlook.com [40.107.244.43]) by mails.dpdk.org (Postfix) with ESMTP id 5C8FA40142 for ; Wed, 20 Oct 2021 10:39:12 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XiYQLQ5tYb9mQX/5z7ar9mU0Z4WiA89w8tnS9NrgNy4BguKz+Q7RTM6ikEHUF4iwvyPprkYEDORpAELrCc4pxVOe4mFHTCYVPnzRkICfwBxC4FEhevdLKwdBm71y8vculkwe1i+VW86VuHu03FfmwWajeE8/r7Yc0RFnMKHzdfh3GHqIGdlsauuoE8abeZcSuA7FwTbeddPpQHyS4UxWEu4fMceh0jRXDfIIKFgl5YoCE82wd7sbV222/hOcAKJNuDkTW0OUC7L1H6cUWTWmfE5TwXvb2sxEPrgH+jqTBXgjm+cH6YmeuPMMRKoEukywcs1ayAYwS76A90P0oBK1UQ== 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=BBiS9NNBgjvhbd29Z7URKuPmjCTxPVWzebcMDZZyais=; b=nzB5jELRoWvLaVkVS5JWX5ekBX+aClTAs/i7JvEKBP3AZfa6kMsMpoHZrfbY0t23NWNToV7l1E0FZUCv++Os4ecSjlQFYzTRnNMEmk3yRyH8HXnwsljr1Lck6Ufhw1SBGoGSssylYmkTHqLtCIsFtmw9LMS11XQw4QninvDJJf+uRfRWlZMfihhjPlhqox77N9YU+uTEd/J8GsQxSogcq7euKG6n9bbNp7K999fRXM9AT2lTXPHWrMamrHUopRAh6IgoZG76ISsfnescSpYcu5g/UBm5k4BikccAgYzheE5bvezq+HfpbhNrdySdzJadNhGxfdv0bAEI+HR9swWZvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BBiS9NNBgjvhbd29Z7URKuPmjCTxPVWzebcMDZZyais=; b=kHVchvex7F4Uvi1Y6tlgWMPVSyGH0MuxzrKGxlhNEblxepBlPpAvKub+qFwJttTiShj1i+323hEV4Lb4PwgcgndFk0RIraH40ASl9zbYyYzqOM1XQfP4iW3kA4LUFNFvfLLo6FrC9AqsR4k3S8AVa7GTu8vTr4l9RVhS6Nf6awLADhOR6yQdfxaNXBsZKv0t99SmUUSOwec8WHfXiQ4rbUuY2L9lkFKFuyL8OA/9bJij2KbBJgUdTKwFOfXBp2KwSF8VOtbPDmoO7Dy07dpLl99nJsoNa531yBU5HCAUuHa6Lpt1pvJYusgFX1RQPiVpiTJm47iEaCYbhUdxjFv5dA== Received: from DM8PR12MB5400.namprd12.prod.outlook.com (2603:10b6:8:3b::12) by DM4PR12MB5037.namprd12.prod.outlook.com (2603:10b6:5:388::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.16; Wed, 20 Oct 2021 08:39:10 +0000 Received: from DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32]) by DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32%6]) with mapi id 15.20.4628.016; Wed, 20 Oct 2021 08:39:10 +0000 From: Ori Kam To: Andrew Rybchenko , Ferruh Yigit , NBU-Contact-Thomas Monjalon , Cristian Dumitrescu CC: "dev@dpdk.org" Thread-Topic: [PATCH v2 1/9] ethdev: avoid documentation in next lines Thread-Index: AQHXxYYmi1qOue80lkmhxbJnbz6+4avbkHfA Date: Wed, 20 Oct 2021 08:39:09 +0000 Message-ID: References: <20211014083704.2542493-1-andrew.rybchenko@oktetlabs.ru> <20211020074257.2349486-1-andrew.rybchenko@oktetlabs.ru> <20211020074257.2349486-2-andrew.rybchenko@oktetlabs.ru> In-Reply-To: <20211020074257.2349486-2-andrew.rybchenko@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5620f130-f57f-4eac-9f11-08d993a51633 x-ms-traffictypediagnostic: DM4PR12MB5037: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:330; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MOZIICOmgOcTt+FKkEq7Hm29+gc9n6C/rvok3pqam5PltIfRYPyg89e384o68+d5QzpTaa0iSOGLx8QBpFVnIQNfNwK/00hu5XAQS7eWxc93WOfInojM7Hzz8+N+wlQ4TTtRr7hixx34tFZAZcR+m7rlKvXE6iKRKZ3oscc5SvP2AH4TmPWt3viuOotbl6h3sPKvf8/FFJHWlN8Hfb10FLrzp7LelzfsWRC9lYDNje355NxOmeE+EmqC0IlsLimzhkqPplFzbEMRpxE+JoLAng4pf/p1VuqADi76qli2Hlrne3TyoziOZjwvlKfbu7PUATsX7zcDLvnVgSwDF8c6j14g7kngCKZ88kS+Y2K+b1HeTPZB9kPkFg/3EbDWT7ot3xxkec3KRc86CwpGuiPTDYO9iCVEC4wYu/1Xv7oPLqUsDBmHXupUmtj2myxEKb5YmTR6ef+uYYYj9Ss0RisRN2kcXEsE7fAFRc7k6Gm2l3zDYNnIBpya5rqlKcUbYVkSe3X4nEKzg3wN//GsdFOYt5zQg6nUyVxvTODH3ke0cmuRFXiCyLsGnm9Hyo+n1IayfgoVoBfQZt7KExRi/frjbS09VbyBz1A3pgktdbjHuUj4WIxbGQXthQ4TsKYMAxjX+5kF42dw4lbV7iOTSFXjijjjrbias1SSp+ZqsItSG6eCT63MjhzOFHNpp6pTl2EY+GhO3HUK/hGYilFqOKvOeA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR12MB5400.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(53546011)(64756008)(8936002)(83380400001)(30864003)(86362001)(66446008)(38100700002)(7696005)(66476007)(316002)(8676002)(122000001)(508600001)(110136005)(52536014)(4326008)(5660300002)(76116006)(55016002)(71200400001)(66946007)(2906002)(9686003)(186003)(38070700005)(33656002)(66556008)(6506007)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ybL5AKT8ewEJnHCgtgRWlJDfAi1d6fJOZ99lDxCLSUcmdDDaaynTtZOV5iST?= =?us-ascii?Q?tL/GQIzBZEebhZHHla+angapHY21iSu6aG9CfpdcMEifIeWTkmZNUnxWHcmD?= =?us-ascii?Q?tP6PGlyPcnJKRhiuu7l36XKIO4ps/3Uo+IW5M1zC5e+AMzdIkcN+oDmrRasf?= =?us-ascii?Q?Sz49D8QUHF2fhbJYMs6ZD24TFIPH7rCKKgsu8G3pI1W0E0TRP3gtyX47AqK/?= =?us-ascii?Q?3VIjnirIjssO9jrjgucsEgTOMNHU8p52/vQYAMPEnlVtg7Naxu1mWy2LMKVW?= =?us-ascii?Q?piGUMJ6Fs939h9MN099lWqt6ppgk4gBic/RQcyXC0fej8zS88Gf/IhxXhxE+?= =?us-ascii?Q?hGAHYTUbn3f3CzaUdn243V/5pIhWSoiTa+Ody6+Rx7R/d81wCd10IkUTNY6t?= =?us-ascii?Q?SJ42LcsNWRkRYKLfvCtyBeuWgr4bxwYfAtm+qKdj60h/doxU4ER565p0nFOa?= =?us-ascii?Q?Otdq4JiXzPZm7yAVZqmvliXJ5DYeihtodVyq0MnnlOiLGaybT4AebyLqFefb?= =?us-ascii?Q?CVymqPdu5CXWCK19MZBxd1DTEZBVptolpzRqcMGwlAZV75hHFiwDBkK5zfk+?= =?us-ascii?Q?Z9gnv34Lj86LVzkdlIJ4+cnQcLf8FQaE6Q9NRQDrqzCVhqY1rBFjYuk/d2eW?= =?us-ascii?Q?O4S7b36ynuzytlHDlt5TdXre2kko2Zws/N1X+7Mu5/GpJOr0qbdyrZ6oirFz?= =?us-ascii?Q?y7DI+k/nU4V4f51xfrTIPVglee7b2A6WmTQILan3ZIlPN9jkJGc7gyn3twG5?= =?us-ascii?Q?ByarHq5BJvWaQoAGMhpqd2Xi9YCRqEBLqZIzCFEETUl0fc5iUQiYwC76ur6V?= =?us-ascii?Q?5/H7iLh97n0RoXE/5FokNZThwZpAS1NNA5yTd5cy9oHX8oOdRirZ3qMkoXYH?= =?us-ascii?Q?9iP1K3zuW+t4LkSW2vuhIfIKIBFHoYYwH6rBH30/3P2S+27aD0iBqTnCx2YB?= =?us-ascii?Q?NgrTQLtHbAkrUMWNQ0h8n/zc/jY/WDMg1wPfkG1pEnZyEkGgTvY8O9fjBabL?= =?us-ascii?Q?2ey84lWA/R+zApDWRVUEM+/dYpeUCPfVomXssq+igisJz7m2WaTrdN+saXpk?= =?us-ascii?Q?lfLIAa5H3cbv3p0JyV7dsG0pLbuzpxDPj97adZKVxP7PECIEPy1lButaz20N?= =?us-ascii?Q?oC9YbgrpJaGtZsZQffUJnNeVWF1Gu3dxA+v1AodHKEHX5v9lpyAaZCPW6sSh?= =?us-ascii?Q?kZ2pm7SRYPuFShbCmT8NFQQ8TPSEFh9XqPlIOA0TFHgYm8uHeA5CsfQQTbpQ?= =?us-ascii?Q?do51VmTvF0CztIZgDl7UL1/kz/M1Orc9VTeeC6XmsVARg3uE3AW8DlN88w7a?= =?us-ascii?Q?Eo35GUI+BIp0lmhT90zMH+3CuvmI8ssutCQrfwvIuD8vrXGg/GCEif37GrDt?= =?us-ascii?Q?ZmFlE1xInKDXjIiWtJNI1iqtt+a+?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR12MB5400.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5620f130-f57f-4eac-9f11-08d993a51633 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Oct 2021 08:39:09.9899 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: orika@nvidia.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5037 Subject: Re: [dpdk-dev] [PATCH v2 1/9] ethdev: avoid documentation in next lines 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 Sender: "dev" > -----Original Message----- > From: Andrew Rybchenko > Sent: Wednesday, October 20, 2021 10:43 AM > To: Ferruh Yigit ; NBU-Contact-Thomas Monjalon ; > Ori Kam ; Cristian Dumitrescu > Cc: dev@dpdk.org > Subject: [PATCH v2 1/9] ethdev: avoid documentation in next lines >=20 > Documentation in the next separate line is confusing. If documentation > requires own line it should be before, not after. >=20 > Fix a number of incorrect markups on the way. >=20 > When corresponding lines are touched by the patch anyway, add > missing full stop to defined types description. >=20 > Signed-off-by: Andrew Rybchenko > --- > lib/ethdev/ethdev_driver.h | 270 ++++++++++++++++++----------------- > lib/ethdev/rte_ethdev.h | 134 ++++++++--------- > lib/ethdev/rte_ethdev_core.h | 18 ++- > lib/ethdev/rte_flow.h | 38 ++--- > lib/ethdev/rte_mtr_driver.h | 30 ++-- > 5 files changed, 254 insertions(+), 236 deletions(-) >=20 > diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h > index 0174ba03d7..8800c9c067 100644 > --- a/lib/ethdev/ethdev_driver.h > +++ b/lib/ethdev/ethdev_driver.h > @@ -44,18 +44,17 @@ struct rte_eth_rxtx_callback { > struct rte_eth_dev { > eth_rx_burst_t rx_pkt_burst; /**< Pointer to PMD receive function. */ > eth_tx_burst_t tx_pkt_burst; /**< Pointer to PMD transmit function. */ > + /** Pointer to PMD transmit prepare function. */ > eth_tx_prep_t tx_pkt_prepare; > - /**< Pointer to PMD transmit prepare function. */ > + /** Get the number of used RX descriptors. */ > eth_rx_queue_count_t rx_queue_count; > - /**< Get the number of used RX descriptors. */ > + /** Check the status of a Rx descriptor. */ > eth_rx_descriptor_status_t rx_descriptor_status; > - /**< Check the status of a Rx descriptor. */ > + /** Check the status of a Tx descriptor. */ > eth_tx_descriptor_status_t tx_descriptor_status; > - /**< Check the status of a Tx descriptor. */ >=20 > /** > - * points to device data that is shared between > - * primary and secondary processes. > + * Device data that is shared between primary and secondary processes. > */ > struct rte_eth_dev_data *data; > void *process_private; /**< Pointer to per-process device data. */ > @@ -100,64 +99,63 @@ struct rte_eth_dev_data { >=20 > struct rte_eth_dev_sriov sriov; /**< SRIOV data */ >=20 > + /** PMD-specific private data. @see rte_eth_dev_release_port(). */ > void *dev_private; > - /**< PMD-specific private data. > - * @see rte_eth_dev_release_port() > - */ >=20 > struct rte_eth_link dev_link; /**< Link-level information & status. *= / > struct rte_eth_conf dev_conf; /**< Configuration applied to device. *= / > uint16_t mtu; /**< Maximum Transmission Unit. */ > + /** Common RX buffer size handled by all queues. */ > uint32_t min_rx_buf_size; > - /**< Common RX buffer size handled by all queues. */ >=20 > uint64_t rx_mbuf_alloc_failed; /**< RX ring mbuf allocation failures. *= / > + /** Device Ethernet link address. @see rte_eth_dev_release_port(). */ > struct rte_ether_addr *mac_addrs; > - /**< Device Ethernet link address. > - * @see rte_eth_dev_release_port() > - */ > + /** Bitmap associating MAC addresses to pools. */ > uint64_t mac_pool_sel[ETH_NUM_RECEIVE_MAC_ADDR]; > - /**< Bitmap associating MAC addresses to pools. */ > + /** > + * Device Ethernet MAC addresses of hash filtering. > + * @see rte_eth_dev_release_port() > + */ > struct rte_ether_addr *hash_mac_addrs; > - /**< Device Ethernet MAC addresses of hash filtering. > - * @see rte_eth_dev_release_port() > - */ > uint16_t port_id; /**< Device [external] port identifier. */ >=20 > __extension__ > - uint8_t promiscuous : 1, > - /**< RX promiscuous mode ON(1) / OFF(0). */ > + uint8_t /** RX promiscuous mode ON(1) / OFF(0). */ > + promiscuous : 1, > + /** RX of scattered packets is ON(1) / OFF(0) */ > scattered_rx : 1, > - /**< RX of scattered packets is ON(1) / OFF(0) */ > + /** RX all multicast mode ON(1) / OFF(0). */ > all_multicast : 1, > - /**< RX all multicast mode ON(1) / OFF(0). */ > + /** Device state: STARTED(1) / STOPPED(0). */ > dev_started : 1, > - /**< Device state: STARTED(1) / STOPPED(0). */ > + /** RX LRO is ON(1) / OFF(0) */ > lro : 1, > - /**< RX LRO is ON(1) / OFF(0) */ > - dev_configured : 1; > - /**< Indicates whether the device is configured. > - * CONFIGURED(1) / NOT CONFIGURED(0). > + /** > + * Indicates whether the device is configured. > + * CONFIGURED(1) / NOT CONFIGURED(0). > */ > + dev_configured : 1; > + /** Queues state: HAIRPIN(2) / STARTED(1) / STOPPED(0). */ > uint8_t rx_queue_state[RTE_MAX_QUEUES_PER_PORT]; > - /**< Queues state: HAIRPIN(2) / STARTED(1) / STOPPED(0). */ > + /** Queues state: HAIRPIN(2) / STARTED(1) / STOPPED(0). */ > uint8_t tx_queue_state[RTE_MAX_QUEUES_PER_PORT]; > - /**< Queues state: HAIRPIN(2) / STARTED(1) / STOPPED(0). */ > uint32_t dev_flags; /**< Capabilities. */ > int numa_node; /**< NUMA node connection. */ > + /** VLAN filter configuration. */ > struct rte_vlan_filter_conf vlan_filter_conf; > - /**< VLAN filter configuration. */ > struct rte_eth_dev_owner owner; /**< The port owner. */ > + /** > + * Switch-specific identifier. > + * Valid if RTE_ETH_DEV_REPRESENTOR in dev_flags. > + */ > uint16_t representor_id; > - /**< Switch-specific identifier. > - * Valid if RTE_ETH_DEV_REPRESENTOR in dev_flags. > - */ > + /** > + * Port ID of the backing device. > + * This device will be used to query representor info and calculate > + * representor IDs. Valid if RTE_ETH_DEV_REPRESENTOR in dev_flags. > + */ > uint16_t backer_port_id; > - /**< Port ID of the backing device. > - * This device will be used to query representor > - * info and calculate representor IDs. > - * Valid if RTE_ETH_DEV_REPRESENTOR in dev_flags. > - */ >=20 > pthread_mutex_t flow_ops_mutex; /**< rte_flow ops mutex. */ > uint64_t reserved_64s[4]; /**< Reserved for future fields */ > @@ -171,7 +169,7 @@ struct rte_eth_dev_data { > */ > extern struct rte_eth_dev rte_eth_devices[]; >=20 > -/**< @internal Declaration of the hairpin peer queue information structu= re. */ > +/** @internal Declaration of the hairpin peer queue information structur= e. */ > struct rte_hairpin_peer_info; >=20 > /* > @@ -180,29 +178,29 @@ struct rte_hairpin_peer_info; > * structure associated with an Ethernet device. > */ >=20 > +/** @internal Ethernet device configuration. */ > typedef int (*eth_dev_configure_t)(struct rte_eth_dev *dev); > -/**< @internal Ethernet device configuration. */ >=20 > +/** @internal Function used to start a configured Ethernet device. */ > typedef int (*eth_dev_start_t)(struct rte_eth_dev *dev); > -/**< @internal Function used to start a configured Ethernet device. */ >=20 > +/** @internal Function used to stop a configured Ethernet device. */ > typedef int (*eth_dev_stop_t)(struct rte_eth_dev *dev); > -/**< @internal Function used to stop a configured Ethernet device. */ >=20 > +/** @internal Function used to link up a configured Ethernet device. */ > typedef int (*eth_dev_set_link_up_t)(struct rte_eth_dev *dev); > -/**< @internal Function used to link up a configured Ethernet device. */ >=20 > +/** @internal Function used to link down a configured Ethernet device. *= / > typedef int (*eth_dev_set_link_down_t)(struct rte_eth_dev *dev); > -/**< @internal Function used to link down a configured Ethernet device. = */ >=20 > +/** @internal Function used to close a configured Ethernet device. */ > typedef int (*eth_dev_close_t)(struct rte_eth_dev *dev); > -/**< @internal Function used to close a configured Ethernet device. */ >=20 > +/** @internal Function used to reset a configured Ethernet device. */ > typedef int (*eth_dev_reset_t)(struct rte_eth_dev *dev); > -/** <@internal Function used to reset a configured Ethernet device. */ >=20 > +/** @internal Function used to detect an Ethernet device removal. */ > typedef int (*eth_is_removed_t)(struct rte_eth_dev *dev); > -/**< @internal Function used to detect an Ethernet device removal. */ >=20 > /** > * @internal > @@ -304,13 +302,16 @@ typedef int (*eth_allmulticast_enable_t)(struct rte= _eth_dev *dev); > */ > typedef int (*eth_allmulticast_disable_t)(struct rte_eth_dev *dev); >=20 > +/** > + * @internal > + * Get link speed, duplex mode and state (up/down) of an Ethernet device= . > + */ > typedef int (*eth_link_update_t)(struct rte_eth_dev *dev, > int wait_to_complete); > -/**< @internal Get link speed, duplex mode and state (up/down) of an Eth= ernet device. */ >=20 > +/** @internal Get global I/O statistics of an Ethernet device. */ > typedef int (*eth_stats_get_t)(struct rte_eth_dev *dev, > struct rte_eth_stats *igb_stats); > -/**< @internal Get global I/O statistics of an Ethernet device. */ >=20 > /** > * @internal > @@ -333,9 +334,9 @@ typedef int (*eth_stats_get_t)(struct rte_eth_dev *de= v, > */ > typedef int (*eth_stats_reset_t)(struct rte_eth_dev *dev); >=20 > +/** @internal Get extended stats of an Ethernet device. */ > typedef int (*eth_xstats_get_t)(struct rte_eth_dev *dev, > struct rte_eth_xstat *stats, unsigned int n); > -/**< @internal Get extended stats of an Ethernet device. */ >=20 > /** > * @internal > @@ -381,9 +382,9 @@ typedef int (*eth_xstats_get_by_id_t)(struct rte_eth_= dev *dev, > */ > typedef int (*eth_xstats_reset_t)(struct rte_eth_dev *dev); >=20 > +/** @internal Get names of extended stats of an Ethernet device. */ > typedef int (*eth_xstats_get_names_t)(struct rte_eth_dev *dev, > struct rte_eth_xstat_name *xstats_names, unsigned int size); > -/**< @internal Get names of extended stats of an Ethernet device. */ >=20 > /** > * @internal > @@ -407,18 +408,21 @@ typedef int (*eth_xstats_get_names_by_id_t)(struct = rte_eth_dev *dev, > const uint64_t *ids, struct rte_eth_xstat_name *xstats_names, > unsigned int size); >=20 > +/** > + * @internal > + * Set a queue statistics mapping for a tx/rx queue of an Ethernet devic= e. > + */ > typedef int (*eth_queue_stats_mapping_set_t)(struct rte_eth_dev *dev, > uint16_t queue_id, > uint8_t stat_idx, > uint8_t is_rx); > -/**< @internal Set a queue statistics mapping for a tx/rx queue of an Et= hernet device. */ >=20 > +/** @internal Get specific information of an Ethernet device. */ > typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev, > struct rte_eth_dev_info *dev_info); > -/**< @internal Get specific information of an Ethernet device. */ >=20 > +/** @internal Get supported ptypes of an Ethernet device. */ > typedef const uint32_t *(*eth_dev_supported_ptypes_get_t)(struct rte_eth= _dev *dev); > -/**< @internal Get supported ptypes of an Ethernet device. */ >=20 > /** > * @internal > @@ -435,47 +439,47 @@ typedef const uint32_t *(*eth_dev_supported_ptypes_= get_t)(struct > rte_eth_dev *de > typedef int (*eth_dev_ptypes_set_t)(struct rte_eth_dev *dev, > uint32_t ptype_mask); >=20 > +/** @internal Start rx and tx of a queue of an Ethernet device. */ > typedef int (*eth_queue_start_t)(struct rte_eth_dev *dev, > uint16_t queue_id); > -/**< @internal Start rx and tx of a queue of an Ethernet device. */ >=20 > +/** @internal Stop rx and tx of a queue of an Ethernet device. */ > typedef int (*eth_queue_stop_t)(struct rte_eth_dev *dev, > uint16_t queue_id); > -/**< @internal Stop rx and tx of a queue of an Ethernet device. */ >=20 > +/** @internal Set up a receive queue of an Ethernet device. */ > typedef int (*eth_rx_queue_setup_t)(struct rte_eth_dev *dev, > uint16_t rx_queue_id, > uint16_t nb_rx_desc, > unsigned int socket_id, > const struct rte_eth_rxconf *rx_conf, > struct rte_mempool *mb_pool); > -/**< @internal Set up a receive queue of an Ethernet device. */ >=20 > +/** @internal Setup a transmit queue of an Ethernet device. */ > typedef int (*eth_tx_queue_setup_t)(struct rte_eth_dev *dev, > uint16_t tx_queue_id, > uint16_t nb_tx_desc, > unsigned int socket_id, > const struct rte_eth_txconf *tx_conf); > -/**< @internal Setup a transmit queue of an Ethernet device. */ >=20 > +/** @internal Enable interrupt of a receive queue of an Ethernet device.= */ > typedef int (*eth_rx_enable_intr_t)(struct rte_eth_dev *dev, > uint16_t rx_queue_id); > -/**< @internal Enable interrupt of a receive queue of an Ethernet device= . */ >=20 > +/** @internal Disable interrupt of a receive queue of an Ethernet device= . */ > typedef int (*eth_rx_disable_intr_t)(struct rte_eth_dev *dev, > uint16_t rx_queue_id); > -/**< @internal Disable interrupt of a receive queue of an Ethernet devic= e. */ >=20 > +/** @internal Release memory resources allocated by given RX/TX queue. *= / > typedef void (*eth_queue_release_t)(struct rte_eth_dev *dev, > uint16_t queue_id); > -/**< @internal Release memory resources allocated by given RX/TX queue. = */ >=20 > +/** @internal Get firmware information of an Ethernet device. */ > typedef int (*eth_fw_version_get_t)(struct rte_eth_dev *dev, > char *fw_version, size_t fw_size); > -/**< @internal Get firmware information of an Ethernet device. */ >=20 > +/** @internal Force mbufs to be from TX ring. */ > typedef int (*eth_tx_done_cleanup_t)(void *txq, uint32_t free_cnt); > -/**< @internal Force mbufs to be from TX ring. */ >=20 > typedef void (*eth_rxq_info_get_t)(struct rte_eth_dev *dev, > uint16_t rx_queue_id, struct rte_eth_rxq_info *qinfo); > @@ -486,159 +490,159 @@ typedef void (*eth_txq_info_get_t)(struct rte_eth= _dev *dev, > typedef int (*eth_burst_mode_get_t)(struct rte_eth_dev *dev, > uint16_t queue_id, struct rte_eth_burst_mode *mode); >=20 > +/** @internal Set MTU. */ > typedef int (*mtu_set_t)(struct rte_eth_dev *dev, uint16_t mtu); > -/**< @internal Set MTU. */ >=20 > +/** @internal Filtering of a VLAN Tag Identifier by an Ethernet device. = */ > typedef int (*vlan_filter_set_t)(struct rte_eth_dev *dev, > uint16_t vlan_id, > int on); > -/**< @internal filtering of a VLAN Tag Identifier by an Ethernet device.= */ >=20 > +/** @internal Set the outer/inner VLAN-TPID by an Ethernet device. */ > typedef int (*vlan_tpid_set_t)(struct rte_eth_dev *dev, > enum rte_vlan_type type, uint16_t tpid); > -/**< @internal set the outer/inner VLAN-TPID by an Ethernet device. */ >=20 > +/** @internal Set VLAN offload function by an Ethernet device. */ > typedef int (*vlan_offload_set_t)(struct rte_eth_dev *dev, int mask); > -/**< @internal set VLAN offload function by an Ethernet device. */ >=20 > +/** @internal Set port based TX VLAN insertion by an Ethernet device. */ > typedef int (*vlan_pvid_set_t)(struct rte_eth_dev *dev, > uint16_t vlan_id, > int on); > -/**< @internal set port based TX VLAN insertion by an Ethernet device. *= / >=20 > +/** @internal VLAN stripping enable/disable by an queue of Ethernet devi= ce. */ > typedef void (*vlan_strip_queue_set_t)(struct rte_eth_dev *dev, > uint16_t rx_queue_id, > int on); > -/**< @internal VLAN stripping enable/disable by an queue of Ethernet dev= ice. */ >=20 > +/** @internal Get current flow control parameter on an Ethernet device. = */ > typedef int (*flow_ctrl_get_t)(struct rte_eth_dev *dev, > struct rte_eth_fc_conf *fc_conf); > -/**< @internal Get current flow control parameter on an Ethernet device = */ >=20 > +/** @internal Setup flow control parameter on an Ethernet device. */ > typedef int (*flow_ctrl_set_t)(struct rte_eth_dev *dev, > struct rte_eth_fc_conf *fc_conf); > -/**< @internal Setup flow control parameter on an Ethernet device */ >=20 > +/** @internal Setup priority flow control parameter on an Ethernet devic= e. */ > typedef int (*priority_flow_ctrl_set_t)(struct rte_eth_dev *dev, > struct rte_eth_pfc_conf *pfc_conf); > -/**< @internal Setup priority flow control parameter on an Ethernet devi= ce */ >=20 > +/** @internal Update RSS redirection table on an Ethernet device. */ > typedef int (*reta_update_t)(struct rte_eth_dev *dev, > struct rte_eth_rss_reta_entry64 *reta_conf, > uint16_t reta_size); > -/**< @internal Update RSS redirection table on an Ethernet device */ >=20 > +/** @internal Query RSS redirection table on an Ethernet device. */ > typedef int (*reta_query_t)(struct rte_eth_dev *dev, > struct rte_eth_rss_reta_entry64 *reta_conf, > uint16_t reta_size); > -/**< @internal Query RSS redirection table on an Ethernet device */ >=20 > +/** @internal Update RSS hash configuration of an Ethernet device. */ > typedef int (*rss_hash_update_t)(struct rte_eth_dev *dev, > struct rte_eth_rss_conf *rss_conf); > -/**< @internal Update RSS hash configuration of an Ethernet device */ >=20 > +/** @internal Get current RSS hash configuration of an Ethernet device. = */ > typedef int (*rss_hash_conf_get_t)(struct rte_eth_dev *dev, > struct rte_eth_rss_conf *rss_conf); > -/**< @internal Get current RSS hash configuration of an Ethernet device = */ >=20 > +/** @internal Turn on SW controllable LED on an Ethernet device. */ > typedef int (*eth_dev_led_on_t)(struct rte_eth_dev *dev); > -/**< @internal Turn on SW controllable LED on an Ethernet device */ >=20 > +/** @internal Turn off SW controllable LED on an Ethernet device. */ > typedef int (*eth_dev_led_off_t)(struct rte_eth_dev *dev); > -/**< @internal Turn off SW controllable LED on an Ethernet device */ >=20 > +/** @internal Remove MAC address from receive address register. */ > typedef void (*eth_mac_addr_remove_t)(struct rte_eth_dev *dev, uint32_t = index); > -/**< @internal Remove MAC address from receive address register */ >=20 > +/** @internal Set a MAC address into Receive Address Register. */ > typedef int (*eth_mac_addr_add_t)(struct rte_eth_dev *dev, > struct rte_ether_addr *mac_addr, > uint32_t index, > uint32_t vmdq); > -/**< @internal Set a MAC address into Receive Address Register */ >=20 > +/** @internal Set a MAC address into Receive Address Register. */ > typedef int (*eth_mac_addr_set_t)(struct rte_eth_dev *dev, > struct rte_ether_addr *mac_addr); > -/**< @internal Set a MAC address into Receive Address Register */ >=20 > +/** @internal Set a Unicast Hash bitmap. */ > typedef int (*eth_uc_hash_table_set_t)(struct rte_eth_dev *dev, > struct rte_ether_addr *mac_addr, > uint8_t on); > -/**< @internal Set a Unicast Hash bitmap */ >=20 > +/** @internal Set all Unicast Hash bitmap. */ > typedef int (*eth_uc_all_hash_table_set_t)(struct rte_eth_dev *dev, > uint8_t on); > -/**< @internal Set all Unicast Hash bitmap */ >=20 > +/** @internal Set queue TX rate. */ > typedef int (*eth_set_queue_rate_limit_t)(struct rte_eth_dev *dev, > uint16_t queue_idx, > uint16_t tx_rate); > -/**< @internal Set queue TX rate */ >=20 > +/** @internal Add tunneling UDP port. */ > typedef int (*eth_udp_tunnel_port_add_t)(struct rte_eth_dev *dev, > struct rte_eth_udp_tunnel *tunnel_udp); > -/**< @internal Add tunneling UDP port */ >=20 > +/** @internal Delete tunneling UDP port. */ > typedef int (*eth_udp_tunnel_port_del_t)(struct rte_eth_dev *dev, > struct rte_eth_udp_tunnel *tunnel_udp); > -/**< @internal Delete tunneling UDP port */ >=20 > +/** @internal set the list of multicast addresses on an Ethernet device.= */ > typedef int (*eth_set_mc_addr_list_t)(struct rte_eth_dev *dev, > struct rte_ether_addr *mc_addr_set, > uint32_t nb_mc_addr); > -/**< @internal set the list of multicast addresses on an Ethernet device= */ >=20 > +/** @internal Function used to enable IEEE1588/802.1AS timestamping. */ > typedef int (*eth_timesync_enable_t)(struct rte_eth_dev *dev); > -/**< @internal Function used to enable IEEE1588/802.1AS timestamping. */ >=20 > +/** @internal Function used to disable IEEE1588/802.1AS timestamping. */ > typedef int (*eth_timesync_disable_t)(struct rte_eth_dev *dev); > -/**< @internal Function used to disable IEEE1588/802.1AS timestamping. *= / >=20 > +/** @internal Function used to read an RX IEEE1588/802.1AS timestamp. */ > typedef int (*eth_timesync_read_rx_timestamp_t)(struct rte_eth_dev *dev, > struct timespec *timestamp, > uint32_t flags); > -/**< @internal Function used to read an RX IEEE1588/802.1AS timestamp. *= / >=20 > +/** @internal Function used to read a TX IEEE1588/802.1AS timestamp. */ > typedef int (*eth_timesync_read_tx_timestamp_t)(struct rte_eth_dev *dev, > struct timespec *timestamp); > -/**< @internal Function used to read a TX IEEE1588/802.1AS timestamp. */ >=20 > +/** @internal Function used to adjust the device clock. */ > typedef int (*eth_timesync_adjust_time)(struct rte_eth_dev *dev, int64_t= ); > -/**< @internal Function used to adjust the device clock */ >=20 > +/** @internal Function used to get time from the device clock. */ > typedef int (*eth_timesync_read_time)(struct rte_eth_dev *dev, > struct timespec *timestamp); > -/**< @internal Function used to get time from the device clock. */ >=20 > +/** @internal Function used to get time from the device clock. */ > typedef int (*eth_timesync_write_time)(struct rte_eth_dev *dev, > const struct timespec *timestamp); > -/**< @internal Function used to get time from the device clock */ >=20 > +/** @internal Function used to get the current value of the device clock= . */ > typedef int (*eth_read_clock)(struct rte_eth_dev *dev, > uint64_t *timestamp); > -/**< @internal Function used to get the current value of the device cloc= k. */ >=20 > +/** @internal Retrieve registers. */ > typedef int (*eth_get_reg_t)(struct rte_eth_dev *dev, > struct rte_dev_reg_info *info); > -/**< @internal Retrieve registers */ >=20 > +/** @internal Retrieve eeprom size. */ > typedef int (*eth_get_eeprom_length_t)(struct rte_eth_dev *dev); > -/**< @internal Retrieve eeprom size */ >=20 > +/** @internal Retrieve eeprom data. */ > typedef int (*eth_get_eeprom_t)(struct rte_eth_dev *dev, > struct rte_dev_eeprom_info *info); > -/**< @internal Retrieve eeprom data */ >=20 > +/** @internal Program eeprom data. */ > typedef int (*eth_set_eeprom_t)(struct rte_eth_dev *dev, > struct rte_dev_eeprom_info *info); > -/**< @internal Program eeprom data */ >=20 > +/** @internal Retrieve type and size of plugin module eeprom. */ > typedef int (*eth_get_module_info_t)(struct rte_eth_dev *dev, > struct rte_eth_dev_module_info *modinfo); > -/**< @internal Retrieve type and size of plugin module eeprom */ >=20 > +/** @internal Retrieve plugin module eeprom data. */ > typedef int (*eth_get_module_eeprom_t)(struct rte_eth_dev *dev, > struct rte_dev_eeprom_info *info); > -/**< @internal Retrieve plugin module eeprom data */ >=20 > struct rte_flow_ops; > /** > @@ -651,19 +655,19 @@ struct rte_flow_ops; > typedef int (*eth_flow_ops_get_t)(struct rte_eth_dev *dev, > const struct rte_flow_ops **ops); >=20 > +/** @internal Get Traffic Management (TM) operations on an Ethernet devi= ce. */ > typedef int (*eth_tm_ops_get_t)(struct rte_eth_dev *dev, void *ops); > -/**< @internal Get Traffic Management (TM) operations on an Ethernet dev= ice */ >=20 > +/** @internal Get Traffic Metering and Policing (MTR) operations. */ > typedef int (*eth_mtr_ops_get_t)(struct rte_eth_dev *dev, void *ops); > -/**< @internal Get Traffic Metering and Policing (MTR) operations */ >=20 > +/** @internal Get dcb information on an Ethernet device. */ > typedef int (*eth_get_dcb_info)(struct rte_eth_dev *dev, > struct rte_eth_dcb_info *dcb_info); > -/**< @internal Get dcb information on an Ethernet device */ >=20 > +/** @internal Test if a port supports specific mempool ops. */ > typedef int (*eth_pool_ops_supported_t)(struct rte_eth_dev *dev, > const char *pool); > -/**< @internal Test if a port supports specific mempool ops */ >=20 > /** > * @internal > @@ -905,20 +909,20 @@ typedef int (*eth_hairpin_bind_t)(struct rte_eth_de= v *dev, > typedef int (*eth_hairpin_unbind_t)(struct rte_eth_dev *dev, > uint16_t rx_port); >=20 > +/** @internal Update and fetch peer queue information. */ > typedef int (*eth_hairpin_queue_peer_update_t) > (struct rte_eth_dev *dev, uint16_t peer_queue, > struct rte_hairpin_peer_info *current_info, > struct rte_hairpin_peer_info *peer_info, uint32_t direction); > -/**< @internal Update and fetch peer queue information. */ >=20 > +/** @internal Bind peer queue to the current queue with fetched informat= ion. */ > typedef int (*eth_hairpin_queue_peer_bind_t) > (struct rte_eth_dev *dev, uint16_t cur_queue, > struct rte_hairpin_peer_info *peer_info, uint32_t direction); > -/**< @internal Bind peer queue to the current queue with fetched informa= tion. */ >=20 > +/** @internal Unbind peer queue from the current queue. */ > typedef int (*eth_hairpin_queue_peer_unbind_t) > (struct rte_eth_dev *dev, uint16_t cur_queue, uint32_t direction); > -/**< @internal Unbind peer queue from the current queue. */ >=20 > /** > * @internal > @@ -992,8 +996,8 @@ struct eth_dev_ops { > eth_dev_close_t dev_close; /**< Close device. */ > eth_dev_reset_t dev_reset; /**< Reset device. */ > eth_link_update_t link_update; /**< Get device link state. *= / > + /** Check if the device was physically removed. */ > eth_is_removed_t is_removed; > - /**< Check if the device was physically removed. */ >=20 > eth_promiscuous_enable_t promiscuous_enable; /**< Promiscuous ON. */ > eth_promiscuous_disable_t promiscuous_disable;/**< Promiscuous OFF. */ > @@ -1009,10 +1013,10 @@ struct eth_dev_ops { > eth_stats_reset_t stats_reset; /**< Reset generic device sta= tistics. */ > eth_xstats_get_t xstats_get; /**< Get extended device stat= istics. */ > eth_xstats_reset_t xstats_reset; /**< Reset extended device st= atistics. */ > + /** Get names of extended statistics. */ > eth_xstats_get_names_t xstats_get_names; > - /**< Get names of extended statistics. */ > + /** Configure per queue stat counter mapping. */ > eth_queue_stats_mapping_set_t queue_stats_mapping_set; > - /**< Configure per queue stat counter mapping. */ >=20 > eth_dev_infos_get_t dev_infos_get; /**< Get device info. */ > eth_rxq_info_get_t rxq_info_get; /**< retrieve RX queue informa= tion. */ > @@ -1020,10 +1024,13 @@ struct eth_dev_ops { > eth_burst_mode_get_t rx_burst_mode_get; /**< Get RX burst mode */ > eth_burst_mode_get_t tx_burst_mode_get; /**< Get TX burst mode */ > eth_fw_version_get_t fw_version_get; /**< Get firmware version. *= / > + /** Get packet types supported and identified by device. */ > eth_dev_supported_ptypes_get_t dev_supported_ptypes_get; > - /**< Get packet types supported and identified by device. */ > + /** > + * Inform Ethernet device about reduced range of packet types to > + * handle. > + */ > eth_dev_ptypes_set_t dev_ptypes_set; > - /**< Inform Ethernet device about reduced range of packet types to hand= le. */ >=20 > vlan_filter_set_t vlan_filter_set; /**< Filter VLAN Setup. */ > vlan_tpid_set_t vlan_tpid_set; /**< Outer/Inner VLAN TPID Se= tup. */ > @@ -1092,51 +1099,52 @@ struct eth_dev_ops { >=20 > eth_read_clock read_clock; >=20 > + /** Get extended device statistic values by ID. */ > eth_xstats_get_by_id_t xstats_get_by_id; > - /**< Get extended device statistic values by ID. */ > + /** Get name of extended device statistics by ID. */ > eth_xstats_get_names_by_id_t xstats_get_names_by_id; > - /**< Get name of extended device statistics by ID. */ >=20 > + /** Get Traffic Management (TM) operations. */ > eth_tm_ops_get_t tm_ops_get; > - /**< Get Traffic Management (TM) operations. */ >=20 > + /** Get Traffic Metering and Policing (MTR) operations. */ > eth_mtr_ops_get_t mtr_ops_get; > - /**< Get Traffic Metering and Policing (MTR) operations. */ >=20 > + /** Test if a port supports specific mempool ops */ > eth_pool_ops_supported_t pool_ops_supported; > - /**< Test if a port supports specific mempool ops */ >=20 > + /** Returns the hairpin capabilities. */ > eth_hairpin_cap_get_t hairpin_cap_get; > - /**< Returns the hairpin capabilities. */ > + /** Set up device RX hairpin queue. */ > eth_rx_hairpin_queue_setup_t rx_hairpin_queue_setup; > - /**< Set up device RX hairpin queue. */ > + /** Set up device TX hairpin queue. */ > eth_tx_hairpin_queue_setup_t tx_hairpin_queue_setup; > - /**< Set up device TX hairpin queue. */ >=20 > + /** Get Forward Error Correction(FEC) capability. */ > eth_fec_get_capability_t fec_get_capability; > - /**< Get Forward Error Correction(FEC) capability. */ > + /** Get Forward Error Correction(FEC) mode. */ > eth_fec_get_t fec_get; > - /**< Get Forward Error Correction(FEC) mode. */ > + /** Set Forward Error Correction(FEC) mode. */ > eth_fec_set_t fec_set; > - /**< Set Forward Error Correction(FEC) mode. */ > + > + /** Get hairpin peer ports list. */ > hairpin_get_peer_ports_t hairpin_get_peer_ports; > - /**< Get hairpin peer ports list. */ > + /** Bind all hairpin Tx queues of device to the peer port Rx queues. */ > eth_hairpin_bind_t hairpin_bind; > - /**< Bind all hairpin Tx queues of device to the peer port Rx queues. *= / > + /** Unbind all hairpin Tx queues from the peer port Rx queues. */ > eth_hairpin_unbind_t hairpin_unbind; > - /**< Unbind all hairpin Tx queues from the peer port Rx queues. */ > + /** Pass the current queue info and get the peer queue info. */ > eth_hairpin_queue_peer_update_t hairpin_queue_peer_update; > - /**< Pass the current queue info and get the peer queue info. */ > + /** Set up the connection between the pair of hairpin queues. */ > eth_hairpin_queue_peer_bind_t hairpin_queue_peer_bind; > - /**< Set up the connection between the pair of hairpin queues. */ > + /** Disconnect the hairpin queues of a pair from each other. */ > eth_hairpin_queue_peer_unbind_t hairpin_queue_peer_unbind; > - /**< Disconnect the hairpin queues of a pair from each other. */ >=20 > + /** Get power monitoring condition for Rx queue. */ > eth_get_monitor_addr_t get_monitor_addr; > - /**< Get power monitoring condition for Rx queue. */ >=20 > + /** Get representor info. */ > eth_representor_info_get_t representor_info_get; > - /**< Get representor info. */ >=20 > /** > * Negotiate the NIC's ability to deliver specific > diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h > index 69766eaae2..2d43c226f6 100644 > --- a/lib/ethdev/rte_ethdev.h > +++ b/lib/ethdev/rte_ethdev.h > @@ -256,24 +256,25 @@ struct rte_eth_stats { > uint64_t opackets; /**< Total number of successfully transmitted packe= ts.*/ > uint64_t ibytes; /**< Total number of successfully received bytes. *= / > uint64_t obytes; /**< Total number of successfully transmitted bytes= . */ > - uint64_t imissed; > - /**< Total of RX packets dropped by the HW, > + /** > + * Total of RX packets dropped by the HW, > * because there are no available buffer (i.e. RX queues are full). > */ > + uint64_t imissed; > uint64_t ierrors; /**< Total number of erroneous received packets. */ > uint64_t oerrors; /**< Total number of failed transmitted packets. */ > uint64_t rx_nombuf; /**< Total number of RX mbuf allocation failures. *= / > /* Queue stats are limited to max 256 queues */ > + /** Total number of queue RX packets. */ > uint64_t q_ipackets[RTE_ETHDEV_QUEUE_STAT_CNTRS]; > - /**< Total number of queue RX packets. */ > + /** Total number of queue TX packets. */ > uint64_t q_opackets[RTE_ETHDEV_QUEUE_STAT_CNTRS]; > - /**< Total number of queue TX packets. */ > + /** Total number of successfully received queue bytes. */ > uint64_t q_ibytes[RTE_ETHDEV_QUEUE_STAT_CNTRS]; > - /**< Total number of successfully received queue bytes. */ > + /** Total number of successfully transmitted queue bytes. */ > uint64_t q_obytes[RTE_ETHDEV_QUEUE_STAT_CNTRS]; > - /**< Total number of successfully transmitted queue bytes. */ > + /** Total number of queue packets received that are dropped. */ > uint64_t q_errors[RTE_ETHDEV_QUEUE_STAT_CNTRS]; > - /**< Total number of queue packets received that are dropped. */ > }; >=20 > /**@{@name Link speed capabilities > @@ -499,8 +500,8 @@ struct rte_eth_rss_conf { > #define RTE_ETH_FLOW_IPV6_EX 15 > #define RTE_ETH_FLOW_IPV6_TCP_EX 16 > #define RTE_ETH_FLOW_IPV6_UDP_EX 17 > +/** Consider device port number as a flow differentiator */ > #define RTE_ETH_FLOW_PORT 18 > - /**< Consider device port number as a flow differentiator */ > #define RTE_ETH_FLOW_VXLAN 19 /**< VXLAN protocol based flo= w */ > #define RTE_ETH_FLOW_GENEVE 20 /**< GENEVE protocol based fl= ow */ > #define RTE_ETH_FLOW_NVGRE 21 /**< NVGRE protocol based flo= w */ > @@ -768,7 +769,7 @@ rte_eth_rss_hf_refine(uint64_t rss_hf) > ETH_RSS_S_VLAN | \ > ETH_RSS_C_VLAN) >=20 > -/**< Mask of valid RSS hash protocols */ > +/** Mask of valid RSS hash protocols */ > #define ETH_RSS_PROTO_MASK ( \ > ETH_RSS_IPV4 | \ > ETH_RSS_FRAG_IPV4 | \ > @@ -851,10 +852,10 @@ rte_eth_rss_hf_refine(uint64_t rss_hf) > * is needed. > */ > struct rte_eth_rss_reta_entry64 { > + /** Mask bits indicate which entries need to be updated/queried. */ > uint64_t mask; > - /**< Mask bits indicate which entries need to be updated/queried. */ > + /** Group of 64 redirection table entries. */ > uint16_t reta[RTE_RETA_GROUP_SIZE]; > - /**< Group of 64 redirection table entries. */ > }; >=20 > /** > @@ -920,8 +921,8 @@ struct rte_eth_vmdq_dcb_conf { > uint16_t vlan_id; /**< The vlan id of the received frame */ > uint64_t pools; /**< Bitmask of pools for packet rx */ > } pool_map[ETH_VMDQ_MAX_VLAN_FILTERS]; /**< VMDq vlan pool maps. */ > + /** Selects a queue in a pool */ > uint8_t dcb_tc[ETH_DCB_NUM_USER_PRIORITIES]; > - /**< Selects a queue in a pool */ > }; >=20 > /** > @@ -969,12 +970,12 @@ struct rte_eth_txmode { >=20 > uint16_t pvid; > __extension__ > - uint8_t hw_vlan_reject_tagged : 1, > - /**< If set, reject sending out tagged pkts */ > + uint8_t /** If set, reject sending out tagged pkts */ > + hw_vlan_reject_tagged : 1, > + /** If set, reject sending out untagged pkts */ > hw_vlan_reject_untagged : 1, > - /**< If set, reject sending out untagged pkts */ > + /** If set, enable port based VLAN insertion */ > hw_vlan_insert_pvid : 1; > - /**< If set, enable port based VLAN insertion */ >=20 > uint64_t reserved_64s[2]; /**< Reserved for future fields */ > void *reserved_ptrs[2]; /**< Reserved for future fields */ > @@ -1268,8 +1269,8 @@ struct rte_fdir_conf { > /** RX queue of packets matching a "drop" filter in perfect mode. */ > uint8_t drop_queue; > struct rte_eth_fdir_masks mask; > + /** Flex payload configuration. */ > struct rte_eth_fdir_flex_conf flex_conf; > - /**< Flex payload configuration. */ > }; >=20 > /** > @@ -1320,20 +1321,20 @@ struct rte_eth_conf { > are defined in implementation of each driver. */ > struct { > struct rte_eth_rss_conf rss_conf; /**< Port RSS configuration */ > + /** Port vmdq+dcb configuration. */ > struct rte_eth_vmdq_dcb_conf vmdq_dcb_conf; > - /**< Port vmdq+dcb configuration. */ > + /** Port dcb RX configuration. */ > struct rte_eth_dcb_rx_conf dcb_rx_conf; > - /**< Port dcb RX configuration. */ > + /** Port vmdq RX configuration. */ > struct rte_eth_vmdq_rx_conf vmdq_rx_conf; > - /**< Port vmdq RX configuration. */ > } rx_adv_conf; /**< Port RX filtering configuration. */ > union { > + /** Port vmdq+dcb TX configuration. */ > struct rte_eth_vmdq_dcb_tx_conf vmdq_dcb_tx_conf; > - /**< Port vmdq+dcb TX configuration. */ > + /** Port dcb TX configuration. */ > struct rte_eth_dcb_tx_conf dcb_tx_conf; > - /**< Port dcb TX configuration. */ > + /** Port vmdq TX configuration. */ > struct rte_eth_vmdq_tx_conf vmdq_tx_conf; > - /**< Port vmdq TX configuration. */ > } tx_adv_conf; /**< Port TX DCB configuration (union). */ > /** Currently,Priority Flow Control(PFC) are supported,if DCB with PFC > is needed,and the variable must be set ETH_DCB_PFC_SUPPORT. */ > @@ -1400,17 +1401,19 @@ struct rte_eth_conf { > #define DEV_TX_OFFLOAD_IPIP_TNL_TSO 0x00000800 /**< Used for tunn= eling packet. */ > #define DEV_TX_OFFLOAD_GENEVE_TNL_TSO 0x00001000 /**< Used for tunn= eling packet. */ > #define DEV_TX_OFFLOAD_MACSEC_INSERT 0x00002000 > -#define DEV_TX_OFFLOAD_MT_LOCKFREE 0x00004000 > -/**< Multiple threads can invoke rte_eth_tx_burst() concurrently on the = same > +/** > + * Multiple threads can invoke rte_eth_tx_burst() concurrently on the sa= me > * tx queue without SW lock. > */ > +#define DEV_TX_OFFLOAD_MT_LOCKFREE 0x00004000 > +/** Device supports multi segment send. */ > #define DEV_TX_OFFLOAD_MULTI_SEGS 0x00008000 > -/**< Device supports multi segment send. */ > -#define DEV_TX_OFFLOAD_MBUF_FAST_FREE 0x00010000 > -/**< Device supports optimization for fast release of mbufs. > - * When set application must guarantee that per-queue all mbufs comes = from > - * the same mempool and has refcnt =3D 1. > +/** > + * Device supports optimization for fast release of mbufs. > + * When set application must guarantee that per-queue all mbufs comes fr= om > + * the same mempool and has refcnt =3D 1. > */ > +#define DEV_TX_OFFLOAD_MBUF_FAST_FREE 0x00010000 > #define DEV_TX_OFFLOAD_SECURITY 0x00020000 > /** > * Device supports generic UDP tunneled packet TSO. > @@ -1479,14 +1482,14 @@ struct rte_eth_dev_portconf { > struct rte_eth_switch_info { > const char *name; /**< switch name */ > uint16_t domain_id; /**< switch domain id */ > - uint16_t port_id; > - /**< > - * mapping to the devices physical switch port as enumerated from the > + /** > + * Mapping to the devices physical switch port as enumerated from the > * perspective of the embedded interconnect/switch. For SR-IOV enabled > * device this may correspond to the VF_ID of each virtual function, > * but each driver should explicitly define the mapping of switch > * port identifier to that physical interconnect/switch > */ > + uint16_t port_id; > }; >=20 > /** > @@ -1543,16 +1546,16 @@ struct rte_eth_dev_info { > uint16_t max_vfs; /**< Maximum number of VFs. */ > uint16_t max_vmdq_pools; /**< Maximum number of VMDq pools. */ > struct rte_eth_rxseg_capa rx_seg_capa; /**< Segmentation capability.*/ > + /** All RX offload capabilities including all per-queue ones */ > uint64_t rx_offload_capa; > - /**< All RX offload capabilities including all per-queue ones */ > + /** All TX offload capabilities including all per-queue ones */ > uint64_t tx_offload_capa; > - /**< All TX offload capabilities including all per-queue ones */ > + /** Device per-queue RX offload capabilities. */ > uint64_t rx_queue_offload_capa; > - /**< Device per-queue RX offload capabilities. */ > + /** Device per-queue TX offload capabilities. */ > uint64_t tx_queue_offload_capa; > - /**< Device per-queue TX offload capabilities. */ > + /** Device redirection table size, the total number of entries. */ > uint16_t reta_size; > - /**< Device redirection table size, the total number of entries. */ > uint8_t hash_key_size; /**< Hash key size in bytes */ > /** Bit mask of RSS offloads, the bit offset also means flow type */ > uint64_t flow_type_rss_offloads; > @@ -1740,13 +1743,13 @@ struct rte_eth_fec_capa { > } while (0) >=20 > /**@{@name L2 tunnel configuration */ > -/**< l2 tunnel enable mask */ > +/** L2 tunnel enable mask */ > #define ETH_L2_TUNNEL_ENABLE_MASK 0x00000001 > -/**< l2 tunnel insertion mask */ > +/** L2 tunnel insertion mask */ > #define ETH_L2_TUNNEL_INSERTION_MASK 0x00000002 > -/**< l2 tunnel stripping mask */ > +/** L2 tunnel stripping mask */ > #define ETH_L2_TUNNEL_STRIPPING_MASK 0x00000004 > -/**< l2 tunnel forwarding mask */ > +/** L2 tunnel forwarding mask */ > #define ETH_L2_TUNNEL_FORWARDING_MASK 0x00000008 > /**@}*/ >=20 > @@ -3347,8 +3350,8 @@ struct rte_eth_dev_tx_buffer { > void *error_userdata; > uint16_t size; /**< Size of buffer for buffered tx */ > uint16_t length; /**< Number of packets in the array */ > + /** Pending packets to be sent on explicit flush or when full */ > struct rte_mbuf *pkts[]; > - /**< Pending packets to be sent on explicit flush or when full */ > }; >=20 > /** > @@ -3487,16 +3490,16 @@ rte_eth_tx_done_cleanup(uint16_t port_id, uint16_= t queue_id, uint32_t > free_cnt); > * eth device. > */ > enum rte_eth_event_ipsec_subtype { > + /** Unknown event type */ > RTE_ETH_EVENT_IPSEC_UNKNOWN =3D 0, > - /**< Unknown event type */ > + /** Sequence number overflow */ > RTE_ETH_EVENT_IPSEC_ESN_OVERFLOW, > - /**< Sequence number overflow */ > + /** Soft time expiry of SA */ > RTE_ETH_EVENT_IPSEC_SA_TIME_EXPIRY, > - /**< Soft time expiry of SA */ > + /** Soft byte expiry of SA */ > RTE_ETH_EVENT_IPSEC_SA_BYTE_EXPIRY, > - /**< Soft byte expiry of SA */ > + /** Max value of this enum */ > RTE_ETH_EVENT_IPSEC_MAX > - /**< Max value of this enum */ > }; >=20 > /** > @@ -3504,22 +3507,23 @@ enum rte_eth_event_ipsec_subtype { > * information of the IPsec offload event. > */ > struct rte_eth_event_ipsec_desc { > + /** Type of RTE_ETH_EVENT_IPSEC_* event */ > enum rte_eth_event_ipsec_subtype subtype; > - /**< Type of RTE_ETH_EVENT_IPSEC_* event */ > + /** > + * Event specific metadata. > + * > + * For the following events, *userdata* registered > + * with the *rte_security_session* would be returned > + * as metadata, > + * > + * - @ref RTE_ETH_EVENT_IPSEC_ESN_OVERFLOW > + * - @ref RTE_ETH_EVENT_IPSEC_SA_TIME_EXPIRY > + * - @ref RTE_ETH_EVENT_IPSEC_SA_BYTE_EXPIRY > + * > + * @see struct rte_security_session_conf > + * > + */ > uint64_t metadata; > - /**< Event specific metadata > - * > - * For the following events, *userdata* registered > - * with the *rte_security_session* would be returned > - * as metadata, > - * > - * - @ref RTE_ETH_EVENT_IPSEC_ESN_OVERFLOW > - * - @ref RTE_ETH_EVENT_IPSEC_SA_TIME_EXPIRY > - * - @ref RTE_ETH_EVENT_IPSEC_SA_BYTE_EXPIRY > - * > - * @see struct rte_security_session_conf > - * > - */ > }; >=20 > /** > @@ -3528,10 +3532,10 @@ struct rte_eth_event_ipsec_desc { > enum rte_eth_event_type { > RTE_ETH_EVENT_UNKNOWN, /**< unknown event type */ > RTE_ETH_EVENT_INTR_LSC, /**< lsc interrupt event */ > + /** queue state event (enabled/disabled) */ > RTE_ETH_EVENT_QUEUE_STATE, > - /**< queue state event (enabled/disabled) */ > + /** reset interrupt event, sent to VF on PF reset */ > RTE_ETH_EVENT_INTR_RESET, > - /**< reset interrupt event, sent to VF on PF reset */ > RTE_ETH_EVENT_VF_MBOX, /**< message from the VF received by PF */ > RTE_ETH_EVENT_MACSEC, /**< MACsec offload related event */ > RTE_ETH_EVENT_INTR_RMV, /**< device removal event */ > @@ -3542,9 +3546,9 @@ enum rte_eth_event_type { > RTE_ETH_EVENT_MAX /**< max value of this enum */ > }; >=20 > +/** User application callback to be registered for interrupts. */ > typedef int (*rte_eth_dev_cb_fn)(uint16_t port_id, > enum rte_eth_event_type event, void *cb_arg, void *ret_param); > -/**< user application callback to be registered for interrupts */ >=20 > /** > * Register a callback function for port event. > diff --git a/lib/ethdev/rte_ethdev_core.h b/lib/ethdev/rte_ethdev_core.h > index 2b8660c578..18d725fca1 100644 > --- a/lib/ethdev/rte_ethdev_core.h > +++ b/lib/ethdev/rte_ethdev_core.h > @@ -25,30 +25,36 @@ RTE_TAILQ_HEAD(rte_eth_dev_cb_list, rte_eth_dev_callb= ack); >=20 > struct rte_eth_dev; >=20 > +/** > + * @internal Retrieve input packets from a receive queue of an Ethernet = device. > + */ > typedef uint16_t (*eth_rx_burst_t)(void *rxq, > struct rte_mbuf **rx_pkts, > uint16_t nb_pkts); > -/**< @internal Retrieve input packets from a receive queue of an Etherne= t device. */ >=20 > +/** > + * @internal Send output packets on a transmit queue of an Ethernet devi= ce. > + */ > typedef uint16_t (*eth_tx_burst_t)(void *txq, > struct rte_mbuf **tx_pkts, > uint16_t nb_pkts); > -/**< @internal Send output packets on a transmit queue of an Ethernet de= vice. */ >=20 > +/** > + * @internal Prepare output packets on a transmit queue of an Ethernet d= evice. > + */ > typedef uint16_t (*eth_tx_prep_t)(void *txq, > struct rte_mbuf **tx_pkts, > uint16_t nb_pkts); > -/**< @internal Prepare output packets on a transmit queue of an Ethernet= device. */ >=20 >=20 > +/** @internal Get number of used descriptors on a receive queue. */ > typedef uint32_t (*eth_rx_queue_count_t)(void *rxq); > -/**< @internal Get number of used descriptors on a receive queue. */ >=20 > +/** @internal Check the status of a Rx descriptor */ > typedef int (*eth_rx_descriptor_status_t)(void *rxq, uint16_t offset); > -/**< @internal Check the status of a Rx descriptor */ >=20 > +/** @internal Check the status of a Tx descriptor */ > typedef int (*eth_tx_descriptor_status_t)(void *txq, uint16_t offset); > -/**< @internal Check the status of a Tx descriptor */ >=20 > /** > * @internal > diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h > index d5bfdaaaf2..45b360d4ac 100644 > --- a/lib/ethdev/rte_flow.h > +++ b/lib/ethdev/rte_flow.h > @@ -892,8 +892,8 @@ struct rte_flow_item_vlan { > }; > struct rte_vlan_hdr hdr; > }; > + /** Packet header contains at least one more VLAN, after this VLAN. */ > uint32_t has_more_vlan:1; > - /**< Packet header contains at least one more VLAN, after this VLAN. */ > uint32_t reserved:31; /**< Reserved, must be zero. */ > }; >=20 > @@ -935,26 +935,26 @@ static const struct rte_flow_item_ipv4 rte_flow_ite= m_ipv4_mask =3D { > */ > struct rte_flow_item_ipv6 { > struct rte_ipv6_hdr hdr; /**< IPv6 header definition. */ > + /** Header contains Hop-by-Hop Options extension header. */ > uint32_t has_hop_ext:1; > - /**< Header contains Hop-by-Hop Options extension header. */ > + /** Header contains Routing extension header. */ > uint32_t has_route_ext:1; > - /**< Header contains Routing extension header. */ > + /** Header contains Fragment extension header. */ > uint32_t has_frag_ext:1; > - /**< Header contains Fragment extension header. */ > + /** Header contains Authentication extension header. */ > uint32_t has_auth_ext:1; > - /**< Header contains Authentication extension header. */ > + /** Header contains Encapsulation Security Payload extension header. */ > uint32_t has_esp_ext:1; > - /**< Header contains Encapsulation Security Payload extension header. *= / > + /** Header contains Destination Options extension header. */ > uint32_t has_dest_ext:1; > - /**< Header contains Destination Options extension header. */ > + /** Header contains Mobility extension header. */ > uint32_t has_mobil_ext:1; > - /**< Header contains Mobility extension header. */ > + /** Header contains Host Identity Protocol extension header. */ > uint32_t has_hip_ext:1; > - /**< Header contains Host Identity Protocol extension header. */ > + /** Header contains Shim6 Protocol extension header. */ > uint32_t has_shim6_ext:1; > - /**< Header contains Shim6 Protocol extension header. */ > + /** Reserved for future extension headers, must be zero. */ > uint32_t reserved:23; > - /**< Reserved for future extension headers, must be zero. */ > }; >=20 > /** Default mask for RTE_FLOW_ITEM_TYPE_IPV6. */ > @@ -2597,8 +2597,8 @@ struct rte_flow_action_queue { > struct rte_flow_action_age { > uint32_t timeout:24; /**< Time in seconds. */ > uint32_t reserved:8; /**< Reserved, must be zero. */ > + /** The user flow context, NULL means the rte_flow pointer. */ > void *context; > - /**< The user flow context, NULL means the rte_flow pointer. */ > }; >=20 > /** > @@ -2610,8 +2610,8 @@ struct rte_flow_action_age { > struct rte_flow_query_age { > uint32_t reserved:6; /**< Reserved, must be zero. */ > uint32_t aged:1; /**< 1 if aging timeout expired, 0 otherwise. */ > + /** sec_since_last_hit value is valid. */ > uint32_t sec_since_last_hit_valid:1; > - /**< sec_since_last_hit value is valid. */ > uint32_t sec_since_last_hit:24; /**< Seconds since last traffic hit. */ > }; >=20 > @@ -3242,7 +3242,7 @@ struct rte_flow_action_conntrack { > uint32_t last_direction:1; > /** No TCP check will be done except the state change. */ > uint32_t liberal_mode:1; > - /** + /** The current state of this connection. */ > enum rte_flow_conntrack_state state; > /** Scaling factor for maximal allowed ACK window. */ > uint8_t max_ack_window; > @@ -3355,9 +3355,9 @@ struct rte_flow_action_modify_data { > RTE_STD_C11 > union { > struct { > - /**< Encapsulation level or tag index. */ > + /** Encapsulation level or tag index. */ > uint32_t level; > - /**< Number of bits to skip from a field. */ > + /** Number of bits to skip from a field. */ > uint32_t offset; > }; > /** > @@ -3468,8 +3468,8 @@ struct rte_flow; > */ > struct rte_flow_action_sample { > uint32_t ratio; /**< packets sampled equals to '1/ratio'. */ > + /** sub-action list specific for the sampling hit cases. */ > const struct rte_flow_action *actions; > - /**< sub-action list specific for the sampling hit cases. */ > }; >=20 > /** > @@ -4101,10 +4101,10 @@ struct rte_flow_indir_action_conf { > * Action should be valid at least for one flow direction, > * otherwise it is invalid for both ingress and egress rules. > */ > + /** Action valid for rules applied to ingress traffic. */ > uint32_t ingress:1; > - /**< Action valid for rules applied to ingress traffic. */ > + /** Action valid for rules applied to egress traffic. */ > uint32_t egress:1; > - /**< Action valid for rules applied to egress traffic. */ > /** > * When set to 1, indicates that the action is valid for > * transfer traffic; otherwise, for non-transfer traffic. > diff --git a/lib/ethdev/rte_mtr_driver.h b/lib/ethdev/rte_mtr_driver.h > index 62273ed3a9..ee8c6ef7ad 100644 > --- a/lib/ethdev/rte_mtr_driver.h > +++ b/lib/ethdev/rte_mtr_driver.h > @@ -25,91 +25,91 @@ > extern "C" { > #endif >=20 > +/** @internal MTR capabilities get. */ > typedef int (*rte_mtr_capabilities_get_t)(struct rte_eth_dev *dev, > struct rte_mtr_capabilities *cap, > struct rte_mtr_error *error); > -/**< @internal MTR capabilities get */ >=20 > +/** @internal MTR meter profile add. */ > typedef int (*rte_mtr_meter_profile_add_t)(struct rte_eth_dev *dev, > uint32_t meter_profile_id, > struct rte_mtr_meter_profile *profile, > struct rte_mtr_error *error); > -/**< @internal MTR meter profile add */ >=20 > +/** @internal MTR meter profile delete. */ > typedef int (*rte_mtr_meter_profile_delete_t)(struct rte_eth_dev *dev, > uint32_t meter_profile_id, > struct rte_mtr_error *error); > -/**< @internal MTR meter profile delete */ >=20 > +/** @internal MTR meter policy validate. */ > typedef int (*rte_mtr_meter_policy_validate_t)(struct rte_eth_dev *dev, > struct rte_mtr_meter_policy_params *policy, > struct rte_mtr_error *error); > -/**< @internal MTR meter policy validate */ >=20 > +/** @internal MTR meter policy add. */ > typedef int (*rte_mtr_meter_policy_add_t)(struct rte_eth_dev *dev, > uint32_t policy_id, > struct rte_mtr_meter_policy_params *policy, > struct rte_mtr_error *error); > -/**< @internal MTR meter policy add */ >=20 > +/** @internal MTR meter policy delete. */ > typedef int (*rte_mtr_meter_policy_delete_t)(struct rte_eth_dev *dev, > uint32_t policy_id, > struct rte_mtr_error *error); > -/**< @internal MTR meter policy delete */ >=20 > +/** @internal MTR object create. */ > typedef int (*rte_mtr_create_t)(struct rte_eth_dev *dev, > uint32_t mtr_id, > struct rte_mtr_params *params, > int shared, > struct rte_mtr_error *error); > -/**< @internal MTR object create */ >=20 > +/** @internal MTR object destroy. */ > typedef int (*rte_mtr_destroy_t)(struct rte_eth_dev *dev, > uint32_t mtr_id, > struct rte_mtr_error *error); > -/**< @internal MTR object destroy */ >=20 > +/** @internal MTR object meter enable. */ > typedef int (*rte_mtr_meter_enable_t)(struct rte_eth_dev *dev, > uint32_t mtr_id, > struct rte_mtr_error *error); > -/**< @internal MTR object meter enable */ >=20 > +/** @internal MTR object meter disable. */ > typedef int (*rte_mtr_meter_disable_t)(struct rte_eth_dev *dev, > uint32_t mtr_id, > struct rte_mtr_error *error); > -/**< @internal MTR object meter disable */ >=20 > +/** @internal MTR object meter profile update. */ > typedef int (*rte_mtr_meter_profile_update_t)(struct rte_eth_dev *dev, > uint32_t mtr_id, > uint32_t meter_profile_id, > struct rte_mtr_error *error); > -/**< @internal MTR object meter profile update */ >=20 > +/** @internal MTR object meter policy update. */ > typedef int (*rte_mtr_meter_policy_update_t)(struct rte_eth_dev *dev, > uint32_t mtr_id, > uint32_t meter_policy_id, > struct rte_mtr_error *error); > -/**< @internal MTR object meter policy update */ >=20 > +/** @internal MTR object meter DSCP table update. */ > typedef int (*rte_mtr_meter_dscp_table_update_t)(struct rte_eth_dev *dev= , > uint32_t mtr_id, > enum rte_color *dscp_table, > struct rte_mtr_error *error); > -/**< @internal MTR object meter DSCP table update */ >=20 > +/** @internal MTR object enabled stats update. */ > typedef int (*rte_mtr_stats_update_t)(struct rte_eth_dev *dev, > uint32_t mtr_id, > uint64_t stats_mask, > struct rte_mtr_error *error); > -/**< @internal MTR object enabled stats update */ >=20 > +/** @internal MTR object stats read. */ > typedef int (*rte_mtr_stats_read_t)(struct rte_eth_dev *dev, > uint32_t mtr_id, > struct rte_mtr_stats *stats, > uint64_t *stats_mask, > int clear, > struct rte_mtr_error *error); > -/**< @internal MTR object stats read */ >=20 > struct rte_mtr_ops { > /** MTR capabilities get */ > -- > 2.30.2 Acked-by: Ori Kam Best, Ori