[dpdk-dev] [PATCH] net/tap: remove queue specific offload support

Ferruh Yigit ferruh.yigit at intel.com
Mon Apr 23 12:13:33 CEST 2018


On 4/23/2018 10:17 AM, Ophir Munk wrote:
> Hi Ferruh,
> A quick feedback to your patch on top of next-net/master: the IP and TCP offloaded checksums are turned incorrect.

Hi Ophir,

Thanks for testing.
This patch removes queue specific offloads for tap but nothing touched on port
offloads, and in below test you are already using single queue.

This may mean something is wrong in tap for port offloading configuration.

Tap does csum calculation in Tx path [1], which does not even checks the
offloading flags, but mbuf->ol_flags. Any chance that mbuf->ol_flags is not set
correct? Can you able to make exact same setup work without this patch?


[1]
    if (txq->csum &&
        ((mbuf->ol_flags & (PKT_TX_IP_CKSUM | PKT_TX_IPV4) ||
         (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_UDP_CKSUM ||
         (mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_TCP_CKSUM))) {
            /* Support only packets with all data in the same seg */
            if (mbuf->nb_segs > 1)
                    break;
            /* To change checksums, work on a copy of data. */
            rte_memcpy(m_copy, rte_pktmbuf_mtod(mbuf, void *),
                       rte_pktmbuf_data_len(mbuf));
            tap_tx_offload(m_copy, mbuf->ol_flags,
                           mbuf->l2_len, mbuf->l3_len);
            iovecs[1].iov_base = m_copy;
    }


> 
> Detailed description
> ================
> A traffic generator is sending to a dpdk device one TCP packet and expects to receive it back after the IP and TCP checksums have been calculated by TAP.
> 
> Testpmd parameters
> =================
> testpmd -c 0x0f -n 4 --vdev="net_tap0,iface=net_vsc0,remote=ens2" -w 0000:00:00.0 -- --burst=64 --mbcache=512 --portmask 0x1 -i --txd=256 --rxd=256 --rxq=1 --txq=1 --coremask 0x008  --forward-mode=csum  --eth-peer=0,00:15:5d:10:66:02
> 
> Testpmd CLI commands
> ===================
> testpmd> port stop all
> testpmd> csum set ip hw 0
> testpmd> csum set tcp hw 0
> testpmd> port start all
> testpmd> start
> 
> On Traffic generator side
> =====================
> A traffic generator (scapy) is sending 1261 bytes of a TCP packet
> 
> Monitoring the traffic:
> 
> tcpdump -i <interface name> -envvv &
> 
> The tcpdump output shows the sent packet followed by the received packet. 
> Please note the received packet has incorrect IP & TCP checksums (both are 0)
> 
> 11:51:03.058623 00:15:5d:10:66:02 > f4:52:14:7a:59:81, ethertype IPv4 (0x0800), length 1261: (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto TCP (6), length 1247)
>     127.0.0.1.1 > 127.0.0.1.1: Flags [S], cksum 0xdba5 (correct), seq 0:1207, win 8192, length 1207
> 
> 11:51:03.058836 f4:52:14:7a:59:81 > 00:15:5d:10:66:02, ethertype IPv4 (0x0800), length 1261: (tos 0x0, ttl 64, id 1, offset 0, flags [none], proto TCP (6), length 1247, bad cksum 0 (->7816)!)
>     127.0.0.1.1 > 127.0.0.1.1: Flags [S], cksum 0x0000 (incorrect -> 0xdba5), seq 0:1207, win 8192, length 1207
> 
> Regards,
> Ophir
> 
>> -----Original Message-----
>> From: Ophir Munk
>> Sent: Monday, April 23, 2018 11:39 AM
>> To: 'Ferruh Yigit' <ferruh.yigit at intel.com>; Thomas Monjalon
>> <thomas at monjalon.net>; Pascal Mazon <pascal.mazon at 6wind.com>;
>> Mordechay Haimovsky <motih at mellanox.com>
>> Cc: 'dev at dpdk.org' <dev at dpdk.org>; Shahaf Shuler
>> <shahafs at mellanox.com>; Olga Shern <olgas at mellanox.com>; Raslan
>> Darawsheh <rasland at mellanox.com>
>> Subject: RE: [dpdk-dev] [PATCH] net/tap: remove queue specific offload
>> support
>>
>> Hi Ferruh,
>> I was able to apply your patch with Thomas help:
>> 1. git am --reject
>> 2. <Fix code manually using *.rej file>
>> 3. git am --continue
>>
>> Regards,
>> Ophir
>>
>>> -----Original Message-----
>>> From: Ophir Munk
>>> Sent: Sunday, April 22, 2018 7:05 PM
>>> To: Ferruh Yigit <ferruh.yigit at intel.com>; Thomas Monjalon
>>> <thomas at monjalon.net>; Pascal Mazon <pascal.mazon at 6wind.com>;
>>> Mordechay Haimovsky <motih at mellanox.com>
>>> Cc: dev at dpdk.org; Shahaf Shuler <shahafs at mellanox.com>; Olga Shern
>>> <olgas at mellanox.com>; Raslan Darawsheh <rasland at mellanox.com>
>>> Subject: RE: [dpdk-dev] [PATCH] net/tap: remove queue specific offload
>>> support
>>>
>>> Hi Ferruh,
>>> I am not able to apply your patch on next-net/master branch.
>>> I am failing to apply it both on latest commit or just before
>>> 22-Mar-18 (commit's date).
>>>
>>> $ git am dpdk-dev-net-tap-remove-queue-specific-offload-support.patch
>>> Applying: net/tap: remove queue specific offload support
>>> error: patch failed: drivers/net/tap/rte_eth_tap.c:269
>>> error: drivers/net/tap/rte_eth_tap.c: patch does not apply Patch
>>> failed at
>>> 0001 net/tap: remove queue specific offload support
>>>
>>> Please advise.
>>>
>>> Once this error is fixed I can verify your patch with high priority
>>> and send you my feedback.
>>>
>>> Regards,
>>> Ophir
>>>
>>>> -----Original Message-----
>>>> From: Ferruh Yigit [mailto:ferruh.yigit at intel.com]
>>>> Sent: Wednesday, April 18, 2018 1:55 PM
>>>> To: Ophir Munk <ophirmu at mellanox.com>; Thomas Monjalon
>>>> <thomas at monjalon.net>; Pascal Mazon <pascal.mazon at 6wind.com>;
>>>> Mordechay Haimovsky <motih at mellanox.com>
>>>> Cc: dev at dpdk.org; Shahaf Shuler <shahafs at mellanox.com>; Olga Shern
>>>> <olgas at mellanox.com>
>>>> Subject: Re: [dpdk-dev] [PATCH] net/tap: remove queue specific
>>>> offload support
>>>>
>>>> On 4/18/2018 10:40 AM, Ophir Munk wrote:
>>>>> Hi Ferruh,
>>>>> Sorry for the delayed response.
>>>>>
>>>>> I would like to verify the correctness of this patch by running
>>>>> several
>>>> internal tests.
>>>>> Is a reply by Monday OK with you?
>>>>
>>>> Monday can be late to include patch into rc1, any chance to do earlier?
>>>>
>>>>>
>>>>> Regards,
>>>>> Ophir
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Ferruh Yigit [mailto:ferruh.yigit at intel.com]
>>>>>> Sent: Wednesday, April 18, 2018 11:59 AM
>>>>>> To: Thomas Monjalon <thomas at monjalon.net>; Pascal Mazon
>>>>>> <pascal.mazon at 6wind.com>; Mordechay Haimovsky
>>>> <motih at mellanox.com>;
>>>>>> Ophir Munk <ophirmu at mellanox.com>
>>>>>> Cc: dev at dpdk.org; Shahaf Shuler <shahafs at mellanox.com>; Olga
>>>>>> Shern <olgas at mellanox.com>
>>>>>> Subject: Re: [dpdk-dev] [PATCH] net/tap: remove queue specific
>>>>>> offload support
>>>>>>
>>>>>> On 4/12/2018 5:23 PM, Ferruh Yigit wrote:
>>>>>>> On 4/5/2018 6:49 PM, Thomas Monjalon wrote:
>>>>>>>> Pascal, Moti, Ophir,
>>>>>>>> please comment.
>>>>>>>
>>>>>>> Hi Moti,
>>>>>>>
>>>>>>> Any comment? This has been asked many times now.
>>>>>>
>>>>>> Hi Moti, Ophir,
>>>>>>
>>>>>> You have not responded why queue specific offload added in other
>>>> thread.
>>>>>> And you are not responding to this patch...
>>>>>>
>>>>>> Hi Pascal,
>>>>>>
>>>>>> If you also have no objection, this patch is going in.
>>>>>>
>>>>>> Thanks,
>>>>>> ferruh
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> 22/03/2018 19:28, Ferruh Yigit:
>>>>>>>>> It is not clear if tap PMD supports queue specific offloads,
>>>>>>>>> removing the related code.
>>>>>>>>>
>>>>>>>>> Fixes: 95ae196ae10b ("net/tap: use new Rx offloads API")
>>>>>>>>> Fixes: 818fe14a9891 ("net/tap: use new Tx offloads API")
>>>>>>>>> Cc: motih at mellanox.com
>>>>>>>>>
>>>>>>>>> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>
> 



More information about the dev mailing list