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