summaryrefslogtreecommitdiffstats
path: root/tools/pkt_gen/trafficgen/trafficgenhelper.py
diff options
context:
space:
mode:
authorMartin Klozik <martinx.klozik@intel.com>2016-12-14 14:02:43 +0000
committerMartin Klozik <martinx.klozik@intel.com>2017-01-16 08:50:02 +0000
commit4481df385ac03ece015ccb429201f96189dc5ae2 (patch)
treea959a804e7b1efd663dbb24a447609421e339211 /tools/pkt_gen/trafficgen/trafficgenhelper.py
parentcafcb9f24b422a4b3a0b19ba00c83fe2819dcbaa (diff)
traffic: Configurable traffic details
Traffic generated by traffic generator is based on default values and their modifications specific to particular testing scenario. Traffic default values were defined inside VSPERF code and it was not possible to change them. This patch introduces new TRAFFIC dictionary inside 03_traffic.conf. Thus user can modify any of TRAFFIC values either in configuration file or by CLI or by 'Parameters' section of testcase definition. Following CLI options were obsoleted by this patch: 'bidirectional', 'traffic_type', 'iload', 'multistream', 'stream_type' and 'pre-installed_flows' Following CLI option was renamed to be consistent with other options: 'tunnel_type' => 'TUNNEL_TYPE' Following sections of testcase definition were obsoleted: "Traffic Type", "biDirectional", "MultiStream", "Stream Type", "Pre-installed Flows", "Flow Type" and "iLoad" New TRAFFIC dictionary should be used instead of old CLI options and old testcase definition sections. Testcase definitons, yardstick sample testcases and documentation were updated to reflect configuration changes. JIRA: VSPERF-433 Change-Id: I03a388c766491d5688e715f6d7b51e8e0377ec27 Signed-off-by: Martin Klozik <martinx.klozik@intel.com> Reviewed-by: Al Morton <acmorton@att.com> Reviewed-by: Christian Trautman <ctrautma@redhat.com> Reviewed-by: Bill Michalowski <bmichalo@redhat.com> Reviewed-by: Antonio Fischetti <antonio.fischetti@intel.com> Reviewed-by: <sridhar.rao@spirent.com>
Diffstat (limited to 'tools/pkt_gen/trafficgen/trafficgenhelper.py')
-rw-r--r--tools/pkt_gen/trafficgen/trafficgenhelper.py94
1 files changed, 0 insertions, 94 deletions
diff --git a/tools/pkt_gen/trafficgen/trafficgenhelper.py b/tools/pkt_gen/trafficgen/trafficgenhelper.py
deleted file mode 100644
index 47f8b262..00000000
--- a/tools/pkt_gen/trafficgen/trafficgenhelper.py
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 2015-2016 Intel Corporation.
-#
-# 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.
-"""Helper methods collection.
-
-Collection of helper methods used by traffic generators
-implementation.
-"""
-
-from collections import namedtuple
-
-CMD_PREFIX = 'gencmd : '
-TRAFFIC_DEFAULTS = {
- 'traffic_type' : 'rfc2544_throughput',
- 'frame_rate' : 100,
- 'bidir' : 'False', # will be passed as string in title format to tgen
- 'multistream' : 0,
- 'stream_type' : 'L4',
- 'pre_installed_flows' : 'No', # used by vswitch implementation
- 'flow_type' : 'port', # used by vswitch implementation
-
- 'l2': {
- 'framesize': 64,
- 'srcmac': '00:00:00:00:00:00',
- 'dstmac': '00:00:00:00:00:00',
- },
- 'l3': {
- 'proto': 'udp',
- 'srcip': '1.1.1.1',
- 'dstip': '90.90.90.90',
- },
- 'l4': {
- 'srcport': 3000,
- 'dstport': 3001,
- },
- 'vlan': {
- 'enabled': False,
- 'id': 0,
- 'priority': 0,
- 'cfi': 0,
- },
-}
-
-#TODO remove namedtuples and implement results through IResult interface found
-#in core/results
-
-BurstResult = namedtuple(
- 'BurstResult',
- 'frames_tx frames_rx bytes_tx bytes_rx payload_err seq_err')
-Back2BackResult = namedtuple(
- 'Back2BackResult',
- 'rx_fps rx_mbps tx_percent rx_percent tx_count b2b_frames '
- 'frame_loss_frames frame_loss_percent')
-
-
-def merge_spec(orig, new):
- """Merges ``new`` dict with ``orig`` dict, and return orig.
-
- This takes into account nested dictionaries. Example:
-
- >>> old = {'foo': 1, 'bar': {'foo': 2, 'bar': 3}}
- >>> new = {'foo': 6, 'bar': {'foo': 7}}
- >>> merge_spec(old, new)
- {'foo': 6, 'bar': {'foo': 7, 'bar': 3}}
-
- You'll notice that ``bar.bar`` is not removed. This is the desired result.
- """
- for key in orig:
- if key not in new:
- continue
-
- # Not allowing derived dictionary types for now
- # pylint: disable=unidiomatic-typecheck
- if type(orig[key]) == dict:
- orig[key] = merge_spec(orig[key], new[key])
- else:
- orig[key] = new[key]
-
- for key in new:
- if key not in orig:
- orig[key] = new[key]
-
- return orig
-