From a787a92965fb73f4d9625182238f79cd960b06c2 Mon Sep 17 00:00:00 2001 From: Viktor G Date: Thu, 17 Feb 2022 16:01:52 +0300 Subject: [PATCH] FRR IPv6 ACCEPTFILTER fix. Issue #12815 --- net/pfSense-pkg-frr/Makefile | 2 +- .../files/usr/local/pkg/frr/inc/frr_zebra.inc | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/net/pfSense-pkg-frr/Makefile b/net/pfSense-pkg-frr/Makefile index a85ed88237f2..5effac32b436 100644 --- a/net/pfSense-pkg-frr/Makefile +++ b/net/pfSense-pkg-frr/Makefile @@ -2,7 +2,7 @@ PORTNAME= pfSense-pkg-frr PORTVERSION= 1.1.1 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= net MASTER_SITES= # empty DISTFILES= # empty diff --git a/net/pfSense-pkg-frr/files/usr/local/pkg/frr/inc/frr_zebra.inc b/net/pfSense-pkg-frr/files/usr/local/pkg/frr/inc/frr_zebra.inc index 13791f68cab0..1ef7389d9f68 100644 --- a/net/pfSense-pkg-frr/files/usr/local/pkg/frr/inc/frr_zebra.inc +++ b/net/pfSense-pkg-frr/files/usr/local/pkg/frr/inc/frr_zebra.inc @@ -699,6 +699,8 @@ function frr_zebra_generate_staticroutes() { function frr_zebra_generate_acceptfilters() { global $config, $frr_config_base; $seq = 10; + $seq6 = 10; + $noaccept = ''; /* Check OSPF Interfaces for automatic accept filters */ if (is_array($config['installedpackages']['frrospfdinterfaces']['config'])) { @@ -721,15 +723,21 @@ function frr_zebra_generate_acceptfilters() { if (is_array($config['installedpackages']['frr']['config'][0]['row'])) { foreach ($config['installedpackages']['frr']['config'][0]['row'] as $redistr) { if (isset($redistr['acceptfilter'])) { - $noaccept = $noaccept ?: ""; - $noaccept .= "ip prefix-list ACCEPTFILTER seq {$seq} deny {$redistr['routevalue']}\n"; - $seq += 10; + if (is_subnetv4($redistr['routevalue'])) { + $noaccept .= "ip prefix-list ACCEPTFILTER seq {$seq} deny {$redistr['routevalue']}\n"; + $seq += 10; + } else { + $noaccept .= "ipv6 prefix-list ACCEPTFILTER seq {$seq6} deny {$redistr['routevalue']}\n"; + $seq6 += 10; + } } } } if (!empty($noaccept)) { $noaccept .= "ip prefix-list ACCEPTFILTER seq {$seq} permit any\n"; $noaccept .= "!\n"; + $noaccept .= "ipv6 prefix-list ACCEPTFILTER seq {$seq6} permit any\n"; + $noaccept .= "!\n"; $noaccept .= "route-map ACCEPTFILTER permit 10\n"; $noaccept .= " match ip address prefix-list ACCEPTFILTER\n"; $noaccept .= "!\n";