diff options
Diffstat (limited to 'nfvbench')
-rwxr-xr-x | nfvbench/cfg.default.yaml | 15 | ||||
-rw-r--r-- | nfvbench/nfvbench.py | 23 | ||||
-rwxr-xr-x | nfvbench/traffic_client.py | 5 | ||||
-rw-r--r-- | nfvbench/traffic_gen/trex_gen.py | 22 |
4 files changed, 58 insertions, 7 deletions
diff --git a/nfvbench/cfg.default.yaml b/nfvbench/cfg.default.yaml index fdd5f84..551b1c4 100755 --- a/nfvbench/cfg.default.yaml +++ b/nfvbench/cfg.default.yaml @@ -755,3 +755,18 @@ no_vswitch_access: false # Can be overriden by --service-mode # Should be left to the default value (false) service_mode: false + +# Disable extra flow stats (on high load traffic) +# Can be overriden by --no-flow-stats +# Should be left to the default value (false) +no_flow_stats: false + +# Disable flow stats for latency traffic +# Can be overriden by --no-latency-stats +# Should be left to the default value (false) +no_latency_stats: false + +# Disable latency measurements (no streams) +# Can be overriden by --no-latency-stream +# Should be left to the default value (false) +no_latency_streams: false diff --git a/nfvbench/nfvbench.py b/nfvbench/nfvbench.py index 80b9a93..18a7d2b 100644 --- a/nfvbench/nfvbench.py +++ b/nfvbench/nfvbench.py @@ -444,6 +444,21 @@ def _parse_opts_from_cli(): default=False, help='Enable T-Rex service mode for debugging only') + parser.add_argument('--no-flow-stats', dest='no_flow_stats', + action='store_true', + default=False, + help='Disable extra flow stats (on high load traffic)') + + parser.add_argument('--no-latency-stats', dest='no_latency_stats', + action='store_true', + default=False, + help='Disable flow stats for latency traffic') + + parser.add_argument('--no-latency-streams', dest='no_latency_streams', + action='store_true', + default=False, + help='Disable latency measurements (no streams)') + opts, unknown_opts = parser.parse_known_args() return opts, unknown_opts @@ -583,6 +598,14 @@ def main(): config.vxlan = True if opts.restart: config.restart = True + if opts.service_mode: + config.service_mode = True + if opts.no_flow_stats: + config.no_flow_stats = True + if opts.no_latency_stats: + config.no_latency_stats = True + if opts.no_latency_streams: + config.no_latency_streams = True # port to port loopback (direct or through switch) if opts.l2_loopback: config.l2_loopback = True diff --git a/nfvbench/traffic_client.py b/nfvbench/traffic_client.py index 7591062..6d870f6 100755 --- a/nfvbench/traffic_client.py +++ b/nfvbench/traffic_client.py @@ -679,7 +679,10 @@ class TrafficClient(object): self.run_config['rates'][idx] = {'rate_pps': self.__convert_rates(rate)['rate_pps']} self.gen.clear_streamblock() - self.gen.create_traffic(frame_size, self.run_config['rates'], bidirectional, latency=True) + if self.config.no_latency_streams: + LOG.info("Latency streams are disabled") + self.gen.create_traffic(frame_size, self.run_config['rates'], bidirectional, + latency=not self.config.no_latency_streams) def _modify_load(self, load): self.current_total_rate = {'rate_percent': str(load)} diff --git a/nfvbench/traffic_gen/trex_gen.py b/nfvbench/traffic_gen/trex_gen.py index b8e32e3..53786f7 100644 --- a/nfvbench/traffic_gen/trex_gen.py +++ b/nfvbench/traffic_gen/trex_gen.py @@ -438,6 +438,8 @@ class TRex(AbstractTrafficGenerator): """ streams = [] pg_id, lat_pg_id = self.get_pg_id(port, chain_id) + if self.config.no_flow_stats: + LOG.info("Traffic flow statistics are disabled.") if l2frame == 'IMIX': for ratio, l2_frame_size in zip(IMIX_RATIOS, IMIX_L2_SIZES): pkt = self._create_pkt(stream_cfg, l2_frame_size) @@ -448,11 +450,13 @@ class TRex(AbstractTrafficGenerator): if stream_cfg['vxlan'] is True: streams.append(STLStream(packet=pkt, flow_stats=STLFlowStats(pg_id=pg_id, - vxlan=True), + vxlan=True) + if not self.config.no_flow_stats else None, mode=STLTXCont(pps=ratio))) else: streams.append(STLStream(packet=pkt, - flow_stats=STLFlowStats(pg_id=pg_id), + flow_stats=STLFlowStats(pg_id=pg_id) + if not self.config.no_flow_stats else None, mode=STLTXCont(pps=ratio))) if latency: @@ -469,11 +473,13 @@ class TRex(AbstractTrafficGenerator): if stream_cfg['vxlan'] is True: streams.append(STLStream(packet=pkt, flow_stats=STLFlowStats(pg_id=pg_id, - vxlan=True), + vxlan=True) + if not self.config.no_flow_stats else None, mode=STLTXCont())) else: streams.append(STLStream(packet=pkt, - flow_stats=STLFlowStats(pg_id=pg_id), + flow_stats=STLFlowStats(pg_id=pg_id) + if not self.config.no_flow_stats else None, mode=STLTXCont())) # for the latency stream, the minimum payload is 16 bytes even in case of vlan tagging # without vlan, the min l2 frame size is 64 @@ -483,14 +489,18 @@ class TRex(AbstractTrafficGenerator): pkt = self._create_pkt(stream_cfg, 68) if latency: + if self.config.no_latency_stats: + LOG.info("Latency flow statistics are disabled.") if stream_cfg['vxlan'] is True: streams.append(STLStream(packet=pkt, flow_stats=STLFlowLatencyStats(pg_id=lat_pg_id, - vxlan=True), + vxlan=True) + if not self.config.no_latency_stats else None, mode=STLTXCont(pps=self.LATENCY_PPS))) else: streams.append(STLStream(packet=pkt, - flow_stats=STLFlowLatencyStats(pg_id=lat_pg_id), + flow_stats=STLFlowLatencyStats(pg_id=lat_pg_id) + if not self.config.no_latency_stats else None, mode=STLTXCont(pps=self.LATENCY_PPS))) return streams |