Subject: Re: [PATCH] Can not send icmp netunreach packet

From: Jarek Poplawski <[email-masked]>
Date: Tue, 26 Feb 2008 23:44:38 +0100

On Tue, Feb 26, 2008 at 01:30:30PM -0800, David Miller wrote:
> From: Jarek Poplawski <[email-masked]>
> Date: Tue, 26 Feb 2008 07:35:38 +0000
> 
> > On 26-02-2008 07:34, Li Yewang wrote:
> > > Hi All
> > > 
> > >    There is a bug about icmp netunreach.
> > >    If the kernel does not find a route for a packet, 
> > >    it must send a icmp netunreach packet to the source host, 
> > >    and  discard  the packet. But the  kernel  does not send 
> > >    a icmp netunreach packet because of the  fib_lookup
> > >    return value  of -ESRCH when a route  is not found. 
> > 
> > ...or because some function doesn't handle -ESRCH return from
> > fib_lookup? It seems changing this to -ESRCH was needed in some cases.
> > And you don't explain enough why it can't be handled later (like in
> > ipv4/route.c: ip_route_input_slow)?
> 
> This was changed to -ESRCH so that the proper statistics
> would be bumped.  So if we change it back, the statistics
> will be broken again.

Actually, I liked more this sophisticated explanation from the changelog:

http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=commitdiff;h=83886b6b636173b206f475929e58fac75c6f2446

BTW, it's really hard to find any place which could still behave as
described by Li. Wasn't it with some older kernel?

Jarek P.