netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ville Nuorvala <vnuorval@tcs.hut.fi>
To: Thomas Graf <tgraf@suug.ch>
Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>,
	davem@davemloft.net, kim.nordlund@nokia.com,
	netdev@vger.kernel.org
Subject: Re: [PATCH 13/13] [RFC] [IPV6] Fix source prefix routing problems when source address undefined.
Date: Tue, 17 Oct 2006 23:11:02 +0300	[thread overview]
Message-ID: <453538D6.1000808@tcs.hut.fi> (raw)
In-Reply-To: <20061017113511.GN12964@postel.suug.ch>

On 10/17/06 14:35, Thomas Graf wrote:

Hi Thomas,

> Because otherwise a rule containing only a source prefix match is
> equivalent to a catch-all rule for all lookups not providing a
> source address. An example: Someone adding the rule
> 
> 	ip rule add from 2001::1/128 unreachable
> 
> results in _all_ lookups not providing a source address to
> resolve to unreachable which means that all source address
> lookups will fail.

one quick but ugly hack would be to handle FR_ACT_TO_TBL rules
differently than the others in fib6_rule_match(). I don't necessarily
recommend this approach, but it could work. What do you say?

> The problem starts that both the routing decision and source address
> selection is both a routing decision sharing the same logic which
> are now conflicting as the behaviour for a "from ANY" requires
> different logic. In order to solve this, rules must be restricted to
> one of these paths, i.e. a rule intending to make certain prefixes
> unreachable may not apply to the source selection logic. This can be
> achieved using the 'reason' field I proposed in my netconf slides, it
> would allow turning the first rule example into
> 
> 	rule add from 2001::1/128 for INPUT unreachable
> 
> which would no longer apply when looking up the source address or
> deciding the outgoing route.

Is there any reason we couldn't implement this?

BTW I will not really able to participate in this discussion until
Thursday, but please continue! Hopefully someone has a working solution
that everyone is ok with by then ;-)

I'm currently cooking something up, but I'm not yet sure what will
become of it. It might not work at all. It will also change quite a lot
of things, so there might be less invasive and cleaner solutions. Let's
just say rt6_lookup(), which appears to cause most of these problems,
will not be the same...

Regards,
Ville

      parent reply	other threads:[~2006-10-17 20:11 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-17  0:27 [PATCH 13/13] [RFC] [IPV6] Fix source prefix routing problems when source address undefined Ville Nuorvala
2006-10-17 10:14 ` Thomas Graf
2006-10-17 11:00   ` YOSHIFUJI Hideaki / 吉藤英明
2006-10-17 11:35     ` Thomas Graf
2006-10-17 12:17       ` YOSHIFUJI Hideaki / 吉藤英明
2006-10-17 12:34         ` Thomas Graf
2006-10-17 16:49           ` YOSHIFUJI Hideaki / 吉藤英明
2006-10-17 20:11       ` Ville Nuorvala [this message]

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=453538D6.1000808@tcs.hut.fi \
    --to=vnuorval@tcs.hut.fi \
    --cc=davem@davemloft.net \
    --cc=kim.nordlund@nokia.com \
    --cc=netdev@vger.kernel.org \
    --cc=tgraf@suug.ch \
    --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).