Merge "[DPDK] Add ability to set pmd_rxq_affinity for dpdk interfaces"
diff --git a/README.rst b/README.rst
index afad3df..6170e0b 100644
--- a/README.rst
+++ b/README.rst
@@ -1057,6 +1057,7 @@
enabled: true
type: dpdk_ovs_port
n_rxq: 2
+ pmd_rxq_affinity: "0:1,1:2"
bridge: br-prv
mtu: 9000
br-prv:
@@ -1087,6 +1088,7 @@
enabled: true
type: dpdk_ovs_port
n_rxq: 2
+ pmd_rxq_affinity: "0:1,1:2"
mtu: 9000
dpdk_first_nic:
name: ${_param:primary_first_nic}
@@ -1096,6 +1098,7 @@
enabled: true
type: dpdk_ovs_port
n_rxq: 2
+ pmd_rxq_affinity: "0:1,1:2"
mtu: 9000
dpdkbond0:
enabled: true
diff --git a/linux/network/dpdk.sls b/linux/network/dpdk.sls
index 6ddd856..4df8b63 100644
--- a/linux/network/dpdk.sls
+++ b/linux/network/dpdk.sls
@@ -147,8 +147,8 @@
- require:
- cmd: linux_network_dpdk_bridge_interface_{{ interface.bridge }}
- {# Multiqueue n_rxq and mtu setup on interfaces #}
- {%- elif interface.type == 'dpdk_ovs_port' and (interface.n_rxq is defined or interface.mtu is defined) %}
+ {# Multiqueue n_rxq, pmd_rxq_affinity and mtu setup on interfaces #}
+ {%- elif interface.type == 'dpdk_ovs_port' and (interface.n_rxq is defined or interface.mtu is defined or interface.pmd_rxq_affinity is defined) %}
{%- if interface.n_rxq is defined %}
@@ -160,6 +160,16 @@
{%- endif %}
+ {%- if interface.pmd_rxq_affinity is defined %}
+
+linux_network_dpdk_bridge_port_interface_pmd_rxq_affinity_{{ interface_name }}:
+ cmd.run:
+ - name: "ovs-vsctl set Interface {{ interface_name }} other_config:pmd-rxq-affinity={{ interface.pmd_rxq_affinity }} "
+ - unless: |
+ ovs-vsctl get Interface {{ interface_name }} other_config | grep 'pmd-rxq-affinity="{{ interface.pmd_rxq_affinity }}"'
+
+ {%- endif %}
+
{%- if interface.mtu is defined %}
{# MTU ovs dpdk setup on interfaces #}