mirror of
https://github.com/netbirdio/plugins.git
synced 2026-05-22 18:44:07 -07:00
net/frr: Add BGP neighbor timers and graceful restart (#2112)
This commit is contained in:
@@ -20,6 +20,8 @@ Plugin Changelog
|
||||
|
||||
* Add description fields to BGP tabs
|
||||
* Add BGP community-lists
|
||||
* Add option for BGP graceful restart
|
||||
* Allow to set BGP neighbor timers
|
||||
|
||||
1.17
|
||||
|
||||
|
||||
@@ -48,6 +48,9 @@ class BgpController extends ApiMutableModelControllerBase
|
||||
"updatesource",
|
||||
"nexthopself",
|
||||
"multihop",
|
||||
"keepalive",
|
||||
"holddown",
|
||||
"connecttimer",
|
||||
"defaultoriginate",
|
||||
"linkedPrefixlistIn",
|
||||
"linkedPrefixlistOut",
|
||||
|
||||
@@ -18,6 +18,13 @@
|
||||
<advanced>true</advanced>
|
||||
<help>In some cases it might be clearer to set a fixed router-id.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>bgp.graceful</id>
|
||||
<label>Graceful Restart</label>
|
||||
<type>checkbox</type>
|
||||
<advanced>true</advanced>
|
||||
<help>BGP graceful restart functionality as defined in RFC-4724 defines the mechanisms that allows BGP speaker to continue to forward data packets along known routes while the routing protocol information is being restored.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>bgp.networks</id>
|
||||
<label>Network</label>
|
||||
|
||||
+22
-1
@@ -38,7 +38,28 @@
|
||||
<label>Multi-Hop</label>
|
||||
<type>checkbox</type>
|
||||
</field>
|
||||
<field>
|
||||
<field>
|
||||
<id>neighbor.keepalive</id>
|
||||
<label>Keepalive</label>
|
||||
<type>text</type>
|
||||
<advanced>true</advanced>
|
||||
<help>Keepalive timer to check if the neighbor is still up. Default when unset is 60 seconds.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>neighbor.holddown</id>
|
||||
<label>Hold Down Time</label>
|
||||
<type>text</type>
|
||||
<advanced>true</advanced>
|
||||
<help>The time in seconds when a neighbor is considered dead. This is usually 3 times the keeplive timer and when unset 180 seconds.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>neighbor.connecttimer</id>
|
||||
<label>Connect Timer</label>
|
||||
<type>text</type>
|
||||
<advanced>true</advanced>
|
||||
<help>The time in seconds how fast a neighbor tries to reconnect.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>neighbor.defaultoriginate</id>
|
||||
<label>Send Defaultroute</label>
|
||||
<type>checkbox</type>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<model>
|
||||
<mount>//OPNsense/quagga/bgp</mount>
|
||||
<description>BGP Routing configuration</description>
|
||||
<version>1.0.4</version>
|
||||
<version>1.0.5</version>
|
||||
<items>
|
||||
<enabled type="BooleanField">
|
||||
<default>0</default>
|
||||
@@ -17,6 +17,10 @@
|
||||
<Required>N</Required>
|
||||
<mask>/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/</mask>
|
||||
</routerid>
|
||||
<graceful type="BooleanField">
|
||||
<default>0</default>
|
||||
<Required>Y</Required>
|
||||
</graceful>
|
||||
<networks type="CSVListField">
|
||||
<default></default>
|
||||
<Required>N</Required>
|
||||
@@ -70,6 +74,21 @@
|
||||
<default>0</default>
|
||||
<Required>N</Required>
|
||||
</multihop>
|
||||
<keepalive type="IntegerField">
|
||||
<Required>N</Required>
|
||||
<MinimumValue>1</MinimumValue>
|
||||
<MaximumValue>1000</MaximumValue>
|
||||
</keepalive>
|
||||
<holddown type="IntegerField">
|
||||
<Required>N</Required>
|
||||
<MinimumValue>3</MinimumValue>
|
||||
<MaximumValue>3000</MaximumValue>
|
||||
</holddown>
|
||||
<connecttimer type="IntegerField">
|
||||
<Required>N</Required>
|
||||
<MinimumValue>1</MinimumValue>
|
||||
<MaximumValue>65000</MaximumValue>
|
||||
</connecttimer>
|
||||
<defaultoriginate type="BooleanField">
|
||||
<default>0</default>
|
||||
<Required>N</Required>
|
||||
|
||||
@@ -15,6 +15,9 @@ log syslog {{ OPNsense.quagga.general.sysloglevel }}
|
||||
{% if helpers.exists('OPNsense.quagga.bgp.asnumber') and OPNsense.quagga.bgp.asnumber != '' %}
|
||||
router bgp {{ OPNsense.quagga.bgp.asnumber }}
|
||||
no bgp ebgp-requires-policy
|
||||
{% if helpers.exists('OPNsense.quagga.bgp.graceful') and OPNsense.quagga.bgp.graceful == '1' %}
|
||||
bgp graceful-restart
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.quagga.bgp.routerid') and OPNsense.quagga.bgp.routerid != '' %}
|
||||
bgp router-id {{ OPNsense.quagga.bgp.routerid }}
|
||||
{% endif %}
|
||||
@@ -28,6 +31,14 @@ router bgp {{ OPNsense.quagga.bgp.asnumber }}
|
||||
{% if 'multihop' in neighbor and neighbor.multihop == '1' %}
|
||||
neighbor {{ neighbor.address }} ebgp-multihop
|
||||
{% endif %}
|
||||
{% if 'keepalive' in neighbor and neighbor.keepalive != '' %}
|
||||
{% if 'holddown' in neighbor and neighbor.holddown != '' %}
|
||||
neighbor {{ neighbor.address }} timers {{ neighbor.keepalive }} {{ neighbor.holddown }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if 'connecttimer' in neighbor and neighbor.connecttimer != '' %}
|
||||
neighbor {{ neighbor.address }} timers connect {{ neighbor.connecttimer }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user