All of lore.kernel.org
 help / color / mirror / Atom feed
From: Remy Horton <remy.horton@intel.com>
To: dev@dpdk.org
Subject: [PATCH v7 2/2] doc: add user-space ethtool sample app guide
Date: Mon, 16 Nov 2015 13:30:19 +0000	[thread overview]
Message-ID: <1447680619-30687-3-git-send-email-remy.horton@intel.com> (raw)
In-Reply-To: <1447680619-30687-1-git-send-email-remy.horton@intel.com>

Signed-off-by: Remy Horton <remy.horton@intel.com>
---
 doc/guides/rel_notes/release_2_2.rst |   1 +
 doc/guides/sample_app_ug/ethtool.rst | 160 +++++++++++++++++++++++++++++++++++
 doc/guides/sample_app_ug/index.rst   |   1 +
 3 files changed, 162 insertions(+)
 create mode 100644 doc/guides/sample_app_ug/ethtool.rst

diff --git a/doc/guides/rel_notes/release_2_2.rst b/doc/guides/rel_notes/release_2_2.rst
index 59dda59..bafebb3 100644
--- a/doc/guides/rel_notes/release_2_2.rst
+++ b/doc/guides/rel_notes/release_2_2.rst
@@ -187,6 +187,7 @@ Libraries
 Examples
 ~~~~~~~~
 
+* **ethtool: Added ethtool shim and sample application.**
 
 Other
 ~~~~~
diff --git a/doc/guides/sample_app_ug/ethtool.rst b/doc/guides/sample_app_ug/ethtool.rst
new file mode 100644
index 0000000..4d1697e
--- /dev/null
+++ b/doc/guides/sample_app_ug/ethtool.rst
@@ -0,0 +1,160 @@
+
+..  BSD LICENSE
+    Copyright(c) 2015 Intel Corporation. All rights reserved.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+    * Neither the name of Intel Corporation nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Ethtool Sample Application
+==========================
+
+The Ethtool sample application shows an implementation of an
+ethtool-like API and provides a console environment that allows
+its use to query and change Ethernet card parameters. The sample
+is based upon a simple L2 frame reflector.
+
+Compiling the Application
+-------------------------
+
+To compile the application:
+
+#.  Go to the sample application directory:
+
+    .. code-block:: console
+
+        export RTE_SDK=/path/to/rte_sdk
+        cd ${RTE_SD}/examples/ethtool
+
+#.  Set the target (a default target is used if not specified). For example:
+
+    .. code-block:: console
+
+        export RTE_TARGET=x86_64-native-linuxapp-gcc
+
+    See the *DPDK Getting Started Guide* for possible RTE_TARGET values.
+
+#.  Build the application:
+
+    .. code-block:: console
+
+        make
+
+Running the Application
+-----------------------
+
+The application requires an available core for each port, plus one.
+The only available options are the standard ones for the EAL:
+
+.. code-block:: console
+
+    ./ethtool-app/ethtool-app/${RTE_TARGET}/ethtool [EAL options]
+
+Refer to the *DPDK Getting Started Guide* for general information on
+running applications and the Environment Abstraction Layer (EAL)
+options.
+
+Using the application
+---------------------
+
+The application is console-driven using the cmdline DPDK interface:
+
+.. code-block:: console
+
+        EthApp>
+
+From this interface the available commands and descriptions of what
+they do as as follows:
+
+* ``drvinfo``: Print driver info
+* ``eeprom``: Dump EEPROM to file
+* ``link``: Print port link states
+* ``macaddr``: Gets/sets MAC address
+* ``mtu``: Set NIC MTU
+* ``open``: Open port
+* ``pause``: Get/set port pause state
+* ``portstats``: Print port statistics
+* ``regs``: Dump port register(s) to file
+* ``ringparam``: Get/set ring parameters
+* ``rxmode``: Toggle port Rx mode
+* ``stop``: Stop port
+* ``validate``: Check that given MAC address is valid unicast address
+* ``vlan``: Add/remove VLAN id
+* ``quit``: Exit program
+
+
+Explanation
+-----------
+
+The sample program has two parts: A background `packet reflector`_
+that runs on a slave core, and a foreground `Ethtool Shell`_ that
+runs on the master core. These are described below.
+
+Packet Reflector
+~~~~~~~~~~~~~~~~
+
+The background packet reflector is intended to demonstrate basic
+packet processing on NIC ports controlled by the Ethtool shim.
+Each incoming MAC frame is rewritten so that it is returned to
+the sender, using the port in question's own MAC address as the
+source address, and is then sent out on the same port.
+
+Ethtool Shell
+~~~~~~~~~~~~~
+
+The foreground part of the Ethtool sample is a console-based
+interface that accepts commands as described in `using the
+application`_. Individual call-back functions handle the detail
+associated with each command, which make use of the functions
+defined in the `Ethtool interface`_ to the DPDK functions.
+
+Ethtool interface
+-----------------
+
+The Ethtool interface is built as a separate library, and implements
+the following functions:
+
+- ``rte_ethtool_get_drvinfo()``
+- ``rte_ethtool_get_regs_len()``
+- ``rte_ethtool_get_regs()``
+- ``rte_ethtool_get_link()``
+- ``rte_ethtool_get_eeprom_len()``
+- ``rte_ethtool_get_eeprom()``
+- ``rte_ethtool_set_eeprom()``
+- ``rte_ethtool_get_pauseparam()``
+- ``rte_ethtool_set_pauseparam()``
+- ``rte_ethtool_net_open()``
+- ``rte_ethtool_net_stop()``
+- ``rte_ethtool_net_get_mac_addr()``
+- ``rte_ethtool_net_set_mac_addr()``
+- ``rte_ethtool_net_validate_addr()``
+- ``rte_ethtool_net_change_mtu()``
+- ``rte_ethtool_net_get_stats64()``
+- ``rte_ethtool_net_vlan_rx_add_vid()``
+- ``rte_ethtool_net_vlan_rx_kill_vid()``
+- ``rte_ethtool_net_set_rx_mode()``
+- ``rte_ethtool_get_ringparam()``
+- ``rte_ethtool_set_ringparam()``
diff --git a/doc/guides/sample_app_ug/index.rst b/doc/guides/sample_app_ug/index.rst
index 9beedd9..086d3f2 100644
--- a/doc/guides/sample_app_ug/index.rst
+++ b/doc/guides/sample_app_ug/index.rst
@@ -41,6 +41,7 @@ Sample Applications User Guide
 
     intro
     cmd_line
+    ethtool
     exception_path
     hello_world
     skeleton
-- 
1.9.3

  parent reply	other threads:[~2015-11-16 13:30 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-30  6:18 [PATCH v1 0/2] User-space ethtool sample application Remy Horton
2015-09-30  6:18 ` [PATCH v1 1/2] l2fwd: Fix coding standard errors Remy Horton
2015-09-30  6:18 ` [PATCH v1 2/2] User-space ethtool sample application Remy Horton
2015-10-26 15:59 ` [PATCH v2 0/2] " Remy Horton
2015-10-26 15:59   ` [PATCH v2 1/2] example: " Remy Horton
2015-10-26 15:59   ` [PATCH v2 2/2] doc: " Remy Horton
2015-10-28 11:12   ` [PATCH v3 0/2] " Remy Horton
2015-10-28 11:12     ` [PATCH v3 1/2] example: add user-space " Remy Horton
2015-10-28 11:12     ` [PATCH v3 2/2] doc: add user-space ethtool sample app guide Remy Horton
2015-10-28 13:52     ` [PATCH v3 0/2] User-space ethtool sample application Ananyev, Konstantin
2015-10-29 12:11     ` [PATCH v4 " Remy Horton
2015-10-29 12:11       ` [PATCH v4 1/2] example: add user-space " Remy Horton
2015-10-29 12:11       ` [PATCH v4 2/2] doc: add user-space ethtool sample app guide Remy Horton
2015-10-29 14:14       ` [PATCH v5 0/2] User-space ethtool sample application Remy Horton
2015-10-29 14:14         ` [PATCH v5 1/2] example: add user-space " Remy Horton
2015-10-29 14:14         ` [PATCH v5 2/2] doc: add user-space ethtool sample app guide Remy Horton
2015-10-29 14:19         ` [PATCH v5 0/2] User-space ethtool sample application Ananyev, Konstantin
2015-11-06 16:11         ` [PATCH v6 " Remy Horton
2015-11-06 16:11           ` [PATCH v6 1/2] example: add user-space " Remy Horton
2015-11-06 16:11           ` [PATCH v6 2/2] doc: add user-space ethtool sample app guide Remy Horton
2015-11-13 16:52             ` Mcnamara, John
2015-11-16 10:56               ` Remy Horton
2015-11-06 16:38           ` [PATCH v6 0/2] User-space ethtool sample application Ananyev, Konstantin
2015-11-16 13:30           ` [PATCH v7 " Remy Horton
2015-11-16 13:30             ` [PATCH v7 1/2] example: add user-space " Remy Horton
2015-11-16 13:30             ` Remy Horton [this message]
2015-11-16 13:42             ` [PATCH v8 0/2] User-space " Remy Horton
2015-11-16 13:42               ` [PATCH v8 1/2] example: add user-space " Remy Horton
2015-11-16 13:42               ` [PATCH v8 2/2] doc: add user-space ethtool sample app guide Remy Horton
2015-11-16 14:16                 ` Mcnamara, John
2015-11-16 13:50               ` [PATCH v8 0/2] User-space ethtool sample application Thomas Monjalon
2015-11-20 15:34               ` [PATCH v9 0/3] " Remy Horton
2015-11-20 15:34                 ` [PATCH v9 1/3] Remove ABI requirement for external library builds Remy Horton
     [not found]                   ` <2601191342CEEE43887BDE71AB97725836ACAB5A@irsmsx105.ger.corp.intel.com>
2015-11-20 16:32                     ` Wang, Liang-min
2015-11-20 15:34                 ` [PATCH v9 2/3] example: add user-space ethtool sample application Remy Horton
2015-11-20 17:15                   ` Ananyev, Konstantin
2015-12-07  2:29                   ` Thomas Monjalon
2015-12-07 11:54                     ` Remy Horton
2015-11-20 15:34                 ` [PATCH v9 3/3] doc: add user-space ethtool sample app guide Remy Horton
2015-11-20 17:16                   ` Ananyev, Konstantin
2015-12-01 12:05                     ` Mcnamara, John
2015-11-24  3:05                 ` [PATCH v9 0/3] User-space ethtool sample application Liu, Yong
2015-12-07 13:48                 ` [PATCH v10 0/4] " Remy Horton
2015-12-07 13:48                   ` [PATCH v10 1/4] Remove ABI requirement for external library builds Remy Horton
2015-12-07 13:48                   ` [PATCH v10 2/4] mk: Fix missing directory with combined extlib build Remy Horton
2015-12-08  0:49                     ` Thomas Monjalon
2015-12-07 13:48                   ` [PATCH v10 3/4] example: add user-space ethtool sample application Remy Horton
2015-12-07 13:49                   ` [PATCH v10 4/4] doc: add user-space ethtool sample app guide Remy Horton
2015-12-08  0:30                     ` Thomas Monjalon
2015-12-08  0:33                   ` [PATCH v10 0/4] User-space ethtool sample application Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1447680619-30687-3-git-send-email-remy.horton@intel.com \
    --to=remy.horton@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.