[dpdk-dev] [PATCH 2/2] ethdev: allow unknown link speed
Morten Brørup
mb at smartsharesystems.com
Fri Apr 10 12:53:08 CEST 2020
> From: Thomas Monjalon [mailto:thomas at monjalon.net]
> Sent: Wednesday, April 8, 2020 12:27 AM
>
> When querying the link informations, the link status is
> a mandatory major information.
> Other boolean values are supposed to be accurate:
> - duplex mode (half/full)
> - negotiation (auto/fixed)
>
> This API update is making explicit that the link speed information
> is optional.
> The value ETH_SPEED_NUM_NONE (0) was already part of the API.
> The value ETH_SPEED_NUM_UNKNOWN (infinite) is added to cover
> two different cases:
> - speed is not known by the driver
> - device is virtual
>
> Suggested-by: Morten Brørup <mb at smartsharesystems.com>
> Suggested-by: Benoit Ganne <bganne at cisco.com>
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
> lib/librte_ethdev/rte_ethdev.h | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/lib/librte_ethdev/rte_ethdev.h
> b/lib/librte_ethdev/rte_ethdev.h
> index d1a593ad11..2d51fd3444 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -300,6 +300,7 @@ struct rte_eth_stats {
> #define ETH_SPEED_NUM_50G 50000 /**< 50 Gbps */
> #define ETH_SPEED_NUM_56G 56000 /**< 56 Gbps */
> #define ETH_SPEED_NUM_100G 100000 /**< 100 Gbps */
> +#define ETH_SPEED_NUM_UNKNOWN UINT32_MAX /**< Unknown */
>
> /**
> * A structure used to retrieve link-level information of an Ethernet
> port.
> @@ -2245,15 +2246,16 @@ int rte_eth_allmulticast_disable(uint16_t
> port_id);
> int rte_eth_allmulticast_get(uint16_t port_id);
>
> /**
> - * Retrieve the status (ON/OFF), the speed (in Mbps) and the mode
> (HALF-DUPLEX
> - * or FULL-DUPLEX) of the physical link of an Ethernet device. It
> might need
> - * to wait up to 9 seconds in it.
> + * Retrieve the link status (up/down), the duplex mode (half/full),
> + * the negotiation (auto/fixed), and if available, the speed (Mbps).
> + *
> + * It might need to wait up to 9 seconds.
> + * @see rte_eth_link_get_nowait.
> *
> * @param port_id
> * The port identifier of the Ethernet device.
> * @param link
> - * A pointer to an *rte_eth_link* structure to be filled with
> - * the status, the speed and the mode of the Ethernet device link.
> + * Link informations written back.
informations -> information
> * @return
> * - (0) if successful.
> * - (-ENOTSUP) if the function is not supported in PMD driver.
> @@ -2262,15 +2264,13 @@ int rte_eth_allmulticast_get(uint16_t port_id);
> int rte_eth_link_get(uint16_t port_id, struct rte_eth_link *link);
>
> /**
> - * Retrieve the status (ON/OFF), the speed (in Mbps) and the mode
> (HALF-DUPLEX
> - * or FULL-DUPLEX) of the physical link of an Ethernet device. It is a
> no-wait
> - * version of rte_eth_link_get().
> + * Retrieve the link status (up/down), the duplex mode (half/full),
> + * the negotiation (auto/fixed), and if available, the speed (Mbps).
> *
> * @param port_id
> * The port identifier of the Ethernet device.
> * @param link
> - * A pointer to an *rte_eth_link* structure to be filled with
> - * the status, the speed and the mode of the Ethernet device link.
> + * Link informations written back.
informations -> information
> * @return
> * - (0) if successful.
> * - (-ENOTSUP) if the function is not supported in PMD driver.
> --
> 2.26.0
>
More information about the dev
mailing list