On 9/17/2020 8:10 AM, Chengchang Tang wrote:
On 2020/9/15 0:23, Ferruh Yigit wrote:
On 8/20/2020 2:42 AM, Wei Hu (Xavier) wrote:
From: Chengchang Tang <tangchengch...@huawei.com>
In txonly forward mode, the packet header is fixed by the initial
setting, including the packet length and checksum. So when the packets
varies, this may cause a packet header error. Currently, there are two
methods in txonly mode to randomly change the packets.
1. Set txsplit random and txpkts (x[,y]*), the number of segments
each packets will be a random value between 1 and total number of
segments determined by txpkts settings.
The step as follows:
a) ./testpmd -w xxx -l xx -n 4 -- -i --rxd xxxx --txd xxxx
b) set fwd txonly
c) set txsplit rand
d) set txpkts 2048,2048,2048,2048
e) start
The nb_segs of the packets sent by testpmd will be 1~4. The real packet
length will be 2048, 4096, 6144 and 8192. But in fact the packet length
in ip header and udp header will be fixed by 8178 and 8158.
Although I confirm the patch fixes the ip & udp header packet size for
"txsplit=rand" config,
I am always getting actual packet size wrong, independent from
'txsplit', and it is always first segment size. Am I doing something wrong?
Yes, I miss it. If the txsplit is not set and the txpkts is set, the txonly
fwd engine will only send single segment packets, and there will be a payload
error for the data_len will be refreshed by the sum of the segment size.
I am getting the size error when 'txsplit' is 'on' or 'rand'. In that
case packet header are correct (after your patch) but wireshark
complains the size of the packet on wire is different than the values in
headers. And the size of the actual packet is reported by wireshark as
the size of the first segment.
May be the data_len should be the first segment size if the txsplit is not set?
I will fix it in the next version.
And not related to this patch but why setting 'txpkts' requires "--rxd
xxxx --txd xxxx" options explicitly set? If you are already there can
you also remove this restriction?
OK, I will fix it in next version.
Thanks, appreciated.