| 87 | } |
| 88 | |
| 89 | static int |
| 90 | sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) |
| 91 | { |
| 92 | const struct sfc_adapter_priv *sap = sfc_adapter_priv_by_eth_dev(dev); |
| 93 | struct sfc_adapter_shared *sas = sfc_adapter_shared_by_eth_dev(dev); |
| 94 | struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); |
| 95 | struct sfc_rss *rss = &sas->rss; |
| 96 | struct sfc_mae *mae = &sa->mae; |
| 97 | |
| 98 | sfc_log_init(sa, "entry"); |
| 99 | |
| 100 | dev_info->min_mtu = RTE_ETHER_MIN_MTU; |
| 101 | dev_info->max_mtu = EFX_MAC_SDU_MAX; |
| 102 | |
| 103 | dev_info->max_rx_pktlen = EFX_MAC_PDU_MAX; |
| 104 | |
| 105 | dev_info->max_vfs = sa->sriov.num_vfs; |
| 106 | |
| 107 | /* Autonegotiation may be disabled */ |
| 108 | dev_info->speed_capa = RTE_ETH_LINK_SPEED_FIXED; |
| 109 | if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_1000FDX)) |
| 110 | dev_info->speed_capa |= RTE_ETH_LINK_SPEED_1G; |
| 111 | if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_10000FDX)) |
| 112 | dev_info->speed_capa |= RTE_ETH_LINK_SPEED_10G; |
| 113 | if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_25000FDX)) |
| 114 | dev_info->speed_capa |= RTE_ETH_LINK_SPEED_25G; |
| 115 | if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_40000FDX)) |
| 116 | dev_info->speed_capa |= RTE_ETH_LINK_SPEED_40G; |
| 117 | if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_50000FDX)) |
| 118 | dev_info->speed_capa |= RTE_ETH_LINK_SPEED_50G; |
| 119 | if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_100000FDX)) |
| 120 | dev_info->speed_capa |= RTE_ETH_LINK_SPEED_100G; |
| 121 | |
| 122 | dev_info->max_rx_queues = sa->rxq_max; |
| 123 | dev_info->max_tx_queues = sa->txq_max; |
| 124 | |
| 125 | /* By default packets are dropped if no descriptors are available */ |
| 126 | dev_info->default_rxconf.rx_drop_en = 1; |
| 127 | |
| 128 | dev_info->rx_queue_offload_capa = sfc_rx_get_queue_offload_caps(sa); |
| 129 | |
| 130 | /* |
| 131 | * rx_offload_capa includes both device and queue offloads since |
| 132 | * the latter may be requested on a per device basis which makes |
| 133 | * sense when some offloads are needed to be set on all queues. |
| 134 | */ |
| 135 | dev_info->rx_offload_capa = sfc_rx_get_dev_offload_caps(sa) | |
| 136 | dev_info->rx_queue_offload_capa; |
| 137 | |
| 138 | dev_info->tx_queue_offload_capa = sfc_tx_get_queue_offload_caps(sa); |
| 139 | |
| 140 | /* |
| 141 | * tx_offload_capa includes both device and queue offloads since |
| 142 | * the latter may be requested on a per device basis which makes |
| 143 | * sense when some offloads are needed to be set on all queues. |
| 144 | */ |
| 145 | dev_info->tx_offload_capa = sfc_tx_get_dev_offload_caps(sa) | |
| 146 | dev_info->tx_queue_offload_capa; |
nothing calls this directly
no test coverage detected