NFVBENCH-79 TRex latency stats requires at least 18B payload size
[nfvbench.git] / nfvbench / traffic_gen / traffic_base.py
index c2ac8d0..81537b3 100644 (file)
@@ -23,19 +23,12 @@ class TrafficGeneratorException(Exception):
 
 
 class AbstractTrafficGenerator(object):
-    # src_mac (6) + dst_mac (6) + mac_type (2) + frame_check (4) = 18
-    l2_header_size = 18
-
-    imix_l2_sizes = [64, 594, 1518]
-    imix_l3_sizes = [size - l2_header_size for size in imix_l2_sizes]
-    imix_ratios = [7, 4, 1]
-    imix_avg_l2_size = sum(
-        [1.0 * imix[0] * imix[1] for imix in zip(imix_l2_sizes, imix_ratios)]) / sum(imix_ratios)
-
-    traffic_utils.imix_avg_l2_size = imix_avg_l2_size
-
     def __init__(self, config):
         self.config = config
+        self.imix_l2_sizes = [64, 594, 1518]
+        self.imix_ratios = [7, 4, 1]
+        self.imix_avg_l2_size = 0
+        self.adjust_imix_min_size(64)
 
     @abc.abstractmethod
     def get_version(self):
@@ -96,3 +89,11 @@ class AbstractTrafficGenerator(object):
     def cleanup(self):
         # Must be implemented by sub classes
         return None
+
+    def adjust_imix_min_size(self, min_size):
+        # assume the min size is always the first entry
+        self.imix_l2_sizes[0] = min_size
+        self.imix_avg_l2_size = sum(
+            [1.0 * imix[0] * imix[1] for imix in zip(self.imix_l2_sizes, self.imix_ratios)]) / sum(
+                self.imix_ratios)
+        traffic_utils.imix_avg_l2_size = self.imix_avg_l2_size