[dpdk-dev] IPV4/IPV6 TCP/UDP Pseudo Header Checksum APIs

Shyam Shrivastav shrivastav.shyam at gmail.com
Sat Oct 20 08:30:30 CEST 2018


Yes you are right, I misread, following code (ipv4 case) assumes no ip
options while calculating pseudo hdr length field

        psd_hdr.len = rte_cpu_to_be_16(
            (uint16_t)(rte_be_to_cpu_16(ipv4_hdr->total_length)
                - sizeof(struct ipv4_hdr)));

should be

             psd_hdr.len = rte_cpu_to_be_16(
            (uint16_t)(rte_be_to_cpu_16(ipv4_hdr->total_length)
                - (ipv4_hdr->version_ihl & 0x0f)*4)));

On Sat, Oct 20, 2018 at 11:44 AM lidejun <lidejun1 at huawei.com> wrote:

> I mean DPDK APIs do not exclude ipv4 options or ipv6 extension headers, it
> is bug?
>
>
>
> *发件人:* Shyam Shrivastav [mailto:shrivastav.shyam at gmail.com]
> *发送时间:* 2018年10月20日 13:23
> *收件人:* lidejun <lidejun1 at huawei.com>
> *抄送:* users <users at dpdk.org>; dev at dpdk.org; Lichunhe (Cloud Networking) <
> lichunhe at huawei.com>; Wangliefeng <wangliefeng at huawei.com>
> *主题:* Re: [dpdk-dev] IPV4/IPV6 TCP/UDP Pseudo Header Checksum APIs
>
>
>
> Realized my answer is confusing, I meant to say that code is correct as
> pseudo ipv4/ipv6 headers for the purpose of checksum calculations doesn't
> include options or extension headers, see udp wiki or corresponding rfcs
>
>
>
> https://en.wikipedia.org/wiki/User_Datagram_Protocol
>
>
>
> On Sat, Oct 20, 2018 at 10:42 AM Shyam Shrivastav <
> shrivastav.shyam at gmail.com> wrote:
>
> that is correct , pseudo header doesn't include ipv4 options or ipv6
> extension headers ..
>
>
>
> On Sat, Oct 20, 2018 at 9:02 AM lidejun <lidejun1 at huawei.com> wrote:
>
> Has anybody used the following two APIs calculating ipv4&ipv6 tcp/udp
> pseudo header checksum?
>
> 1.    rte_ipv4_phdr_cksum
>
> 2.    rte_ipv6_phdr_cksum
> The ipv4 version does not exclude ip options and ipv6 version does not
> exclude extersion headers.
>
>


More information about the dev mailing list