[NFVBENCH-137] NFVbench generates wrong L4 checksums for VxLAN traffic 86/68086/1 3.4.1
authorYichen Wang <yicwang@cisco.com>
Fri, 21 Jun 2019 00:06:28 +0000 (17:06 -0700)
committerYichen Wang <yicwang@cisco.com>
Fri, 21 Jun 2019 00:08:15 +0000 (17:08 -0700)
Change-Id: Id0197f1f2ae0022a6e94755ab0b9fbfc434d5b8b
Signed-off-by: Yichen Wang <yicwang@cisco.com>
nfvbench/traffic_gen/trex_gen.py

index eb6066c..989940a 100644 (file)
@@ -349,11 +349,14 @@ class TRex(AbstractTrafficGenerator):
             src_fv,
             STLVmWrFlowVar(fv_name="ip_src", pkt_offset="IP:{}.src".format(encap_level)),
             dst_fv,
-            STLVmWrFlowVar(fv_name="ip_dst", pkt_offset="IP:{}.dst".format(encap_level)),
-            STLVmFixChecksumHw(l3_offset="IP:{}".format(encap_level),
-                               l4_offset="UDP:{}".format(encap_level),
-                               l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP)
+            STLVmWrFlowVar(fv_name="ip_dst", pkt_offset="IP:{}.dst".format(encap_level))
         ])
+
+        for encap in range(int(encap_level), -1, -1):
+            # Fixing the checksums for all encap levels
+            vm_param.append(STLVmFixChecksumHw(l3_offset="IP:{}".format(encap),
+                                               l4_offset="UDP:{}".format(encap),
+                                               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))