Merge "Add support for VXLAN latency"
authorAlec Hothan <ahothan@cisco.com>
Wed, 23 Oct 2019 15:25:43 +0000 (15:25 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Wed, 23 Oct 2019 15:25:43 +0000 (15:25 +0000)
1  2 
nfvbench/traffic_client.py
nfvbench/traffic_gen/trex_gen.py

@@@ -341,7 -341,6 +341,7 @@@ class GeneratorConfig(object)
          else:
              self.cores = gen_config.get('cores', 1)
          self.mbuf_factor = config.mbuf_factor
 +        self.mbuf_64 = config.mbuf_64
          self.hdrh = not config.disable_hdrh
          if gen_config.intf_speed:
              # interface speed is overriden from config
          self.interfaces = gen_config.interfaces
          if self.interfaces[0].port != 0 or self.interfaces[1].port != 1:
              raise TrafficClientException('Invalid port order/id in generator_profile.interfaces')
 -        if hasattr(gen_config, 'platform'):
 -            self.platform = gen_config.platform
          self.service_chain = config.service_chain
          self.service_chain_count = config.service_chain_count
          self.flow_count = config.flow_count
@@@ -673,12 -674,7 +673,7 @@@ class TrafficClient(object)
                  self.run_config['rates'][idx] = {'rate_pps': self.__convert_rates(rate)['rate_pps']}
  
          self.gen.clear_streamblock()
-         if not self.config.vxlan:
-             self.gen.create_traffic(frame_size, self.run_config['rates'], bidirectional,
-                                     latency=True)
-         else:
-             self.gen.create_traffic(frame_size, self.run_config['rates'], bidirectional,
-                                     latency=False)
+         self.gen.create_traffic(frame_size, self.run_config['rates'], bidirectional, latency=True)
  
      def _modify_load(self, load):
          self.current_total_rate = {'rate_percent': str(load)}
@@@ -422,8 -422,7 +422,8 @@@ class TRex(AbstractTrafficGenerator)
                                                 l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP))
          pad = max(0, frame_size - len(pkt_base)) * 'x'
  
 -        return STLPktBuilder(pkt=pkt_base / pad, vm=STLScVmRaw(vm_param))
 +        return STLPktBuilder(pkt=pkt_base / pad,
 +                             vm=STLScVmRaw(vm_param, cache_size=int(self.config.cache_size)))
  
      def generate_streams(self, port, chain_id, stream_cfg, l2frame, latency=True,
                           e2e=False):
                  pkt = self._create_pkt(stream_cfg, 68)
  
          if latency:
-             # TRex limitation: VXLAN skip is not supported for latency stream
-             streams.append(STLStream(packet=pkt,
-                                      flow_stats=STLFlowLatencyStats(pg_id=lat_pg_id),
-                                      mode=STLTXCont(pps=self.LATENCY_PPS)))
+             if stream_cfg['vxlan'] is True:
+                 streams.append(STLStream(packet=pkt,
+                                          flow_stats=STLFlowLatencyStats(pg_id=lat_pg_id,
+                                                                         vxlan=True),
+                                          mode=STLTXCont(pps=self.LATENCY_PPS)))
+             else:
+                 streams.append(STLStream(packet=pkt,
+                                          flow_stats=STLFlowLatencyStats(pg_id=lat_pg_id),
+                                          mode=STLTXCont(pps=self.LATENCY_PPS)))
          return streams
  
      @timeout(5)