From: David Ahern <dsa@cumulusnetworks.com>
To: Andreas Schultz <aschultz@tpip.net>, netdev@vger.kernel.org
Subject: Re: [net-next]: unable to add routes to tables
Date: Tue, 18 Aug 2015 11:26:15 -0600 [thread overview]
Message-ID: <55D36AB7.3040005@cumulusnetworks.com> (raw)
In-Reply-To: <1029376325.2912846.1439917035503.JavaMail.zimbra@tpip.net>
[-- Attachment #1: Type: text/plain, Size: 855 bytes --]
On 8/18/15 10:57 AM, Andreas Schultz wrote:
> Hi,
>
> It seems that the policy for adding routes to tables has changed between
> Linux 4.2-rc6 and net-next.
>
> In Linux main line (tested up to 4.2-rc6), with this main routing table:
> # ip route show table main
> ...
> 172.28.0.0/24 dev vnf-xe1p0 proto kernel scope link src 172.28.0.16
>
> and an empty table 100, this works:
>
> # ip route add 10.0.0.0/8 via 172.28.0.32 table 100 dev vnf-xe1p0
>
> With net-next at commit d52736e24fe2e927c26817256f8d1a3c8b5d51a0, the
> same command leads to an:
>
> # ip route add 10.0.0.0/8 via 172.28.0.32 table 100 dev vnf-xe1p0
> RTNETLINK answers: Resource temporarily unavailable
>
> Is this expected behavior?
>
The attached works for me and so does my original problem. Can you
confirm it resolves your problem? If so I'll send a formal patch.
David
[-- Attachment #2: fix-nexthop-lookup.path --]
[-- Type: text/plain, Size: 721 bytes --]
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index c8025851dac7..01a237278dd2 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -710,9 +710,16 @@ static int fib_check_nh(struct fib_config *cfg, struct fib_info *fi,
err = fib_table_lookup(tbl, &fl4, &res,
FIB_LOOKUP_IGNORE_LINKSTATE |
FIB_LOOKUP_NOREF);
- else
+
+ /* on error or if no table given do full lookup. This is
+ * needed for example when nexthops are in the local table
+ * rather than the given table
+ */
+ if (!tbl || err) {
err = fib_lookup(net, &fl4, &res,
FIB_LOOKUP_IGNORE_LINKSTATE);
+ }
+
if (err) {
rcu_read_unlock();
return err;
next prev parent reply other threads:[~2015-08-18 17:26 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-18 16:57 [net-next]: unable to add routes to tables Andreas Schultz
2015-08-18 17:05 ` David Ahern
2015-08-18 17:26 ` David Ahern [this message]
2015-08-19 10:38 ` Andreas Schultz
2015-08-19 18:40 ` [PATCH] net: Fix nexthop lookups David Ahern
2015-08-20 21:43 ` David Miller
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=55D36AB7.3040005@cumulusnetworks.com \
--to=dsa@cumulusnetworks.com \
--cc=aschultz@tpip.net \
--cc=netdev@vger.kernel.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 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.