From: David Ahern <dsa@cumulusnetworks.com>
To: Julian Anastasov <ja@ssi.bg>
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH net-next 03/13] net: l3mdev: Allow send on enslaved interface
Date: Thu, 5 May 2016 08:50:15 -0600 [thread overview]
Message-ID: <572B5DA7.1040504@cumulusnetworks.com> (raw)
In-Reply-To: <alpine.LFD.2.11.1605051026380.2118@ja.home.ssi.bg>
On 5/5/16 1:40 AM, Julian Anastasov wrote:
>> diff --git a/net/ipv4/route.c b/net/ipv4/route.c
>> index 8c8c655bb2c4..a1f2830d8110 100644
>> --- a/net/ipv4/route.c
>> +++ b/net/ipv4/route.c
>> @@ -2146,6 +2146,7 @@ struct rtable *__ip_route_output_key_hash(struct net *net, struct flowi4 *fl4,
>> unsigned int flags = 0;
>> struct fib_result res;
>> struct rtable *rth;
>> + int master_idx;
>> int orig_oif;
>> int err = -ENETUNREACH;
>>
>> @@ -2155,6 +2156,9 @@ struct rtable *__ip_route_output_key_hash(struct net *net, struct flowi4 *fl4,
>>
>> orig_oif = fl4->flowi4_oif;
>>
>> + master_idx = l3mdev_master_ifindex_by_index(net, fl4->flowi4_oif);
>> + if (master_idx)
>> + fl4->flowi4_oif = master_idx;
>
> Changing the flowi4_oif at this point can have
> bad effects. I remember for recent commit for __mkroute_output
> where the route caching is disabled if traffic is redirected
> to loopback. I think, such change can affect the route
> caching, for example, now we use nexthop on master_idx to
> cache routes for orig_oif. Such problems with the caching
> in the past always caused lookups to return wrong cached result
> for other users. But this is only my fears, I don't know
> the actual result of this change. May be you are trying to
> change flowi4_oif at one place instead of every caller.
Yes. VRFs require the oif to be the master index so that the FIB rules
direct the lookup to the proper table. Without it we get the wrong result.
next prev parent reply other threads:[~2016-05-05 14:50 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-05 3:33 [PATCH net-next 00/13] net: Various VRF patches David Ahern
2016-05-05 3:33 ` [PATCH net-next 01/13] net: vrf: Create FIB tables on link create David Ahern
2016-05-05 3:33 ` [PATCH net-next 02/13] net: l3mdev: Move get_saddr and rt6_dst David Ahern
2016-05-05 3:33 ` [PATCH net-next 03/13] net: l3mdev: Allow send on enslaved interface David Ahern
2016-05-05 7:40 ` Julian Anastasov
2016-05-05 14:50 ` David Ahern [this message]
2016-05-05 3:33 ` [PATCH net-next 04/13] net: ipv6: tcp reset, icmp need to consider L3 domain David Ahern
2016-05-05 3:33 ` [PATCH net-next 05/13] net: l3mdev: Add hook in ip and ipv6 David Ahern
2016-05-05 3:33 ` [PATCH net-next 06/13] net: original ingress device index in PKTINFO David Ahern
2016-05-05 8:41 ` Julian Anastasov
2016-05-05 15:00 ` David Ahern
2016-05-05 20:00 ` Julian Anastasov
2016-05-05 3:33 ` [PATCH net-next 07/13] net: vrf: ipv4 support for local traffic to local addresses David Ahern
2016-05-05 3:33 ` [PATCH net-next 08/13] net: vrf: ipv6 " David Ahern
2016-05-05 3:33 ` [PATCH net-next 09/13] net: l3mdev: Propagate route lookup flags for IPv6 David Ahern
2016-05-05 3:33 ` [PATCH net-next 10/13] net: vrf: Handle ipv6 multicast and link-local addresses David Ahern
2016-05-05 3:33 ` [PATCH net-next 11/13] net: vrf: rcu protect changes to private data David Ahern
2016-05-05 3:33 ` [PATCH net-next 12/13] net: vrf: Implement get_saddr for IPv6 David Ahern
2016-05-05 3:33 ` [PATCH net-next 13/13] net: ipv6: address selection should only consider devices in L3 domain David Ahern
2016-05-05 3:59 ` [PATCH net-next 00/13] net: Various VRF patches David Miller
2016-05-05 4:13 ` David Ahern
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=572B5DA7.1040504@cumulusnetworks.com \
--to=dsa@cumulusnetworks.com \
--cc=ja@ssi.bg \
--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 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).