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:
parent
4ef0a96639
commit
a948cf9a5c
1 changed files with 9 additions and 0 deletions
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue