From: Sergey Popovich <popovich_sergei@mail.ru>
To: netdev@vger.kernel.org
Subject: Re: [PATCH 4/4] ipv4: mark nexthop as dead when it's subnet becomes unreachable
Date: Thu, 23 Jan 2014 17:05:27 +0200 [thread overview]
Message-ID: <2208170.gq1LW14mJ5@tuxracer> (raw)
In-Reply-To: <alpine.LFD.2.11.1401231158510.2682@ja.home.ssi.bg>
В письме от 23 января 2014 12:06:30 пользователь Julian Anastasov написал:
> Hello,
>
> On Tue, 21 Jan 2014, Sergey Popovich wrote:
> > + if (nexthop_nh->nh_dev != dev ||
> > + nexthop_nh->nh_scope == scope ||
> > + (ifa && !inet_ifa_match(nexthop_nh->nh_gw, ifa)))
>
> What if nh_gw is part from another smaller/larger subnet?
> For example, what if we still have 10.0.0.200/8 ? 10.0.10.5 is
> still reachable, i.e. fib_check_nh() would create such NH.
Please correct me if I dont understand something:
1. fib_sync_down_dev() is used when interface is going down
to remove entires with stray nexthops (including multipath routes).
2. It takes as its argument device on which event (DOWN for short) is received
and force argument to force fib info entry deletion (which is true when
fib_sync_down_dev() called from fib_disable_ip() with 2 on UNREGISTER event.
Case, that patch is tries to address happens when we have two
or more addresses on interface, and NH exists in one of such subnet.
With two or more address on iface, fib_disable_ip() is not called on single
address removal, so fib_sync_down_dev() also not called, and we end with
routes with stray nexthop.
There is no problem with single address and NH in its subnet, as
fib_sync_down_dev() called from fib_disable_ip().
When deleting IP address, we have net_device where address deleted
and deleted ifa entry.
Only thing that I miss is RTNH_F_ONLINK NH flag, should be consulted
before marking nexthop as dead. I will fix this in v2.
> IMHO, marking NH by exact nh_gw looks more acceptable because
> the exact GW becomes unreachable. Otherwise, you will need
> fib_lookup() as in fib_check_nh() to check that NH becomes
> unreachable.
Not sure that I fully understand you.
When deleting address and removing its subnet, instead of removing route from
the FIB, resolve new NH with fib_lookup() if possible, as this done in
fib_check_nh(), and leave route with modified NH?
Well, sounds good, but what to do with multipath routes?
Is this correct at all?
Thanks revieving my patches.
>
> Regards
>
> --
> Julian Anastasov <ja@ssi.bg>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
SP5474-RIPE
Sergey Popovich
next prev parent reply other threads:[~2014-01-23 15:08 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-21 11:48 [PATCH 0/4] ipv4: small set of fixes Sergey Popovich
2014-01-21 11:48 ` [PATCH 1/4] ipv4: don't disable interface if last ipv4 address is removed Sergey Popovich
2014-01-23 1:52 ` David Miller
2014-01-21 11:48 ` [PATCH 2/4] ipv4: fib_semantics: increment fib_info_cnt after fib_info allocation Sergey Popovich
2014-01-21 11:48 ` [PATCH 3/4] ipv4: use SNMP macro assuming softirq context in ip_forward() Sergey Popovich
2014-01-23 1:52 ` David Miller
2014-01-21 11:48 ` [PATCH 4/4] ipv4: mark nexthop as dead when it's subnet becomes unreachable Sergey Popovich
2014-01-23 1:53 ` David Miller
2014-01-23 10:06 ` Julian Anastasov
2014-01-23 15:05 ` Sergey Popovich [this message]
2014-01-23 21:58 ` Julian Anastasov
2014-01-24 10:12 ` Sergey Popovich
2014-01-24 10:25 ` [PATCH 4/4 v3] " Sergey Popovich
2014-01-24 21:49 ` Julian Anastasov
2014-01-24 10:15 ` [PATCH 4/4 v3] ipv4: mark nexthop as dead when it's subnet becomes Sergey Popovich
2014-01-24 10:26 ` Sergey Popovich
2014-01-23 1:54 ` [PATCH 0/4] ipv4: small set of fixes 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=2208170.gq1LW14mJ5@tuxracer \
--to=popovich_sergei@mail.ru \
--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