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

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)?

Regards,
Jarek P.

> 
> Signed-off-by: Li Yewang <[email-masked]>
> 
> diff -Nurp net/core_back/fib_rules.c net/core/fib_rules.c
> --- net/core_back/fib_rules.c   2008-02-25 13:15:37.000000000 +0800
> +++ net/core/fib_rules.c        2008-02-25 13:16:01.000000000 +0800
> @@ -188,7 +188,7 @@ jumped:
>  		}
>  	}
>  
> -	err = -ESRCH;
> +	err = -ENETUNREACH;
>  out:
>  	rcu_read_unlock();
>