Subject: Re: [PATCH net-next] ipv6: export IP6_RT_PRIO_* to userland

From: Nicolas Dichtel <[email-masked]>
Date: Mon, 05 Nov 2012 20:24:42 +0100

Le 05/11/2012 18:43, David Miller a écrit :
> From: Nicolas Dichtel <[email-masked]>
> Date: Mon, 05 Nov 2012 18:22:39 +0100
>
>> Le 05/11/2012 18:00, David Miller a écrit :
>>> From: Nicolas Dichtel <[email-masked]>
>>> Date: Mon,  5 Nov 2012 16:28:18 +0100
>>>
>>>> The kernel uses some default metric when routes are managed. For
>>>> example, a
>>>> static route added with a metric set to 0 is inserted in the kernel
>>>> with
>>>> metric 1024 (IP6_RT_PRIO_USER).
>>>> It is useful for routing daemons to know these values, to be able to
>>>> set routes
>>>> without interfering with what the kernel does.
>>>>
>>>> Signed-off-by: Nicolas Dichtel <[email-masked]>
>>>
>>> But these belong in the libc headers anyways.
>>>
>>> If we haven't provided them for so long, there's no real value of
>>> adding them now.
>>>
>> But how can a daemon know which default values are used? If it wants
>> to add a route with metric = default + x, it should first add it with
>> metric = 0, check the result and then change the metric.
>
> What do we do on the ipv4 side and how do daemons cope in that situation?
>
In IPv4, there is no such default metric. If you add a route with metric X, it 
remains X in the kernel, even if it's 0.