Clean up traffic_profile vs osi_layer 37/18937/2
authorVratko Polak <vrpolak@cisco.com>
Tue, 16 Apr 2019 14:32:59 +0000 (16:32 +0200)
committerVratko Polak <vrpolak@cisco.com>
Wed, 17 Apr 2019 10:39:18 +0000 (10:39 +0000)
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 <vrpolak@cisco.com>
docs/test_code_guidelines.rst
resources/libraries/python/DropRateSearch.py
resources/libraries/python/InterfaceUtil.py
resources/libraries/python/TrafficGenerator.py
resources/libraries/robot/performance/performance_setup.robot
resources/libraries/robot/performance/performance_utils.robot
resources/libraries/robot/shared/default.robot

index 24544b9..d1f2687 100644 (file)
@@ -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.
index d090306..e87ef95 100644 (file)
@@ -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:
index d78984b..1b1dda5 100644 (file)
@@ -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,
index 5f92888..84b9f1f 100644 (file)
@@ -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 > "
index 11ce560..4f3b0bd 100644 (file)
 | | ... | 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]
 | | ... | 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
 | | ... | \| 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
 | | ... | 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:*
 | | ... | \| 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]
 | | ... | 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:*
 | | ... | \| 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]
 | | ... | 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:*
 | | ... | \| 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
 | | ... | 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}
 
 | | ... | 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
 | | ... | \| 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]
 | | ... | 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
 | | ... | \| 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]
 | | ... | 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
 | | ... | \| 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}
 | | ...
 | | ... | *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:*
 | | ...
 | | ... | *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
 | | ...
 | | ... | *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
 | | ...
 | | ... | *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:*
 | | ...
 | | ...
 | | ... | *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:*
 | | ...
 | | ...
 | | ... | *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:*
 | | ...
 | | ...
 | | ... | *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:*
 | | ...
index 80fddc6..45d8efe 100644 (file)
 | | ... | 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
 | | ... | 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
 | | ... | - 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
 | | ...
 | | ... | 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
 | | ... | - 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
 | | ... | - 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
index 42c4f28..dd4fb63 100644 (file)
 | | ... | *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]}