X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fsample_app_ug%2Fkernel_nic_interface.rst;h=619a7b52768d3346010495799a65d70e80b75ec1;hb=856ceb331b0a;hp=f1deca996983db88a36c6a63a55b80df3fd247ee;hpb=fc27caaafd4bcd302cbdb75701a435fbe00b7ce2;p=dpdk.git diff --git a/doc/guides/sample_app_ug/kernel_nic_interface.rst b/doc/guides/sample_app_ug/kernel_nic_interface.rst index f1deca9969..619a7b5276 100644 --- a/doc/guides/sample_app_ug/kernel_nic_interface.rst +++ b/doc/guides/sample_app_ug/kernel_nic_interface.rst @@ -87,8 +87,8 @@ Compile the application as follows: .. code-block:: console - export RTE_SDK=/path/to/rte_sdk cd - ${RTE_SDK}/examples/kni + export RTE_SDK=/path/to/rte_sdk + cd ${RTE_SDK}/examples/kni #. Set the target (a default target is used if not specified) @@ -180,7 +180,7 @@ Where: Refer to *DPDK Getting Started Guide* for general information on running applications and the Environment Abstraction Layer (EAL) options. -The -c coremask parameter of the EAL options should include the lcores indicated by the lcore_rx and lcore_tx, +The -c coremask or -l corelist parameter of the EAL options should include the lcores indicated by the lcore_rx and lcore_tx, but does not need to include lcores indicated by lcore_kthread as they are used to pin the kernel thread on. The -p PORTMASK parameter should include the ports indicated by the port in --config, neither more nor less. @@ -199,7 +199,7 @@ and one lcore of kernel thread for each port: .. code-block:: console - ./build/kni -c 0xf0 -n 4 -- -P -p 0x3 -config="(0,4,6,8),(1,5,7,9)" + ./build/kni -l 4-7 -n 4 -- -P -p 0x3 -config="(0,4,6,8),(1,5,7,9)" KNI Operations -------------- @@ -237,8 +237,7 @@ The following sections provide some explanation of code. Initialization ~~~~~~~~~~~~~~ -Setup of mbuf pool, driver and queues is similar to the setup done in the L2 Forwarding sample application -(see Chapter 9 "L2 Forwarding Sample Application (in Real and Virtualized Environments" for details). +Setup of mbuf pool, driver and queues is similar to the setup done in the :doc:`l2_forward_real_virtual`.. In addition, one or more kernel NIC interfaces are allocated for each of the configured ports according to the command line parameters. @@ -265,11 +264,11 @@ The code for allocating the kernel NIC interfaces for a specific port is as foll memset(&conf, 0, sizeof(conf)); if (params[port_id]->nb_lcore_k) { - rte_snprintf(conf.name, RTE_KNI_NAMESIZE, "vEth%u_%u", port_id, i); + snprintf(conf.name, RTE_KNI_NAMESIZE, "vEth%u_%u", port_id, i); conf.core_id = params[port_id]->lcore_k[i]; conf.force_bind = 1; } else - rte_snprintf(conf.name, RTE_KNI_NAMESIZE, "vEth%u", port_id); + snprintf(conf.name, RTE_KNI_NAMESIZE, "vEth%u", port_id); conf.group_id = (uint16_t)port_id; conf.mbuf_size = MAX_PACKET_SZ; @@ -352,7 +351,7 @@ The code is as follows: goto fail; } - rte_snprintf(s, sizeof(s), "%.*s", size, p); + snprintf(s, sizeof(s), "%.*s", size, p); nb_token = rte_strsplit(s, sizeof(s), str_fld, _NUM_FLD, ','); if (nb_token <= FLD_LCORE_TX) { @@ -425,7 +424,7 @@ to see if this lcore is reading from or writing to kernel NIC interfaces. For the case that reads from a NIC port and writes to the kernel NIC interfaces, the packet reception is the same as in L2 Forwarding sample application -(see Section 9.4.6 "Receive, Process and Transmit Packets"). +(see :ref:`l2_fwd_app_rx_tx_packets`). The packet transmission is done by sending mbufs into the kernel NIC interfaces by rte_kni_tx_burst(). The KNI library automatically frees the mbufs after the kernel successfully copied the mbufs. @@ -472,7 +471,7 @@ The KNI library automatically frees the mbufs after the kernel successfully copi For the other case that reads from kernel NIC interfaces and writes to a physical NIC port, packets are retrieved by reading mbufs from kernel NIC interfaces by `rte_kni_rx_burst()`. The packet transmission is the same as in the L2 Forwarding sample application -(see Section 9.4.6 "Receive, Process and Transmit Packet's"). +(see :ref:`l2_fwd_app_rx_tx_packets`). .. code-block:: c