MCPcopy Create free account
hub / github.com/F-Stack/f-stack / sfc_dev_infos_get

Function sfc_dev_infos_get

dpdk/drivers/net/sfc/sfc_ethdev.c:89–194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87}
88
89static int
90sfc_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;

Callers

nothing calls this directly

Tested by

no test coverage detected