From c8b2f57cd09355e0e89e6b9d28930281573bec23 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Wed, 18 Apr 2018 17:09:33 +0200 Subject: FIX: Configure number of memif queus properly Change-Id: I2dcb0300829bc961c80cc30d972d0563aeba9364 Signed-off-by: Peter Mikus --- resources/libraries/python/Memif.py | 10 ++++++++-- .../robot/performance/performance_configuration.robot | 12 ++++++------ resources/libraries/robot/shared/memif.robot | 14 ++++++++++---- resources/templates/vat/memif_create.vat | 2 +- resources/templates/vat/memif_create_cnt.vat | 4 ++-- 5 files changed, 27 insertions(+), 15 deletions(-) (limited to 'resources') diff --git a/resources/libraries/python/Memif.py b/resources/libraries/python/Memif.py index 4a3186476f..d0ab6c74d1 100644 --- a/resources/libraries/python/Memif.py +++ b/resources/libraries/python/Memif.py @@ -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]) diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index 35999d5304..b4f2fb7bae 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -2124,7 +2124,7 @@ | | 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 @@ -2151,7 +2151,7 @@ | | | ${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} @@ -2160,7 +2160,7 @@ | | | ${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} @@ -2173,7 +2173,7 @@ | | :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 @@ -2201,7 +2201,7 @@ | | | ${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} @@ -2211,7 +2211,7 @@ | | | ${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} diff --git a/resources/libraries/robot/shared/memif.robot b/resources/libraries/robot/shared/memif.robot index 1739743498..172376ffde 100644 --- a/resources/libraries/robot/shared/memif.robot +++ b/resources/libraries/robot/shared/memif.robot @@ -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. @@ -39,16 +42,19 @@ | | ... | \| ${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} diff --git a/resources/templates/vat/memif_create.vat b/resources/templates/vat/memif_create.vat index d9f2937029..1e9d0e8a6a 100644 --- a/resources/templates/vat/memif_create.vat +++ b/resources/templates/vat/memif_create.vat @@ -1 +1 @@ -memif_create id {id} socket-id {socket} {role} +memif_create id {id} socket-id {socket} {role} rx-queues {rxq} tx-queues {txq} diff --git a/resources/templates/vat/memif_create_cnt.vat b/resources/templates/vat/memif_create_cnt.vat index f0d847b29b..306df83c57 100644 --- a/resources/templates/vat/memif_create_cnt.vat +++ b/resources/templates/vat/memif_create_cnt.vat @@ -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} -- cgit 1.2.3-korg