summaryrefslogtreecommitdiff
path: root/packages/frr
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frr')
-rw-r--r--packages/frr/Jenkinsfile2
-rwxr-xr-xpackages/frr/build-frr.sh2
-rw-r--r--packages/frr/patches/0001-bgpd-fix-no-set-as-path-prepend-ASNUM.patch70
-rw-r--r--packages/frr/patches/0002-bgpd-allow-using-optional-table-id-for-negative.patch29
4 files changed, 101 insertions, 2 deletions
diff --git a/packages/frr/Jenkinsfile b/packages/frr/Jenkinsfile
index 80cd03f5..9a00240a 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);