From: David Miller <davem@davemloft.net>
To: herbert@gondor.apana.org.au
Cc: kaber@trash.net, nhorman@tuxdriver.com, zbr@ioremap.net,
netdev@vger.kernel.org, kuznet@ms2.inr.ac.ru, pekkas@netcore.fi,
jmorris@namei.org, yoshfuji@linux-ipv6.org
Subject: Re: [Patch 4/5] Network Drop Monitor: Adding drop monitor implementation & Netlink protocol
Date: Thu, 02 Apr 2009 02:52:23 -0700 (PDT) [thread overview]
Message-ID: <20090402.025223.242893473.davem@davemloft.net> (raw)
In-Reply-To: <20090402093952.GA30553@gondor.apana.org.au>
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Thu, 2 Apr 2009 17:39:52 +0800
> (Catching up with old emails)
>
> David Miller <davem@davemloft.net> wrote:
> > From: Patrick McHardy <kaber@trash.net>
> > Date: Wed, 04 Mar 2009 11:06:41 +0100
> >
> >> It should also be noted that netlink attributes only provide 4 byte
> >> alignment. Not sure what the current status of handling unaligned
> >> accesses on all architectures is, but something that might have to
> >> be taken into consideration.
> >
> > Indeed, we have hacks in libnl to work around some of these
> > issues :-(
>
> Requiring the use of aligned_u64 instead of __u64 in netlink
> structs should help with new data structures, right?
I lied.
It doesn't help, because the problem is that attributes can
only ever be 4 byte aligned, so no matter what attributes
you tag the types with they will be only 4-byte aligned.
It has to do with how the netlink attributes get packed together
into the messages. It's this crap:
#define NLMSG_ALIGNTO 4
#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )
...
#define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
(struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
Thus, nothing in an nlmsg can ever be more than 4 byte aligned.
And this is hard coded into the protocol.
next prev parent reply other threads:[~2009-04-02 9:52 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-03 17:04 [Patch 4/5] Network Drop Monitor: Adding drop monitor implementation & Netlink protocol Neil Horman
2009-03-03 18:19 ` Evgeniy Polyakov
2009-03-03 19:21 ` Neil Horman
2009-03-03 22:14 ` David Miller
2009-03-03 22:16 ` David Miller
2009-03-04 10:06 ` Patrick McHardy
2009-03-04 11:00 ` David Miller
2009-04-02 9:39 ` Herbert Xu
2009-04-02 9:50 ` David Miller
2009-04-02 9:52 ` David Miller [this message]
2009-04-02 9:59 ` Herbert Xu
2009-04-02 14:42 ` Patrick McHardy
2009-04-02 14:45 ` Herbert Xu
2009-04-02 14:57 ` Patrick McHardy
2009-04-02 14:59 ` Herbert Xu
2009-04-02 15:06 ` Patrick McHardy
2009-04-02 15:09 ` Herbert Xu
2009-04-02 15:14 ` Patrick McHardy
2009-04-02 15:30 ` Herbert Xu
2009-04-05 9:59 ` David Miller
2009-04-06 13:21 ` Patrick McHardy
2009-06-10 8:08 ` David Miller
2009-06-10 10:35 ` Patrick McHardy
2009-04-05 9:57 ` David Miller
2009-04-05 9:56 ` David Miller
2009-04-05 9:54 ` David Miller
2009-03-04 11:44 ` Neil Horman
2009-03-05 19:27 ` Neil Horman
2009-03-11 16:17 ` David Miller
2009-03-11 19:51 ` Neil Horman
2009-03-13 19:10 ` David Miller
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=20090402.025223.242893473.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=jmorris@namei.org \
--cc=kaber@trash.net \
--cc=kuznet@ms2.inr.ac.ru \
--cc=netdev@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=pekkas@netcore.fi \
--cc=yoshfuji@linux-ipv6.org \
--cc=zbr@ioremap.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).