Hi Vladimir, Once I added the pseudo header I was able to offload the TCP checksum. Thanks a lot.
Thanks Banashankar On Mon, Jan 27, 2014 at 12:02 AM, Vladimir Medvedkin <medvedkinv at gmail.com>wrote: > Hi Banashankar, > > For proper TCP checksum calculation you have to calculate checksum over > pseudo header (see app/test-pmd/cmdline.c) and put result in tcp_hdr->cksum > > > 2014-01-26 Wiles, Roger Keith <keith.wiles at windriver.com> > >> 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 >> >> >> >> Regards, > Vladimir >