FIX: Configure number of memif queus properly 90/11890/5
authorPeter Mikus <pmikus@cisco.com>
Wed, 18 Apr 2018 15:09:33 +0000 (17:09 +0200)
committerPeter Mikus <pmikus@cisco.com>
Fri, 20 Apr 2018 06:21:08 +0000 (06:21 +0000)
Change-Id: I2dcb0300829bc961c80cc30d972d0563aeba9364
Signed-off-by: Peter Mikus <pmikus@cisco.com>
16 files changed:
resources/libraries/python/Memif.py
resources/libraries/robot/performance/performance_configuration.robot
resources/libraries/robot/shared/memif.robot
resources/templates/vat/memif_create.vat
resources/templates/vat/memif_create_cnt.vat
tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
tests/vpp/perf/container_memif/10ge2p1x520-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdrdisc.robot
tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1dcr-mrr.robot
tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1drc-ndrpdrdisc.robot
tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
tests/vpp/perf/container_memif/10ge2p1x520-eth-l2xcbase-eth-2memif-1lxc-ndrpdrdisc.robot
tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-mrr.robot
tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot
tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr.robot
tests/vpp/perf/container_memif/40ge2p1xl710-eth-l2xcbase-eth-2memif-1lxc-mrr.robot

index 4a31864..d0ab6c7 100644 (file)
@@ -25,18 +25,23 @@ class Memif(object):
         pass
 
     @staticmethod
-    def create_memif_interface(node, filename, mid, sid, role='master'):
+    def create_memif_interface(node, filename, mid, sid, rxq=1, txq=1,
+                               role='slave'):
         """Create Memif interface on the given node.
 
         :param node: Given node to create Memif interface on.
         :param filename: Memif interface socket filename.
         :param mid: Memif interface ID.
         :param sid: Socket ID.
+        :param rxq: Number of RX queues.
+        :param txq: Number of TX queues.
         :param role: Memif interface role [master|slave]. Default is master.
         :type node: dict
         :type filename: str
         :type mid: str
         :type sid: str
+        :type rxq: int
+        :type txq: int
         :type role: str
         :returns: SW interface index.
         :rtype: int
@@ -48,7 +53,8 @@ class Memif(object):
                 'memif_socket_filename_add_del.vat',
                 add_del='add', id=sid, filename='/tmp/'+filename)
             vat.vat_terminal_exec_cmd_from_template(
-                'memif_create.vat', id=mid, socket=sid, role=role)
+                'memif_create.vat', id=mid, socket=sid, rxq=rxq, txq=txq,
+                role=role)
             if 'sw_if_index' in vat.vat_stdout:
                 try:
                     sw_if_idx = int(vat.vat_stdout.split()[4])
index 35999d5..b4f2fb7 100644 (file)
 | | Configure deterministic mode for NAT44
 | | ... | ${dut1} | 20.0.0.0 | 18 | 200.0.0.0 | 30
 
-| Initialize L2 xconnect for '${nr}' memif pairs in 3-node circular topology
+| Initialize L2 xconnect for '${nr}' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | [Documentation]
 | | ... | Create pairs of Memif interfaces on all defined VPP nodes. Cross
 | | ... | connect each Memif interface with one physical interface or virtual
 | | | ${prev_index}= | Evaluate | ${number}-1
 | | | Set up memif interfaces on DUT node | ${dut1}
 | | | ... | ${sock1} | ${sock2} | ${number} | dut1-memif-${number}-if1
-| | | ... | dut1-memif-${number}-if2
+| | | ... | dut1-memif-${number}-if2 | ${rxq} | ${rxq}
 | | | ${dut1_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut1_if1}
 | | | ... | ${dut1-memif-${prev_index}-if2}
 | | | Configure L2XC | ${dut1} | ${dut1_xconnect_if1}
 | | | ${sock2}= | Set Variable | memif-DUT2_VNF
 | | | Set up memif interfaces on DUT node | ${dut2}
 | | | ... | ${sock1} | ${sock2} | ${number} | dut2-memif-${number}-if1
-| | | ... | dut2-memif-${number}-if2
+| | | ... | dut2-memif-${number}-if2 | ${rxq} | ${rxq}
 | | | ${dut2_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut2_if1}
 | | | ... | ${dut2-memif-${prev_index}-if2}
 | | | Configure L2XC | ${dut2} | ${dut2_xconnect_if1}
 | | :FOR | ${dut} | IN | @{duts}
 | | | Show Memif | ${nodes['${dut}']}
 
-| Initialize L2 Bridge Domain for '${nr}' memif pairs in 3-node circular topology
+| Initialize L2 Bridge Domain for '${nr}' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | [Documentation]
 | | ... | Create pairs of Memif interfaces on all defined VPP nodes. Put each
 | | ... | Memif interface to separate L2 bridge domain with one physical or
 | | | ${sock2}= | Set Variable | memif-DUT1_VNF
 | | | Set up memif interfaces on DUT node | ${dut1}
 | | | ... | ${sock1} | ${sock2} | ${number} | dut1-memif-${number}-if1
-| | | ... | dut1-memif-${number}-if2
+| | | ... | dut1-memif-${number}-if2 | ${rxq} | ${rxq}
 | | | ${bd_id2}= | Evaluate | ${number}+1
 | | | Add interface to bridge domain | ${dut1}
 | | | ... | ${dut1-memif-${number}-if1} | ${number}
 | | | ${sock2}= | Set Variable | memif-DUT2_VNF
 | | | Set up memif interfaces on DUT node | ${dut2}
 | | | ... | ${sock1} | ${sock2} | ${number} | dut2-memif-${number}-if1
-| | | ... | dut2-memif-${number}-if2
+| | | ... | dut2-memif-${number}-if2 | ${rxq} | ${rxq}
 | | | Add interface to bridge domain | ${dut2}
 | | | ... | ${dut2-memif-${number}-if1} | ${number}
 | | | Add interface to bridge domain | ${dut2}
index 1739743..172376f 100644 (file)
@@ -28,6 +28,9 @@
 | | ... | Type: string
 | | ... | - ${memif_if2} - Name of the second Memif interface (Optional).
 | | ... | Type: string
+| | ... | - ${rxq} - RX queues. Type: integer
+| | ... | - ${txq} - TX queues. Type: integer
+| | ... | - ${role} - Memif role. Type: string
 | | ...
 | | ... | _NOTE:_ This KW sets following test case variable:
 | | ... | - ${${memif_if1}} - 1st Memif interface.
 | | ... | \| ${nodes['DUT1']} \| sock1 \| sock2 \| 1 \|
 | | ... | \| Set up memif interfaces on DUT node \
 | | ... | \| ${nodes['DUT2']} \| sock1 \| sock2 \| 1 \
-| | ... | \| dut2_memif_if1 \| dut2_memif_if2 \|
+| | ... | \| dut2_memif_if1 \| dut2_memif_if2 \| 1 \| 1 \| slave \|
 | | ...
 | | [Arguments] | ${dut_node} | ${filename1} | ${filename2} | ${mid}=${1}
-| | ... | ${memif_if1}=memif_if1 | ${memif_if2}=memif_if2
+| | ... | ${memif_if1}=memif_if1 | ${memif_if2}=memif_if2 | ${rxq}=${1}
+| | ... | ${txq}=${1} | ${role}=slave
 | | ${sid_1}= | Evaluate | (${mid}*2)-1
 | | ${sid_2}= | Evaluate | (${mid}*2)
 | | ${memif_1}= | Create memif interface | ${dut_node}
-| | ... | ${filename1}${mid}-${sid_1} | ${mid} | ${sid_1}
+| | ... | ${filename1}${mid}-${sid_1} | ${mid} | ${sid_1} | rxq=${rxq}
+| | ... | txq=${txq} | role=${role}
 | | ${memif_2}= | Create memif interface | ${dut_node}
-| | ... | ${filename2}${mid}-${sid_2} | ${mid} | ${sid_2}
+| | ... | ${filename2}${mid}-${sid_2} | ${mid} | ${sid_2} | rxq=${rxq}
+| | ... | txq=${txq} | role=${role}
 | | Set Interface State | ${dut_node} | ${memif_1} | up
 | | Set Interface State | ${dut_node} | ${memif_2} | up
 | | Set Test Variable | ${${memif_if1}} | ${memif_1}
index d9f2937..1e9d0e8 100644 (file)
@@ -1 +1 @@
-memif_create id {id} socket-id {socket} {role}\r
+memif_create id {id} socket-id {socket} {role} rx-queues {rxq} tx-queues {txq}\r
index f0d847b..306df83 100644 (file)
@@ -1,9 +1,9 @@
 create memif socket id {sid1} filename /mnt/host/{socket1}
-create interface memif id {mid1} socket-id {sid1} slave
+create interface memif id {mid1} socket-id {sid1} master
 set int state memif{sid1}/{mid1} up
 
 create memif socket id {sid2} filename /mnt/host/{socket2}
-create interface memif id {mid2} socket-id {sid2} slave
+create interface memif id {mid2} socket-id {sid2} master
 set int state memif{sid2}/{mid2} up
 
 set interface l2 xconnect memif{sid2}/{mid2} memif{sid1}/{mid1}
index 6ea7c80..3913aa5 100644 (file)
@@ -60,7 +60,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
@@ -82,7 +82,7 @@
 | | And Run Keyword If | ${get_framesize} < ${1522}
 | | ... | Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 Bridge Domain for '1' memif pairs in 3-node circular topology
+| | And Initialize L2 Bridge Domain for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Then Traffic should pass with maximum rate | ${perf_trial_duration}
 | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
 
index 8814e1e..cf78e88 100644 (file)
@@ -68,7 +68,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | Discover NDR or PDR for L2 Bridge Domain with Memif
@@ -85,7 +85,7 @@
 | | Add PCI Devices To DUTs In 3-node Single Link Topology
 | | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs
 | | Apply startup configuration on all VPP DUTs
-| | Initialize L2 Bridge Domain for '1' memif pairs in 3-node circular topology
+| | Initialize L2 Bridge Domain for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Run Keyword If | '${search_type}' == 'NDR'
 | | ... | Find NDR using binary search and pps
 | | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
index 908180d..ded74ee 100644 (file)
@@ -60,7 +60,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | Check RR for l2xcbase-eth-2memif-1dcr
@@ -82,7 +82,7 @@
 | | And Run Keyword If | ${get_framesize} < ${1522}
 | | ... | Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Then Traffic should pass with maximum rate | ${perf_trial_duration}
 | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
 
index 6f5f4fd..62e8fd3 100644 (file)
@@ -68,7 +68,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | L2 Cross Connect over Memif Binary Search
@@ -85,7 +85,7 @@
 | | Add PCI Devices To DUTs In 3-node Single Link Topology
 | | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs
 | | Apply startup configuration on all VPP DUTs
-| | Initialize L2 xconnect for '${container_count}' memif pairs in 3-node circular topology
+| | Initialize L2 xconnect for '${container_count}' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Run Keyword If | '${search_type}' == 'NDR'
 | | ... | Find NDR using binary search and pps
 | | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
index 2ec26b7..75b7c38 100644 (file)
@@ -59,7 +59,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | Check RR for l2xcbase-eth-2memif-1lxc
@@ -81,7 +81,7 @@
 | | And Run Keyword If | ${get_framesize} < ${1522}
 | | ... | Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Then Traffic should pass with maximum rate | ${perf_trial_duration}
 | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
 
index b56228e..c9c3cc9 100644 (file)
@@ -67,7 +67,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | L2 Cross Connect over Memif Binary Search
@@ -84,7 +84,7 @@
 | | Add PCI Devices To DUTs In 3-node Single Link Topology
 | | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs
 | | Apply startup configuration on all VPP DUTs
-| | Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
+| | Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Run Keyword If | '${search_type}' == 'NDR'
 | | ... | Find NDR using binary search and pps
 | | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile}
index 6ab953d..27b87db 100644 (file)
@@ -60,7 +60,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
@@ -82,7 +82,7 @@
 | | And Run Keyword If | ${get_framesize} < ${1522}
 | | ... | Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 Bridge Domain for '1' memif pairs in 3-node circular topology
+| | And Initialize L2 Bridge Domain for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Then Traffic should pass with maximum rate | ${perf_trial_duration}
 | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
 
index 23a12d0..7bc617a 100644 (file)
@@ -60,7 +60,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | Check RR for l2xcbase-eth-2memif-1dcr
@@ -82,7 +82,7 @@
 | | And Run Keyword If | ${get_framesize} < ${1522}
 | | ... | Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Then Traffic should pass with maximum rate | ${perf_trial_duration}
 | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
 
index 2e39c87..f5bc14a 100644 (file)
@@ -59,7 +59,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | Check RR for l2xcbase-eth-2memif-1lxc
@@ -81,7 +81,7 @@
 | | And Run Keyword If | ${get_framesize} < ${1522}
 | | ... | Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Then Traffic should pass with maximum rate | ${perf_trial_duration}
 | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
 
index dd7e7e8..a4674a1 100644 (file)
@@ -62,7 +62,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | Check RR for l2bdbasemaclrn-eth-2memif-1lxc
@@ -86,7 +86,7 @@
 | | And Run Keyword If | ${get_framesize} < ${1522}
 | | ... | Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 Bridge Domain for '1' memif pairs in 3-node circular topology
+| | And Initialize L2 Bridge Domain for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Then Traffic should pass with maximum rate | ${perf_trial_duration}
 | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}
 
index 92988b3..0160bf2 100644 (file)
@@ -61,7 +61,7 @@
 # CPU settings
 | ${system_cpus}= | ${1}
 | ${vpp_cpus}= | ${5}
-| ${container_cpus}= | ${3}
+| ${container_cpus}= | ${5}
 
 *** Keywords ***
 | Check RR for l2xcbase-eth-2memif-1lxc
@@ -85,7 +85,7 @@
 | | And Run Keyword If | ${get_framesize} < ${1522}
 | | ... | Add no multi seg to all DUTs
 | | And Apply startup configuration on all VPP DUTs
-| | And Initialize L2 xconnect for '1' memif pairs in 3-node circular topology
+| | And Initialize L2 xconnect for '1' memif pairs and '${rxq}' rxqueues in 3-node circular topology
 | | Then Traffic should pass with maximum rate | ${perf_trial_duration}
 | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile}