.. code-block:: c
- if (rte_pci_probe() < 0)
- rte_exit(EXIT_FAILURE, "Cannot probe PCI\n");
-
/*
* Each logical core is assigned a dedicated TX queue on each port.
*/
rte_eth_dev_info_get((uint8_t) portid, &dev_info);
}
-Observe that:
-
-* rte_pci_probe() parses the devices on the PCI bus and initializes recognized devices.
-
The next step is to configure the RX and TX queues.
For each port, there is only one RX queue (only one lcore is able to poll a given port).
The number of TX queues depends on the number of available lcores.
{
struct rte_eth_link link;
int ret;
+ char link_status[RTE_ETH_LINK_MAX_STR_LEN];
RTE_SET_USED(param);
if (ret < 0) {
printf("Failed to get port %d link status: %s\n\n",
port_id, rte_strerror(-ret));
- } else if (link.link_status) {
- printf("Port %d Link Up - speed %u Mbps - %s\n\n", port_id, (unsigned)link.link_speed,
- (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? ("full-duplex") : ("half-duplex"));
- } else
- printf("Port %d Link Down\n\n", port_id);
+ } else {
+ rte_eth_link_to_str(link_status, sizeof(link_status), &link);
+ printf("Port %d %s\n", port_id, link_status);
+ }
}
This function is called when a link status interrupt is present for the right port.