From: Hugo Santos <hsantos@av.it.pt>
To: Jamal Hadi Salim <hadi@cyberus.ca>
Cc: Stephen Hemminger <shemminger@osdl.org>,
David Miller <davem@davemloft.net>,
herbert@gondor.apana.org.au, kazunori@miyazawa.org,
yoshfuji@linux-ipv6.org, netdev@vger.kernel.org,
usagi-core@linux-ipv6.org
Subject: Re: Regarding offloading IPv6 addrconf and ndisc
Date: Sat, 29 Jul 2006 14:34:42 +0100 [thread overview]
Message-ID: <20060729133442.GI8334@innerghost.net> (raw)
In-Reply-To: <1154090737.5165.69.camel@jzny2>
[-- Attachment #1: Type: text/plain, Size: 3201 bytes --]
Hi Jamal,
Through this discussion i've identified three points: one is that
some believe control and data should be kept synchronized; the other is
how some (including all of the first :-) think control should remain
inside the kernel; and finally you and me so far who believe they
should be separated for increased flexibility. If we consider the first
point, i would too have difficulties accepting the second one, taking
the same considerations Stephen mentioned, where an application could
possibly bork the kernel. So, first of all, we need to settle whether
data really needs to be in-sync with control (already assuming the
complexity control is gaining).
Personally i think the answer is clear; the overall throughput
depends on the amount of time spent in a single state. Thus, the data
path should be well contained and depend only on the current state;
while control executes in parallel as it's state transitions are much
longer and might depend on multiple sub-transitions (communicating with
peers, etc).
Deciding whether control should remain inside the kernel or not is
another story; as you point out, people generically don't like to
depend on daemons. I understand this point, and i think a solution that
would keep both parties happy would be to have the current
functionality inside the kernel while at the same time allowing control
daemons to take over and support additional complex features.
I would say that the generic worries such as 'how do we handle out of
memory', or 'what if it crashes' or even 'what if it is overloaded'
apply both to the kernel and to a possible user-space application.
- As this control daemon is important for the proper interaction of
the host with the network, we would reduce it's chances of being
OOM killed (while at the same time implementing algorithms to
prevent DoS by state flooding);
- Regarding the crashes, i think it is better for a system to have an
application rather than a kernel component crash as it might be
seamlessly restarted to recover. I would also say that the complex-
ity of the code is the same (or worst if in the kernel) to support
exactly the same features;
- The overloading problem also applies to the kernel, and would be
something that must be considered by either implementation;
Don't forget that having this functionality in a daemon would also
allow for easier updates (including updates without having to reboot
your machine) besides offering a greater degree of flexibility.
Let me also point out to any IKE daemon, where the SA/SP database is
kept in kernel, but is provided for by the daemon using explicit
requests by the kernel (ACQUIREs). If we consider neighbor discovery
for instance, if configured to do so, and as an example, instead of
sending an IPv6 NS, the kernel could netlink broadcast (or unicast to a
specific controller) the request due to an entry being STALEd and being
required where the daemon would then update the entry to REACHABLE.
I'm sure some of you will continue to disagree, but i would really
like to move this decision to the user (or system deployer).
Hugo
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2006-07-29 13:34 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-27 11:25 Regarding offloading IPv6 addrconf and ndisc Hugo Santos
2006-07-27 12:25 ` Kazunori Miyazawa
2006-07-27 17:56 ` Hugo Santos
2006-07-27 23:56 ` Herbert Xu
2006-07-28 1:34 ` David Miller
2006-07-28 1:45 ` Hugo Santos
2006-07-28 2:27 ` David Miller
2006-07-28 3:13 ` Hugo Santos
2006-07-28 3:20 ` David Miller
2006-07-28 3:31 ` Hugo Santos
2006-07-28 4:07 ` Stephen Hemminger
2006-07-28 8:34 ` Hugo Santos
2006-07-28 12:45 ` Jamal Hadi Salim
2006-07-29 13:34 ` Hugo Santos [this message]
2006-07-30 3:28 ` Kazunori Miyazawa
2006-07-30 11:30 ` Hugo Santos
2006-07-31 21:23 ` David Miller
2006-08-01 11:50 ` Hugo Santos
2006-08-01 21:54 ` David Miller
2006-08-01 0:16 ` Kazunori Miyazawa
2006-07-28 2:22 ` Herbert Xu
2006-07-28 2:33 ` David Miller
2006-08-01 0:31 ` Andi Kleen
2006-08-01 0:46 ` David Miller
2006-08-01 0:49 ` Roland Dreier
2006-08-01 1:24 ` Jamal Hadi Salim
2006-08-01 1:30 ` Herbert Xu
2006-08-01 1:47 ` Jamal Hadi Salim
2006-08-01 12:13 ` Hugo Santos
2006-08-01 12:00 ` Hugo Santos
2006-08-01 21:57 ` David Miller
2006-08-03 13:28 ` Ingo Oeser
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=20060729133442.GI8334@innerghost.net \
--to=hsantos@av.it.pt \
--cc=davem@davemloft.net \
--cc=hadi@cyberus.ca \
--cc=herbert@gondor.apana.org.au \
--cc=kazunori@miyazawa.org \
--cc=netdev@vger.kernel.org \
--cc=shemminger@osdl.org \
--cc=usagi-core@linux-ipv6.org \
--cc=yoshfuji@linux-ipv6.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 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).