aboutsummaryrefslogtreecommitdiffstats
path: root/build-root/Makefile
AgeCommit message (Expand)AuthorFilesLines
2018-03-24allow specifying number of concurrent jobsKlement Sekera1-0/+4
2018-03-15use system provided ccache linksDamjan Marion1-1/+2
2018-03-14Clean up vpp build bootstrap stepDave Barach1-10/+2
2018-01-23VPPAPIGEN: vppapigen replacement in Python PLY.Ole Troan1-1/+1
2018-01-10makefile set CXXFLAGS so they are propageted to sub-buildsNeale Ranns1-0/+4
2017-11-22 Makefile: make_parallel_flags via env variableEd Kern1-1/+1
2017-11-13Reduce number of parallel buildsDamjan Marion1-1/+1
2017-11-01Clean up a few historical anomaliesDave Barach1-22/+6
2017-09-07The missing variable (added with this patch) was causing the build on AARCH64Marco Varlese1-0/+1
2017-06-24make: Fix parallel building with some container platforms (VPP-880)Chris Luke1-10/+7
2017-04-20Extend ebuild to specify "configure" subdir, enable verify for sample-pluginDamjan Marion1-2/+4
2017-01-20Add dpdk development packagingDamjan Marion1-1/+0
2017-01-10Revert "vppctl: bash completion for vppctl commands"Damjan Marion1-2/+1
2017-01-09vppctl: bash completion for vppctl commandsPadraig Connolly1-1/+2
2016-10-26refactor test frameworkKlement Sekera1-0/+1
2016-05-19Add support for multiple microarchitectures in single binaryDamjan Marion1-0/+5
2016-03-30Remove historical tags, fix the debug tagDave Barach1-22/+4
2016-03-25Fix distclean to correctly handle CentosEd Warnicke1-1/+2
2016-03-24Reduce number of parallel gcc invocations from 4 to 2 per cpuDamjan Marion1-1/+1
2016-01-27Allow CCACHE_DIR to be overridden, e.g. from .../build-root/build-config.mkDave Barach1-1/+6
2016-01-22aarch64 CPU arch / ThunderX platform initial supportDave Barach1-4/+13
2015-12-15Remove autotools generated productsDave Barach1-1/+1
2015-12-08Initial commit of vpp code.v1.0.0Ed Warnicke1-0/+1168
r */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# Copyright (c) 2020 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# 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 / IP /
 - Direction 0 --> 1:
   - Source IP address range:      10.0.0.1
   - Destination IP address range: 20.0.0.0 - 20.15.66.63
 - Direction 1 --> 0:
   - Source IP address range:      20.0.0.1
   - Destination IP address range: 10.0.0.0 - 10.15.66.63
"""

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"10.0.0.1"
        self.p1_dst_start_ip = u"20.0.0.0"
        self.p1_dst_end_ip = u"20.15.66.63"

        self.p2_src_start_ip = u"20.0.0.1"
        self.p2_dst_start_ip = u"10.0.0.0"
        self.p2_dst_end_ip = u"10.15.66.63"

    def define_packets(self):
        """Defines the packets to be sent from the traffic generator.

        Packet definition: | ETH | IP |

        :returns: Packets to be sent from the traffic generator.
        :rtype: tuple
        """

        # Direction 0 --> 1
        base_pkt_a = (
          Ether() /
          IP(
                src=self.p1_src_start_ip,
                dst=self.p1_dst_start_ip,
                proto=61
            )
        )
        # Direction 1 --> 0
        base_pkt_b = (
          Ether() /
          IP(
                src=self.p2_src_start_ip,
                dst=self.p2_dst_start_ip,
                proto=61
            )
        )

        # Direction 0 --> 1
        vm1 = STLScVmRaw(
            [
                STLVmFlowVar(
                    name="dst",
                    min_value=self.p1_dst_start_ip,
                    max_value=self.p1_dst_end_ip,
                    size=4,
                    op="inc"
                ),
                STLVmWrFlowVar(
                    fv_name="dst",
                    pkt_offset="IP.dst"
                ),
                STLVmFixIpv4(
                    offset="IP"
                )
            ]
        )
        # Direction 1 --> 0
        vm2 = STLScVmRaw(
            [
                STLVmFlowVar(
                    name="dst",
                    min_value=self.p2_dst_start_ip,
                    max_value=self.p2_dst_end_ip,
                    size=4,
                    op="inc"
                ),
                STLVmWrFlowVar(
                    fv_name="dst",
                    pkt_offset="IP.dst"
                ),
                STLVmFixIpv4(
                    offset="IP"
                )
            ]
        )

        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()