Skip to content

ipv4 id is changed by trex (together with checksum) #1186

@PanPaskuda

Description

@PanPaskuda

Hi, I got strange results while sendig high rate packets, but was able to create simplest reproducible scenario:

it seems that all ids above 0xFBFF are reserved and when they appar, trex silently flip bit no 12

to reproduce: write this snippet as test.py

from trex.stl.api import *

class STLS1(object):
    def get_streams(self, direction = 0, **kwargs):
        streams = []
        packet = (Ether(dst='00:00:00:00:00:01') /·
                  IP(id=0xFFFF,chksum=0xAAAA))

        vm = STLVM()
        stream = STLStream(packet = STLPktBuilder(pkt = packet, vm = vm),
                           mac_src_override_by_pkt = True,
                           mac_dst_override_mode = 1,
                           mode = STLTXSingleBurst(total_pkts = 1, pps = 1.0))
        streams.append(stream)

        return streams

def register():
    return STLS1()

but instead of 0xFFFF as ip id, trex sends 0xEFFF (and changes checksum too to not keep them sane),
so when send by cmd: trex>start -f /path/to/test.py tcpdump shows:

11:52:55.744521 IP 16.0.0.1 > 48.0.0.1:  hopopt 0
        0x0000:  0000 0000 0001 0000 0002 0000 0800 4500  ..............E.
        0x0010:  0014 efff 0000 4000 baaa 1000 0001 3000  [email protected].  << here `efff` as ip id and `baaa` as chksum
        0x0020:  0001 0000 0000 0000 0000 0000 0000 0000  ................
        0x0030:  0000 0000 0000 0000 0000 0000            ............

is it bug or maybe just a hidden feature? ;) how to fix it or workaround?

 Version : v3.06                                           
 DPDK version : DPDK 24.03.0                               
 User    : hhaim                                           
 Date    : Sep  9 2024 , 14:24:11                          
 Uuid    : a548d75a-6e9d-11ef-9725-0025b5ff001d            
 Git SHA : 61fb7aead7063d98bf16cd9392e85021193d5584        
                                                           
Compiled with GCC     :   8.3.1 20190311 (Red Hat 8.3.1-3) 
Compiled with glibc   :   2.17 (host: 2.31)                
Sanitized image       :   no

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions