0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-09 20:58:44 +00:00

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.
This commit is contained in:
Kazuki Yamaguchi 2020-06-28 15:37:01 +02:00 committed by Ondrej Zajicek (work)
parent 4ef0a96639
commit a948cf9a5c

View File

@ -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); buffer_print(buf, "%u..%u ", p->item[i].from, p->item[i].to);
break; break;
case PM_ASN_SET:
tree_format(p->item[i].set, buf);
buffer_puts(buf, " ");
break;
case PM_ASN_EXPR: case PM_ASN_EXPR:
ASSERT(0); 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) if (mi1->to != mi2->to)
return 0; return 0;
break; break;
case PM_ASN_SET:
if (!same_tree(mi1->set, mi2->set))
return 0;
break;
} }
return 1; return 1;