From: Kazuki Yamaguchi Date: Sun, 28 Jun 2020 13:37:01 +0000 (+0200) Subject: Filter: Improve handling of sets in BGP path masks X-Git-Tag: v2.0.8~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a948cf9a5c338518773e6c98e895c829c469f56b;p=thirdparty%2Fbird.git Filter: Improve handling of sets in BGP path masks Compare the content of PM_ASN_SET in path masks. A reconfiguration was not properly triggering a reload of affected protocols when the members of a set in a path mask change. Also, update the printing code to so that it can display sets in a path mask. --- diff --git a/filter/data.c b/filter/data.c index 9547a4c84..7c33d2cb6 100644 --- a/filter/data.c +++ b/filter/data.c @@ -121,6 +121,11 @@ pm_format(const struct f_path_mask *p, buffer *buf) buffer_print(buf, "%u..%u ", p->item[i].from, p->item[i].to); break; + case PM_ASN_SET: + tree_format(p->item[i].set, buf); + buffer_puts(buf, " "); + break; + case PM_ASN_EXPR: ASSERT(0); } @@ -221,6 +226,10 @@ pmi_same(const struct f_path_mask_item *mi1, const struct f_path_mask_item *mi2) if (mi1->to != mi2->to) return 0; break; + case PM_ASN_SET: + if (!same_tree(mi1->set, mi2->set)) + return 0; + break; } return 1;