summaryrefslogtreecommitdiffstats
path: root/tools/pkt_gen/trafficgen
diff options
context:
space:
mode:
Diffstat (limited to 'tools/pkt_gen/trafficgen')
-rwxr-xr-xtools/pkt_gen/trafficgen/__init__.py1
-rwxr-xr-xtools/pkt_gen/trafficgen/trafficgen.py14
-rw-r--r--tools/pkt_gen/trafficgen/trafficgenhelper.py94
3 files changed, 8 insertions, 101 deletions
diff --git a/tools/pkt_gen/trafficgen/__init__.py b/tools/pkt_gen/trafficgen/__init__.py
index 2a3b9bd3..34d8ebe1 100755
--- a/tools/pkt_gen/trafficgen/__init__.py
+++ b/tools/pkt_gen/trafficgen/__init__.py
@@ -16,4 +16,3 @@
"""
from tools.pkt_gen.trafficgen.trafficgen import *
-from tools.pkt_gen.trafficgen.trafficgenhelper import *
diff --git a/tools/pkt_gen/trafficgen/trafficgen.py b/tools/pkt_gen/trafficgen/trafficgen.py
index fb40cd92..262df71d 100755
--- a/tools/pkt_gen/trafficgen/trafficgen.py
+++ b/tools/pkt_gen/trafficgen/trafficgen.py
@@ -15,16 +15,18 @@
This is an abstract class for traffic generators.
"""
+import copy
+from conf import settings
-#TODO update Back2Back method description when Result implementation will
-#be ready.
-
-from tools.pkt_gen.trafficgen.trafficgenhelper import TRAFFIC_DEFAULTS
+CMD_PREFIX = 'gencmd : '
class ITrafficGenerator(object):
"""Model of a traffic generator device.
"""
- _traffic_defaults = TRAFFIC_DEFAULTS.copy()
+ def __init__(self):
+ """Initialization of interface
+ """
+ self._default_traffic = copy.deepcopy(settings.getValue('TRAFFIC'))
@property
def traffic_defaults(self):
@@ -35,7 +37,7 @@ class ITrafficGenerator(object):
will likely break traffic generator implementations or tests
respectively.
"""
- return self._traffic_defaults
+ return self._default_traffic
def __enter__(self):
"""Connect to the traffic generator.
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
-