[dpdk-dev] pktgen offload checksum flag not able to make it work with pacp packets.

Ananyev, Konstantin konstantin.ananyev at intel.com
Mon Jan 27 01:38:09 CET 2014


Hey,
As I remember, for TCP and UDP checksum HW offload, SW is responsible for generating and setting psudo-header checksum.
>From  82599 datasheet, 7.2.5.2:
Note: For non-TSO, software still needs to calculate a full checksum for the TCP/
UDP pseudo-header. This checksum of the pseudo-header should be placed
in the packet data buffer at the appropriate offset for the checksum
calculation.
Refer to app/test-pmd/csumonly.c for an example.
Konstantin

-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Wiles, Roger Keith
Sent: Sunday, January 26, 2014 2:47 AM
To: Banashankar KV
Cc: <dev at dpdk.org>
Subject: Re: [dpdk-dev] pktgen offload checksum flag not able to make it work with pacp packets.

Hi Banashankar,

The tx_conf is used in the pktgen_config_ports() with the rte_eth_tx_queue_setup() and I am not sure why it matters that tx_conf is disable. The values are mostly zero, but some type of interaction must be going on. It may be the txq_flags being set to  IXGBE_SIMPLE_FLAGS and it is overriding the the per packet flag later. You will need to look at the driver to determine the real reason.

The checksum should not be wrong unless the hardware registers are not setup correctly, but I would not think that is the case. You may want to verify the checksum is correct another way, because I can not see the hardware doing the checksum wrong.

Thanks
++Keith


Keith Wiles, Principal Technologist for Networking member of the CTO office, Wind River mobile 940.213.5533 [Powering 30 Years of Innovation]<http://www.windriver.com/announces/wr30/>

On Jan 25, 2014, at 4:53 PM, Banashankar KV <banveerad at gmail.com<mailto:banveerad at gmail.com>> wrote:

Hi,
Thanks a lot for the reply !
Yes I have checked those examples and had set all those flags. But IP checksum started working after commenting off the txq_flags from the pktgen.c file's tx_conf .

And I added the following flag to calculate the tcp checksum.

m->ol_flags  |= PKT_TX_TCP_CKSUM

its calculating the TCP checksum but turning out to be wrong checksum.

Thanks
Banashankar



On Fri, Jan 24, 2014 at 11:44 AM, Wiles, Roger Keith <keith.wiles at windriver.com<mailto:keith.wiles at windriver.com>> wrote:
I have not enabled that feature myself, but I would expect it to work as long as the hardware does. What does the docs say about enabling hardware offload support? Did you look at the following files:

ip_reassembly/ipv4_rsmbl.h:     m->ol_flags |= PKT_TX_IP_CKSUM;
ipv4_frag/rte_ipv4_frag.h:              out_pkt->ol_flags |= PKT_TX_IP_CKSUM;

Thanks
++Keith

Keith Wiles, Principal Technologist for Networking member of the CTO office, Wind River mobile 940.213.5533<tel:940.213.5533> [Powering 30 Years of Innovation]<http://www.windriver.com/announces/wr30/>

On Jan 24, 2014, at 12:54 PM, Banashankar KV <banveerad at gmail.com<mailto:banveerad at gmail.com>> wrote:

I was modifying a packet in pktgen_pcap_mbuf_ctor() and after modifying I wanted to offload the checksum calculation to h/w so I am setting these flags in pktgen_pcap_mbuf_ctor function.

m->pkt.vlan_macip.f.l2_len = sizeof(struct ether_hdr); 
m->pkt.vlan_macip.f.l3_len = sizeof(struct ipv4_hdr);

m->ol_flags = PKT_TX_IP_CKSUM


I even tried with setting .txq_flags = 0 in rte_eth_txconf struct in pktgen.c.

But still not able to get the h/w checksum. Am I missing anything ?



Thanks
Banashankar



--------------------------------------------------------------
Intel Shannon Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263
Business address: Dromore House, East Park, Shannon, Co. Clare

This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.




More information about the dev mailing list