Hi Prashant, On 01/28/2015 12:25 PM, Prashant Upadhyaya wrote: > Hi, > > I am aware that this topic has been discussed several times before, but I > am somehow still stuck with this. > > I am using dpdk 1.6r1, intel 82599 NIC. > I have an mbuf, I have hand-constructed a UDP packet (IPv4) in the data > portion, filled the relevant fields of the headers and I do a tx burst. No > problems, the destination gets the packet. I filled UDP checksum as zero > and there was no checksum offloaded in ol_flags. > > Now in the same usecase, I want to offload UDP checksum. > I am aware that the checksum field in UDP header has to be filled with the > pseudo header checksum, I did that, duly added the PKT_TX_UDP_CKSUM flag in > ol_flags, did a tx_burst and the packet does not reach the destination. > > I realized that I have to fill the following fields as well (my packet does > not have vlan tag) > mbuf->pkt.vlan_macip.f.l2_len > mbuf->pkt.vlan_macip.f.l3_len > > so I filled the l2_len as 14 and l3_len as 20 (IP header with no options) > Yet the packet did not reach the destination. > > So my question is -- am I filling the l2_len and l3_len properly ? > Is there anything else to be done before I can get this UDP checksum > offload to work properly for me.
As far as I remember, this should be working on 1.6r1. When you say "did not reach the destination", do you mean that the packet is not transmitted at all? Or is it transmitted with a wrong checksum? I think you should try to reproduce the issue with the latest DPDK which is known to work with test-pmd (csum forward engine). Regards, Olivier