X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Fnics%2Fice.rst;h=25a821177a4c73598c90bcc807f35d10c09aa36d;hb=53a73b7b9db0e62394d94330f7f83c38748490b5;hp=cde3fd620a503b41f473e8d0742fbdae1fbbd69d;hpb=fd4e6f2326ee51a90bce149a9243c09b8113dbc2;p=dpdk.git diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst index cde3fd620a..25a821177a 100644 --- a/doc/guides/nics/ice.rst +++ b/doc/guides/nics/ice.rst @@ -12,31 +12,11 @@ the Intel Ethernet Controller E810. Prerequisites ------------- -- Identifying your adapter using `Intel Support - `_ and get the latest NVM/FW images. - - Follow the DPDK :ref:`Getting Started Guide for Linux ` to setup the basic DPDK environment. - To get better performance on Intel platforms, please follow the "How to get best performance with NICs on Intel platforms" section of the :ref:`Getting Started Guide for Linux `. -Recommended Matching List -------------------------- - -It is highly recommended to upgrade the ice kernel driver and firmware and -DDP packages to avoid the compatibility issues with ice PMD. Here is the -suggested matching list. - - +----------------------+-----------------------+------------------+----------------+-------------------+ - | DPDK version | Kernel driver version | Firmware version | DDP OS Package | DDP COMMS Package | - +======================+=======================+==================+================+===================+ - | 19.11 | 0.12.25 | 1.1.16.39 | 1.3.4 | 1.3.10 | - +----------------------+-----------------------+------------------+----------------+-------------------+ - | 19.08 (experimental) | 0.10.1 | 1.1.12.7 | 1.2.0 | N/A | - +----------------------+-----------------------+------------------+----------------+-------------------+ - | 19.05 (experimental) | 0.9.4 | 1.1.10.16 | 1.1.0 | N/A | - +----------------------+-----------------------+------------------+----------------+-------------------+ - Pre-Installation Configuration ------------------------------ @@ -54,10 +34,6 @@ Please note that enabling debugging options may affect system performance. Toggle display of generic debugging messages. -- ``CONFIG_RTE_LIBRTE_ICE_RX_ALLOW_BULK_ALLOC`` (default ``y``) - - Toggle bulk allocation for RX. - - ``CONFIG_RTE_LIBRTE_ICE_16BYTE_RX_DESC`` (default ``n``) Toggle to use a 16-byte RX descriptor, by default the RX descriptor is 32 byte. @@ -96,18 +72,6 @@ Runtime Config Options -w 80:00.0,pipeline-mode-support=1 -- ``Flow Mark Support`` (default ``0``) - - This is a hint to the driver to select the data path that supports flow mark extraction - by default. - NOTE: This is an experimental devarg, it will be removed when any of below conditions - is ready. - 1) all data paths support flow mark (currently vPMD does not) - 2) a new offload like RTE_DEV_RX_OFFLOAD_FLOW_MARK be introduced as a standard way to hint. - Example:: - - -w 80:00.0,flow-mark-support=1 - - ``Protocol extraction for per queue`` Configure the RX queues to do protocol extraction into mbuf for protocol @@ -123,7 +87,7 @@ Runtime Config Options The grouping ``()`` can be omitted for single element group. If no queues are specified, PMD will use this protocol extraction type for all queues. - Protocol is : ``vlan, ipv4, ipv6, ipv6_flow, tcp``. + Protocol is : ``vlan, ipv4, ipv6, ipv6_flow, tcp, ip_offset``. .. code-block:: console @@ -204,6 +168,18 @@ Runtime Config Options TCPHDR2 - Reserved + .. table:: Protocol extraction : ``ip_offset`` + + +----------------------------+----------------------------+ + | IPHDR2 | IPHDR1 | + +============================+============================+ + | IPv6 HDR Offset | IPv4 HDR Offset | + +----------------------------+----------------------------+ + + IPHDR1 - Outer/Single IPv4 Header offset. + + IPHDR2 - Outer/Single IPv6 Header offset. + Use ``rte_net_ice_dynf_proto_xtr_metadata_get`` to access the protocol extraction metadata, and use ``RTE_PKT_RX_DYNF_PROTO_XTR_*`` to get the metadata type of ``struct rte_mbuf::ol_flags``. @@ -244,6 +220,53 @@ report a MDD event and drop the packets. The APPs based on DPDK should avoid providing such packets. +Device Config Function (DCF) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section demonstrates ICE DCF PMD, which shares the core module with ICE +PMD and iAVF PMD. + +A DCF (Device Config Function) PMD bounds to the device's trusted VF with ID 0, +it can act as a sole controlling entity to exercise advance functionality (such +as switch, ACL) for the rest VFs. + +The DCF PMD needs to advertise and acquire DCF capability which allows DCF to +send AdminQ commands that it would like to execute over to the PF and receive +responses for the same from PF. + +.. _figure_ice_dcf: + +.. figure:: img/ice_dcf.* + + DCF Communication flow. + +#. Create the VFs:: + + echo 4 > /sys/bus/pci/devices/0000\:18\:00.0/sriov_numvfs + +#. Enable the VF0 trust on:: + + ip link set dev enp24s0f0 vf 0 trust on + +#. Bind the VF0, and run testpmd with 'cap=dcf' devarg:: + + testpmd -l 22-25 -n 4 -w 18:01.0,cap=dcf -- -i + +#. Monitor the VF2 interface network traffic:: + + tcpdump -e -nn -i enp24s1f2 + +#. Create one flow to redirect the traffic to VF2 by DCF:: + + flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 \ + dst is 192.168.0.3 / end actions vf id 2 / end + +#. Send the packet, and it should be displayed on tcpdump:: + + sendp(Ether(src='3c:fd:fe:aa:bb:78', dst='00:00:00:01:02:03')/IP(src=' \ + 192.168.0.2', dst="192.168.0.3")/TCP(flags='S')/Raw(load='XXXXXXXXXX'), \ + iface="enp24s0f0", count=10) + Sample Application Notes ------------------------ @@ -284,8 +307,3 @@ is stored in ``ice_adapter->active_pkg_type``. A symbolic link to the DDP package file is also ok. The same package file is used by both the kernel driver and the DPDK PMD. - -19.02 limitation -~~~~~~~~~~~~~~~~ - -Ice code released in 19.02 is for evaluation only.