X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=nfvbench%2Ftraffic_client.py;h=4337ad305f387700487dd3a5cc23479640dc7207;hb=ed44014fcbd625cd464a6a7f7b88c02b9b7a29f5;hp=8bfcd765d0f44b92a9a7d387b78357384e6346be;hpb=04a7de082bd221eae3c7004f4e0b99dfa4f8be91;p=nfvbench.git diff --git a/nfvbench/traffic_client.py b/nfvbench/traffic_client.py index 8bfcd76..4337ad3 100644 --- a/nfvbench/traffic_client.py +++ b/nfvbench/traffic_client.py @@ -84,7 +84,8 @@ class Device(object): def __init__(self, port, pci, switch_port=None, vtep_vlan=None, ip=None, tg_gateway_ip=None, gateway_ip=None, ip_addrs_step=None, tg_gateway_ip_addrs_step=None, - gateway_ip_addrs_step=None, chain_count=1, flow_count=1, vlan_tagging=False): + gateway_ip_addrs_step=None, udp_src_port=None, udp_dst_port=None, + chain_count=1, flow_count=1, vlan_tagging=False): self.chain_count = chain_count self.flow_count = flow_count self.dst = None @@ -111,6 +112,8 @@ class Device(object): self.tg_gateway_ip_list = self.expand_ip(self.tg_gateway_ip, self.tg_gateway_ip_addrs_step, self.chain_count) + self.udp_src_port = udp_src_port + self.udp_dst_port = udp_dst_port def set_mac(self, mac): if mac is None: @@ -151,6 +154,8 @@ class Device(object): 'ip_dst_addr_max': self.dst.ip_list[max_idx], 'ip_dst_count': ip_dst_count, 'ip_addrs_step': self.ip_addrs_step, + 'udp_src_port': self.udp_src_port, + 'udp_dst_port': self.udp_dst_port, 'mac_discovery_gw': self.gateway_ip_list[chain_idx], 'ip_src_tg_gw': self.tg_gateway_ip_list[chain_idx], 'ip_dst_tg_gw': self.dst.tg_gateway_ip_list[chain_idx], @@ -253,6 +258,8 @@ class RunningTrafficProfile(object): 'gateway_ip_addrs_step': self.gateway_ip_addrs_step, 'tg_gateway_ip': generator_config.tg_gateway_ip_addrs[0], 'tg_gateway_ip_addrs_step': self.tg_gateway_ip_addrs_step, + 'udp_src_port': generator_config.udp_src_port, + 'udp_dst_port': generator_config.udp_dst_port, 'vlan_tagging': self.vlan_tagging } dst_config = { @@ -264,6 +271,8 @@ class RunningTrafficProfile(object): 'gateway_ip_addrs_step': self.gateway_ip_addrs_step, 'tg_gateway_ip': generator_config.tg_gateway_ip_addrs[1], 'tg_gateway_ip_addrs_step': self.tg_gateway_ip_addrs_step, + 'udp_src_port': generator_config.udp_src_port, + 'udp_dst_port': generator_config.udp_dst_port, 'vlan_tagging': self.vlan_tagging } @@ -528,9 +537,9 @@ class TrafficClient(object): retDict[port]['rx'][key] = int(stats[port]['rx'][key]) except ValueError: retDict[port]['rx'][key] = 0 - retDict[port]['rx']['avg_delay_usec'] = float(stats[port]['rx']['avg_delay_usec']) - retDict[port]['rx']['min_delay_usec'] = float(stats[port]['rx']['min_delay_usec']) - retDict[port]['rx']['max_delay_usec'] = float(stats[port]['rx']['max_delay_usec']) + retDict[port]['rx']['avg_delay_usec'] = int(stats[port]['rx']['avg_delay_usec']) + retDict[port]['rx']['min_delay_usec'] = int(stats[port]['rx']['min_delay_usec']) + retDict[port]['rx']['max_delay_usec'] = int(stats[port]['rx']['max_delay_usec']) retDict[port]['drop_rate_percent'] = self.__get_dropped_rate(retDict[port]) ports = sorted(retDict.keys()) @@ -600,7 +609,8 @@ class TrafficClient(object): indicating the rate to send on each interface right the right side of the range to search as a % of line rate indicating the rate to send on each interface - targets a dict of drop rates to search (0.1 = 0.1%), indexed by the DR name or "tag" ('ndr', 'pdr') + targets a dict of drop rates to search (0.1 = 0.1%), indexed by the DR name or "tag" + ('ndr', 'pdr') results a dict to store results ''' if len(targets) == 0: @@ -630,6 +640,21 @@ class TrafficClient(object): }) right_targets[tag] = target else: + # initialize to 0 all fields of result for + # the worst case scenario of the binary search (if ndr/pdr is not found) + if tag not in results: + results[tag] = dict.fromkeys(rates, 0) + empty_stats = self.__format_output_stats(dict(stats)) + for key in empty_stats: + if isinstance(empty_stats[key], dict): + empty_stats[key] = dict.fromkeys(empty_stats[key], 0) + else: + empty_stats[key] = 0 + results[tag].update({ + 'load_percent_per_direction': 0, + 'stats': empty_stats, + 'timestamp_sec': None + }) left_targets[tag] = target # search lower half