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)}
 
                 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)