X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fsample_app_ug%2Fkernel_nic_interface.rst;h=2ae9b702a355234ff5765124349e3222ef148e98;hb=84121f197187;hp=d6876e2ffa5668d36a3d249bfea4836b3a65bfde;hpb=ba9e05cb6b002016b01adf4e8700f206f3d04fd6;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 d6876e2ffa..2ae9b702a3 100644 --- a/doc/guides/sample_app_ug/kernel_nic_interface.rst +++ b/doc/guides/sample_app_ug/kernel_nic_interface.rst @@ -71,13 +71,12 @@ it is just for performance testing, or it can work together with VMDq support in The packet flow through the Kernel NIC Interface application is as shown in the following figure. -.. _figure_2: +.. _figure_kernel_nic: -**Figure 2. Kernel NIC Application Packet Flow** +.. figure:: img/kernel_nic.* -.. image3_png has been renamed to kernel_nic.* + Kernel NIC Application Packet Flow -|kernel_nic| Compiling the Application ------------------------- @@ -88,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) @@ -238,20 +237,10 @@ 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. -The code for creating the kernel NIC interface for a specific port is as follows: - -.. code-block:: c - - kni = rte_kni_create(port, MAX_PACKET_SZ, pktmbuf_pool, &kni_ops); - if (kni == NULL) - rte_exit(EXIT_FAILURE, "Fail to create kni dev " - "for port: %d\n", port); - The code for allocating the kernel NIC interfaces for a specific port is as follows: .. code-block:: c @@ -275,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; @@ -362,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) { @@ -435,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. @@ -482,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 @@ -616,5 +605,3 @@ Currently, setting a new MTU and configuring the network interface (up/ down) ar RTE_LOG(ERR, APP, "Failed to start port %d\n", port_id); return ret; } - -.. |kernel_nic| image:: img/kernel_nic.*