From 347b322dd99b192d45c351a44446c186798356c6 Mon Sep 17 00:00:00 2001 From: Igor Putovny Date: Thu, 7 Mar 2024 15:39:54 +0100 Subject: [PATCH] Check correct address types during aggregation configuration --- proto/aggregator/config.Y | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/proto/aggregator/config.Y b/proto/aggregator/config.Y index cec24c60..f37d842c 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: