[NFVBENCH-74] packet payload length without vlan
[nfvbench.git] / nfvbench / traffic_gen / trex.py
index 23faebc..1e7c133 100644 (file)
@@ -136,13 +136,16 @@ class TRex(AbstractTrafficGenerator):
         return result
 
     def create_pkt(self, stream_cfg, l2frame_size):
-        # 46 = 14 (Ethernet II) + 4 (CRC Checksum) + 20 (IPv4) + 8 (UDP)
-        payload = 'x' * (max(64, int(l2frame_size)) - 46)
 
         pkt_base = Ether(src=stream_cfg['mac_src'], dst=stream_cfg['mac_dst'])
 
         if stream_cfg['vlan_tag'] is not None:
+            # 50 = 14 (Ethernet II) + 4 (Vlan tag) + 4 (CRC Checksum) + 20 (IPv4) + 8 (UDP)
             pkt_base /= Dot1Q(vlan=stream_cfg['vlan_tag'])
+            payload = 'x' * (max(64, int(l2frame_size)) - 50)
+        else:
+            # 46 = 14 (Ethernet II) + 4 (CRC Checksum) + 20 (IPv4) + 8 (UDP)
+            payload = 'x' * (max(64, int(l2frame_size)) - 46)
 
         udp_args = {}
         if stream_cfg['udp_src_port']:
@@ -354,7 +357,7 @@ class TRex(AbstractTrafficGenerator):
                 else:
                     failed = [arp.get_record().dst_ip for arp in arps
                               if arp.get_record().dst_mac is None]
-                    LOG.info('Retrying ARP for: %d (%d / %d)',
+                    LOG.info('Retrying ARP for: %s (%d / %d)',
                              failed, attempt, self.config.generic_retry_count)
                     time.sleep(self.config.generic_poll_sec)