From 04a7de082bd221eae3c7004f4e0b99dfa4f8be91 Mon Sep 17 00:00:00 2001 From: ahothan Date: Fri, 28 Jul 2017 17:08:46 -0700 Subject: Initial code drop from Cisco Change-Id: Ie2993886dc8e95c5f73ccdb871add8b96ffcc849 Signed-off-by: ahothan --- nfvbench/traffic_gen/dummy.py | 95 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 nfvbench/traffic_gen/dummy.py (limited to 'nfvbench/traffic_gen/dummy.py') diff --git a/nfvbench/traffic_gen/dummy.py b/nfvbench/traffic_gen/dummy.py new file mode 100644 index 0000000..dabdc71 --- /dev/null +++ b/nfvbench/traffic_gen/dummy.py @@ -0,0 +1,95 @@ +# Copyright 2016 Cisco Systems, Inc. All rights reserved. +# +# 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. + +from nfvbench.log import LOG + +from traffic_base import AbstractTrafficGenerator +import traffic_utils as utils + + + +class DummyTG(AbstractTrafficGenerator): + """Experimental dummy traffic generator. + + This traffic generator will pretend to generate traffic and return fake data. + Useful for unit testing without actually generating any traffic. + """ + + def __init__(self, runner): + AbstractTrafficGenerator.__init__(self, runner) + self.port_handle = [] + self.rates = [] + + def get_version(self): + return "0.1" + + def init(self): + pass + + def connect(self): + ports = list(self.config.generator_config.ports) + self.port_handle = ports + + def is_arp_successful(self): + return True + + def config_interface(self): + pass + + def create_traffic(self, l2frame_size, rates, bidirectional, latency=True): + pass + + def modify_rate(self, rate, reverse): + port_index = int(reverse) + port = self.port_handle[port_index] + self.rates[port_index] = utils.to_rate_str(rate) + LOG.info('Modified traffic stream for %s, new rate=%s.' % (port, utils.to_rate_str(rate))) + + def clear_streamblock(self): + pass + + def get_stats(self): + result = {} + for ph in self.port_handle: + result[ph] = { + 'tx': { + 'total_pkts': 1000, + 'total_pkt_bytes': 100000, + 'pkt_rate': 100, + 'pkt_bit_rate': 1000000 + }, + 'rx': { + 'total_pkts': 1000, + 'total_pkt_bytes': 100000, + 'pkt_rate': 100, + 'pkt_bit_rate': 1000000, + 'dropped_pkts': 0 + } + } + result[ph]['rx']['max_delay_usec'] = 10.0 + result[ph]['rx']['min_delay_usec'] = 1.0 + result[ph]['rx']['avg_delay_usec'] = 2.0 + return result + + def clear_stats(self): + pass + + def start_traffic(self): + pass + + def stop_traffic(self): + pass + + def cleanup(self): + pass -- cgit 1.2.3-korg