X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fsample_app_ug%2Fl2_forward_real_virtual.rst;h=fe01ed6caccf47d2cb7b38b3ea7ea4f0795adb0c;hb=769b2de7fb528607bee5cc443dbcddb905a8f61e;hp=bede06ed1eaf93da4d8fc2ced92b92e7d310864c;hpb=538da7a1cad25fbdffe298c8ca76fc4dbd262d1b;p=dpdk.git diff --git a/doc/guides/sample_app_ug/l2_forward_real_virtual.rst b/doc/guides/sample_app_ug/l2_forward_real_virtual.rst index bede06ed1e..fe01ed6cac 100644 --- a/doc/guides/sample_app_ug/l2_forward_real_virtual.rst +++ b/doc/guides/sample_app_ug/l2_forward_real_virtual.rst @@ -91,7 +91,10 @@ The application requires a number of command line options: .. code-block:: console - ./build/l2fwd [EAL options] -- -p PORTMASK [-q NQ] --[no-]mac-updating + .//examples/dpdk-l2fwd [EAL options] -- -p PORTMASK + [-q NQ] + --[no-]mac-updating + [--portmap="(port, port)[,(port, port)]"] where, @@ -99,14 +102,24 @@ where, * q NQ: A number of queues (=ports) per lcore (default is 1) -* --[no-]mac-updating: Enable or disable MAC addresses updating (enabled by default). +* --[no-]mac-updating: Enable or disable MAC addresses updating (enabled by default) + +* --portmap="(port,port)[,(port,port)]": Determines forwarding ports mapping. To run the application in linux environment with 4 lcores, 16 ports and 8 RX queues per lcore and MAC address updating enabled, issue the command: .. code-block:: console - $ ./build/l2fwd -l 0-3 -n 4 -- -q 8 -p ffff + $ .//examples/dpdk-l2fwd -l 0-3 -n 4 -- -q 8 -p ffff + +To run the application in linux environment with 4 lcores, 4 ports, 8 RX queues +per lcore, to forward RX traffic of ports 0 & 1 on ports 2 & 3 respectively and +vice versa, issue the command: + +.. code-block:: console + + $ .//examples/dpdk-l2fwd -l 0-3 -n 4 -- -q 8 -p f --portmap="(0,2)(1,3)" Refer to the *DPDK Getting Started Guide* for general information on running applications and the Environment Abstraction Layer (EAL) options. @@ -194,9 +207,6 @@ in the *DPDK Programmer's Guide* - Rel 1.4 EAR and the *DPDK API Reference*. .. code-block:: c - if (rte_pci_probe() < 0) - rte_exit(EXIT_FAILURE, "Cannot probe PCI\n"); - /* reset l2fwd_dst_ports */ for (portid = 0; portid < RTE_MAX_ETHPORTS; portid++) @@ -226,12 +236,6 @@ in the *DPDK Programmer's Guide* - Rel 1.4 EAR and the *DPDK API Reference*. rte_eth_dev_info_get((uint8_t) portid, &dev_info); } -Observe that: - -* rte_igb_pmd_init_all() simultaneously registers the driver as a PCI driver and as an Ethernet* Poll Mode Driver. - -* 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. @@ -281,18 +285,6 @@ The list of queues that must be polled for a given lcore is stored in a private The values n_rx_port and rx_port_list[] are used in the main packet processing loop (see :ref:`l2_fwd_app_rx_tx_packets`). -The global configuration for the RX queues is stored in a static structure: - -.. code-block:: c - - static const struct rte_eth_rxconf rx_conf = { - .rx_thresh = { - .pthresh = RX_PTHRESH, - .hthresh = RX_HTHRESH, - .wthresh = RX_WTHRESH, - }, - }; - .. _l2_fwd_app_tx_init: TX Queue Initialization @@ -461,9 +453,8 @@ however it improves performance: /* if timer has reached its timeout */ if (unlikely(timer_tsc >= (uint64_t) timer_period)) { - /* do this only on master core */ - - if (lcore_id == rte_get_master_lcore()) { + /* do this only on main core */ + if (lcore_id == rte_get_main_lcore()) { print_stats(); /* reset the timer */