2015-03-11 22:18 GMT-03:00 Claudio Jeker <[email protected]>:
> On Wed, Mar 11, 2015 at 04:41:05PM -0300, Renato Westphal wrote:
>> Although RFC 5036 is not explicit about this, LDP should not assign
>> labels for BGP routes. Doing that would be very resource consuming in
>> some scenarios and unnecessary. The goal is generally only to establish
>> LSPs among all PEs in the AS since LDP is not used as an end in itself
>> but as a means to implement advanced solutions like MPLS L2/L3 VPNs. Some
>> implementations (e.g. JunOS) go further and only assign labels for /32
>> loopback routes advertised in the IGP.
>>
>> If Inter-AS LSPs are necessary, BGP itself should be used for distributing
>> IPv4 labeled routes (e.g. option C. of section 10 in RFC 4364).
>> ---
>>  kroute.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/kroute.c b/kroute.c
>> index f5772e7..679f66d 100644
>> --- a/kroute.c
>> +++ b/kroute.c
>> @@ -1250,6 +1250,8 @@ rtmsg_process(char *buf, size_t len)
>>                       if (rtm->rtm_flags & RTF_MPATH)
>>                               mpath = 1;
>>                       prio = rtm->rtm_priority;
>> +                     if (prio == RTP_BGP)
>> +                             continue;
>>
>>                       switch (sa->sa_family) {
>>                       case AF_INET:
>> --
>> 1.9.1
>>
>
> A few comments:
> - I would prefer that check to be a bit further up as in above the
>   RTF_MPATH check and so next to all the other continues.
> - Add a comment why we skip RTP_BGP

Ok.

> - Shouldn't this be a more generic kind of filter (since the prio can be
>   changed in bgpd)? Or is this overkill?
> - Would be nice to use something like the ROUTE_MSGFILTER to filter these
>   unwanted messages already in the kernel (esp since bgpd can be a very
>   chatty companion)

I agree with you, filtering by the priority sounds more like a hack
than a real solution. Yes, we could create a new sockopt like
ROUTE_PROTOFILTER to filter the unwanted routes already in the kernel,
but that doesn't address the real issue: how to identify the BGP
routes? In Linux the fib_info structure has a field called
"fib_protocol" (RTPROT_*) which stores the type of the route. AFAIK we
don't have anything like that in OpenBSD.

-- 
Renato Westphal

Reply via email to