From: Olivier Matz <olivier.matz@6wind.com>
To: "Ido Barnea (ibarnea)" <ibarnea@cisco.com>
Cc: "konstantin.ananyev@intel.com" <konstantin.ananyev@intel.com>,
"Hanoch Haim (hhaim)" <hhaim@cisco.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: librte_net/rte_ip.h checksum functions question
Date: Thu, 20 Jul 2017 11:09:17 +0200 [thread overview]
Message-ID: <20170720110917.4ec188eb@platinum> (raw)
In-Reply-To: <4E60939B-45FA-45C6-B6C7-1643CB6285D2@cisco.com>
Hi Ido,
On Tue, 18 Jul 2017 12:18:20 +0000, "Ido Barnea (ibarnea)" <ibarnea@cisco.com> wrote:
> Hi,
> Is it intentional that rte_ipv4_phdr_cksum and others in this file assume that ipv4 header is sizeof(struct ipv4_hdr), actually assuming that there are no IPv4 options?
> If not, I would like to submit a patch changing that.
> Something in the line of:
> sizeof(struct ipv4_hdr) changes to ipv4_hdr->version_ihl & IPV4_HDR_IHL_MASK) * IPV4_IHL_MULTIPLIER)
>
I agree we should have other functions that take the real ip header
len in account. What about the following:
static inline uint16_t
rte_ipv4ext_cksum(const struct ipv4_hdr *ipv4_hdr, size_t hdrlen)
static inline uint16_t
rte_ipv4ext_phdr_cksum(const struct ipv4_hdr *ipv4_hdr, size_t hdrlen,
uint64_t ol_flags)
...
The current function rte_ipv4_cksum() can call rte_ipv4ext_cksum(.., 5)
without additional cost, since 5 will be a constant, resolved at
compilation time.
I also noticed that some functions are not properly documented (it should
be announced that options are not supported). Also, the api comment
of rte_ipv6_udptcp_cksum() talks about ipv4...
Thanks,
Olivier
next prev parent reply other threads:[~2017-07-20 9:09 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-18 12:18 librte_net/rte_ip.h checksum functions question Ido Barnea (ibarnea)
2017-07-20 9:09 ` Olivier Matz [this message]
2017-07-20 9:57 ` Ido Barnea (ibarnea)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170720110917.4ec188eb@platinum \
--to=olivier.matz@6wind.com \
--cc=dev@dpdk.org \
--cc=hhaim@cisco.com \
--cc=ibarnea@cisco.com \
--cc=konstantin.ananyev@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.