Commit a948cf9a authored by Kazuki Yamaguchi's avatar Kazuki Yamaguchi Committed by Ondrej Zajicek (work)
Browse files

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.
parent 4ef0a966
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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;