From 20577bd739b0927e37c416d6c5be0a4f3f8f3c74 Mon Sep 17 00:00:00 2001 From: Gowrishankar Muthukrishnan Date: Mon, 27 Apr 2020 21:34:03 +0530 Subject: [PATCH] Add userspace-tso configuration in open_vswitch Change-Id: I8ea12fd832b3d1aa5aa0150a8586410748a286d4 Signed-off-by: Gowrishankar Muthukrishnan --- doc/source/roles/role-tripleo-ovs-dpdk.rst | 8 +++++++- .../roles/tripleo_ovs_dpdk/defaults/main.yml | 1 + .../molecule/default/tests/test_default.py | 5 +++++ .../molecule/positive/converge.yml | 1 + .../molecule/positive/tests/test_positive.py | 6 ++++++ .../roles/tripleo_ovs_dpdk/tasks/config.yml | 18 ++++++++++++++++++ 6 files changed, 38 insertions(+), 1 deletion(-) diff --git a/doc/source/roles/role-tripleo-ovs-dpdk.rst b/doc/source/roles/role-tripleo-ovs-dpdk.rst index ff77a8ded..bda306c9a 100644 --- a/doc/source/roles/role-tripleo-ovs-dpdk.rst +++ b/doc/source/roles/role-tripleo-ovs-dpdk.rst @@ -75,7 +75,7 @@ Role Defaults - **Default**: ``''`` - **Examples**: ``'2'`` -- ``triploe_ovs_dpdk_emc_insertion_probablity`` +- ``tripleo_ovs_dpdk_emc_insertion_probablity`` - **Description**: (*Optional*) EMC insertion inverse probability. Its a string with a number of flows (out of which 1 flow will cached). Having @@ -83,6 +83,12 @@ Role Defaults - **Default**: ``''`` - **Examples**: ``'100'`` +- ``tripleo_ovs_dpdk_enable_tso`` + + - **Description**: (*Optional*) Enable TSO support in OVS DPDK datapath. + - **Default**: ``false`` + - **Examples**: ``true`` + Modules diff --git a/tripleo_ansible/roles/tripleo_ovs_dpdk/defaults/main.yml b/tripleo_ansible/roles/tripleo_ovs_dpdk/defaults/main.yml index e8d2727c2..488102850 100644 --- a/tripleo_ansible/roles/tripleo_ovs_dpdk/defaults/main.yml +++ b/tripleo_ansible/roles/tripleo_ovs_dpdk/defaults/main.yml @@ -27,3 +27,4 @@ tripleo_ovs_dpdk_socket_memory: "" tripleo_ovs_dpdk_revalidator_cores: "" tripleo_ovs_dpdk_handler_cores: "" tripleo_ovs_dpdk_emc_insertion_probablity: "" +tripleo_ovs_dpdk_enable_tso: false diff --git a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/tests/test_default.py b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/tests/test_default.py index ff14cdf95..8b5459493 100644 --- a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/tests/test_default.py +++ b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/tests/test_default.py @@ -70,3 +70,8 @@ def test_positive_handler_threads(host): def test_positive_emc_prob(host): other_config = get_config(host) assert 'emc-insert-inv-prob' not in other_config + + +def test_positive_enable_tso(host): + other_config = get_config(host) + assert 'userspace-tso-enable' not in other_config diff --git a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/positive/converge.yml b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/positive/converge.yml index 044768336..d1f6f2360 100644 --- a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/positive/converge.yml +++ b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/positive/converge.yml @@ -30,3 +30,4 @@ tripleo_ovs_dpdk_revalidator_cores: 2 tripleo_ovs_dpdk_handler_cores: 2 tripleo_ovs_dpdk_emc_insertion_probablity: 0 + tripleo_ovs_dpdk_enable_tso: true diff --git a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/positive/tests/test_positive.py b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/positive/tests/test_positive.py index 9d38ec04d..0194f0982 100644 --- a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/positive/tests/test_positive.py +++ b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/positive/tests/test_positive.py @@ -74,3 +74,9 @@ def test_positive_emc_prob(host): other_config = get_config(host) dpdk_extra = other_config['emc-insert-inv-prob'].replace('"', '') assert dpdk_extra == "0" + + +def test_positive_enable_tso(host): + other_config = get_config(host) + tso_enabled = other_config['userspace-tso-enable'].replace('"', '') + assert tso_enabled == "true" diff --git a/tripleo_ansible/roles/tripleo_ovs_dpdk/tasks/config.yml b/tripleo_ansible/roles/tripleo_ovs_dpdk/tasks/config.yml index bc4948468..c3678c879 100644 --- a/tripleo_ansible/roles/tripleo_ovs_dpdk/tasks/config.yml +++ b/tripleo_ansible/roles/tripleo_ovs_dpdk/tasks/config.yml @@ -125,3 +125,21 @@ col: other_config key: emc-insert-inv-prob when: not tripleo_ovs_dpdk_emc_insertion_probablity|string + +- name: Enable TSO in datapath + openvswitch_db: + table: open_vswitch + record: . + col: other_config + key: userspace-tso-enable + value: "{{ tripleo_ovs_dpdk_enable_tso }}" + when: tripleo_ovs_dpdk_enable_tso|bool + +- name: Disable TSO in datapath + openvswitch_db: + state: absent + table: open_vswitch + record: . + col: other_config + key: userspace-tso-enable + when: not tripleo_ovs_dpdk_enable_tso|bool