From d06cf1bbf6199fde020f77b829a8f4f2689c65e3 Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 14 Dec 2018 17:13:39 +0100 Subject: [PATCH] net/frr: Route-Map match Prefix-List (#1002) --- .../OPNsense/Quagga/Api/BgpController.php | 2 +- .../Quagga/forms/dialogEditBGPRouteMaps.xml | 12 ++++++++++-- .../mvc/app/models/OPNsense/Quagga/BGP.xml | 14 +++++++++++++- .../mvc/app/views/OPNsense/Quagga/bgp.volt | 1 + .../service/templates/OPNsense/Quagga/bgpd.conf | 11 +++++++++++ 5 files changed, 36 insertions(+), 4 deletions(-) diff --git a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/BgpController.php b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/BgpController.php index 3d7e0567e..554f61bab 100644 --- a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/BgpController.php +++ b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/BgpController.php @@ -137,7 +137,7 @@ class BgpController extends ApiMutableModelControllerBase { return $this->searchBase( 'routemaps.routemap', - array("enabled", "name", "action", "id", "match", "set") + array("enabled", "name", "action", "id", "match", "match2", "set") ); } diff --git a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPRouteMaps.xml b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPRouteMaps.xml index 22b8eac93..bd4e8380f 100644 --- a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPRouteMaps.xml +++ b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPRouteMaps.xml @@ -29,12 +29,20 @@ select_multiple true - Select the AS-Path list + Select the AS-Path List. + + + routemap.match2 + + select_multiple + + true + Select the Prefix List. routemap.set text - Free text field for your set, please be careful! You can set e.g. "local-prefernce 300" or "community 1:1" (http://www.nongnu.org/quagga/docs/docs-multi/Route-Map-Set-Command.html#Route-Map-Set-Command) + Free text field for your set, please be careful! You can set e.g. "local-preference 300" or "community 1:1" (http://www.nongnu.org/quagga/docs/docs-multi/Route-Map-Set-Command.html#Route-Map-Set-Command) diff --git a/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml b/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml index 3f7b30962..cb361fa7d 100644 --- a/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml +++ b/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml @@ -1,7 +1,7 @@ //OPNsense/quagga/bgp BGP Routing configuration - 1.0.1 + 1.0.2 0 @@ -219,6 +219,18 @@ Y N + + + + + Related item not found + N + N + Y diff --git a/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/bgp.volt b/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/bgp.volt index e5818125a..0661e48ae 100644 --- a/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/bgp.volt +++ b/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/bgp.volt @@ -139,6 +139,7 @@ POSSIBILITY OF SUCH DAMAGE. {{ lang._('Action') }} {{ lang._('ID') }} {{ lang._('AS Path List') }} + {{ lang._('Prefix List') }} {{ lang._('Set') }} {{ lang._('ID') }} {{ lang._('Commands') }} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf index e971062be..45d9e4fdd 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf @@ -191,6 +191,17 @@ route-map {{ routemap.name }} {{ routemap.action }} {{ routemap.id }} {% if routemap.set != '' %} set {{ routemap.set }} {% endif %} +{% if routemap.match2|default("") != "" %} +{% for prefixlist in routemap.match2.split(",") %} +{% set prefixlist_data = helpers.getUUID(prefixlist) %} +{% if 'match2' in routemap and routemap.match2 != '' %} + match ip address prefix-list {{ prefixlist_data.name }} +{% endif %} +{% endfor %} +{% endif %} +{% if routemap.set != '' %} + set {{ routemap.set }} +{% endif %} {% endif %} {% endfor %} {% endif %}