Page MenuHomeVyOS Platform

VyOS' FRR is not linked against PCRE2, reducing BGP convergence performance
Open, HighPublic

Description

The FRR builds in, at least, 1.4 are not linked against libpcre2, due to upstream not including that in the supplied debian/rules file (see: https://github.com/FRRouting/frr/issues/17365 )

For a standard 1.4:

% lddtree libfrr.so.0
libfrr.so.0 => ./libfrr.so.0 (interpreter => /lib64/ld-linux-x86-64.so.2)

libcap.so.2 => /usr/lib64/libcap.so.2
libyang.so.2 => not found
libcrypt.so.1 => /usr/lib64/libcrypt.so.1
libm.so.6 => /lib64/libm.so.6
libprotobuf-c.so.1 => not found
liblua5.3.so.0 => not found
libjson-c.so.5 => /usr/lib64/libjson-c.so.5
libc.so.6 => /lib64/libc.so.6
ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2

for a patched build with libpcre2:

% lddtree libfrr.so.0
libfrr.so.0 => ./libfrr.so.0 (interpreter => /lib64/ld-linux-x86-64.so.2)

libcap.so.2 => /usr/lib64/libcap.so.2
libyang.so.2 => not found
libcrypt.so.1 => /usr/lib64/libcrypt.so.1
libm.so.6 => /lib64/libm.so.6
libprotobuf-c.so.1 => not found
libpcre2-posix.so.3 => /usr/lib64/libpcre2-posix.so.3
    libpcre2-8.so.0 => /usr/lib64/libpcre2-8.so.0
liblua5.3.so.0 => not found
libjson-c.so.5 => /usr/lib64/libjson-c.so.5
libc.so.6 => /lib64/libc.so.6
ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2

For a multi-fulltable border router, libpcre2 linking reduces the convergence time by 5-10 minutes.

As such, FRR in VyOS should be built against libpcre2.

Details

Version
-
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Performance optimization