diff mbox series

[v2,1/1] package/bird: import bugfixes from upstream

Message ID 20191003132620.25740-1-adrien@gallouet.fr
State Superseded
Headers show
Series [v2,1/1] package/bird: import bugfixes from upstream | expand

Commit Message

Adrien Gallouët Oct. 3, 2019, 1:26 p.m. UTC
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
---
 ...tup-with-multiple-dynamic-BGP-ranges.patch | 34 ++++++++++++++++++
 ...tion-body-comparison-result-now-used.patch | 34 ++++++++++++++++++
 ...ix-help-for-graceful-restart-command.patch | 31 ++++++++++++++++
 .../bird/0004-Filter-Fix-eval-command.patch   | 26 ++++++++++++++
 .../0005-Nest-Fix-bug-in-export-table.patch   | 32 +++++++++++++++++
 ...BFD-Fix-reconfiguration-of-neighbors.patch | 35 +++++++++++++++++++
 6 files changed, 192 insertions(+)
 create mode 100644 package/bird/0001-BGP-Fix-setup-with-multiple-dynamic-BGP-ranges.patch
 create mode 100644 package/bird/0002-Filters-Function-body-comparison-result-now-used.patch
 create mode 100644 package/bird/0003-Nest-Fix-help-for-graceful-restart-command.patch
 create mode 100644 package/bird/0004-Filter-Fix-eval-command.patch
 create mode 100644 package/bird/0005-Nest-Fix-bug-in-export-table.patch
 create mode 100644 package/bird/0006-BFD-Fix-reconfiguration-of-neighbors.patch

Comments

Adrien Gallouët Oct. 12, 2019, 10:06 a.m. UTC | #1
Hi,

On Thu, Oct 3, 2019 at 3:26 PM Adrien Gallouët <adrien@gallouet.fr> wrote:
>
> Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
> ---
>  ...tup-with-multiple-dynamic-BGP-ranges.patch | 34 ++++++++++++++++++
>  ...tion-body-comparison-result-now-used.patch | 34 ++++++++++++++++++
>  ...ix-help-for-graceful-restart-command.patch | 31 ++++++++++++++++
>  .../bird/0004-Filter-Fix-eval-command.patch   | 26 ++++++++++++++
>  .../0005-Nest-Fix-bug-in-export-table.patch   | 32 +++++++++++++++++
>  ...BFD-Fix-reconfiguration-of-neighbors.patch | 35 +++++++++++++++++++
>  6 files changed, 192 insertions(+)
>  create mode 100644 package/bird/0001-BGP-Fix-setup-with-multiple-dynamic-BGP-ranges.patch
>  create mode 100644 package/bird/0002-Filters-Function-body-comparison-result-now-used.patch
>  create mode 100644 package/bird/0003-Nest-Fix-help-for-graceful-restart-command.patch
>  create mode 100644 package/bird/0004-Filter-Fix-eval-command.patch
>  create mode 100644 package/bird/0005-Nest-Fix-bug-in-export-table.patch
>  create mode 100644 package/bird/0006-BFD-Fix-reconfiguration-of-neighbors.patch
>
> diff --git a/package/bird/0001-BGP-Fix-setup-with-multiple-dynamic-BGP-ranges.patch b/package/bird/0001-BGP-Fix-setup-with-multiple-dynamic-BGP-ranges.patch
> new file mode 100644
> index 0000000000..cbb32a4db3
> --- /dev/null
> +++ b/package/bird/0001-BGP-Fix-setup-with-multiple-dynamic-BGP-ranges.patch
> @@ -0,0 +1,34 @@
> +From eb1e43a9af9e1905b754f1f191d228e2676ce181 Mon Sep 17 00:00:00 2001
> +From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
> +Date: Tue, 17 Sep 2019 14:45:14 +0200
> +Subject: [PATCH] BGP: Fix setup with multiple dynamic BGP ranges
> +
> +Based on a patch from Liam Nattrass, thanks.
> +
> +Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
> +---
> + proto/bgp/bgp.c | 8 ++++++++
> + 1 file changed, 8 insertions(+)
> +
> +diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c
> +index b26e5e87..d6c2b7e4 100644
> +--- a/proto/bgp/bgp.c
> ++++ b/proto/bgp/bgp.c
> +@@ -1551,6 +1551,14 @@ bgp_start(struct proto *P)
> +   lock->type = OBJLOCK_TCP;
> +   lock->hook = bgp_start_locked;
> +   lock->data = p;
> ++
> ++  /* For dynamic BGP, we use inst 1 to avoid collisions with regular BGP */
> ++  if (bgp_is_dynamic(p))
> ++  {
> ++    lock->addr = net_prefix(p->cf->remote_range);
> ++    lock->inst = 1;
> ++  }
> ++
> +   olock_acquire(lock);
> +
> +   return PS_START;
> +--
> +2.21.0
> +
> diff --git a/package/bird/0002-Filters-Function-body-comparison-result-now-used.patch b/package/bird/0002-Filters-Function-body-comparison-result-now-used.patch
> new file mode 100644
> index 0000000000..e308dda591
> --- /dev/null
> +++ b/package/bird/0002-Filters-Function-body-comparison-result-now-used.patch
> @@ -0,0 +1,34 @@
> +From 3f477ccb03ed99cf6754baaca179fcf791bcda55 Mon Sep 17 00:00:00 2001
> +From: Maria Matejka <mq@ucw.cz>
> +Date: Fri, 20 Sep 2019 10:16:51 +0200
> +Subject: [PATCH] Filters: Function body comparison result now used.
> +
> +Function bodies were compared in post-parse time, yet the result was not
> +used and the functions were incorrectly considered the same as before.
> +
> +Now the result is used to reload affected protocols.
> +
> +Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
> +---
> + filter/f-inst.c | 5 +++++
> + 1 file changed, 5 insertions(+)
> +
> +diff --git a/filter/f-inst.c b/filter/f-inst.c
> +index 49ae993a..385d18d0 100644
> +--- a/filter/f-inst.c
> ++++ b/filter/f-inst.c
> +@@ -897,6 +897,11 @@
> +     NEVER_CONSTANT;
> +     SYMBOL;
> +
> ++    FID_SAME_BODY()
> ++      if (!(f2->sym->flags & SYM_FLAG_SAME))
> ++      return 0;
> ++    FID_INTERPRET_BODY()
> ++
> +     /* Push the body on stack */
> +     LINEX(sym->function);
> +     curline.emask |= FE_RETURN;
> +--
> +2.21.0
> +
> diff --git a/package/bird/0003-Nest-Fix-help-for-graceful-restart-command.patch b/package/bird/0003-Nest-Fix-help-for-graceful-restart-command.patch
> new file mode 100644
> index 0000000000..7727783f4f
> --- /dev/null
> +++ b/package/bird/0003-Nest-Fix-help-for-graceful-restart-command.patch
> @@ -0,0 +1,31 @@
> +From 9c79022153c6ef3a6c35b2db8be6b259104e67f3 Mon Sep 17 00:00:00 2001
> +From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
> +Date: Sun, 22 Sep 2019 23:32:22 +0200
> +Subject: [PATCH] Nest: Fix help for 'graceful restart' command
> +
> +Multi-worded commands are not automatically added to top-level
> +help output.
> +
> +Thanks to Christoph for the bugreport.
> +
> +Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
> +---
> + sysdep/unix/config.Y | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/sysdep/unix/config.Y b/sysdep/unix/config.Y
> +index c76eb73b..af82e5bd 100644
> +--- a/sysdep/unix/config.Y
> ++++ b/sysdep/unix/config.Y
> +@@ -134,6 +134,8 @@ CF_CLI(CONFIGURE CHECK, cfg_name, [\"<file>\"], [[Parse configuration and check
> + CF_CLI(DOWN,,, [[Shut the daemon down]])
> + { cmd_shutdown(); } ;
> +
> ++CF_CLI_HELP(GRACEFUL, restart, [[Shut the daemon down for graceful restart]])
> ++
> + CF_CLI(GRACEFUL RESTART,,, [[Shut the daemon down for graceful restart]])
> + { cmd_graceful_restart(); } ;
> +
> +--
> +2.21.0
> +
> diff --git a/package/bird/0004-Filter-Fix-eval-command.patch b/package/bird/0004-Filter-Fix-eval-command.patch
> new file mode 100644
> index 0000000000..c9871b6cbf
> --- /dev/null
> +++ b/package/bird/0004-Filter-Fix-eval-command.patch
> @@ -0,0 +1,26 @@
> +From ea0917bcba86d354f9c8516a4f114c38d04f890b Mon Sep 17 00:00:00 2001
> +From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
> +Date: Tue, 24 Sep 2019 00:18:48 +0200
> +Subject: [PATCH] Filter: Fix eval command
> +
> +Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
> +---
> + filter/filter.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/filter/filter.c b/filter/filter.c
> +index 35bd75e6..60e351f9 100644
> +--- a/filter/filter.c
> ++++ b/filter/filter.c
> +@@ -407,7 +407,7 @@ f_eval_buf(const struct f_line *expr, struct linpool *tmp_pool, buffer *buf)
> + {
> +   struct f_val val;
> +   enum filter_return fret = f_eval(expr, tmp_pool, &val);
> +-  if (fret > F_RETURN)
> ++  if (fret <= F_RETURN)
> +     val_format(&val, buf);
> +   return fret;
> + }
> +--
> +2.21.0
> +
> diff --git a/package/bird/0005-Nest-Fix-bug-in-export-table.patch b/package/bird/0005-Nest-Fix-bug-in-export-table.patch
> new file mode 100644
> index 0000000000..91fb3c08c7
> --- /dev/null
> +++ b/package/bird/0005-Nest-Fix-bug-in-export-table.patch
> @@ -0,0 +1,32 @@
> +From ca2dacfcee92d8cfecff74dd020c2d16202b0d5c Mon Sep 17 00:00:00 2001
> +From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
> +Date: Tue, 24 Sep 2019 17:12:15 +0200
> +Subject: [PATCH] Nest: Fix bug in export table
> +
> +Exported route may be in modified state, we need to get cached one for
> +rte_same() and rta_clone() to work properly.
> +
> +Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
> +---
> + nest/rt-table.c | 5 +++++
> + 1 file changed, 5 insertions(+)
> +
> +diff --git a/nest/rt-table.c b/nest/rt-table.c
> +index 318ec2ee..c3ec0314 100644
> +--- a/nest/rt-table.c
> ++++ b/nest/rt-table.c
> +@@ -2705,6 +2705,11 @@ rte_update_out(struct channel *c, const net_addr *n, rte *new, rte *old0, int re
> +   {
> +     net = net_get(tab, n);
> +     src = new->attrs->src;
> ++
> ++    rte_store_tmp_attrs(new, rte_update_pool, NULL);
> ++
> ++    if (!rta_is_cached(new->attrs))
> ++      new->attrs = rta_lookup(new->attrs);
> +   }
> +   else
> +   {
> +--
> +2.21.0
> +
> diff --git a/package/bird/0006-BFD-Fix-reconfiguration-of-neighbors.patch b/package/bird/0006-BFD-Fix-reconfiguration-of-neighbors.patch
> new file mode 100644
> index 0000000000..6e3a1debd8
> --- /dev/null
> +++ b/package/bird/0006-BFD-Fix-reconfiguration-of-neighbors.patch
> @@ -0,0 +1,35 @@
> +From 4821251ebb13c05e8752f6f54b8e5ad6d87fecaa Mon Sep 17 00:00:00 2001
> +From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
> +Date: Mon, 30 Sep 2019 19:10:14 +0200
> +Subject: [PATCH] BFD: Fix reconfiguration of neighbors
> +
> +The bfd_reconfigure_neighbors() returned after first reconfigured
> +neighbor instead of continuing with the next one.
> +
> +Thanks to Winston Chen for the bugreport and a patch.
> +
> +Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
> +---
> + proto/bfd/bfd.c | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/proto/bfd/bfd.c b/proto/bfd/bfd.c
> +index f774e67b..a3e6d01c 100644
> +--- a/proto/bfd/bfd.c
> ++++ b/proto/bfd/bfd.c
> +@@ -837,10 +837,11 @@ bfd_reconfigure_neighbors(struct bfd_proto *p, struct bfd_config *new)
> +
> +       nn->req = on->req;
> +       nn->active = 1;
> +-      return;
> ++      goto next;
> +       }
> +
> +     bfd_stop_neighbor(p, on);
> ++  next:;
> +   }
> +
> +   WALK_LIST(nn, new->neigh_list)
> +--
> +2.21.0
> +
> --
> 2.19.1
>

I superseded this patch as 2.0.7 is coming very soon.

Regards,
Adrien
diff mbox series

Patch

diff --git a/package/bird/0001-BGP-Fix-setup-with-multiple-dynamic-BGP-ranges.patch b/package/bird/0001-BGP-Fix-setup-with-multiple-dynamic-BGP-ranges.patch
new file mode 100644
index 0000000000..cbb32a4db3
--- /dev/null
+++ b/package/bird/0001-BGP-Fix-setup-with-multiple-dynamic-BGP-ranges.patch
@@ -0,0 +1,34 @@ 
+From eb1e43a9af9e1905b754f1f191d228e2676ce181 Mon Sep 17 00:00:00 2001
+From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
+Date: Tue, 17 Sep 2019 14:45:14 +0200
+Subject: [PATCH] BGP: Fix setup with multiple dynamic BGP ranges
+
+Based on a patch from Liam Nattrass, thanks.
+
+Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
+---
+ proto/bgp/bgp.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c
+index b26e5e87..d6c2b7e4 100644
+--- a/proto/bgp/bgp.c
++++ b/proto/bgp/bgp.c
+@@ -1551,6 +1551,14 @@ bgp_start(struct proto *P)
+   lock->type = OBJLOCK_TCP;
+   lock->hook = bgp_start_locked;
+   lock->data = p;
++
++  /* For dynamic BGP, we use inst 1 to avoid collisions with regular BGP */
++  if (bgp_is_dynamic(p))
++  {
++    lock->addr = net_prefix(p->cf->remote_range);
++    lock->inst = 1;
++  }
++
+   olock_acquire(lock);
+ 
+   return PS_START;
+-- 
+2.21.0
+
diff --git a/package/bird/0002-Filters-Function-body-comparison-result-now-used.patch b/package/bird/0002-Filters-Function-body-comparison-result-now-used.patch
new file mode 100644
index 0000000000..e308dda591
--- /dev/null
+++ b/package/bird/0002-Filters-Function-body-comparison-result-now-used.patch
@@ -0,0 +1,34 @@ 
+From 3f477ccb03ed99cf6754baaca179fcf791bcda55 Mon Sep 17 00:00:00 2001
+From: Maria Matejka <mq@ucw.cz>
+Date: Fri, 20 Sep 2019 10:16:51 +0200
+Subject: [PATCH] Filters: Function body comparison result now used.
+
+Function bodies were compared in post-parse time, yet the result was not
+used and the functions were incorrectly considered the same as before.
+
+Now the result is used to reload affected protocols.
+
+Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
+---
+ filter/f-inst.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/filter/f-inst.c b/filter/f-inst.c
+index 49ae993a..385d18d0 100644
+--- a/filter/f-inst.c
++++ b/filter/f-inst.c
+@@ -897,6 +897,11 @@
+     NEVER_CONSTANT;
+     SYMBOL;
+ 
++    FID_SAME_BODY()
++      if (!(f2->sym->flags & SYM_FLAG_SAME))
++	return 0;
++    FID_INTERPRET_BODY()
++
+     /* Push the body on stack */
+     LINEX(sym->function);
+     curline.emask |= FE_RETURN;
+-- 
+2.21.0
+
diff --git a/package/bird/0003-Nest-Fix-help-for-graceful-restart-command.patch b/package/bird/0003-Nest-Fix-help-for-graceful-restart-command.patch
new file mode 100644
index 0000000000..7727783f4f
--- /dev/null
+++ b/package/bird/0003-Nest-Fix-help-for-graceful-restart-command.patch
@@ -0,0 +1,31 @@ 
+From 9c79022153c6ef3a6c35b2db8be6b259104e67f3 Mon Sep 17 00:00:00 2001
+From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
+Date: Sun, 22 Sep 2019 23:32:22 +0200
+Subject: [PATCH] Nest: Fix help for 'graceful restart' command
+
+Multi-worded commands are not automatically added to top-level
+help output.
+
+Thanks to Christoph for the bugreport.
+
+Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
+---
+ sysdep/unix/config.Y | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sysdep/unix/config.Y b/sysdep/unix/config.Y
+index c76eb73b..af82e5bd 100644
+--- a/sysdep/unix/config.Y
++++ b/sysdep/unix/config.Y
+@@ -134,6 +134,8 @@ CF_CLI(CONFIGURE CHECK, cfg_name, [\"<file>\"], [[Parse configuration and check
+ CF_CLI(DOWN,,, [[Shut the daemon down]])
+ { cmd_shutdown(); } ;
+ 
++CF_CLI_HELP(GRACEFUL, restart, [[Shut the daemon down for graceful restart]])
++
+ CF_CLI(GRACEFUL RESTART,,, [[Shut the daemon down for graceful restart]])
+ { cmd_graceful_restart(); } ;
+ 
+-- 
+2.21.0
+
diff --git a/package/bird/0004-Filter-Fix-eval-command.patch b/package/bird/0004-Filter-Fix-eval-command.patch
new file mode 100644
index 0000000000..c9871b6cbf
--- /dev/null
+++ b/package/bird/0004-Filter-Fix-eval-command.patch
@@ -0,0 +1,26 @@ 
+From ea0917bcba86d354f9c8516a4f114c38d04f890b Mon Sep 17 00:00:00 2001
+From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
+Date: Tue, 24 Sep 2019 00:18:48 +0200
+Subject: [PATCH] Filter: Fix eval command
+
+Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
+---
+ filter/filter.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/filter/filter.c b/filter/filter.c
+index 35bd75e6..60e351f9 100644
+--- a/filter/filter.c
++++ b/filter/filter.c
+@@ -407,7 +407,7 @@ f_eval_buf(const struct f_line *expr, struct linpool *tmp_pool, buffer *buf)
+ {
+   struct f_val val;
+   enum filter_return fret = f_eval(expr, tmp_pool, &val);
+-  if (fret > F_RETURN)
++  if (fret <= F_RETURN)
+     val_format(&val, buf);
+   return fret;
+ }
+-- 
+2.21.0
+
diff --git a/package/bird/0005-Nest-Fix-bug-in-export-table.patch b/package/bird/0005-Nest-Fix-bug-in-export-table.patch
new file mode 100644
index 0000000000..91fb3c08c7
--- /dev/null
+++ b/package/bird/0005-Nest-Fix-bug-in-export-table.patch
@@ -0,0 +1,32 @@ 
+From ca2dacfcee92d8cfecff74dd020c2d16202b0d5c Mon Sep 17 00:00:00 2001
+From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
+Date: Tue, 24 Sep 2019 17:12:15 +0200
+Subject: [PATCH] Nest: Fix bug in export table
+
+Exported route may be in modified state, we need to get cached one for
+rte_same() and rta_clone() to work properly.
+
+Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
+---
+ nest/rt-table.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/nest/rt-table.c b/nest/rt-table.c
+index 318ec2ee..c3ec0314 100644
+--- a/nest/rt-table.c
++++ b/nest/rt-table.c
+@@ -2705,6 +2705,11 @@ rte_update_out(struct channel *c, const net_addr *n, rte *new, rte *old0, int re
+   {
+     net = net_get(tab, n);
+     src = new->attrs->src;
++
++    rte_store_tmp_attrs(new, rte_update_pool, NULL);
++
++    if (!rta_is_cached(new->attrs))
++      new->attrs = rta_lookup(new->attrs);
+   }
+   else
+   {
+-- 
+2.21.0
+
diff --git a/package/bird/0006-BFD-Fix-reconfiguration-of-neighbors.patch b/package/bird/0006-BFD-Fix-reconfiguration-of-neighbors.patch
new file mode 100644
index 0000000000..6e3a1debd8
--- /dev/null
+++ b/package/bird/0006-BFD-Fix-reconfiguration-of-neighbors.patch
@@ -0,0 +1,35 @@ 
+From 4821251ebb13c05e8752f6f54b8e5ad6d87fecaa Mon Sep 17 00:00:00 2001
+From: "Ondrej Zajicek (work)" <santiago@crfreenet.org>
+Date: Mon, 30 Sep 2019 19:10:14 +0200
+Subject: [PATCH] BFD: Fix reconfiguration of neighbors
+
+The bfd_reconfigure_neighbors() returned after first reconfigured
+neighbor instead of continuing with the next one.
+
+Thanks to Winston Chen for the bugreport and a patch.
+
+Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
+---
+ proto/bfd/bfd.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/proto/bfd/bfd.c b/proto/bfd/bfd.c
+index f774e67b..a3e6d01c 100644
+--- a/proto/bfd/bfd.c
++++ b/proto/bfd/bfd.c
+@@ -837,10 +837,11 @@ bfd_reconfigure_neighbors(struct bfd_proto *p, struct bfd_config *new)
+ 
+ 	nn->req = on->req;
+ 	nn->active = 1;
+-	return;
++	goto next;
+       }
+ 
+     bfd_stop_neighbor(p, on);
++  next:;
+   }
+ 
+   WALK_LIST(nn, new->neigh_list)
+-- 
+2.21.0
+