From: Bruce Richardson <bruce.richardson@intel.com>
To: "Morten Brørup" <mb@smartsharesystems.com>
Cc: David Marchand <david.marchand@redhat.com>, <dev@dpdk.org>,
"Stephen Hemminger" <stephen@networkplumber.org>,
Jerin Jacob <jerinj@marvell.com>,
Aman Singh <aman.deep.singh@intel.com>,
Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
Subject: Re: [PATCH v2 5/6] net: add smaller IPv4 cksum function for simple cases
Date: Wed, 30 Oct 2024 12:28:16 +0000 [thread overview]
Message-ID: <ZyImYLLGlU_DHGFb@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35E9F84E@smartserver.smartshare.dk>
On Wed, Oct 30, 2024 at 12:32:30PM +0100, Morten Brørup wrote:
> > From: Bruce Richardson [mailto:bruce.richardson@intel.com]
> > Sent: Wednesday, 30 October 2024 12.28
> >
> > On Wed, Oct 30, 2024 at 12:21:00PM +0100, David Marchand wrote:
> > > Hello Bruce,
> > >
> > > On Fri, Oct 25, 2024 at 6:51 PM Bruce Richardson
> > > <bruce.richardson@intel.com> wrote:
> > > >
> > > > There are multiple instances in the DPDK app folder where we set up
> > an
> > > > IP header and then compute the checksum field by direct addition of
> > > > nine uint16_t values in the header (20 bytes less the cksum field).
> > > > The existing rte_ip.h checksum function is more general than
> > necessary
> > > > here and requires that the checksum field is already set to zero -
> > > > rather than having it skipped.
> > > >
> > > > Fix the code duplication present in the apps by creating a new
> > > > rte_ipv4_cksum_simple function - taking the code from the existing
> > > > testpmd icmpecho.c file - and using that in app/test, testpmd and
> > > > testeventdev.
> > > >
> > > > Within that new function, we can adjust slightly how the
> > typecasting to
> > > > uint16_t is done, and thereby ensure that the app can all be
> > compiled
> > > > without -Wno-address-of-packed-member compiler flag.
> > > >
> > > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > > > Acked-by: Stephen Hemminger <stephen@networkplumber.org>
> > > > Acked-by: Morten Brørup <mb@smartsharesystems.com>
> > >
> > > This added function triggers a build error with OVS because of -
> > Wcast-align:
> > > https://github.com/david-
> > marchand/ovs/actions/runs/11401635820/job/32273090691#step:12:514
> > >
> > > libtool: compile: env REAL_CC=gcc "CHECK=sparse -Wsparse-error -I
> > > ./include/sparse -I ./include -m64 -I /usr/local/include -I
> > > /usr/include/x86_64-linux-gnu " cgcc -target=x86_64
> > > -target=host_os_specs -D__MMX__=1 -D__MMX_WITH_SSE__=1
> > > -D__SSE2_MATH__=1 -D__SSE_MATH__=1 -D__SSE__=1 -D__SSE2__=1
> > > -DHAVE_CONFIG_H -I. -I ./include -I ./include -I ./lib -I ./lib
> > > -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith
> > > -Wformat -Wformat-security -Wswitch-enum -Wunused-parameter
> > > -Wbad-function-cast -Wcast-align -Wstrict-prototypes
> > > -Wold-style-definition -Wmissing-prototypes
> > > -Wmissing-field-initializers -fno-strict-aliasing -Wswitch-bool
> > > -Wlogical-not-parentheses -Wsizeof-array-argument -Wbool-compare
> > > -Wshift-negative-value -Wduplicated-cond -Wshadow
> > > -Wmultistatement-macros -Wcast-align=strict -mssse3
> > > -I/home/runner/work/ovs/ovs/dpdk-dir/include -include rte_config.h
> > > -mrtm -Werror -D_FILE_OFFSET_BITS=64 -g -O2 -MT lib/ofp-protocol.lo
> > > -MD -MP -MF lib/.deps/ofp-protocol.Tpo -c lib/ofp-protocol.c -o
> > > lib/ofp-protocol.o
> > > In file included from /home/runner/work/ovs/ovs/dpdk-
> > dir/include/rte_ip.h:9,
> > > from /home/runner/work/ovs/ovs/dpdk-dir/include/rte_flow.h:25,
> > > from lib/netdev-dpdk.h:30,
> > > from lib/dp-packet.h:30,
> > > from lib/ofp-print.c:34:
> > > /home/runner/work/ovs/ovs/dpdk-dir/include/rte_ip4.h: In function
> > > ‘rte_ipv4_cksum_simple’:
> > > /home/runner/work/ovs/ovs/dpdk-dir/include/rte_ip4.h:191:17: error:
> > > cast increases required alignment of target type [-Werror=cast-align]
> > > 191 | v16_h = (const unaligned_uint16_t *)&ipv4_hdr->version_ihl;
> > > | ^
> > Ok, I'll see if I can rework it to avoid issues.
>
> Would be easier if IP(v4/v6) headers were 2-byte aligned, like the Ethernet header.
> Just saying. ;-)
>
I agree. Would adding that alignment constraint cause us any issues, does
anyone know?
/Bruce
next prev parent reply other threads:[~2024-10-30 12:28 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-17 14:22 [PATCH 0/6] Reduce scope address-of-packed-member warning Bruce Richardson
2024-10-17 14:22 ` [PATCH 1/6] ip_frag: remove use of unaligned variable Bruce Richardson
2024-10-17 16:26 ` Stephen Hemminger
2024-10-17 16:42 ` Konstantin Ananyev
2024-10-17 14:22 ` [PATCH 2/6] efd: remove unnecessary packed attributes Bruce Richardson
2024-10-17 16:22 ` Stephen Hemminger
2024-10-17 14:22 ` [PATCH 3/6] bus/ifpga: remove packed attribute Bruce Richardson
2024-10-17 14:52 ` Xu, Rosen
2024-10-17 16:25 ` Stephen Hemminger
2024-10-17 14:22 ` [PATCH 4/6] pipeline: " Bruce Richardson
2024-10-17 14:24 ` Bruce Richardson
2024-10-17 16:25 ` Stephen Hemminger
2024-10-17 14:22 ` [PATCH 5/6] net: add smaller IPv4 cksum function for simple cases Bruce Richardson
2024-10-17 16:24 ` Stephen Hemminger
2024-10-17 17:01 ` Bruce Richardson
2024-10-17 17:15 ` Morten Brørup
2024-10-17 19:03 ` Bruce Richardson
2024-10-17 19:34 ` Stephen Hemminger
2024-10-18 0:32 ` Morten Brørup
2024-10-17 14:22 ` [PATCH 6/6] build: limit scope of packed member warning disabling Bruce Richardson
2024-10-19 15:38 ` Stephen Hemminger
2024-10-17 16:21 ` [PATCH 0/6] Reduce scope address-of-packed-member warning Stephen Hemminger
2024-10-17 17:02 ` Bruce Richardson
2024-10-25 13:24 ` David Marchand
2024-10-25 14:55 ` David Marchand
2024-10-25 16:51 ` Bruce Richardson
2024-10-25 16:50 ` [PATCH v2 " Bruce Richardson
2024-10-25 16:50 ` [PATCH v2 1/6] ip_frag: remove use of unaligned variable Bruce Richardson
2024-10-25 16:50 ` [PATCH v2 2/6] efd: remove unnecessary packed attributes Bruce Richardson
2024-10-25 16:50 ` [PATCH v2 3/6] bus/ifpga: remove packed attribute Bruce Richardson
2024-10-25 16:50 ` [PATCH v2 4/6] pipeline: " Bruce Richardson
2024-10-25 16:50 ` [PATCH v2 5/6] net: add smaller IPv4 cksum function for simple cases Bruce Richardson
2024-10-30 11:21 ` David Marchand
2024-10-30 11:27 ` Bruce Richardson
2024-10-30 11:32 ` Morten Brørup
2024-10-30 12:28 ` Bruce Richardson [this message]
2024-10-30 12:33 ` Morten Brørup
2024-10-30 14:08 ` David Marchand
2024-10-30 14:45 ` Bruce Richardson
2024-10-25 16:50 ` [PATCH v2 6/6] build: limit scope of packed member warning disabling Bruce Richardson
2024-10-28 12:51 ` [PATCH v2 0/6] Reduce scope address-of-packed-member warning fengchengwen
2024-10-30 8:22 ` David Marchand
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=ZyImYLLGlU_DHGFb@bricha3-mobl1.ger.corp.intel.com \
--to=bruce.richardson@intel.com \
--cc=aman.deep.singh@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=konstantin.v.ananyev@yandex.ru \
--cc=mb@smartsharesystems.com \
--cc=stephen@networkplumber.org \
/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.