From: Thomas Heinz <creatix@hipac.org>
To: Laszlo Valko <valko@linux.karinthy.hu>
Cc: Anders Fugmann <afu@fugmann.dhs.org>,
netfilter-devel@lists.netfilter.org
Subject: Re: Comments about IPT_ALIGN
Date: Sun, 26 Jan 2003 19:05:09 +0100 [thread overview]
Message-ID: <3E342355.1030707@hipac.org> (raw)
In-Reply-To: 20030126152227.A6811@linux.karinthy.hu
Laszlo Valko wrote:
> You are right. There's only one question left: what and how to change to
> a) make everything work on all platforms,
> b) introduce as little incompatibilities as possible,
> c) avoid kernel code duplication just to maintain backward compatibility,
> d) avoid doing #if defined(__sparcv9__) || defined(__hppa64__) (or whatever
> it's called) in kernel headers (I guess it would be difficult to get that
> into mainline as far as I know DaveM, and not without grounds),
> e) avoid defining local copies of hack kernel headers and doing something like
> #if sizeof(unsigned long) == 4 && defined (KERNEL_LOOKS_LIKE_SPARC64)
> in userspace (a maintenance nightmare to have several copies of the
> same structure)
> all at the same time.
Apart from breaking some existing targets and matches what about the
following requirements for match/target info structs:
- the struct properties stated in my first posting must hold
(of course unions can also be used :)
- the end of the struct must be marked by:
struct ipt_entry next[0];
or
long next[0]; // I'm not sure about this!
or
padd_t next[0]; // typedef __u32/__u64 padd_t dep. on arch
- pointers or arrays of pointers should be avoided but if they're
really needed (as in limit) a special pointer type should be
used: 32 bit arch: union nf_ptr_t {void *p;
u_int32_t padd;};
64 bit arch: union nf_ptr_t {void *p;
u_int64_t padd;};
Maybe there are better ways to achieve the same
(__attribute__ ((aligned (__alignof__(long)))) might work).
Btw if only one pointer is needed it could be put at the end
before the next member and it should work fine.
Of course this would break some matches/targets but apart from that fact
it should be ok, isn't it? I mean with this solution IPT_ALIGN is no
longer necessary and no #ifdefs need to be used except for padd_t (which
is just an option as there is at least one other way to make it work)
and maybe for nf_ptr_t.
> 2) introduce a new way of passing structures, with new structures, probably
> with new setsockopt/getsockopt numbers, essentially creating an API
> incompatible with the existing one (there are a few other bleeding wounds
> waiting to be solved in the existing interface as I saw).
What do you mean by "other bleeding wounds"? Could you explain a bit
further?
Thomas
next prev parent reply other threads:[~2003-01-26 18:05 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-26 3:57 Comments about IPT_ALIGN Thomas Heinz
2003-01-26 11:01 ` Laszlo Valko
2003-01-26 11:28 ` Anders Fugmann
2003-01-26 13:58 ` Thomas Heinz
2003-01-26 14:26 ` Laszlo Valko
2003-01-26 16:50 ` Thomas Heinz
2003-01-26 19:31 ` Laszlo Valko
2003-01-31 11:51 ` Harald Welte
2003-01-26 14:22 ` Laszlo Valko
2003-01-26 18:05 ` Thomas Heinz [this message]
2003-01-26 19:43 ` Laszlo Valko
2003-01-26 23:09 ` Thomas Heinz
2003-01-27 0:43 ` Laszlo Valko
2003-01-27 10:33 ` Thomas Heinz
2003-01-31 11:57 ` Harald Welte
2003-01-26 19:48 ` Thomas Heinz
2003-01-31 11:55 ` Harald Welte
2003-01-31 23:37 ` Laszlo Valko
2003-01-26 17:06 ` Thomas Heinz
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=3E342355.1030707@hipac.org \
--to=creatix@hipac.org \
--cc=afu@fugmann.dhs.org \
--cc=netfilter-devel@lists.netfilter.org \
--cc=valko@linux.karinthy.hu \
/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.