...I installed v2.21 yesterday and tried the new "--software" switch. Didn't work for me. I'll try to summarize what I observed:
IPv4:
- enter service-mode
- start capture
- sending ARP packets (encapsulation: Ether/Dot1Q/ARP)
- stop capture
- inspect packets to get ARP response/MAC address of default gw
- stop service mode
- send traffic to retrieved MACs (single vlan encap - same as when sending ARPs)
IPv6:
- very similar to IPv4
- send NS, capture NA
- if NS is received - craft NA packet
For now, let's only concentrate on IPv4 flows. Using v2.20 everything worked and with v2.21
in "normal" stateless mode, those flows run as good as before.
But when I try "--software" things go bad :(
- I only see TX packets, but no RX packets anymore (via API and in the tui-console)
- ARP resolution fails most of the times, whereas there's no problem running in non-software mode
- same behaviour when adding "--no-hw-flow-stat" switch
For IPv6 I experience the same problem with ND, but that might still be a problem of my implementation.
I'm currently a bit lost, on how I can provide more details to you, since my streams are all generated
by a script, that's dynamically building those streams from an ansible inventory. I might try to implement
a minimalistic POC script, that reproduces the error?!
Networks cards are currently still I350.
What else can I provide to debug this? Any other means of debugging this?
Thanks and regards,
Andreas
..thanks for fixing that so fast. I'll have a look at it tonight!
regards,
Andreas
...IPv4 ARP and IPv6 ND looks good! Just did a short try, but had no errors anymore.
But I still have issues regarding IPv6. I'm calling trex with "-i --software" - no other flags.
I can see received stats, but no TX stats for the IPv6 streams (see below). I don't know what "global['tx_err']"
shows (I can guess, though), but 2^32 seems to me an artifical number ;-) I haven't done any capture to see if the
packets are built as expected - might do so if you need more information.
The stream is built the same way as the v4 streams:
base_pkt = Ether(dst=d_mac)/Dot1Q(vlan=self.src_vlan)/IPv6(src=self.srcIp,dst=self.dstIp)/UDP(dport=self.dstPort,sport=self.srcPort)
pad = max(0, self.pktLen - len(base_pkt)) * 'x'
finalPkt = base_pkt/pad
Thanks,
Andreas
'flow_stats': {23: {'rx_bps': {0: 1632814.996468127,
'total': 1632814.996468127},
'rx_bps_L1': {0: 1792894.8980826493,
'total': 1792894.8980826493},
'rx_bytes': {0: 206856, 'total': 206856},
'rx_pkts': {0: 1014, 'total': 1014},
'rx_pps': {0: 1000.4993850907641,
'total': 1000.4993850907641},
'tx_bps': {'total': 'N/A'},
'tx_bps_L1': {'total': 'N/A'},
'tx_bytes': {'total': 'N/A'},
'tx_pkts': {'total': 'N/A'},
'tx_pps': {'total': 'N/A'}},
'global': {'rx_err': {},
'tx_err': {0: 4294589296, 1: 4294859296}}},
...additionally I observed, that stats via API stopped at around 7K packets - while I continue
to receive the packets in the network (observed using erspan session - packets look ok in wireshark).
Stream TX | RX | drp-Pkt | drp % | description
ID: 23 : 0 | 6996 | -6996 | 0 | IPv6_L1_750_L2_1200
andreas