From: Ville Nuorvala <vnuorval@tcs.hut.fi>
To: David Miller <davem@davemloft.net>
Cc: tgraf@suug.ch, netdev@vger.kernel.org
Subject: Re: [PATCH][IPV6]: Make sure fib6_rule_lookup doesn't return NULL
Date: Wed, 09 Aug 2006 11:36:03 +0300 [thread overview]
Message-ID: <44D99E73.1060305@tcs.hut.fi> (raw)
In-Reply-To: <20060808.233442.41636358.davem@davemloft.net>
David Miller wrote:
> From: Ville Nuorvala <vnuorval@tcs.hut.fi>
> Date: Wed, 09 Aug 2006 09:31:15 +0300
>
>> But the ip6_null_entry not always discarded after a failed route lookup!
>> On a forwarding router it triggers the ICMPv6 Destination Unreachable
>> message to the sender.
>
> Good point, but I remember that in some cases the caller only wants a
> real entry or an error.
That's technically true, but the IPv6 code has largely been built around
the assumption that the route lookup produces a valid pointer to a
rt6_info entry.
Of the three original route lookup functions (ip6_route_input,
ip6_route_output and rt6_lookup), rt6_lookup was the only one that was
allowed to produce a NULL entry. Of these three rt6_lookup was also the
only one not actually being used for routing.
The function that absolutely requires ip6_null_entry is ip6_route_input.
As for ip6_route_output, even if it can return NULL or an error code, we
still need to check for dst->error separately in all the places we call
the function.
There is also one more issue with ip6_null_entry: previously it has
always been the result of an unsuccessful route lookup, now it can also
be the result of a successful application of a FR_ACT_UNREACHABLE policy
rule. From a networking point of view these two cases should IMO be
considered equivalent and should therefore trigger the same response.
This will however not be true if NULL (or an error code) is the result
of an unsuccessful route lookup.
> Perhaps both cases can be accomodated with a SHIM inline for the
> forwarding case that returns &ip6_null_entry when IS_ERR(retval).
If no one else is worried about the FR_ACT_UNREACHABLE inconsistency, I
can of course move the ip6_null_entry fallback code snippet to
ip6_route_input and perhaps ip6_route_output, while letting the NULL
route fall through fib6_rule_lookup and rt6_lookup.
Regards,
Ville
next prev parent reply other threads:[~2006-08-09 8:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-08 22:05 [PATCH][IPV6]: Make sure fib6_rule_lookup doesn't return NULL Ville Nuorvala
2006-08-08 22:16 ` Thomas Graf
2006-08-08 23:43 ` David Miller
2006-08-09 6:31 ` Ville Nuorvala
2006-08-09 6:34 ` David Miller
2006-08-09 8:36 ` Ville Nuorvala [this message]
2006-08-09 9:23 ` Thomas Graf
2006-08-09 9:42 ` Ville Nuorvala
2006-08-09 9:48 ` Thomas Graf
2006-08-09 10:45 ` Ville Nuorvala
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=44D99E73.1060305@tcs.hut.fi \
--to=vnuorval@tcs.hut.fi \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=tgraf@suug.ch \
/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).