Greetings all,

I have run l3fwd example program using two mlx5 NIC(
MLNX_OFED_LINUX-4.3-1.0.1.0 ) base on DPDK 17.08 and use pktgen as
flowgen.

This demo provided by DPDK works fine in UDP case, but in pktgen TCP
case, l3fwd can't forward packet to nexthop port.


After look into function rxq_cq_to_pkt_type(), I found while handling
IPv4 TCP ACK packets:

> l4_hdr_type bits[2:0] in CQE is (100)

> l3_hdr_type bits[1:0] in CQE is (10)


It looks fine according to CQE format in
<Ethernet_Adapters_Programming_Manual> doc:

> l4_hdr_type:
    0 - None
    1 - TCP header was present in the packet
    2 - UDP header was present in the packet
    3 - TCP header was present in the packet with Empty TCP ACK
indication. (TCP packet <ACK> flag is set, and packet carries no data)
    4 - TCP header was present in the packet with TCP ACK indication.
(TCP packet <ACK> flag is set, and packet carries data).

> l3_hdr_type:

    00 - None
    01 - IPv6
    10 - IPv4


But combined l4_hdr_type and l3_hdr_type into idx, the idx would be
0x12, which was not reserved in mlx5_set_ptype_type().

Then RTE_PTYPE_UNKNOWN would be return to caller which caused
sub-sequence procedure going wrong.


Did I omit any possible configuration to make ptype flag work for TCP
ACK packets, or should I add (*p)[0x12] in mlx5_set_ptype_type() to
make this work?



Thanks for your time,

Bin

Reply via email to