STLVmFixChecksumHw for trex stl vxlan ipv6 for mellanox nic

17 views
Skip to first unread message

dheer...@gmail.com

unread,
Mar 12, 2026, 2:25:57 AM (7 days ago) Mar 12
to TRex Traffic Generator
Hi ,

I am using mellanox nic [ConnectX-6 Lx] . If I pump vxlan ipv6 traffic using trex stl , I am getting "bad udp cksum" on the receiver DUT.
I narrowed it down and observed that this is due to STLVmFixChecksumHw incorrectly calculating the checksum.
I cannot make inner header checksum as 0, as it is required for the internal test.

If I send some sample packets streams without using field engine, then there is no checksum issue. Even this issue is not seen while using XXV710 nic.  

Is there any fix or workaround without affecting the performance ?

Below is the code snippet :

        base_pkt = Ether(src= source_mac, dst = dest_mac)/ IP(src=source_ip, dst=dest_ip)/UDP(sport=1054,dport=4789,chksum=0x0000)/VXLAN(vni=1000)/Ether(src="02:00:00:02:15:01", dst= "02:00:00:02:14:01")/IPv6(dst="2001:db8:abcd:11:f816:3eff:0002:1401", src="2001:db8:abcd:11:f816:3eff:0002:1501")/UDP(sport=60001, dport=5005)

        if (1):
            vm1 = STLScVmRaw( [

                              STLVmFlowVar(name="dst_port",
                                           min_value=5005,
                                           max_value=30000,
                                           size=2),

                              STLVmWrFlowVar(fv_name="dst_port",
                                            pkt_offset= "UDP:1.dport"), # fix udp len

                              STLVmFixChecksumHw(l3_offset="IPv6",
                                                 l4_offset="UDP:1",
                                                 l4_type=CTRexVmInsFixHwCs.L4_TYPE_UDP),

 
Regards,
Dheeraj

Reply all
Reply to author
Forward
0 new messages