BIRD 3.0alpha2

Marek Zarychta zarychtam at plan-b.pwste.edu.pl
Fri May 12 20:44:03 CEST 2023


W dniu 12.05.2023 o 18:37, Ondrej Filip pisze:
> Dear BIRD Users,
> we are releasing another alpha version of BIRD 3. We've found some 
> annoying bugs and fixed some usability issues as well as several 
> issues with BIRD crashing. We also added a simple work balancing 
> algorithm between threads. MRT is still switched off, BMP is not 
> merged; they will get into some future alpha version.
>
> Measured performance in BGP is approx. 6-10x better (with 20 threads) 
> than version 2.13, depending on the actual configuration. Kernel 
> synchronization is slow with a large number of routes; we will look 
> into it soon.
>
> If you have some time for trying this version out, we would love to 
> hear your feedback.
>
> I thank my colleagues and namely Maria for this release!
>
> Cheers
>     Ondrej

Thank you for giving us the opportunity to test. So far I spotted only 
few flaws:

1. Routes with unknown attributes which are abusively 
extending/violating BGP protocol are still rejected.

rtr bird[98404]: bgp_r_v4: Malformed bgp_unknown_0xff attribute - 
conflicting flags (e0, expected 80)

rtr bird[98404]: bgp_v_v4: Malformed bgp_unknown_0x24 attribute - 
conflicting flags (e0, expected 80)

BIRD 2.13 accepts these routes and shows attributes this way:

BGP.ff [t]: 00 00 07 db 00 00 00 01 00 01 00 0a ff 08 00 00 00 00 ea 44 
42 79

BGP.24 [t]: 01 00 00 11 5c 00 01 46

2. MTR protocol won't compile with clang.

CC -o obj/proto/mrt/mrt.o -c proto/mrt/mrt.c

proto/mrt/mrt.c:364:3: error: expected expression
   WALK_LIST(P, proto_list)
   ^
./lib/lists.h:52:33: note: expanded from macro 'WALK_LIST'
#define WALK_LIST(n,list) for(n=HEAD(list); NODE_VALID(n); n=NODE_NEXT(n))
                                 ^
./lib/lists.h:48:36: note: expanded from macro 'HEAD'
#define HEAD(list) ((void *)((list).head))
                                    ^
proto/mrt/mrt.c:558:43: error: too few arguments to function call, 
expected 3, have 2
   pool *pool = rp_new(pp, "MRT Table Dump");
                ~~~~~~                     ^
./lib/resource.h:72:7: note: 'rp_new' declared here
pool *rp_new(pool *, struct domain_generic *, const char *);            
/* Create a new pool */
       ^
2 errors generated.
gmake[2]: *** [Makefile:113: obj/proto/mrt/mrt.o] Error 1

3. OSPFv3 regression or verbosity increased:

v6_ospf: Bad DBDES packet from nbr 172.xx.y.254 on vlan2 - too late for 
DD exchange (7)


Memory footprint with Netlink on FreeBSD is almost similar to known from 
BIRD 2.13, maybe only 5-10% higher, memory leak known from alpha 1 was 
fixed.

Cheers

-- 

Marek Zarychta



More information about the Bird-users mailing list