doc: prefer https when pointing to dpdk.org
[dpdk.git] / doc / guides / freebsd_gsg / install_from_ports.rst
index c946c33..d946f3f 100644 (file)
-..  BSD LICENSE
-    Copyright(c) 2010-2014 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.
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2010-2014 Intel Corporation.
 
 .. _install_from_ports:
 
-Installing Intel® DPDK from the Ports Collection
-================================================
+Installing DPDK from the Ports Collection
+=========================================
 
-The easiest way to get up and running with the Intel® DPDK on FreeBSD is to
-install it from the ports collection. Details of getting and using the ports
-collection are documented in the FreeBSD Handbook at:
-
-       https://www.freebsd.org/doc/handbook/ports-using.html
+The easiest way to get up and running with the DPDK on FreeBSD is to
+install it using the FreeBSD `pkg` utility or from the ports collection.
+Details of installing applications from packages or the ports collection are documented in the
+`FreeBSD Handbook <http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html>`_,
+chapter `Installing Applications: Packages and Ports <https://www.freebsd.org/doc/handbook/ports.html>`_.
 
 .. note::
 
-    Testing has been performed using FreeBSD* 10.0-RELEASE (x86_64) and requires the
-    installation of the kernel sources, which should be included during the
-    installation of FreeBSD*.
-
-Installing the Intel® DPDK FreeBSD Port
----------------------------------------
+   Please ensure that the latest patches are applied to third party libraries
+   and software to avoid any known vulnerabilities.
 
-On a system with the ports collection installed in /usr/ports, the Intel® DPDK
-can be installed using the commands:
 
-.. code-block:: console
+Installing the DPDK Package for FreeBSD
+---------------------------------------
 
-    root@host:~ # cd /usr/ports/net/dpdk
+DPDK can be installed on FreeBSD using the command::
 
-    root@host:~ # make install
+       pkg install dpdk
 
-After the installation of the Intel® DPDK port, instructions will be printed on
-how to install the kernel modules required to use the Intel® DPDK. A more
+After the installation of the DPDK package, instructions will be printed on
+how to install the kernel modules required to use the DPDK. A more
 complete version of these instructions can be found in the sections
 :ref:`loading_contigmem` and :ref:`loading_nic_uio`. Normally, lines like
-those below would be added to the file "/boot/loader.conf".
+those below would be added to the file ``/boot/loader.conf``.
 
-.. code-block:: console
+.. code-block:: shell
 
-    # reserve 2 x 1G blocks of contiguous memory using contigmem driver
+    # Reserve 2 x 1G blocks of contiguous memory using contigmem driver:
     hw.contigmem.num_buffers=2
     hw.contigmem.buffer_size=1073741824
     contigmem_load="YES"
-    # identify NIC devices for Intel® DPDK apps to use and load nic_uio driver
+
+    # Identify NIC devices for DPDK apps to use and load nic_uio driver:
     hw.nic_uio.bdfs="2:0:0,2:0:1"
     nic_uio_load="YES"
 
+
+Installing the DPDK FreeBSD Port
+--------------------------------
+
+If so desired, the user can install DPDK using the ports collection rather than from
+a pre-compiled binary package.
+On a system with the ports collection installed in ``/usr/ports``, the DPDK
+can be installed using the commands::
+
+    cd /usr/ports/net/dpdk
+
+    make install
+
+
 Compiling and Running the Example Applications
 ----------------------------------------------
 
-When the Intel® DPDK has been installed from the ports collection it installs
-its example applications in "/usr/local/share/dpdk/examples" - also accessible via
-symlink as "/usr/local/share/examples/dpdk". These examples can be compiled and
-run as described in :ref:`compiling_sample_apps`. In this case, the required
-environmental variables should be set as below:
+When the DPDK has been installed from the ports collection it installs
+its example applications in ``/usr/local/share/dpdk/examples``.
+These examples can be compiled and run as described in :ref:`compiling_sample_apps`.
 
-* RTE_SDK=/usr/local/share/dpdk
+.. note::
 
-* RTE_TARGET=x86_64-native-bsdapp-clang
+   DPDK example applications must be complied using `gmake` rather than
+   BSD `make`. To detect the installed DPDK libraries, `pkg-config` should
+   also be installed on the system.
 
 .. note::
 
-       To install a copy of the Intel® DPDK compiled using gcc, please download the
-       official Intel® DPDK package from http://dpdk.org/ and install manually using
-       the instructions given in the next chapter, :ref:`building_from_source`
+   To install a copy of the DPDK compiled using gcc, please download the
+   official DPDK package from https://core.dpdk.org/download/ and install manually using
+   the instructions given in the next chapter, :ref:`building_from_source`
 
 An example application can therefore be copied to a user's home directory and
-compiled and run as below:
-
-.. code-block:: console
-
-    user@host:~$ export RTE_SDK=/usr/local/share/dpdk
-
-    user@host:~$ export RTE_TARGET=x86_64-native-bsdapp-clang
+compiled and run as below, where we have 2 memory blocks of size 1G reserved
+via the contigmem module, and 4 NIC ports bound to the nic_uio module::
 
-    user@host:~$ cp -r /usr/local/share/dpdk/examples/helloworld .
+    cp -r /usr/local/share/dpdk/examples/helloworld .
 
-    user@host:~$ cd helloworld/
+    cd helloworld/
 
-    user@host:~/helloworld$ gmake
-      CC main.o
-      LD helloworld
-      INSTALL-APP helloworld
-      INSTALL-MAP helloworld.map
+    gmake
+    cc -O3 -I/usr/local/include -include rte_config.h -march=corei7 -D__BSD_VISIBLE  main.c -o build/helloworld-shared  -L/usr/local/lib -lrte_bpf -lrte_flow_classify -lrte_pipeline -lrte_table -lrte_port -lrte_fib -lrte_ipsec -lrte_stack -lrte_security -lrte_sched -lrte_reorder -lrte_rib -lrte_rcu -lrte_rawdev -lrte_pdump -lrte_member -lrte_lpm -lrte_latencystats -lrte_jobstats -lrte_ip_frag -lrte_gso -lrte_gro -lrte_eventdev -lrte_efd -lrte_distributor -lrte_cryptodev -lrte_compressdev -lrte_cfgfile -lrte_bitratestats -lrte_bbdev -lrte_acl -lrte_timer -lrte_hash -lrte_metrics -lrte_cmdline -lrte_pci -lrte_ethdev -lrte_meter -lrte_net -lrte_mbuf -lrte_mempool -lrte_ring -lrte_eal -lrte_kvargs
+    ln -sf helloworld-shared build/helloworld
 
-    user@host:~/helloworld$ sudo ./build/helloworld -c F -n 2
-    EAL: Contigmem driver has 2 buffers, each of size 1GB
+    sudo ./build/helloworld -l 0-3
     EAL: Sysctl reports 8 cpus
-    EAL: Detected lcore 0
-    EAL: Detected lcore 1
-    EAL: Detected lcore 2
-    EAL: Detected lcore 3
-    EAL: Support maximum 64 logical core(s) by configuration.
-    EAL: Detected 4 lcore(s)
-    EAL: Setting up physically contiguous memory...
-    EAL: Mapped memory segment 1 @ 0x802400000: physaddr:0x40000000, len 1073741824
-    EAL: Mapped memory segment 2 @ 0x842400000: physaddr:0x100000000, len 1073741824
-    EAL: WARNING: clock_gettime cannot use CLOCK_MONOTONIC_RAW and HPET is not available - clock timings may be less accurate.
-    EAL: TSC frequency is ~3569023 KHz
-    EAL: PCI scan found 24 devices
-    EAL: Master core 0 is ready (tid=0x802006400)
-    EAL: Core 1 is ready (tid=0x802006800)
-    EAL: Core 3 is ready (tid=0x802007000)
-    EAL: Core 2 is ready (tid=0x802006c00)
+    EAL: Detected 8 lcore(s)
+    EAL: Detected 1 NUMA nodes
+    EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
+    EAL: Selected IOVA mode 'PA'
+    EAL: Contigmem driver has 2 buffers, each of size 1GB
+    EAL: Mapped memory segment 0 @ 0x1040000000: physaddr:0x180000000, len 1073741824
+    EAL: Mapped memory segment 1 @ 0x1080000000: physaddr:0x1c0000000, len 1073741824
+    EAL: PCI device 0000:00:19.0 on NUMA socket 0
+    EAL:   probe driver: 8086:153b net_e1000_em
+    EAL:   0000:00:19.0 not managed by UIO driver, skipping
     EAL: PCI device 0000:01:00.0 on NUMA socket 0
-    EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
-    EAL:   PCI memory mapped at 0x80074a000
-    EAL:   PCI memory mapped at 0x8007ca000
+    EAL:   probe driver: 8086:1572 net_i40e
     EAL: PCI device 0000:01:00.1 on NUMA socket 0
-    EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
-    EAL:   PCI memory mapped at 0x8007ce000
-    EAL:   PCI memory mapped at 0x80084e000
-    EAL: PCI device 0000:02:00.0 on NUMA socket 0
-    EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
-    EAL:   PCI memory mapped at 0x800852000
-    EAL:   PCI memory mapped at 0x8008d2000
-    EAL: PCI device 0000:02:00.1 on NUMA socket 0
-    EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
-    EAL:   PCI memory mapped at 0x801b3f000
-    EAL:   PCI memory mapped at 0x8008d6000
+    EAL:   probe driver: 8086:1572 net_i40e
+    EAL: PCI device 0000:01:00.2 on NUMA socket 0
+    EAL:   probe driver: 8086:1572 net_i40e
+    EAL: PCI device 0000:01:00.3 on NUMA socket 0
+    EAL:   probe driver: 8086:1572 net_i40e
     hello from core 1
     hello from core 2
     hello from core 3
     hello from core 0
 
+
 .. note::
 
-       To run an Intel® DPDK process as a non-root user, adjust the permissions on
-       the /dev/contigmem and /dev/uio device nodes as described in section
-       :ref:`running_non_root`
+   To run a DPDK process as a non-root user, adjust the permissions on
+   the ``/dev/contigmem`` and ``/dev/uio device`` nodes as described in section
+   :ref:`running_non_root`
 
 .. note::
-       For an explanation of the command-line parameters that can be passed to an
-       Intel® DPDK application, see section :ref:`running_sample_app`.
+
+   For an explanation of the command-line parameters that can be passed to an
+   DPDK application, see section :ref:`running_sample_app`.