[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9c375f4b88835bcde92bf3ba8f3434cc@visp.net.lb>
Date: Mon, 16 Apr 2012 19:48:21 +0300
From: Denys Fedoryshchenko <denys@...p.net.lb>
To: Stephen Hemminger <shemminger@...tta.com>
Cc: Stian Skjelstad <stian@...ia.no>, <eric.dumazet@...il.com>,
<stephen.hemminger@...tta.com>, <netdev@...r.kernel.org>
Subject: Re: Netlink, route monitoring, RTM_DELROUTE not issued for ppp peer address. Bug or feature?
On 2012-04-16 18:19, Stephen Hemminger wrote:
> On Mon, 16 Apr 2012 13:37:14 +0300
> Denys Fedoryshchenko <denys@...p.net.lb> wrote:
>
>> After digging the code, i came to conclusion:
>> fib_del_ifaddr, will check if deleted address are exist as prefsrc
>> or
>> interface are shut down, they will do fi->fib_flags |= RTNH_F_DEAD;
>> Then fib_flush -> fib_table_flush -> trie_flush_leaf ->
>> trie_flush_list
>> will delete such routes.
>> But trie_flush_list won't notify over netlink that route are
>> deleted.
>>
>> So the only solution is to fetch first, then keep full routing table
>> in
>> userspace also, and keep tracking if local addresses deleted, and do
>> the
>> same in userspace and check for prefsrc...
>>
>> Maybe it should be fixed? E.g. netlink message sent when any route
>> are
>> deleted, even over the flush
>>
>> On 2012-04-13 16:59, Stian Skjelstad wrote:
>> > I've seen the same issue, and got no response so far to that very
>> > same question. Have you tested this on older kernels? I have
>> worked
>> > around this issue by testing my local copy of routing entries that
>> > use
>> > 'via'. If they are not routable when after the RTM_DELROUTE event,
>> I
>> > autoremove them from my local copy.
>> >
>> > Stian Skjelstad
>> >
>
>
> Looking at Quagga, it knows that deleting interface address
> removes connected routes and silently cleans up.
>
> You have to be really careful here making any changes to not break
> applications that expect existing behavior.
It looks like "correct" behavior should not harm existing programs that
much (just there will be netlink message to delete route that are
already deleted by program, e.g. quagga), but looking to code,
implementing this feature will make significant overhead and in some
cases it can be harmful.
For example if full view BGP interface dropped, it is hundreds of
thousands netlink messages. So seems better i will listen to
address/link changes also and keep routing table in memory.
So better seems to keep as is.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists