feat(profiles): Cleanup IPv6 profiles 91/40791/1
authorpmikus <peter.mikus@protonmail.ch>
Thu, 25 Apr 2024 05:49:13 +0000 (05:49 +0000)
committerpmikus <peter.mikus@protonmail.ch>
Thu, 25 Apr 2024 05:53:23 +0000 (05:53 +0000)
Signed-off-by: Peter Mikus <peter.mikus@protonmail.ch>
Change-Id: Ib9d1d819e59be768377f3a61578c22699a10f0a8

14 files changed:
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000.py [deleted file]
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-2p.py
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-6p.py
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000.py [deleted file]
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-2p.py
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-6p.py
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000.py [deleted file]
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000.py [deleted file]
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000.py [deleted file]
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000.py [deleted file]
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000-2p.py [new file with mode: 0644]
GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000.py [deleted file]
tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot
tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot

diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd10000.py
deleted file mode 100644 (file)
index 65291fc..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later;  you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#     https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+.  If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
-   - Source IP address range:      2001:1::1
-   - Destination IP address range: 2001:2::0 - 2001:2::270F
- - Direction 1 --> 0:
-   - Source IP address range:      2001:2::1
-   - Destination IP address range: 2001:1::0 - 2001:1::270F
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
-    """Stream profile."""
-
-    def __init__(self):
-        """Initialization and setting of streams' parameters."""
-
-        super(TrafficStreamsBaseClass, self).__init__()
-
-        # IPs used in packet headers.
-        self.p1_src_start_ip = u"2001:1::1"
-        self.p1_dst_start_ip = u"2001:2::0"
-        self.p1_dst_end_ip = u"2001:2::270F"
-
-        self.p2_src_start_ip = u"2001:2::1"
-        self.p2_dst_start_ip = u"2001:1::0"
-        self.p2_dst_end_ip = u"2001:1::270F"
-
-    def define_packets(self):
-        """Defines the packets to be sent from the traffic generator.
-
-        Packet definition: | ETH | IPv6 |
-
-        :returns: Packets to be sent from the traffic generator.
-        :rtype: tuple
-        """
-
-        base_p1, count_p1 = self._get_start_end_ipv6(
-            self.p1_dst_start_ip,
-            self.p1_dst_end_ip
-        )
-        base_p2, count_p2 = self._get_start_end_ipv6(
-            self.p2_dst_start_ip,
-            self.p2_dst_end_ip
-        )
-
-        # Direction 0 --> 1
-        base_pkt_a = (
-            Ether() /
-            IPv6(
-                src=self.p1_src_start_ip,
-                dst=self.p1_dst_start_ip
-            )
-        )
-        # Direction 1 --> 0
-        base_pkt_b = (
-            Ether() /
-            IPv6(
-                src=self.p2_src_start_ip,
-                dst=self.p2_dst_start_ip
-            )
-        )
-
-        # Direction 0 --> 1
-        vm1 = STLScVmRaw(
-            [
-                STLVmFlowVarRepeatableRandom(
-                    name=u"ipv6_dst",
-                    min_value=base_p1,
-                    max_value=base_p1 + count_p1,
-                    size=8,
-                    seed=1,
-                    # Cycle length. TRex does not allow any higher value.
-                    limit=(2**24 - 1)
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-        # Direction 1 --> 0
-        vm2 = STLScVmRaw(
-            [
-                STLVmFlowVarRepeatableRandom(
-                    name=u"ipv6_dst",
-                    min_value=base_p2,
-                    max_value=base_p2 + count_p2,
-                    size=8,
-                    seed=2,
-                    limit=(2**24 - 1)
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-
-        return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
-    """Register this traffic profile to T-rex.
-
-    Do not change this function.
-
-    :return: Traffic streams.
-    :rtype: Object
-    """
-    return TrafficStreams()
index 4658e76..8948e78 100644 (file)
@@ -84,7 +84,7 @@ class TrafficStreams(TrafficStreamsScaleClass):
             self.pkt_vm.append(
                 STLScVmRaw(
                     [
-                        STLVmFlowVar(
+                        STLVmFlowVarRepeatableRandom(
                             name="ipv6_dst",
                             min_value=base,
                             max_value=base + count,
index 5d1b265..374be38 100644 (file)
@@ -112,7 +112,7 @@ class TrafficStreams(TrafficStreamsScaleClass):
             self.pkt_vm.append(
                 STLScVmRaw(
                     [
-                        STLVmFlowVar(
+                        STLVmFlowVarRepeatableRandom(
                             name="ipv6_dst",
                             min_value=base,
                             max_value=base + count,
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000.py
deleted file mode 100644 (file)
index d30fc2d..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later;  you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#     https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+.  If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
-   - Source IP address range:      2001:1::1
-   - Destination IP address range: 2001:2::0 - 2001:2::1:869F
- - Direction 1 --> 0:
-   - Source IP address range:      2001:2::1
-   - Destination IP address range: 2001:1::0 - 2001:1::1:869F
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
-    """Stream profile."""
-
-    def __init__(self):
-        """Initialization and setting of streams' parameters."""
-
-        super(TrafficStreamsBaseClass, self).__init__()
-
-        # IPs used in packet headers.
-        self.p1_src_start_ip = u"2001:1::1"
-        self.p1_dst_start_ip = u"2001:2::0"
-        self.p1_dst_end_ip = u"2001:2::1:869F"
-
-        self.p2_src_start_ip = u"2001:2::1"
-        self.p2_dst_start_ip = u"2001:1::0"
-        self.p2_dst_end_ip = u"2001:1::1:869F"
-
-    def define_packets(self):
-        """Defines the packets to be sent from the traffic generator.
-
-        Packet definition: | ETH | IPv6 |
-
-        :returns: Packets to be sent from the traffic generator.
-        :rtype: tuple
-        """
-
-        base_p1, count_p1 = self._get_start_end_ipv6(
-            self.p1_dst_start_ip,
-            self.p1_dst_end_ip
-        )
-        base_p2, count_p2 = self._get_start_end_ipv6(
-            self.p2_dst_start_ip,
-            self.p2_dst_end_ip
-        )
-
-        # Direction 0 --> 1
-        base_pkt_a = (
-            Ether() /
-            IPv6(
-                src=self.p1_src_start_ip,
-                dst=self.p1_dst_start_ip
-            )
-        )
-        # Direction 1 --> 0
-        base_pkt_b = (
-            Ether() /
-            IPv6(
-                src=self.p2_src_start_ip,
-                dst=self.p2_dst_start_ip
-            )
-        )
-
-        # Direction 0 --> 1
-        vm1 = STLScVmRaw(
-            [
-                STLVmFlowVarRepeatableRandom(
-                    name=u"ipv6_dst",
-                    min_value=base_p1,
-                    max_value=base_p1 + count_p1,
-                    size=8,
-                    seed=1,
-                    # Cycle length. TRex does not allow any higher value.
-                    limit=(2**24 - 1)
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-        # Direction 1 --> 0
-        vm2 = STLScVmRaw(
-            [
-                STLVmFlowVarRepeatableRandom(
-                    name=u"ipv6_dst",
-                    min_value=base_p2,
-                    max_value=base_p2 + count_p2,
-                    size=8,
-                    seed=2,
-                    limit=(2**24 - 1)
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-
-        return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
-    """Register this traffic profile to T-rex.
-
-    Do not change this function.
-
-    :return: Traffic streams.
-    :rtype: Object
-    """
-    return TrafficStreams()
index 8db6a64..735888d 100644 (file)
@@ -84,7 +84,7 @@ class TrafficStreams(TrafficStreamsScaleClass):
             self.pkt_vm.append(
                 STLScVmRaw(
                     [
-                        STLVmFlowVar(
+                        STLVmFlowVarRepeatableRandom(
                             name="ipv6_dst",
                             min_value=base,
                             max_value=base + count,
index 4a1307c..5cc3215 100644 (file)
@@ -106,7 +106,7 @@ class TrafficStreams(TrafficStreamsScaleClass):
             self.pkt_vm.append(
                 STLScVmRaw(
                     [
-                        STLVmFlowVar(
+                        STLVmFlowVarRepeatableRandom(
                             name="ipv6_dst",
                             min_value=base,
                             max_value=base + count,
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000.py
deleted file mode 100644 (file)
index 8c704bd..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (c) 2024 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later;  you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#     https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+.  If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
-   - Source IP address range:      2001:1::1
-   - Destination IP address range: 2001:2::0 - 2001:2::F:423F
- - Direction 1 --> 0:
-   - Source IP address range:      2001:2::1
-   - Destination IP address range: 2001:1::0 - 2001:1::F:423F
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
-    """Stream profile."""
-
-    def __init__(self):
-        """Initialization and setting of streams' parameters."""
-
-        super(TrafficStreamsBaseClass, self).__init__()
-
-        # IPs used in packet headers.
-        self.p1_src_start_ip = u"2001:1::1"
-        self.p1_dst_start_ip = u"2001:2::0"
-        self.p1_dst_end_ip = u"2001:2::F:423F"
-
-        self.p2_src_start_ip = u"2001:2::1"
-        self.p2_dst_start_ip = u"2001:1::0"
-        self.p2_dst_end_ip = u"2001:1::F:423F"
-
-    def define_packets(self):
-        """Defines the packets to be sent from the traffic generator.
-
-        Packet definition: | ETH | IPv6 |
-
-        :returns: Packets to be sent from the traffic generator.
-        :rtype: tuple
-        """
-
-        base_p1, count_p1 = self._get_start_end_ipv6(
-            self.p1_dst_start_ip,
-            self.p1_dst_end_ip
-        )
-        base_p2, count_p2 = self._get_start_end_ipv6(
-            self.p2_dst_start_ip,
-            self.p2_dst_end_ip
-        )
-
-        # Direction 0 --> 1
-        base_pkt_a = (
-            Ether() /
-            IPv6(
-                src=self.p1_src_start_ip,
-                dst=self.p1_dst_start_ip
-            )
-        )
-        # Direction 1 --> 0
-        base_pkt_b = (
-            Ether() /
-            IPv6(
-                src=self.p2_src_start_ip,
-                dst=self.p2_dst_start_ip
-            )
-        )
-
-        # Direction 0 --> 1
-        vm1 = STLScVmRaw(
-            [
-                STLVmFlowVarRepeatableRandom(
-                    name=u"ipv6_dst",
-                    min_value=base_p1,
-                    max_value=base_p1 + count_p1,
-                    size=8,
-                    seed=1,
-                    # Cycle length. TRex does not allow any higher value.
-                    limit=(2**24 - 1)
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-        # Direction 1 --> 0
-        vm2 = STLScVmRaw(
-            [
-                STLVmFlowVarRepeatableRandom(
-                    name=u"ipv6_dst",
-                    min_value=base_p2,
-                    max_value=base_p2 + count_p2,
-                    size=8,
-                    seed=2,
-                    limit=(2**24 - 1)
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-
-        return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
-    """Register this traffic profile to T-rex.
-
-    Do not change this function.
-
-    :return: Traffic streams.
-    :rtype: Object
-    """
-    return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000.py
deleted file mode 100644 (file)
index 534f914..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright (c) 2023 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later;  you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#     https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+.  If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
-   - Source IP address range:      2001:1::1
-   - Destination IP address range: 2001:2::0 - 2001:2::270F
- - Direction 1 --> 0:
-   - Source IP address range:      2001:2::1
-   - Destination IP address range: 2001:1::0 - 2001:1::270F
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
-    """Stream profile."""
-
-    def __init__(self):
-        """Initialization and setting of streams' parameters."""
-
-        super(TrafficStreamsBaseClass, self).__init__()
-
-        # IPs used in packet headers.
-        self.p1_src_start_ip = u"2001:1::1"
-        self.p1_dst_start_ip = u"2001:2::0"
-        self.p1_dst_end_ip = u"2001:2::270F"
-
-        self.p2_src_start_ip = u"2001:2::1"
-        self.p2_dst_start_ip = u"2001:1::0"
-        self.p2_dst_end_ip = u"2001:1::270F"
-
-    def define_packets(self):
-        """Defines the packets to be sent from the traffic generator.
-
-        Packet definition: | ETH | IPv6 |
-
-        :returns: Packets to be sent from the traffic generator.
-        :rtype: tuple
-        """
-
-        base_p1, count_p1 = self._get_start_end_ipv6(
-            self.p1_dst_start_ip,
-            self.p1_dst_end_ip
-        )
-        base_p2, count_p2 = self._get_start_end_ipv6(
-            self.p2_dst_start_ip,
-            self.p2_dst_end_ip
-        )
-
-        # Direction 0 --> 1
-        base_pkt_a = (
-            Ether() /
-            IPv6(
-                src=self.p1_src_start_ip,
-                dst=self.p1_dst_start_ip
-            )
-        )
-        # Direction 1 --> 0
-        base_pkt_b = (
-            Ether() /
-            IPv6(
-                src=self.p2_src_start_ip,
-                dst=self.p2_dst_start_ip
-            )
-        )
-
-        # Direction 0 --> 1
-        vm1 = STLScVmRaw(
-            [
-                STLVmFlowVar(
-                    name=u"ipv6_dst",
-                    min_value=base_p1,
-                    max_value=base_p1 + count_p1,
-                    size=8,
-                    op=u"inc"
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-        # Direction 1 --> 0
-        vm2 = STLScVmRaw(
-            [
-                STLVmFlowVar(
-                    name=u"ipv6_dst",
-                    min_value=base_p2,
-                    max_value=base_p2 + count_p2,
-                    size=8,
-                    op=u"inc"
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-
-        return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
-    """Register this traffic profile to T-rex.
-
-    Do not change this function.
-
-    :return: Traffic streams.
-    :rtype: Object
-    """
-    return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000.py
deleted file mode 100644 (file)
index 1bc64d9..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright (c) 2023 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later;  you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#     https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+.  If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
-   - Source IP address range:      2001:1::1
-   - Destination IP address range: 2001:2::0 - 2001:2::1:869F
- - Direction 1 --> 0:
-   - Source IP address range:      2001:2::1
-   - Destination IP address range: 2001:1::0 - 2001:1::1:869F
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
-    """Stream profile."""
-
-    def __init__(self):
-        """Initialization and setting of streams' parameters."""
-
-        super(TrafficStreamsBaseClass, self).__init__()
-
-        # IPs used in packet headers.
-        self.p1_src_start_ip = u"2001:1::1"
-        self.p1_dst_start_ip = u"2001:2::0"
-        self.p1_dst_end_ip = u"2001:2::1:869F"
-
-        self.p2_src_start_ip = u"2001:2::1"
-        self.p2_dst_start_ip = u"2001:1::0"
-        self.p2_dst_end_ip = u"2001:1::1:869F"
-
-    def define_packets(self):
-        """Defines the packets to be sent from the traffic generator.
-
-        Packet definition: | ETH | IPv6 |
-
-        :returns: Packets to be sent from the traffic generator.
-        :rtype: tuple
-        """
-
-        base_p1, count_p1 = self._get_start_end_ipv6(
-            self.p1_dst_start_ip,
-            self.p1_dst_end_ip
-        )
-        base_p2, count_p2 = self._get_start_end_ipv6(
-            self.p2_dst_start_ip,
-            self.p2_dst_end_ip
-        )
-
-        # Direction 0 --> 1
-        base_pkt_a = (
-            Ether() /
-            IPv6(
-                src=self.p1_src_start_ip,
-                dst=self.p1_dst_start_ip
-            )
-        )
-        # Direction 1 --> 0
-        base_pkt_b = (
-            Ether() /
-            IPv6(
-                src=self.p2_src_start_ip,
-                dst=self.p2_dst_start_ip
-            )
-        )
-
-        # Direction 0 --> 1
-        vm1 = STLScVmRaw(
-            [
-                STLVmFlowVar(
-                    name=u"ipv6_dst",
-                    min_value=base_p1,
-                    max_value=base_p1 + count_p1,
-                    size=8,
-                    op=u"inc"
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-        # Direction 1 --> 0
-        vm2 = STLScVmRaw(
-            [
-                STLVmFlowVar(
-                    name=u"ipv6_dst",
-                    min_value=base_p2,
-                    max_value=base_p2 + count_p2,
-                    size=8,
-                    op=u"inc"
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-
-        return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
-    """Register this traffic profile to T-rex.
-
-    Do not change this function.
-
-    :return: Traffic streams.
-    :rtype: Object
-    """
-    return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000.py
deleted file mode 100644 (file)
index 8c22b5e..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright (c) 2023 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later;  you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#     https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+.  If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
-   - Source IP address range:      2001:1::1
-   - Destination IP address range: 2001:2::0 - 2001:2::F:423F
- - Direction 1 --> 0:
-   - Source IP address range:      2001:2::1
-   - Destination IP address range: 2001:1::0 - 2001:1::F:423F
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
-    """Stream profile."""
-
-    def __init__(self):
-        """Initialization and setting of streams' parameters."""
-
-        super(TrafficStreamsBaseClass, self).__init__()
-
-        # IPs used in packet headers.
-        self.p1_src_start_ip = u"2001:1::1"
-        self.p1_dst_start_ip = u"2001:2::0"
-        self.p1_dst_end_ip = u"2001:2::F:423F"
-
-        self.p2_src_start_ip = u"2001:2::1"
-        self.p2_dst_start_ip = u"2001:1::0"
-        self.p2_dst_end_ip = u"2001:1::F:423F"
-
-    def define_packets(self):
-        """Defines the packets to be sent from the traffic generator.
-
-        Packet definition: | ETH | IPv6 |
-
-        :returns: Packets to be sent from the traffic generator.
-        :rtype: tuple
-        """
-
-        base_p1, count_p1 = self._get_start_end_ipv6(
-            self.p1_dst_start_ip,
-            self.p1_dst_end_ip
-        )
-        base_p2, count_p2 = self._get_start_end_ipv6(
-            self.p2_dst_start_ip,
-            self.p2_dst_end_ip
-        )
-
-        # Direction 0 --> 1
-        base_pkt_a = (
-            Ether() /
-            IPv6(
-                src=self.p1_src_start_ip,
-                dst=self.p1_dst_start_ip
-            )
-        )
-        # Direction 1 --> 0
-        base_pkt_b = (
-            Ether() /
-            IPv6(
-                src=self.p2_src_start_ip,
-                dst=self.p2_dst_start_ip
-            )
-        )
-
-        # Direction 0 --> 1
-        vm1 = STLScVmRaw(
-            [
-                STLVmFlowVar(
-                    name=u"ipv6_dst",
-                    min_value=base_p1,
-                    max_value=base_p1 + count_p1,
-                    size=8,
-                    op=u"inc"
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-        # Direction 1 --> 0
-        vm2 = STLScVmRaw(
-            [
-                STLVmFlowVar(
-                    name=u"ipv6_dst",
-                    min_value=base_p2,
-                    max_value=base_p2 + count_p2,
-                    size=8,
-                    op=u"inc"
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-
-        return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
-    """Register this traffic profile to T-rex.
-
-    Do not change this function.
-
-    :return: Traffic streams.
-    :rtype: Object
-    """
-    return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000-2p.py
new file mode 100644 (file)
index 0000000..3e314ae
--- /dev/null
@@ -0,0 +1,113 @@
+# Copyright (c) 2024 Cisco and/or its affiliates.
+#
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+#
+# Licensed under the Apache License 2.0 or
+# GNU General Public License v2.0 or later;  you may not use this file
+# except in compliance with one of these Licenses. You
+# may obtain a copy of the Licenses at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#     https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
+#
+# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
+# must be under GPLv2+.  If at any point in the future it is no longer linked
+# with Scapy (or other GPLv2+ licensed software), you are free to choose
+# Apache 2.
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Stream profile for T-rex traffic generator.
+
+Stream profile:
+ - Single parallel bi-directional streams sent as W --> E and E --> W
+   at the same time.
+ - Packet: ETH / IPv6 /
+"""
+
+from trex.stl.api import *
+from profile_trex_stateless_scale_class import TrafficStreamsScaleClass
+
+
+class TrafficStreams(TrafficStreamsScaleClass):
+    """Stream profile."""
+
+    def __init__(self):
+        """Initialization and setting of streams' parameters."""
+
+        super(TrafficStreamsScaleClass, self).__init__()
+
+        self.pkt_data = [
+            # Direction W --> E:
+            {
+                "src_start_ip": "2100::1",
+                "dst_start_ip": "2200::0",
+                "dst_end_ip": "2200::7:a11f"
+            },
+            # Direction E --> W:
+            {
+                "src_start_ip": "2200::1",
+                "dst_start_ip": "2100::0",
+                "dst_end_ip": "2100::7:a11f"
+            }
+        ]
+        self.pkt_base = []
+        self.pkt_vm = []
+
+    def define_packets(self):
+        """Defines the packets to be sent from the traffic generator.
+
+        Packet definition: | ETH | IPv6 |
+
+        :returns: Packets to be sent from the traffic generator.
+        :rtype: tuple
+        """
+        for i in range(len(self.pkt_data)):
+            base, count = self._get_start_end_ipv6(
+                self.pkt_data[i]["dst_start_ip"],
+                self.pkt_data[i]["dst_end_ip"]
+            )
+
+            self.pkt_base.append(
+                Ether() /
+                IPv6(
+                    src=self.pkt_data[i]["src_start_ip"],
+                    dst=self.pkt_data[i]["dst_start_ip"]
+                )
+            )
+            self.pkt_vm.append(
+                STLScVmRaw(
+                    [
+                        STLVmFlowVar(
+                            name="ipv6_dst",
+                            min_value=base,
+                            max_value=base + count,
+                            size=8,
+                            seed=self.pkt_data[i]["seed"],
+                            limit=(2**24 - 1)
+                        ),
+                        STLVmWrFlowVar(
+                            fv_name="ipv6_dst",
+                            pkt_offset="IPv6.dst",
+                            offset_fixup=8
+                        )
+                    ]
+                )
+            )
+
+        return self.pkt_base, self.pkt_vm
+
+
+def register():
+    """Register this traffic profile to T-rex.
+
+    Do not change this function.
+
+    :return: Traffic streams.
+    :rtype: Object
+    """
+    return TrafficStreams()
diff --git a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000.py
deleted file mode 100644 (file)
index c3e6a2d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (c) 2023 Intel and/or its affiliates.
-# Copyright (c) 2023 Cisco and/or its affiliates.
-#
-# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
-#
-# Licensed under the Apache License 2.0 or
-# GNU General Public License v2.0 or later;  you may not use this file
-# except in compliance with one of these Licenses. You
-# may obtain a copy of the Licenses at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#     https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
-#
-# Note: If this file is linked with Scapy, which is GPLv2+, your use of it
-# must be under GPLv2+.  If at any point in the future it is no longer linked
-# with Scapy (or other GPLv2+ licensed software), you are free to choose
-# Apache 2.
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Stream profile for T-rex traffic generator.
-
-Stream profile:
- - Two streams sent in directions 0 --> 1 and 1 --> 0 at the same time.
- - Packet: ETH / IPv6 /
- - Direction 0 --> 1:
-   - Source IP address range:      2001:1::1
-   - Destination IP address range: 2001:2::0 - 2001:2::7:a11f
- - Direction 1 --> 0:
-   - Source IP address range:      2001:2::1
-   - Destination IP address range: 2001:1::0 - 2001:1::7:a11f
-"""
-
-from trex.stl.api import *
-from profile_trex_stateless_base_class import TrafficStreamsBaseClass
-
-
-class TrafficStreams(TrafficStreamsBaseClass):
-    """Stream profile."""
-
-    def __init__(self):
-        """Initialization and setting of streams' parameters."""
-
-        super(TrafficStreamsBaseClass, self).__init__()
-
-        # IPs used in packet headers.
-        self.p1_src_start_ip = u"2001:1::1"
-        self.p1_dst_start_ip = u"2001:2::0"
-        self.p1_dst_end_ip = u"2001:2::7:a11f"
-
-        self.p2_src_start_ip = u"2001:2::1"
-        self.p2_dst_start_ip = u"2001:1::0"
-        self.p2_dst_end_ip = u"2001:1::7:a11f"
-
-    def define_packets(self):
-        """Defines the packets to be sent from the traffic generator.
-
-        Packet definition: | ETH | IPv6 |
-
-        :returns: Packets to be sent from the traffic generator.
-        :rtype: tuple
-        """
-
-        base_p1, count_p1 = self._get_start_end_ipv6(
-            self.p1_dst_start_ip,
-            self.p1_dst_end_ip
-        )
-        base_p2, count_p2 = self._get_start_end_ipv6(
-            self.p2_dst_start_ip,
-            self.p2_dst_end_ip
-        )
-
-        # Direction 0 --> 1
-        base_pkt_a = (
-            Ether() /
-            IPv6(
-                src=self.p1_src_start_ip,
-                dst=self.p1_dst_start_ip
-            )
-        )
-        # Direction 1 --> 0
-        base_pkt_b = (
-            Ether() /
-            IPv6(
-                src=self.p2_src_start_ip,
-                dst=self.p2_dst_start_ip
-            )
-        )
-
-        # Direction 0 --> 1
-        vm1 = STLScVmRaw(
-            [
-                STLVmFlowVar(
-                    name=u"ipv6_dst",
-                    min_value=base_p1,
-                    max_value=base_p1 + count_p1,
-                    size=8,
-                    op=u"inc"
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-        # Direction 1 --> 0
-        vm2 = STLScVmRaw(
-            [
-                STLVmFlowVar(
-                    name=u"ipv6_dst",
-                    min_value=base_p2,
-                    max_value=base_p2 + count_p2,
-                    size=8,
-                    op=u"inc"
-                ),
-                STLVmWrFlowVar(
-                    fv_name=u"ipv6_dst",
-                    pkt_offset=u"IPv6.dst",
-                    offset_fixup=8
-                )
-            ]
-        )
-
-        return base_pkt_a, base_pkt_b, vm1, vm2
-
-
-def register():
-    """Register this traffic profile to T-rex.
-
-    Do not change this function.
-
-    :return: Traffic streams.
-    :rtype: Object
-    """
-    return TrafficStreams()
index 55ba396..bbd18f0 100644 (file)
@@ -66,7 +66,7 @@
 | ${overhead}= | ${0}
 | ${rts_per_flow}= | ${500000}
 # Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
 
 *** Keywords ***
 | Local Template
@@ -91,8 +91,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***
index dd68edb..acd535b 100644 (file)
@@ -65,7 +65,7 @@
 | ${overhead}= | ${0}
 | ${rts_per_flow}= | ${500000}
 # Traffic profile:
-| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}
+| ${traffic_profile}= | trex-stl-ethip6-ip6dst${rts_per_flow}-${nic_pfs}p
 
 *** Keywords ***
 | Local Template
@@ -90,8 +90,8 @@
 | | And Apply startup configuration on all VPP DUTs
 | | When Initialize layer driver | ${nic_driver}
 | | And Initialize layer interface
-| | And Initialize IPv6 forwarding with scaling in circular topology
-| | ... | ${rts_per_flow}
+| | And Set interfaces in path up
+| | And Initialize IPv6 Forwarding | count=${rts_per_flow} | pfs=${nic_pfs}
 | | Then Find NDR and PDR intervals using optimized search
 
 *** Test Cases ***