From: Vratko Polak Date: Tue, 16 Apr 2019 14:32:59 +0000 (+0200) Subject: Clean up traffic_profile vs osi_layer X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=commitdiff_plain;h=258f2666143138f20d84665fcfed53475bc88041 Clean up traffic_profile vs osi_layer The two types were not well distinguished before. Error introduced in: https://gerrit.fd.io/r/#/c/17811/84/resources/libraries/robot/performance/performance_setup.robot@255 Error hotfixed in: https://gerrit.fd.io/r/#/c/18847/4/resources/libraries/robot/shared/default.robot@109 + Rename some arguments and improve method docstrings. Newly introduced argument name osi_layer should be dissimilar enough. Change-Id: Ie0f6f97dc010fc6477f09c54574970f1d15462e2 Signed-off-by: Vratko Polak --- diff --git a/docs/test_code_guidelines.rst b/docs/test_code_guidelines.rst index 24544b93de..d1f268772b 100644 --- a/docs/test_code_guidelines.rst +++ b/docs/test_code_guidelines.rst @@ -72,30 +72,27 @@ RobotFramework test case files and resource files *** Keywords *** | Local Template | | [Documentation] - | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy - | | ... | core(s). - | | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames\ - | | ... | using single trial throughput test. + | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy core(s). + | | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ | | ... | | ... | *Arguments:* - | | ... | - framesize - Framesize in Bytes in integer\ - | | ... | or string (IMIX_v4_1). Type: integer, string + | | ... | - frame_size - Framesize in Bytes in integer + | | ... | or string (IMIX_v4_1). Type: integer, string | | ... | - phy_cores - Number of physical cores. Type: integer - | | ... | - rxq - Number of RX queues, default value: ${None}.\ - | | ... | Type: integer + | | ... | - rxq - Number of RX queues, default value: ${None}. + | | ... | Type: integer | | ... - | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} + | | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None} + | | ... + | | Set Test Variable | \${frame_size} | | ... | | Given Add worker threads and rxqueues to all DUTs | | ... | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs - | | ${max_rate} | ${jumbo} = | Run Keyword - | | ... | Get Max Rate And Jumbo And Handle Multi Seg - | | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} + | | Set Max Rate And Jumbo And Handle Multi Seg | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 patch - | | Then Traffic should pass with maximum rate - | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + | | Then Find NDR and PDR intervals using optimized search + Every suite and test case template (or testcase) SHALL contain short documentation. diff --git a/resources/libraries/python/DropRateSearch.py b/resources/libraries/python/DropRateSearch.py index d090306cc5..e87ef95434 100644 --- a/resources/libraries/python/DropRateSearch.py +++ b/resources/libraries/python/DropRateSearch.py @@ -109,21 +109,21 @@ class DropRateSearch(object): @abstractmethod def measure_loss(self, rate, frame_size, loss_acceptance, - loss_acceptance_type, traffic_type, skip_warmup=False): + loss_acceptance_type, traffic_profile, skip_warmup=False): """Send traffic from TG and measure count of dropped frames. :param rate: Offered traffic load. :param frame_size: Size of frame. :param loss_acceptance: Permitted drop ratio or frames count. :param loss_acceptance_type: Type of permitted loss. - :param traffic_type: Traffic profile ([2,3]-node-L[2,3], ...). + :param traffic_profile: Module name to use for traffic generation. :param skip_warmup: Start TRex without warmup traffic if true. :type rate: int :type frame_size: str :type loss_acceptance: float :type loss_acceptance_type: LossAcceptanceType - :type traffic_type: str - :type traffic_type: bool + :type traffic_profile: str + :type skip_warmup: bool :returns: Drop threshold exceeded? (True/False) :rtype: bool """ @@ -381,13 +381,13 @@ class DropRateSearch(object): else: raise ValueError("Unknown search result type") - def linear_search(self, start_rate, traffic_type): + def linear_search(self, start_rate, traffic_profile): """Linear search of rate with loss below acceptance criteria. :param start_rate: Initial rate. - :param traffic_type: Traffic profile. + :param traffic_profile: Module name to use for traffic generation. :type start_rate: float - :type traffic_type: str + :type traffic_profile: str :returns: nothing :raises ValueError: If start rate is not in range. """ @@ -405,7 +405,7 @@ class DropRateSearch(object): for dummy in range(self._max_attempts): res.append(self.measure_loss( rate, self._frame_size, self._loss_acceptance, - self._loss_acceptance_type, traffic_type)) + self._loss_acceptance_type, traffic_profile)) res = self._get_res_based_on_search_type(res) @@ -447,18 +447,18 @@ class DropRateSearch(object): return self._search_result_rate, self.get_latency() raise Exception('Search FAILED') - def binary_search(self, b_min, b_max, traffic_type, skip_max_rate=False, + def binary_search(self, b_min, b_max, traffic_profile, skip_max_rate=False, skip_warmup=False): """Binary search of rate with loss below acceptance criteria. :param b_min: Min range rate. :param b_max: Max range rate. - :param traffic_type: Traffic profile. + :param traffic_profile: Module name to use for traffic generation. :param skip_max_rate: Start with max rate first :param skip_warmup: Start TRex without warmup traffic if true. :type b_min: float :type b_max: float - :type traffic_type: str + :type traffic_profile: str :type skip_max_rate: bool :type skip_warmup: bool :returns: nothing @@ -489,33 +489,33 @@ class DropRateSearch(object): res = [] for dummy in range(self._max_attempts): - res.append(self.measure_loss(rate, self._frame_size, - self._loss_acceptance, - self._loss_acceptance_type, - traffic_type, skip_warmup=skip_warmup)) + res.append(self.measure_loss( + rate, self._frame_size, self._loss_acceptance, + self._loss_acceptance_type, traffic_profile, + skip_warmup=skip_warmup)) res = self._get_res_based_on_search_type(res) # loss occurred and it was above acceptance criteria if not res: - self.binary_search(b_min, rate, traffic_type, True, True) + self.binary_search(b_min, rate, traffic_profile, True, True) # there was no loss / loss below acceptance criteria else: self._search_result_rate = rate - self.binary_search(rate, b_max, traffic_type, True, True) + self.binary_search(rate, b_max, traffic_profile, True, True) - def combined_search(self, start_rate, traffic_type): + def combined_search(self, start_rate, traffic_profile): """Combined search of rate with loss below acceptance criteria. :param start_rate: Initial rate. - :param traffic_type: Traffic profile. + :param traffic_profile: Module name to use for traffic generation. :type start_rate: float - :type traffic_type: str + :type traffic_profile: str :returns: nothing :raises RuntimeError: If linear search failed. """ - self.linear_search(start_rate, traffic_type) + self.linear_search(start_rate, traffic_profile) if self._search_result in [SearchResults.SUCCESS, SearchResults.SUSPICIOUS]: @@ -535,7 +535,7 @@ class DropRateSearch(object): self._search_result_rate = None # we will use binary search to refine search in one linear step - self.binary_search(b_min, b_max, traffic_type, True) + self.binary_search(b_min, b_max, traffic_profile, True) # linear and binary search succeed if self._search_result == SearchResults.SUCCESS: diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py index d78984b1ca..1b1dda5726 100644 --- a/resources/libraries/python/InterfaceUtil.py +++ b/resources/libraries/python/InterfaceUtil.py @@ -1325,22 +1325,19 @@ class InterfaceUtil(object): exec_cmd_no_error(node, cmd, sudo=True) @staticmethod - def init_avf_interface(node, ifc_key, numvfs=1, traffic_type='L2'): + def init_avf_interface(node, ifc_key, numvfs=1, osi_layer='L2'): """Init PCI device by creating VFs and bind them to vfio-pci for AVF driver testing on DUT. :param node: DUT node. :param ifc_key: Interface key from topology file. :param numvfs: Number of VFs to initialize, 0 - disable the VFs. - :param traffic_type: Expected type of traffic, affects spoofing. + :param osi_layer: OSI Layer type to initialize TG with. Default value "L2" sets linux interface spoof off. - Other values do not do that. - Note: This is NOT the usual traffic profile - (which is python module name to initialize TG with). :type node: dict :type ifc_key: str :type numvfs: int - :type traffic_type: str + :type osi_layer: str :returns: Virtual Function topology interface keys. :rtype: list """ @@ -1379,7 +1376,7 @@ class InterfaceUtil(object): format(pci=pf_pci_addr) InterfaceUtil.set_linux_interface_trust_on(node, pf_dev, vf_id=vf_id) - if traffic_type == 'L2': + if osi_layer == 'L2': InterfaceUtil.set_linux_interface_spoof_off(node, pf_dev, vf_id=vf_id) InterfaceUtil.set_linux_interface_mac(node, pf_dev, vf_mac_addr, diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py index 5f92888fe8..84b9f1ff32 100644 --- a/resources/libraries/python/TrafficGenerator.py +++ b/resources/libraries/python/TrafficGenerator.py @@ -170,7 +170,7 @@ class TrafficGenerator(AbstractMeasurer): def initialize_traffic_generator( self, tg_node, tg_if1, tg_if2, tg_if1_adj_node, tg_if1_adj_if, - tg_if2_adj_node, tg_if2_adj_if, test_type, tg_if1_dst_mac=None, + tg_if2_adj_node, tg_if2_adj_if, osi_layer, tg_if1_dst_mac=None, tg_if2_dst_mac=None): """TG initialization. @@ -183,7 +183,7 @@ class TrafficGenerator(AbstractMeasurer): :param tg_if1_adj_if: TG if1 adjecent interface. :param tg_if2_adj_node: TG if2 adjecent node. :param tg_if2_adj_if: TG if2 adjecent interface. - :param test_type: 'L2', 'L3' or 'L7' - OSI Layer testing type. + :param osi_layer: 'L2', 'L3' or 'L7' - OSI Layer testing type. :param tg_if1_dst_mac: Interface 1 destination MAC address. :param tg_if2_dst_mac: Interface 2 destination MAC address. :type tg_node: dict @@ -193,7 +193,7 @@ class TrafficGenerator(AbstractMeasurer): :type tg_if1_adj_if: str :type tg_if2_adj_node: dict :type tg_if2_adj_if: str - :type test_type: str + :type osi_layer: str :type tg_if1_dst_mac: str :type tg_if2_dst_mac: str :returns: nothing @@ -220,15 +220,15 @@ class TrafficGenerator(AbstractMeasurer): if1_addr = Topology().get_interface_mac(tg_node, tg_if1) if2_addr = Topology().get_interface_mac(tg_node, tg_if2) - if test_type == 'L2': + if osi_layer == 'L2': if1_adj_addr = if2_addr if2_adj_addr = if1_addr - elif test_type == 'L3': + elif osi_layer == 'L3': if1_adj_addr = Topology().get_interface_mac(tg_if1_adj_node, tg_if1_adj_if) if2_adj_addr = Topology().get_interface_mac(tg_if2_adj_node, tg_if2_adj_if) - elif test_type == 'L7': + elif osi_layer == 'L7': if1_addr = Topology().get_interface_ip4(tg_node, tg_if1) if2_addr = Topology().get_interface_ip4(tg_node, tg_if2) if1_adj_addr = Topology().get_interface_ip4(tg_if1_adj_node, @@ -249,7 +249,7 @@ class TrafficGenerator(AbstractMeasurer): if1_adj_addr, if2_adj_addr = if2_adj_addr, if1_adj_addr self._ifaces_reordered = True - if test_type == 'L2' or test_type == 'L3': + if osi_layer == 'L2' or osi_layer == 'L3': (ret, _, _) = ssh.exec_command( "sudo sh -c 'cat << EOF > /etc/trex_cfg.yaml\n" "- port_limit: 2\n" @@ -266,7 +266,7 @@ class TrafficGenerator(AbstractMeasurer): "0x"+if1_addr.replace(":", ",0x"), "0x"+if2_adj_addr.replace(":", ",0x"), "0x"+if2_addr.replace(":", ",0x"))) - elif test_type == 'L7': + elif osi_layer == 'L7': (ret, _, _) = ssh.exec_command( "sudo sh -c 'cat << EOF > /etc/trex_cfg.yaml\n" "- port_limit: 2\n" @@ -299,13 +299,13 @@ class TrafficGenerator(AbstractMeasurer): raise RuntimeError('trex-cfg failed') # start TRex - if test_type == 'L2' or test_type == 'L3': + if osi_layer == 'L2' or osi_layer == 'L3': (ret, _, _) = ssh.exec_command( "sh -c 'cd {0}/scripts/ && " "sudo nohup ./t-rex-64 -i -c 7 --iom 0 > /tmp/trex.log " "2>&1 &' > /dev/null"\ .format(Constants.TREX_INSTALL_DIR)) - elif test_type == 'L7': + elif osi_layer == 'L7': (ret, _, _) = ssh.exec_command( "sh -c 'cd {0}/scripts/ && " "sudo nohup ./t-rex-64 --astf -i -c 7 --iom 0 > " diff --git a/resources/libraries/robot/performance/performance_setup.robot b/resources/libraries/robot/performance/performance_setup.robot index 11ce560fd6..4f3b0bd01a 100644 --- a/resources/libraries/robot/performance/performance_setup.robot +++ b/resources/libraries/robot/performance/performance_setup.robot @@ -240,19 +240,19 @@ | | ... | argument. Initializes traffic generator. | | ... | | ... | *Arguments:* -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - osi_layer - OSI Layer type to initialize TG with. Type: string | | ... | - nic_name - Interface model. Type: string | | ... | | ... | *Example:* | | ... | | ... | \| 2-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \| | | ... -| | [Arguments] | ${traffic_profile} | ${nic_name} +| | [Arguments] | ${osi_layer} | ${nic_name} | | ... | | Set variables in 2-node circular topology with DUT interface model | | ... | ${nic_name} | | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} -| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${traffic_profile} +| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${osi_layer} | Set up 2-node-switched performance topology with DUT's NIC model | | [Documentation] @@ -262,7 +262,7 @@ | | ... | argument. Initializes traffic generator. | | ... | | ... | *Arguments:* -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - osi_layer - OSI Layer type to initialize TG with. Type: string | | ... | - nic_name - Interface model. Type: string | | ... | - tg_if1_dest_mac - Interface 1 destination MAC address. Type: string | | ... | - tg_if2_dest_mac - Interface 2 destination MAC address. Type: string @@ -272,13 +272,13 @@ | | ... | \| 2-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \ | | ... | \| 22:22:33:44:55:66 \| 22:22:33:44:55:55 \| | | ... -| | [Arguments] | ${traffic_profile} | ${nic_name} | ${tg_if1_dest_mac} +| | [Arguments] | ${osi_layer} | ${nic_name} | ${tg_if1_dest_mac} | | ... | ${tg_if2_dest_mac} | | ... | | Set variables in 2-node circular topology with DUT interface model | | ... | ${nic_name} | | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} -| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${traffic_profile} +| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${osi_layer} | | ... | ${tg_if1_dest_mac} | ${tg_if2_dest_mac} | Set up 3-node performance topology with DUT's NIC model @@ -289,7 +289,7 @@ | | ... | argument. Initializes traffic generator. | | ... | | ... | *Arguments:* -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - osi_layer - OSI Layer type to initialize TG with. Type: string | | ... | - nic_name - Interface model. Type: string | | ... | | ... | *Example:* @@ -297,12 +297,12 @@ | | ... | \| Set up 3-node performance topology with DUT's NIC model \| L2 \ | | ... | \| Intel-X520-DA2 \| | | ... -| | [Arguments] | ${traffic_profile} | ${nic_name} +| | [Arguments] | ${osi_layer} | ${nic_name} | | ... | | Set variables in 3-node circular topology with DUT interface model | | ... | ${nic_name} | | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} -| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${traffic_profile} +| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${osi_layer} | Set up 3-node performance topology with DUT's NIC model with double link between DUTs | | [Documentation] @@ -312,7 +312,7 @@ | | ... | argument. Initializes traffic generator. | | ... | | ... | *Arguments:* -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - osi_layer - OSI Layer type to initialize TG with. Type: string | | ... | - nic_name - Interface model. Type: string | | ... | | ... | *Example:* @@ -320,12 +320,12 @@ | | ... | \| Set up 3-node performance topology with DUT's NIC model with \ | | ... | double link between DUTs \| L2 \| Intel-X520-DA2 \| | | ... -| | [Arguments] | ${traffic_profile} | ${nic_name} +| | [Arguments] | ${osi_layer} | ${nic_name} | | ... | | Set variables in 3-node circular topology with DUT interface model with double link between DUTs | | ... | ${nic_name} | | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} -| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${traffic_profile} +| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${osi_layer} | Set up DPDK 2-node performance topology with DUT's NIC model | | [Documentation] @@ -335,7 +335,7 @@ | | ... | environment. | | ... | | ... | *Arguments:* -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - osi_layer - OSI Layer type to initialize TG with. Type: string | | ... | - nic_name - Interface model. Type: string | | ... | | ... | *Example:* @@ -343,12 +343,12 @@ | | ... | \| Set up DPDK 2-node performance topology with DUT's NIC model \ | | ... | \| L2 \| Intel-X520-DA2 \| | | ... -| | [Arguments] | ${traffic_profile} | ${nic_name} +| | [Arguments] | ${osi_layer} | ${nic_name} | | ... | | Set variables in 2-node circular topology with DUT interface model | | ... | ${nic_name} | | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} -| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${traffic_profile} +| | ... | ${dut1} | ${dut1_if1} | ${dut1} | ${dut1_if2} | ${osi_layer} | | Initialize DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2} | Set up DPDK 3-node performance topology with DUT's NIC model @@ -359,19 +359,19 @@ | | ... | environment. | | ... | | ... | *Arguments:* -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - osi_layer - OSI Layer type to initialize TG with. Type: string | | ... | - nic_name - Interface model. Type: string | | ... | | ... | *Example:* | | ... | | ... | \| 3-node Performance Suite Setup \| L2 \| Intel-X520-DA2 \| | | ... -| | [Arguments] | ${traffic_profile} | ${nic_name} +| | [Arguments] | ${osi_layer} | ${nic_name} | | ... | | Set variables in 3-node circular topology with DUT interface model | | ... | ${nic_name} | | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} -| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${traffic_profile} +| | ... | ${dut1} | ${dut1_if1} | ${dut2} | ${dut2_if2} | ${osi_layer} | | Initialize DPDK Environment | ${dut1} | ${dut1_if1} | ${dut1_if2} | | Initialize DPDK Environment | ${dut2} | ${dut2_if1} | ${dut2_if2} @@ -384,7 +384,7 @@ | | ... | It configures PCI device with VFs on all DUTs. | | ... | | ... | *Arguments:* -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - osi_layer - OSI Layer type to initialize TG with. Type: string | | ... | - nic_name - Interface model. Type: string | | ... | - vf_driver - Virtual function driver. Type: string | | ... | - numvfs - Number of VFs. Type: integer @@ -394,17 +394,17 @@ | | ... | \| Set up SRIOV 2-node performance topology with DUT's NIC model \ | | ... | \| L2 \| Intel-X520-DA2 \| AVF \| | | ... -| | [Arguments] | ${traffic_profile} | ${nic_name} | ${vf_driver} +| | [Arguments] | ${osi_layer} | ${nic_name} | ${vf_driver} | | ... | ${numvfs}=${1} | | ... | | Set variables in 2-node circular topology with DUT interface model | | ... | ${nic_name} | | Run Keyword If | '${vf_driver}' == 'AVF' | | ... | Configure AVF interfaces on all DUTs | numvfs=${numvfs} -| | ... | traffic_profile=${traffic_profile} +| | ... | osi_layer=${osi_layer} | | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} | | ... | ${dut1} | ${dut1_if1_vf0} | ${dut1} | ${dut1_if2_vf0} -| | ... | ${traffic_profile} +| | ... | ${osi_layer} | Set up SRIOV 3-node performance topology with DUT's NIC model | | [Documentation] @@ -415,7 +415,7 @@ | | ... | It configures PCI device with VFs on all DUTs. | | ... | | ... | *Arguments:* -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - osi_layer - OSI Layer type to initialize TG with. Type: string | | ... | - nic_name - Interface model. Type: string | | ... | - vf_driver - Virtual function driver. Type: string | | ... | - numvfs - Number of VFs. Type: integer @@ -425,17 +425,17 @@ | | ... | \| Set up SRIOV 3-node performance topology with DUT's NIC model \ | | ... | \| L2 \| Intel-X520-DA2 \| AVF \| | | ... -| | [Arguments] | ${traffic_profile} | ${nic_name} | ${vf_driver} +| | [Arguments] | ${osi_layer} | ${nic_name} | ${vf_driver} | | ... | ${numvfs}=${1} | | ... | | Set variables in 3-node circular topology with DUT interface model | | ... | ${nic_name} | | Run Keyword If | '${vf_driver}' == 'AVF' | | ... | Configure AVF interfaces on all DUTs | numvfs=${numvfs} -| | ... | traffic_profile=${traffic_profile} +| | ... | osi_layer=${osi_layer} | | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} | | ... | ${dut1} | ${dut1_if1_vf0} | ${dut2} | ${dut2_if2_vf0} -| | ... | ${traffic_profile} +| | ... | ${osi_layer} | Set up IPSec performance test suite | | [Documentation] @@ -448,7 +448,7 @@ | | ... | TODO CSIT-1481: Crypto HW should be read from topology file instead. | | ... | | ... | *Arguments:* -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - osi_layer - OSI Layer type to initialize TG with. Type: string | | ... | - nic_name - Interface model. Type: string | | ... | - crypto_type - Crypto device type - HW_DH895xcc or HW_C3xxx or | | ... | SW_cryptodev. Type: string, default value: HW_DH895xcc @@ -458,10 +458,10 @@ | | ... | \| Set up IPSec performance test suite \| L2 \ | | ... | \| Intel-X520-DA2 \| HW_DH895xcc \| | | ... -| | [Arguments] | ${traffic_profile} | ${nic_name} | ${crypto_type}=HW_DH895xcc +| | [Arguments] | ${osi_layer} | ${nic_name} | ${crypto_type}=HW_DH895xcc | | ... | | Set up 3-node performance topology with DUT's NIC model -| | ... | ${traffic_profile} | ${nic_name} +| | ... | ${osi_layer} | ${nic_name} | | Return From Keyword If | '${crypto_type}' == 'SW_cryptodev' | | ${numvfs}= | Set Variable If | | ... | '${crypto_type}' == 'HW_DH895xcc' | ${32} @@ -663,7 +663,7 @@ | | ... | | ... | *Test Variables needed:* | | ... | - frame_size - L2 Frame Size [B]. Type: integer -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - traffic_profile - Profile name to run debug trial with. Type: string | | ... | - nodes - Parsed information object. Type: dict | | ... | | ... | *Example:* @@ -703,7 +703,7 @@ | | ... | | ... | *Test Variables needed:* | | ... | - frame_size - L2 Frame Size [B]. Type: integer -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - traffic_profile - Profile name to run debug trial with. Type: string | | ... | | ... | *Arguments:* | | ... | - dut1_node - Node where to clean qemu. Type: dictionary @@ -733,7 +733,7 @@ | | ... | | ... | *Test Variables needed:* | | ... | - frame_size - L2 Frame Size [B]. Type: integer -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - traffic_profile - Profile name to run debug trial with. Type: string | | ... | | ... | *Arguments:* | | ... | - dut1_node - Node where to clean qemu. Type: dictionary @@ -780,7 +780,7 @@ | | ... | | ... | *Test Variables needed:* | | ... | - frame_size - L2 Frame Size [B]. Type: integer -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - traffic_profile - Profile name to run debug trial with. Type: string | | ... | | ... | *Example:* | | ... @@ -796,7 +796,7 @@ | | ... | | ... | *Test Variables needed:* | | ... | - frame_size - L2 Frame Size [B]. Type: integer -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - traffic_profile - Profile name to run debug trial with. Type: string | | ... | | ... | *Example:* | | ... @@ -813,7 +813,7 @@ | | ... | | ... | *Test Variables needed:* | | ... | - frame_size - L2 Frame Size [B]. Type: integer -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - traffic_profile - Profile name to run debug trial with. Type: string | | ... | | ... | *Example:* | | ... @@ -843,7 +843,7 @@ | | ... | | ... | *Test Variables needed:* | | ... | - frame_size - L2 Frame Size [B]. Type: integer -| | ... | - traffic_profile - Profile name to initialize TG with. Type: string +| | ... | - traffic_profile - Profile name to run debug trial with. Type: string | | ... | | ... | *Example:* | | ... diff --git a/resources/libraries/robot/performance/performance_utils.robot b/resources/libraries/robot/performance/performance_utils.robot index 80fddc671a..45d8efe535 100644 --- a/resources/libraries/robot/performance/performance_utils.robot +++ b/resources/libraries/robot/performance/performance_utils.robot @@ -53,10 +53,11 @@ | | ... | Some inputs are read from variables to streamline suites. | | ... | | ... | *Test (or broader scope) variables read:* -| | ... | - traffic_profile - Topology type. Type: string -| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: int or str -| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps]. -| | ... | Type: float +| | ... | - traffic_profile - Name of module defining traffc for measurements. +| | ... | Type: string +| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: int or str +| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps]. +| | ... | Type: float | | ... | | ... | *Arguments:* | | ... | - packet_loss_ratio - Accepted loss during search. Type: float @@ -101,10 +102,11 @@ | | ... | Some inputs are read from variables to streamline suites. | | ... | | ... | *Test (or broader scope) variables read:* -| | ... | - traffic_profile - Topology type. Type: string -| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: int or str -| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps]. -| | ... | Type: float +| | ... | - traffic_profile - Name of module defining traffc for measurements. +| | ... | Type: string +| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: int or str +| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps]. +| | ... | Type: float | | ... | | ... | *Arguments:* | | ... | - packet_loss_ratio - Accepted loss during search. Type: float @@ -261,7 +263,8 @@ | | ... | - duration - Duration of traffic run [s]. Type: integer | | ... | - rate - Rate for sending packets. Type: string | | ... | - frame_size - L2 Frame Size [B] or IMIX_v4_1. Type: integer/string -| | ... | - traffic_profile - Topology type. Type: string +| | ... | - traffic_profile - Name of module defining traffc for measurements. +| | ... | Type: string | | ... | - fail_on_loss - If True, the keyword fails if loss occurred. | | ... | Type: boolean | | ... @@ -284,10 +287,11 @@ | | ... | Some inputs are read from variables to streamline suites. | | ... | | ... | *Test (or broader scope) variables read:* -| | ... | - traffic_profile - Topology type. Type: string -| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: int or str -| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps]. -| | ... | Type: float +| | ... | - traffic_profile - Name of module defining traffc for measurements. +| | ... | Type: string +| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: int or str +| | ... | - max_rate - Calculated unidirectional maximal transmit rate [pps]. +| | ... | Type: float | | ... | | ... | *Arguments:* | | ... | - subsamples - How many trials in this measurement. Type: int @@ -326,7 +330,8 @@ | | ... | - trial_duration - Duration of single trial [s]. Type: float | | ... | - rate - Rate for sending packets. Type: string | | ... | - frame_size - L2 Frame Size [B]. Type: integer/string -| | ... | - traffic_profile - Topology type. Type: string +| | ... | - traffic_profile - Name of module defining traffc for measurements. +| | ... | Type: string | | ... | - subsamples - How many trials in this measurement. Type: int | | ... | - unidirection - False if traffic is bidirectional. Type: boolean | | ... | - tx_port - TX port of TG, default 0. Type: integer @@ -377,7 +382,8 @@ | | ... | - duration - Duration of traffic run [s]. Type: integer | | ... | - rate - Rate for sending packets. Type: string | | ... | - frame_size - L2 Frame Size [B] or IMIX_v4_1. Type: integer/string -| | ... | - traffic_profile - Topology type. Type: string +| | ... | - traffic_profile - Name of module defining traffc for measurements. +| | ... | Type: string | | ... | - unidirection - False if traffic is bidirectional. Type: boolean | | ... | - tx_port - TX port of TG, default 0. Type: integer | | ... | - rx_port - RX port of TG, default 1. Type: integer diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot index 42c4f28cdc..dd4fb63c3f 100644 --- a/resources/libraries/robot/shared/default.robot +++ b/resources/libraries/robot/shared/default.robot @@ -106,23 +106,21 @@ | | ... | *Arguments:* | | ... | - numvfs - Number of VFs to initialize, 0 - disable the VFs | | ... | (Optional). Type: integer, default value: ${1} -| | ... | - traffic_profile - A value affecting behavior, such as spoofing. +| | ... | - osi_layer - OSI Layer type to initialize TG with. | | ... | (Optional). Type: string, default value: L2 -| | ... | Note: This is NOT the usual traffic profile -| | ... | (which is python module name to initialize TG with). | | ... | | ... | *Example:* | | ... | | ... | \| Configure AVF device on all DUTs \| ${1} \| L2 \| | | ... -| | [Arguments] | ${numvfs}=${1} | ${traffic_profile}=L2 +| | [Arguments] | ${numvfs}=${1} | ${osi_layer}=L2 | | ... | | ${duts}= | Get Matches | ${nodes} | DUT* | | :FOR | ${dut} | IN | @{duts} | | | ${if1_avf_arr}= | Init AVF interface | ${nodes['${dut}']} | ${${dut}_if1} -| | | ... | numvfs=${numvfs} | traffic_type=${traffic_profile} +| | | ... | numvfs=${numvfs} | osi_layer=${osi_layer} | | | ${if2_avf_arr}= | Init AVF interface | ${nodes['${dut}']} | ${${dut}_if2} -| | | ... | numvfs=${numvfs} | traffic_type=${traffic_profile} +| | | ... | numvfs=${numvfs} | osi_layer=${osi_layer} # Currently only one AVF is supported. | | | Set Suite Variable | ${${dut}_if1_vf0} | ${if1_avf_arr[0]} | | | Set Suite Variable | ${${dut}_if2_vf0} | ${if2_avf_arr[0]}