xref: /dpdk/lib/ethdev/ethdev_linux_ethtool.h (revision 6285aa6af4d1e1899527884589cdd0025771edb3)
1*6285aa6aSThomas Monjalon /* SPDX-License-Identifier: BSD-3-Clause
2*6285aa6aSThomas Monjalon  * Copyright (c) 2024 NVIDIA Corporation & Affiliates
3*6285aa6aSThomas Monjalon  */
4*6285aa6aSThomas Monjalon 
5*6285aa6aSThomas Monjalon #ifndef ETHDEV_ETHTOOL_H
6*6285aa6aSThomas Monjalon #define ETHDEV_ETHTOOL_H
7*6285aa6aSThomas Monjalon 
8*6285aa6aSThomas Monjalon #include <stdint.h>
9*6285aa6aSThomas Monjalon #include <linux/ethtool.h>
10*6285aa6aSThomas Monjalon 
11*6285aa6aSThomas Monjalon #include <rte_compat.h>
12*6285aa6aSThomas Monjalon 
13*6285aa6aSThomas Monjalon #ifdef __cplusplus
14*6285aa6aSThomas Monjalon extern "C" {
15*6285aa6aSThomas Monjalon #endif
16*6285aa6aSThomas Monjalon 
17*6285aa6aSThomas Monjalon /*
18*6285aa6aSThomas Monjalon  * Convert bit from ETHTOOL_LINK_MODE_* to RTE_ETH_LINK_SPEED_*
19*6285aa6aSThomas Monjalon  */
20*6285aa6aSThomas Monjalon __rte_internal
21*6285aa6aSThomas Monjalon uint32_t rte_eth_link_speed_ethtool(enum ethtool_link_mode_bit_indices bit);
22*6285aa6aSThomas Monjalon 
23*6285aa6aSThomas Monjalon /*
24*6285aa6aSThomas Monjalon  * Convert bitmap from ETHTOOL_GLINKSETTINGS ethtool_link_settings::link_mode_masks
25*6285aa6aSThomas Monjalon  * to bitmap RTE_ETH_LINK_SPEED_*
26*6285aa6aSThomas Monjalon  */
27*6285aa6aSThomas Monjalon __rte_internal
28*6285aa6aSThomas Monjalon uint32_t rte_eth_link_speed_glink(const uint32_t *bitmap, int8_t nwords);
29*6285aa6aSThomas Monjalon 
30*6285aa6aSThomas Monjalon /*
31*6285aa6aSThomas Monjalon  * Convert bitmap from deprecated ETHTOOL_GSET ethtool_cmd::supported
32*6285aa6aSThomas Monjalon  * to bitmap RTE_ETH_LINK_SPEED_*
33*6285aa6aSThomas Monjalon  */
34*6285aa6aSThomas Monjalon __rte_internal
35*6285aa6aSThomas Monjalon uint32_t rte_eth_link_speed_gset(uint32_t legacy_bitmap);
36*6285aa6aSThomas Monjalon 
37*6285aa6aSThomas Monjalon #ifdef __cplusplus
38*6285aa6aSThomas Monjalon }
39*6285aa6aSThomas Monjalon #endif
40*6285aa6aSThomas Monjalon 
41*6285aa6aSThomas Monjalon #endif /* ETHDEV_ETHTOOL_H */
42