summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/automake.mk1
-rw-r--r--Documentation/topics/index.rst1
-rw-r--r--Documentation/topics/userspace-tx-steering.rst74
3 files changed, 76 insertions, 0 deletions
diff --git a/Documentation/automake.mk b/Documentation/automake.mk
index 137cc57c5..01e3c4f9e 100644
--- a/Documentation/automake.mk
+++ b/Documentation/automake.mk
@@ -58,6 +58,7 @@ DOC_SOURCE = \
Documentation/topics/record-replay.rst \
Documentation/topics/tracing.rst \
Documentation/topics/userspace-tso.rst \
+ Documentation/topics/userspace-tx-steering.rst \
Documentation/topics/windows.rst \
Documentation/howto/index.rst \
Documentation/howto/dpdk.rst \
diff --git a/Documentation/topics/index.rst b/Documentation/topics/index.rst
index d8ccbd757..3699fd5c4 100644
--- a/Documentation/topics/index.rst
+++ b/Documentation/topics/index.rst
@@ -55,3 +55,4 @@ OVS
userspace-tso
idl-compound-indexes
ovs-extensions
+ userspace-tx-steering
diff --git a/Documentation/topics/userspace-tx-steering.rst b/Documentation/topics/userspace-tx-steering.rst
new file mode 100644
index 000000000..16f066a8a
--- /dev/null
+++ b/Documentation/topics/userspace-tx-steering.rst
@@ -0,0 +1,74 @@
+..
+ Licensed under the Apache License, Version 2.0 (the "License"); you may
+ not use this file except in compliance with the License. You may obtain
+ a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ License for the specific language governing permissions and limitations
+ under the License.
+
+ Convention for heading levels in Open vSwitch documentation:
+
+ ======= Heading 0 (reserved for the title in a document)
+ ------- Heading 1
+ ~~~~~~~ Heading 2
+ +++++++ Heading 3
+ ''''''' Heading 4
+
+ Avoid deeper levels because they do not render well.
+
+============================
+Userspace Tx packet steering
+============================
+
+The userspace datapath supports two transmit packet steering modes.
+
+Thread mode
+~~~~~~~~~~~
+
+This mode is automatically selected when the port's ``tx-steering`` option is
+set to ``thread`` or unset.
+
+Depending on the port's number of Tx queues being greater or equal than the
+number of PMD threads, static txq mapping or XPS will be used.
+
+This is the recommended mode for performance reasons if the number of Tx queues
+is greater or equal to the number of PMD threads, because the Tx lock is not
+acquired.
+
+If the number of Tx queues is greater than the number of threads, the remaining
+Tx queues will not be used.
+
+This mode is enabled by default.
+
+Hash mode
+~~~~~~~~~
+
+Hash-based Tx packet steering mode distributes the packets on all the port's
+transmit queues, whatever the number of PMD threads. The queue selection is
+based on the 5-tuples hash to build the flows batches, the selected queue being
+the modulo between the hash and the number of Tx queues of the port.
+
+Hash mode may be used for example with vhost-user ports, when the number of
+vCPUs and queues of the guest are greater than the number of PMD threads.
+Without hash mode, the Tx queues used would be limited to the number of
+threads.
+
+Hash-based Tx packet steering may have an impact on the performance, given the
+Tx lock acquisition is always required and a second level of batching is
+performed.
+
+Usage
+~~~~~
+
+To enable hash mode::
+
+ $ ovs-vsctl set Interface <iface> other_config:tx-steering=hash
+
+To disable hash mode::
+
+ $ ovs-vsctl set Interface <iface> other_config:tx-steering=thread