Hello,

The title can be simply "ethdev: add link type".


08/09/2025 10:51, [email protected]:
> +* **Added ethdev API in library.*

Please be more specific, we don't need to group all ethdev changes together.
Each new API feature deserves a separate bullet.

> +
> +  * Added API to report type of link connection for a port.
> +    By default, it reports ``RTE_ETH_LINK_CONNECTOR_NONE``
> +    unless driver specifies it.

I think you need to explain what is a type (copper, fiber, etc).

[...]
> +RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_link_connector_to_str, 25.11)
> +const char *
> +rte_eth_link_connector_to_str(enum rte_eth_link_connector link_connector)
> +{
> +     static const char * const link_connector_str[] = {
> +             [RTE_ETH_LINK_CONNECTOR_NONE] = "None",
> +             [RTE_ETH_LINK_CONNECTOR_TP] = "Twisted Pair",
> +             [RTE_ETH_LINK_CONNECTOR_AUI] = "Attachment Unit Interface",
> +             [RTE_ETH_LINK_CONNECTOR_MII] = "Media Independent Interface",
> +             [RTE_ETH_LINK_CONNECTOR_FIBER] = "Fiber",
> +             [RTE_ETH_LINK_CONNECTOR_BNC] = "BNC",
> +             [RTE_ETH_LINK_CONNECTOR_DAC] = "Direct Attach Copper",
> +             [RTE_ETH_LINK_CONNECTOR_SGMII] = "SGMII",
> +             [RTE_ETH_LINK_CONNECTOR_QSGMII] = "QSGMII",
> +             [RTE_ETH_LINK_CONNECTOR_XFI] = "XFI",
> +             [RTE_ETH_LINK_CONNECTOR_SFI] = "SFI",
> +             [RTE_ETH_LINK_CONNECTOR_XLAUI] = "XLAUI",
> +             [RTE_ETH_LINK_CONNECTOR_GAUI] = "GAUI",
> +             [RTE_ETH_LINK_CONNECTOR_XAUI] = "XAUI",
> +             [RTE_ETH_LINK_CONNECTOR_CAUI] = "CAUI",
> +             [RTE_ETH_LINK_CONNECTOR_LAUI] = "LAUI",
> +             [RTE_ETH_LINK_CONNECTOR_SFP] = "SFP",
> +             [RTE_ETH_LINK_CONNECTOR_SFP_DD] = "SFP-DD",
> +             [RTE_ETH_LINK_CONNECTOR_SFP_PLUS] = "SFP+",
> +             [RTE_ETH_LINK_CONNECTOR_SFP28] = "SFP28",
> +             [RTE_ETH_LINK_CONNECTOR_QSFP] = "QSFP",
> +             [RTE_ETH_LINK_CONNECTOR_QSFP_PLUS] = "QSFP+",
> +             [RTE_ETH_LINK_CONNECTOR_QSFP28] = "QSFP28",
> +             [RTE_ETH_LINK_CONNECTOR_QSFP56] = "QSFP56",
> +             [RTE_ETH_LINK_CONNECTOR_QSFP_DD] = "QSFP-DD",
> +             [RTE_ETH_LINK_CONNECTOR_OTHER] = "Other",
> +     };
> +     const char *str = NULL;
> +
> +     if (link_connector < ((enum 
> rte_eth_link_connector)RTE_DIM(link_connector_str)))
> +             str = link_connector_str[link_connector];
> +
> +     return str;
> +}

So we say link connector, not link type as in the title and descriptions?

[...]
> +enum rte_eth_link_connector {
> +     RTE_ETH_LINK_CONNECTOR_NONE = 0,     /**< Not defined */
> +     RTE_ETH_LINK_CONNECTOR_TP,           /**< Twisted Pair */
> +     RTE_ETH_LINK_CONNECTOR_AUI,          /**< Attachment Unit Interface */
> +     RTE_ETH_LINK_CONNECTOR_MII,          /**< Media Independent Interface */
> +     RTE_ETH_LINK_CONNECTOR_FIBER,        /**< Optical Fiber Link */
> +     RTE_ETH_LINK_CONNECTOR_BNC,          /**< BNC Link type for RF 
> connection */
> +     RTE_ETH_LINK_CONNECTOR_DAC,          /**< Direct Attach copper */
> +     RTE_ETH_LINK_CONNECTOR_SGMII,        /**< Serial Gigabit Media 
> Independent Interface */
> +     RTE_ETH_LINK_CONNECTOR_QSGMII,       /**< Link to multiplex 4 SGMII 
> over one serial link */
> +     RTE_ETH_LINK_CONNECTOR_XFI,          /**< 10 Gigabit Attachment Unit 
> Interface */
> +     RTE_ETH_LINK_CONNECTOR_SFI,          /**< 10 Gigabit Serial Interface 
> for optical network */
> +     RTE_ETH_LINK_CONNECTOR_XLAUI,        /**< 40 Gigabit Attachment Unit 
> Interface */
> +     RTE_ETH_LINK_CONNECTOR_GAUI,         /**< Gigabit Interface for 
> 50/100/200 Gbps */
> +     RTE_ETH_LINK_CONNECTOR_XAUI,         /**< 10 Gigabit Attachment Unit 
> Interface */
> +     RTE_ETH_LINK_CONNECTOR_CAUI,         /**< 100 Gigabit Attachment Unit 
> Interface */
> +     RTE_ETH_LINK_CONNECTOR_LAUI,         /**< 50 Gigabit Attachment Unit 
> Interface */
> +     RTE_ETH_LINK_CONNECTOR_SFP,          /**< Pluggable module for 1 
> Gigabit */
> +     RTE_ETH_LINK_CONNECTOR_SFP_PLUS,     /**< Pluggable module for 10 
> Gigabit */
> +     RTE_ETH_LINK_CONNECTOR_SFP28,        /**< Pluggable module for 25 
> Gigabit */
> +     RTE_ETH_LINK_CONNECTOR_SFP_DD,       /**< Pluggable module for 100 
> Gigabit */
> +     RTE_ETH_LINK_CONNECTOR_QSFP,         /**< Module to mutiplex 4 SFP i.e. 
> 4*1=4 Gbps */
> +     RTE_ETH_LINK_CONNECTOR_QSFP_PLUS,    /**< Module to mutiplex 4 SFP_PLUS 
> i.e. 4*10=40 Gbps */
> +     RTE_ETH_LINK_CONNECTOR_QSFP28,       /**< Module to mutiplex 4 SFP28 
> i.e. 4*25=100 Gbps */
> +     RTE_ETH_LINK_CONNECTOR_QSFP56,       /**< Module to mutiplex 4 SFP56 
> i.e. 4*50=200 Gbps */
> +     RTE_ETH_LINK_CONNECTOR_QSFP_DD,      /**< Module to mutiplex 4 SFP_DD 
> i.e. 4*100=400 Gbps */
> +     RTE_ETH_LINK_CONNECTOR_OTHER = 31,   /**< non-physical interfaces like 
> virtio, ring etc.
> +                                            * It also includes unknown 
> connector types,
> +                                            * i.e. physical connectors not 
> yet defined in this
> +                                            * list of connector types.

It is confusing whether we use NONE or OTHER for unknown types.


Reply via email to