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

Banashankar KV banveerad at gmail.com
Mon Jan 27 20:04:36 CET 2014


Hi,
In pktgen.c,  tx_conf have a flag txq_flags which is set to IXGBE_SIMPLE_FLAGS
which inturn has value ETH_TXQ_FLAGS_NOOFFLOADS which is defined in
rte_ethdev.h and has values which disables all kind of chksum offloads. So
once I commented off that particular flag, offload started working.
Yea I was also thinking same about the tcp checksum.


Thanks
Banashankar



On Sat, Jan 25, 2014 at 6:46 PM, Wiles, Roger Keith <
keith.wiles at windriver.com> wrote:

>  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
> [image: 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> 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> 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
>> [image: 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>
>> 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
>>
>>
>>
>
>


More information about the dev mailing list