netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 --]

  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).