From: Igor Putovny Date: Thu, 7 Mar 2024 14:39:54 +0000 (+0100) Subject: Check correct address types during aggregation configuration X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=347b322dd99b192d45c351a44446c186798356c6;p=thirdparty%2Fbird.git Check correct address types during aggregation configuration --- diff --git a/proto/aggregator/config.Y b/proto/aggregator/config.Y index cec24c60f..f37d842c6 100644 --- a/proto/aggregator/config.Y +++ b/proto/aggregator/config.Y @@ -82,7 +82,14 @@ aggregator_proto_item: ; aggregator_proto_opts: /* empty */ | aggregator_proto_opts aggregator_proto_item ';' ; -aggregator_proto: aggregator_proto_start proto_name '{' aggregator_proto_opts '}' ; +aggregator_proto: aggregator_proto_start proto_name '{' aggregator_proto_opts '}' { + if (AGGREGATOR_CFG->src->table->addr_type != AGGREGATOR_CFG->dst->table->addr_type) + cf_error("Both rtables in aggregator must have the same network type"); + + if (AGGREGATOR_CFG->net_present == 0) + if (AGGREGATOR_CFG->src->table->addr_type != NET_IP4 && AGGREGATOR_CFG->src->table->addr_type != NET_IP6) + cf_error("Trie aggregation is available only for IP4 or IPv6 networks"); +}; aggr_list: