(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.. _compiling_sample_apps:
+
Compiling and Running Sample Applications
=========================================
------------------------------
Once an Intel® DPDK target environment directory has been created (such as
-x86_64-native-bsdapp-gcc), it contains all libraries and header files required
+x86_64-native-bsdapp-clang), it contains all libraries and header files required
to build an application.
When compiling an application in the FreeBSD* environment on the Intel® DPDK,
* RTE_SDK - Points to the Intel® DPDK installation directory.
* RTE_TARGET - Points to the Intel® DPDK target environment directory.
- For FreeBSD*, this is the x86_64-native-bsdapp-gcc directory.
+ For FreeBSD*, this is the x86_64-native-bsdapp-clang or
+ x86_64-native-bsdapp-gcc directory.
The following is an example of creating the helloworld application, which runs
-in the Intel® DPDK FreeBSD* environment. This example may be found in the
+in the Intel® DPDK FreeBSD* environment. While the example demonstrates compiling
+using gcc version 4.8, compiling with clang will be similar, except that the "CC="
+parameter can probably be omitted. The "helloworld" example may be found in the
${RTE_SDK}/examples directory.
The directory contains the main.c file. This file, when combined with the
INSTALL-APP helloworld
INSTALL-MAP helloworld.map
+.. _running_sample_app:
+
Running a Sample Application
----------------------------
#. The contigmem and nic_uio modules must be set up prior to running an application.
#. Any ports to be used by the application must be already bound to the nic_uio module,
- as described in section Section 3.6, “ , ” prior to running the application.
+ as described in section :ref:`binding_network_ports`, prior to running the application.
The application is linked with the Intel® DPDK target environment's Environment
Abstraction Layer (EAL) library, which provides some options that are generic
to every Intel® DPDK application.
.. code-block:: console
- ./rte-app -c COREMASK -n NUM [-b <domain:bus:devid.func>] [-m MB] [-r NUM] [-v] [--file-prefix] [--proc-type <primary|secondary|auto>]
+ ./rte-app -c COREMASK -n NUM [-b <domain:bus:devid.func>] [-r NUM] [-v] [--proc-type <primary|secondary|auto>]
.. note::
EAL has a common interface between all operating systems and is based on the
- Linux* notation for PCI devices. The device and function separator used is
- a ":" rather than "." as seen with pciconf on FreeBSD*. For example, a
- FreeBSD* device selector of pci0:2:0:1 is referred to as 02:00.1 in EAL.
+ Linux* notation for PCI devices. For example, a FreeBSD* device selector of
+ pci0:2:0:1 is referred to as 02:00.1 in EAL.
The EAL options for FreeBSD* are as follows:
in the *Intel® DPDK Sample Applications User Guide and the Intel® DPDK
Programmers Guide* for more details.
+.. _running_non_root:
+
Running Intel®DPDK Applications Without Root Privileges
-------------------------------------------------------