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-boun...@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.


Reply via email to