public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
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;

  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$(echo .)com \
    --cc=aschultz@tpip$(echo .)net \
    --cc=netdev@vger$(echo .)kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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