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

From: Nicolas Dichtel <[email-masked]>
Date: Fri, 09 Nov 2012 10:43:34 +0100

Le 05/11/2012 20:24, Nicolas Dichtel a écrit :
> 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.
So we need to duplicate these values in the daemon?