diff options
-rw-r--r-- | docker/Dockerfile | 12 | ||||
-rw-r--r-- | packages/frr/Jenkinsfile | 2 | ||||
-rwxr-xr-x | packages/frr/build-frr.sh | 2 | ||||
-rw-r--r-- | packages/frr/patches/0001-bgpd-fix-no-set-as-path-prepend-ASNUM.patch | 70 | ||||
-rw-r--r-- | packages/frr/patches/0002-bgpd-allow-using-optional-table-id-for-negative.patch | 29 |
5 files changed, 101 insertions, 14 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile index de6b147f..1fa9b213 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -222,18 +222,6 @@ RUN apt-get update && apt-get install -y \ build-essential RUN gem install --no-document fpm -# Build rtrlib release 0.8.0 -RUN export RTRLIB_VERSION="0.8.0" export ARCH=$(dpkg-architecture -qDEB_HOST_ARCH) && \ - git clone https://github.com/rtrlib/rtrlib.git /tmp/rtrlib && cd /tmp/rtrlib && \ - mk-build-deps --install --tool "apt-get --yes --no-install-recommends" && \ - dpkg-buildpackage -uc -us -tc -b && \ - dpkg -i ../librtr0*_${ARCH}.deb ../librtr-dev*_${ARCH}.deb ../rtr-tools*_${ARCH}.deb - -RUN export LIBYANG_VERSION="v2.1.128" export ARCH=$(dpkg-architecture -qDEB_HOST_ARCH) && \ - git clone https://github.com/CESNET/libyang.git /tmp/libyang && cd /tmp/libyang && \ - pipx run apkg build -i && find pkg/pkgs -type f -name *.deb -exec mv -t .. {} + && \ - dpkg -i ../libyang*.deb - # Packages needed for vyos-1x RUN pip install --break-system-packages \ git+https://github.com/aristanetworks/j2lint.git@341b5d5db86 \ diff --git a/packages/frr/Jenkinsfile b/packages/frr/Jenkinsfile index 2c309443..441b1681 100644 --- a/packages/frr/Jenkinsfile +++ b/packages/frr/Jenkinsfile @@ -32,7 +32,7 @@ def pkgList = [ ['name': 'frr', 'scmCommit': 'stable/9.1', 'scmUrl': 'https://github.com/FRRouting/frr.git', - 'buildCmd': 'sudo mk-build-deps --install --tool "apt-get --yes --no-install-recommends"; cd ..; ./build-frr.sh'], + 'buildCmd': 'sudo dpkg -i ../*.deb; sudo mk-build-deps --install --tool "apt-get --yes --no-install-recommends"; cd ..; ./build-frr.sh'], ] // Start package build using library function from https://github.com/vyos/vyos-build diff --git a/packages/frr/build-frr.sh b/packages/frr/build-frr.sh index 8be3cb4b..7171a883 100755 --- a/packages/frr/build-frr.sh +++ b/packages/frr/build-frr.sh @@ -31,7 +31,7 @@ fi echo "I: Ensure Debian build dependencies are met" sudo apt-get -y install chrpath gawk install-info libcap-dev libjson-c-dev librtr-dev -sudo apt-get -y install libpam-dev libprotobuf-c-dev libpython3-dev:native libsnmp-dev protobuf-c-compiler python3-dev:native texinfo lua5.3 +sudo apt-get -y install libpam-dev libprotobuf-c-dev libpython3-dev:native python3-sphinx:native libsnmp-dev protobuf-c-compiler python3-dev:native texinfo lua5.3 # Build Debian FRR package echo "I: Build Debian FRR Package" diff --git a/packages/frr/patches/0001-bgpd-fix-no-set-as-path-prepend-ASNUM.patch b/packages/frr/patches/0001-bgpd-fix-no-set-as-path-prepend-ASNUM.patch new file mode 100644 index 00000000..9b87e302 --- /dev/null +++ b/packages/frr/patches/0001-bgpd-fix-no-set-as-path-prepend-ASNUM.patch @@ -0,0 +1,70 @@ +From e069a1c8d52bb6e7808303df488d7ce912e4f652 Mon Sep 17 00:00:00 2001 +From: Donatas Abraitis <donatas@opensourcerouting.org> +Date: Thu, 2 May 2024 23:07:19 +0300 +Subject: [PATCH 1/2] bgpd: Fix `no set as-path prepend ASNUM...` + +If entering `no set as-path prepend 1 2 3`, it's warned as unknown command. + +Now fixed, and the following combinations work fine: + +``` +no set as-path prepend +no set as-path prepend last-as +no set as-path prepend last-as 1 +no set as-path prepend 1 +no set as-path prepend 1 2 +``` + +Fixes: https://github.com/FRRouting/frr/issues/15912 + +Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> +--- + bgpd/bgp_routemap.c | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c +index 4875697aa106..7eb97dae4d24 100644 +--- a/bgpd/bgp_routemap.c ++++ b/bgpd/bgp_routemap.c +@@ -6288,13 +6288,12 @@ DEFPY_YANG( + } + + DEFUN_YANG (no_set_aspath_prepend, +- no_set_aspath_prepend_cmd, +- "no set as-path prepend [ASNUM] [last-as [(1-10)]]", ++ no_set_aspath_prepend_last_as_cmd, ++ "no set as-path prepend [last-as [(1-10)]]", + NO_STR + SET_STR + "Transform BGP AS_PATH attribute\n" + "Prepend to the as-path\n" +- AS_STR + "Use the peers AS-number\n" + "Number of times to insert\n") + { +@@ -6305,6 +6304,15 @@ DEFUN_YANG (no_set_aspath_prepend, + return nb_cli_apply_changes(vty, NULL); + } + ++ALIAS_YANG (no_set_aspath_prepend, ++ no_set_aspath_prepend_as_cmd, ++ "no set as-path prepend ASNUM...", ++ NO_STR ++ SET_STR ++ "Transform BGP AS_PATH attribute\n" ++ "Prepend to the as-path\n" ++ AS_STR) ++ + DEFUN_YANG (set_aspath_exclude, + set_aspath_exclude_cmd, + "set as-path exclude ASNUM...", +@@ -7981,7 +7989,8 @@ void bgp_route_map_init(void) + install_element(RMAP_NODE, &set_aspath_exclude_access_list_cmd); + install_element(RMAP_NODE, &set_aspath_replace_asn_cmd); + install_element(RMAP_NODE, &set_aspath_replace_access_list_cmd); +- install_element(RMAP_NODE, &no_set_aspath_prepend_cmd); ++ install_element(RMAP_NODE, &no_set_aspath_prepend_last_as_cmd); ++ install_element(RMAP_NODE, &no_set_aspath_prepend_as_cmd); + install_element(RMAP_NODE, &no_set_aspath_exclude_cmd); + install_element(RMAP_NODE, &no_set_aspath_exclude_all_cmd); + install_element(RMAP_NODE, &no_set_aspath_exclude_access_list_cmd); diff --git a/packages/frr/patches/0002-bgpd-allow-using-optional-table-id-for-negative.patch b/packages/frr/patches/0002-bgpd-allow-using-optional-table-id-for-negative.patch new file mode 100644 index 00000000..c414490e --- /dev/null +++ b/packages/frr/patches/0002-bgpd-allow-using-optional-table-id-for-negative.patch @@ -0,0 +1,29 @@ +From e411988a86f1b719fb16ec4c30499bfc650b4ea7 Mon Sep 17 00:00:00 2001 +From: Donatas Abraitis <donatas@opensourcerouting.org> +Date: Fri, 3 May 2024 08:58:21 +0300 +Subject: [PATCH 2/2] bgpd: Allow using optional table id for negative `no set + table X` command + +Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org> +--- + bgpd/bgp_routemap.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c +index 7eb97dae4d24..df5c2557bd26 100644 +--- a/bgpd/bgp_routemap.c ++++ b/bgpd/bgp_routemap.c +@@ -5897,10 +5897,11 @@ DEFUN_YANG (set_table_id, + + DEFUN_YANG (no_set_table_id, + no_set_table_id_cmd, +- "no set table", ++ "no set table [(1-4294967295)]", + NO_STR + SET_STR +- "export route to non-main kernel table\n") ++ "export route to non-main kernel table\n" ++ "Kernel routing table id\n") + { + const char *xpath = "./set-action[action='frr-bgp-route-map:table']"; + nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL); |