DPDK patches and discussions
 help / color / mirror / Atom feed
From: Xiaolong Ye <xiaolong.ye@intel.com>
To: John McNamara <john.mcnamara@intel.com>,
	Marko Kovacevic <marko.kovacevic@intel.com>
Cc: dev@dpdk.org, thomas@monjalon.net, jingjing.wu@intel.com,
	Xiaolong Ye <xiaolong.ye@intel.com>
Subject: [dpdk-dev] [PATCH] doc: remove intel PMD examples in flow bifurcation guide
Date: Wed, 29 Apr 2020 10:29:16 +0800	[thread overview]
Message-ID: <20200429022916.8871-1-xiaolong.ye@intel.com> (raw)

Now this feature is no longer supported by kernel side, so remove the
intel PMD examples to avoid confusion.

Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
 doc/guides/howto/flow_bifurcation.rst         | 227 ------------------
 doc/guides/howto/img/ixgbe_bifu_queue_idx.svg | 101 --------
 2 files changed, 328 deletions(-)
 delete mode 100644 doc/guides/howto/img/ixgbe_bifu_queue_idx.svg

diff --git a/doc/guides/howto/flow_bifurcation.rst b/doc/guides/howto/flow_bifurcation.rst
index a36126472c..7ba66b9003 100644
--- a/doc/guides/howto/flow_bifurcation.rst
+++ b/doc/guides/howto/flow_bifurcation.rst
@@ -68,230 +68,3 @@ while all other packets go to the kernel:
    testpmd> flow isolate 0 true
    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / vxlan vni is 42 / end \
             actions rss queues 0 1 2 3 end / end
-
-
-Using Flow Bifurcation on IXGBE in Linux
-----------------------------------------
-
-On Intel 82599 10 Gigabit Ethernet Controller series NICs Flow Bifurcation can
-be achieved by SR-IOV and Intel Flow Director technologies. Traffic can be
-directed to queues by the Flow Director capability, typically by matching
-5-tuple of UDP/TCP packets.
-
-The typical procedure to achieve this is as follows:
-
-#. Boot the system without iommu, or with ``iommu=pt``.
-
-#. Create Virtual Functions:
-
-   .. code-block:: console
-
-       echo 2 > /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs
-
-#. Enable and set flow filters:
-
-   .. code-block:: console
-
-       ethtool -K eth1 ntuple on
-       ethtool -N eth1 flow-type udp4 src-ip 192.0.2.2 dst-ip 198.51.100.2 \
-               action $queue_index_in_VF0
-       ethtool -N eth1 flow-type udp4 src-ip 198.51.100.2 dst-ip 192.0.2.2 \
-               action $queue_index_in_VF1
-
-   Where:
-
-   * ``$queue_index_in_VFn``: Bits 39:32 of the variable defines VF id + 1; the lower 32 bits indicates the queue index of the VF. Thus:
-
-     * ``$queue_index_in_VF0`` = ``(0x1 & 0xFF) << 32 + [queue index]``.
-
-     * ``$queue_index_in_VF1`` = ``(0x2 & 0xFF) << 32 + [queue index]``.
-
-   .. _figure_ixgbe_bifu_queue_idx:
-
-   .. figure:: img/ixgbe_bifu_queue_idx.*
-
-#. Compile the DPDK application and insert ``igb_uio`` or probe the ``vfio-pci`` kernel modules as normal.
-
-#. Bind the virtual functions:
-
-   .. code-block:: console
-
-       modprobe vfio-pci
-       dpdk-devbind.py -b vfio-pci 01:10.0
-       dpdk-devbind.py -b vfio-pci 01:10.1
-
-#. Run a DPDK application on the VFs:
-
-   .. code-block:: console
-
-       testpmd -l 0-7 -n 4 -- -i -w 01:10.0 -w 01:10.1 --forward-mode=mac
-
-In this example, traffic matching the rules will go through the VF by matching
-the filter rule. All other traffic, not matching the rules, will go through
-the default queue or scaling on queues in the PF. That is to say UDP packets
-with the specified IP source and destination addresses will go through the
-DPDK application. All other traffic, with different hosts or different
-protocols, will go through the Linux networking stack.
-
-.. note::
-
-    * The above steps work on the Linux kernel v4.2.
-
-    * The Flow Bifurcation is implemented in Linux kernel and ixgbe kernel driver using the following patches:
-
-        * `ethtool: Add helper routines to pass vf to rx_flow_spec <https://patchwork.ozlabs.org/patch/476511/>`_
-
-        * `ixgbe: Allow flow director to use entire queue space <https://patchwork.ozlabs.org/patch/476516/>`_
-
-    * The Ethtool version used in this example is 3.18.
-
-
-Using Flow Bifurcation on I40E in Linux
----------------------------------------
-
-On Intel X710/XL710 series Ethernet Controllers Flow Bifurcation can be
-achieved by SR-IOV, Cloud Filter and L3 VEB switch. The traffic can be
-directed to queues by the Cloud Filter and L3 VEB switch's matching rule.
-
-* L3 VEB filters work for non-tunneled packets. It can direct a packet just by
-  the Destination IP address to a queue in a VF.
-
-* Cloud filters work for the following types of tunneled packets.
-
-    * Inner mac.
-
-    * Inner mac + VNI.
-
-    * Outer mac + Inner mac + VNI.
-
-    * Inner mac + Inner vlan + VNI.
-
-    * Inner mac + Inner vlan.
-
-The typical procedure to achieve this is as follows:
-
-#. Boot the system without iommu, or with ``iommu=pt``.
-
-#. Build and insert the ``i40e.ko`` module.
-
-#. Create Virtual Functions:
-
-   .. code-block:: console
-
-       echo 2 > /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs
-
-#. Add udp port offload to the NIC if using cloud filter:
-
-   .. code-block:: console
-
-       ip li add vxlan0 type vxlan id 42 group 239.1.1.1 local 10.16.43.214 dev <name>
-       ifconfig vxlan0 up
-       ip -d li show vxlan0
-
-   .. note::
-
-       Output such as ``add vxlan port 8472, index 0 success`` should be
-       found in the system log.
-
-#. Examples of enabling and setting flow filters:
-
-   * L3 VEB filter, for a route whose destination IP is 192.168.50.108 to VF
-     0's queue 2.
-
-     .. code-block:: console
-
-       ethtool -N <dev_name> flow-type ip4 dst-ip 192.168.50.108 \
-               user-def 0xffffffff00000000 action 2 loc 8
-
-   * Inner mac, for a route whose inner destination mac is 0:0:0:0:9:0 to
-     PF's queue 6.
-
-     .. code-block:: console
-
-       ethtool -N <dev_name> flow-type ether dst 00:00:00:00:00:00 \
-               m ff:ff:ff:ff:ff:ff src 00:00:00:00:09:00 m 00:00:00:00:00:00 \
-               user-def 0xffffffff00000003 action 6 loc 1
-
-   * Inner mac + VNI, for a route whose inner destination mac is 0:0:0:0:9:0
-     and VNI is 8 to PF's queue 4.
-
-     .. code-block:: console
-
-       ethtool -N <dev_name> flow-type ether dst 00:00:00:00:00:00 \
-               m ff:ff:ff:ff:ff:ff src 00:00:00:00:09:00 m 00:00:00:00:00:00 \
-               user-def 0x800000003 action 4 loc 4
-
-   * Outer mac + Inner mac + VNI, for a route whose outer mac is
-     68:05:ca:24:03:8b, inner destination mac is c2:1a:e1:53:bc:57, and VNI
-     is 8 to PF's queue 2.
-
-     .. code-block:: console
-
-       ethtool -N <dev_name> flow-type ether dst 68:05:ca:24:03:8b \
-               m 00:00:00:00:00:00 src c2:1a:e1:53:bc:57 m 00:00:00:00:00:00 \
-               user-def 0x800000003 action 2 loc 2
-
-   * Inner mac + Inner vlan + VNI, for a route whose inner destination mac is
-     00:00:00:00:20:00, inner vlan is 10, and VNI is 8 to VF 0's queue 1.
-
-     .. code-block:: console
-
-       ethtool -N <dev_name> flow-type ether dst 00:00:00:00:01:00 \
-               m ff:ff:ff:ff:ff:ff src 00:00:00:00:20:00 m 00:00:00:00:00:00 \
-               vlan 10 user-def 0x800000000 action 1 loc 5
-
-   * Inner mac + Inner vlan, for a route whose inner destination mac is
-     00:00:00:00:20:00, and inner vlan is 10 to VF 0's queue 1.
-
-     .. code-block:: console
-
-       ethtool -N <dev_name> flow-type ether dst 00:00:00:00:01:00 \
-               m ff:ff:ff:ff:ff:ff src 00:00:00:00:20:00 m 00:00:00:00:00:00 \
-               vlan 10 user-def 0xffffffff00000000 action 1 loc 5
-
-   .. note::
-
-       * If the upper 32 bits of 'user-def' are ``0xffffffff``, then the
-         filter can be used for programming an L3 VEB filter, otherwise the
-         upper 32 bits of 'user-def' can carry the tenant ID/VNI if
-         specified/required.
-
-       * Cloud filters can be defined with inner mac, outer mac, inner ip,
-         inner vlan and VNI as part of the cloud tuple. It is always the
-         destination (not source) mac/ip that these filters use. For all
-         these examples dst and src mac address fields are overloaded dst ==
-         outer, src == inner.
-
-       * The filter will direct a packet matching the rule to a vf id
-         specified in the lower 32 bit of user-def to the queue specified by
-         'action'.
-
-       * If the vf id specified by the lower 32 bit of user-def is greater
-         than or equal to ``max_vfs``, then the filter is for the PF queues.
-
-#. Compile the DPDK application and insert ``igb_uio`` or probe the ``vfio-pci``
-   kernel modules as normal.
-
-#. Bind the virtual function:
-
-   .. code-block:: console
-
-       modprobe vfio-pci
-       dpdk-devbind.py -b vfio-pci 01:10.0
-       dpdk-devbind.py -b vfio-pci 01:10.1
-
-#. run DPDK application on VFs:
-
-   .. code-block:: console
-
-       testpmd -l 0-7 -n 4 -- -i -w 01:10.0 -w 01:10.1 --forward-mode=mac
-
-.. note::
-
-   * The above steps work on the i40e Linux kernel driver v1.5.16.
-
-   * The Ethtool version used in this example is 3.18. The mask ``ff`` means
-     'not involved', while ``00`` or no mask means 'involved'.
-
-   * For more details of the configuration, refer to the
-     `cloud filter test plan <http://git.dpdk.org/tools/dts/tree/test_plans/cloud_filter_test_plan.rst>`_
diff --git a/doc/guides/howto/img/ixgbe_bifu_queue_idx.svg b/doc/guides/howto/img/ixgbe_bifu_queue_idx.svg
deleted file mode 100644
index f7e2bd80e3..0000000000
--- a/doc/guides/howto/img/ixgbe_bifu_queue_idx.svg
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by Microsoft Visio, SVG Export ixgbe_bifu_queue_idx.svg Page-1 -->
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
-		xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="4.59375in" height="0.535375in"
-		viewBox="0 0 330.75 38.547" xml:space="preserve" color-interpolation-filters="sRGB" class="st8">
-	<v:documentProperties v:langID="1033" v:viewMarkup="false"/>
-
-	<style type="text/css">
-	<![CDATA[
-		.st1 {visibility:visible}
-		.st2 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
-		.st3 {fill:#ffffff;stroke:#c7c8c8;stroke-width:0.25}
-		.st4 {fill:#000000;font-family:Calibri;font-size:0.833336em}
-		.st5 {fill:#c5e0b3;stroke:#c7c8c8;stroke-width:0.25}
-		.st6 {fill:#f4b183;stroke:#c7c8c8;stroke-width:0.25}
-		.st7 {fill:none;stroke:none;stroke-width:0.25}
-		.st8 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
-	]]>
-	</style>
-
-	<defs id="Filters">
-		<filter id="filter_2">
-			<feGaussianBlur stdDeviation="2"/>
-		</filter>
-	</defs>
-	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
-		<title>Page-1</title>
-		<v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="0" v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
-		<g id="shape1-1" v:mID="1" v:groupContext="shape" transform="translate(3.0294,-5.34781)">
-			<title>Rectangle</title>
-			<desc>0x000000</desc>
-			<v:userDefs>
-				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
-			</v:userDefs>
-			<v:textBlock v:margins="rect(4,4,4,4)"/>
-			<v:textRect cx="52.1695" cy="30.3097" width="104.34" height="16.4746"/>
-			<g id="shadow1-2" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
-					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
-				<rect x="0" y="22.0724" width="104.339" height="16.4746" class="st2"/>
-			</g>
-			<rect x="0" y="22.0724" width="104.339" height="16.4746" class="st3"/>
-			<text x="32.27" y="33.31" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>0x000000</text>		</g>
-		<g id="shape2-7" v:mID="2" v:groupContext="shape" transform="translate(107.368,-5.34781)">
-			<title>Rectangle.2</title>
-			<desc>VF ID + 1</desc>
-			<v:userDefs>
-				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
-			</v:userDefs>
-			<v:textBlock v:margins="rect(4,4,4,4)"/>
-			<v:textRect cx="30.2034" cy="30.3097" width="60.41" height="16.4746"/>
-			<g id="shadow2-8" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
-					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
-				<rect x="0" y="22.0724" width="60.4068" height="16.4746" class="st2"/>
-			</g>
-			<rect x="0" y="22.0724" width="60.4068" height="16.4746" class="st5"/>
-			<text x="12.32" y="33.31" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>VF ID + 1</text>		</g>
-		<g id="shape3-13" v:mID="3" v:groupContext="shape" transform="translate(167.775,-5.34781)">
-			<title>Rectangle.3</title>
-			<desc>Queue Index</desc>
-			<v:userDefs>
-				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
-			</v:userDefs>
-			<v:textBlock v:margins="rect(4,4,4,4)"/>
-			<v:textRect cx="79.6271" cy="30.3097" width="159.26" height="16.4746"/>
-			<g id="shadow3-14" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
-					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
-				<rect x="0" y="22.0724" width="159.254" height="16.4746" class="st2"/>
-			</g>
-			<rect x="0" y="22.0724" width="159.254" height="16.4746" class="st6"/>
-			<text x="53.74" y="33.31" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>Queue Index</text>		</g>
-		<g id="shape4-19" v:mID="4" v:groupContext="shape" transform="translate(305.063,-21.8224)">
-			<title>Sheet.4</title>
-			<desc>0</desc>
-			<v:textBlock v:margins="rect(4,4,4,4)"/>
-			<v:textRect cx="10.9831" cy="30.3097" width="21.97" height="16.4746"/>
-			<rect x="0" y="22.0724" width="21.9661" height="16.4746" class="st7"/>
-			<text x="8.45" y="33.31" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>0</text>		</g>
-		<g id="shape6-22" v:mID="6" v:groupContext="shape" transform="translate(165.029,-21.8224)">
-			<title>Sheet.6</title>
-			<desc>31</desc>
-			<v:textBlock v:margins="rect(4,4,4,4)"/>
-			<v:textRect cx="10.9831" cy="30.3097" width="21.97" height="16.4746"/>
-			<rect x="0" y="22.0724" width="21.9661" height="16.4746" class="st7"/>
-			<text x="5.91" y="33.31" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>31</text>		</g>
-		<g id="shape7-25" v:mID="7" v:groupContext="shape" transform="translate(104.623,-21.8224)">
-			<title>Sheet.7</title>
-			<desc>39</desc>
-			<v:textBlock v:margins="rect(4,4,4,4)"/>
-			<v:textRect cx="10.9831" cy="30.3097" width="21.97" height="16.4746"/>
-			<rect x="0" y="22.0724" width="21.9661" height="16.4746" class="st7"/>
-			<text x="5.91" y="33.31" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>39</text>		</g>
-		<g id="shape8-28" v:mID="8" v:groupContext="shape" transform="translate(3.0294,-21.8224)">
-			<title>Sheet.8</title>
-			<desc>63</desc>
-			<v:textBlock v:margins="rect(4,4,4,4)"/>
-			<v:textRect cx="10.9831" cy="30.3097" width="21.97" height="16.4746"/>
-			<rect x="0" y="22.0724" width="21.9661" height="16.4746" class="st7"/>
-			<text x="5.91" y="33.31" class="st4" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>63</text>		</g>
-	</g>
-</svg>
-- 
2.17.1


             reply	other threads:[~2020-04-29  2:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-29  2:29 Xiaolong Ye [this message]
2020-04-29 12:54 ` Thomas Monjalon
2020-05-07  7:59   ` Ye Xiaolong
2020-05-07 10:24     ` Thomas Monjalon
2020-05-08  8:48 ` [dpdk-dev] [PATCH v2] doc: remove Intel " Xiaolong Ye
2020-05-08 14:54   ` Stephen Hemminger
2020-05-11 16:55     ` Ferruh Yigit

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=20200429022916.8871-1-xiaolong.ye@intel.com \
    --to=xiaolong.ye@intel.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=john.mcnamara@intel.com \
    --cc=marko.kovacevic@intel.com \
    --cc=thomas@monjalon.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).