| 3101 | } |
| 3102 | |
| 3103 | int |
| 3104 | rte_eth_link_to_str(char *str, size_t len, const struct rte_eth_link *eth_link) |
| 3105 | { |
| 3106 | int ret; |
| 3107 | |
| 3108 | if (str == NULL) { |
| 3109 | RTE_ETHDEV_LOG(ERR, "Cannot convert link to NULL string\n"); |
| 3110 | return -EINVAL; |
| 3111 | } |
| 3112 | |
| 3113 | if (len == 0) { |
| 3114 | RTE_ETHDEV_LOG(ERR, |
| 3115 | "Cannot convert link to string with zero size\n"); |
| 3116 | return -EINVAL; |
| 3117 | } |
| 3118 | |
| 3119 | if (eth_link == NULL) { |
| 3120 | RTE_ETHDEV_LOG(ERR, "Cannot convert to string from NULL link\n"); |
| 3121 | return -EINVAL; |
| 3122 | } |
| 3123 | |
| 3124 | if (eth_link->link_status == RTE_ETH_LINK_DOWN) |
| 3125 | ret = snprintf(str, len, "Link down"); |
| 3126 | else |
| 3127 | ret = snprintf(str, len, "Link up at %s %s %s", |
| 3128 | rte_eth_link_speed_to_str(eth_link->link_speed), |
| 3129 | (eth_link->link_duplex == RTE_ETH_LINK_FULL_DUPLEX) ? |
| 3130 | "FDX" : "HDX", |
| 3131 | (eth_link->link_autoneg == RTE_ETH_LINK_AUTONEG) ? |
| 3132 | "Autoneg" : "Fixed"); |
| 3133 | |
| 3134 | rte_eth_trace_link_to_str(len, eth_link, str, ret); |
| 3135 | |
| 3136 | return ret; |
| 3137 | } |
| 3138 | |
| 3139 | int |
| 3140 | rte_eth_stats_get(uint16_t port_id, struct rte_eth_stats *stats) |