X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fsample_app_ug%2Flink_status_intr.rst;h=04c40f28540d0158279a6d87f05e6881e355007a;hb=e7554ebd0704eb656c8130375839bd3a1180331b;hp=571cd2d605c12dbf7acfcc8a01780621efadfb89;hpb=218c4e68c1d9bd4a9281bc1dc4d0ab89859083bf;p=dpdk.git diff --git a/doc/guides/sample_app_ug/link_status_intr.rst b/doc/guides/sample_app_ug/link_status_intr.rst index 571cd2d605..04c40f2854 100644 --- a/doc/guides/sample_app_ug/link_status_intr.rst +++ b/doc/guides/sample_app_ug/link_status_intr.rst @@ -88,9 +88,6 @@ To fully understand this code, it is recommended to study the chapters that rela .. 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. */ @@ -115,10 +112,6 @@ To fully understand this code, it is recommended to study the chapters that rela 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. @@ -164,6 +157,7 @@ An example callback function that has been written as indicated below. lsi_event_callback(uint16_t port_id, enum rte_eth_event_type type, void *param) { struct rte_eth_link link; + int ret; RTE_SET_USED(param); @@ -171,9 +165,11 @@ An example callback function that has been written as indicated below. printf("Event type: %s\n", type == RTE_ETH_EVENT_INTR_LSC ? "LSC interrupt" : "unknown event"); - rte_eth_link_get_nowait(port_id, &link); - - if (link.link_status) { + ret = rte_eth_link_get_nowait(port_id, &link); + 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 @@ -311,11 +307,11 @@ The processing is very simple: processes the TX port from the RX port and then r static void lsi_simple_forward(struct rte_mbuf *m, unsigned portid) { - struct ether_hdr *eth; + struct rte_ether_hdr *eth; void *tmp; unsigned dst_port = lsi_dst_ports[portid]; - eth = rte_pktmbuf_mtod(m, struct ether_hdr *); + eth = rte_pktmbuf_mtod(m, struct rte_ether_hdr *); /* 02:00:00:00:00:xx */ @@ -324,7 +320,7 @@ The processing is very simple: processes the TX port from the RX port and then r *((uint64_t *)tmp) = 0x000000000002 + (dst_port << 40); /* src addr */ - ether_addr_copy(&lsi_ports_eth_addr[dst_port], ð->s_addr); + rte_ether_addr_copy(&lsi_ports_eth_addr[dst_port], ð->s_addr); lsi_send_packet(m, dst_port); }