summaryrefslogtreecommitdiff
path: root/src/conf_mode/protocols_ospf.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-01-29 15:01:48 +0100
committerChristian Poessinger <christian@poessinger.com>2021-01-29 15:01:48 +0100
commitb17b6d8931b142dcd3e2ddc4e213929bfafe9948 (patch)
tree66aee7e2e85e28cb9b166d8e5ab8fef884862f76 /src/conf_mode/protocols_ospf.py
parent323c0c3b8c109394ec8caf3f105633b0691fdef7 (diff)
downloadvyos-1x-b17b6d8931b142dcd3e2ddc4e213929bfafe9948.tar.gz
vyos-1x-b17b6d8931b142dcd3e2ddc4e213929bfafe9948.zip
ospf: T3267: move "interface ip ospf" configuration to "protocols ospf interface"
For easier maintenance and operability move the interface specific protocol setting of OSPF to the OSPF protocol section. This is now also in-line with IS-IS. This means to migrate: ethernet eth0 { vif 202 { ip { ospf { authentication { md5 { key-id 10 { md5-key vyosvyos } } } dead-interval 40 hello-interval 10 priority 1 retransmit-interval 5 transmit-delay 1 } } } } to protocols { ospf { interface eth0.201 { authentication { md5 { key-id 10 { md5-key vyosvyos } } } dead-interval 40 hello-interval 10 priority 1 retransmit-interval 5 transmit-delay 1 } }
Diffstat (limited to 'src/conf_mode/protocols_ospf.py')
-rwxr-xr-xsrc/conf_mode/protocols_ospf.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/conf_mode/protocols_ospf.py b/src/conf_mode/protocols_ospf.py
index 7c0ffbd27..a1ca7725f 100755
--- a/src/conf_mode/protocols_ospf.py
+++ b/src/conf_mode/protocols_ospf.py
@@ -21,6 +21,7 @@ from sys import exit
from vyos.config import Config
from vyos.configdict import dict_merge
from vyos.configverify import verify_route_maps
+from vyos.configverify import verify_interface_exists
from vyos.template import render
from vyos.template import render_to_string
from vyos.util import call
@@ -76,6 +77,7 @@ def get_config(config=None):
# clean them out and add them manually :(
del default_values['neighbor']
del default_values['area']['virtual_link']
+ del default_values['interface']
# merge in remaining default values
ospf = dict_merge(default_values, ospf)
@@ -94,6 +96,12 @@ def get_config(config=None):
ospf['area'][area]['virtual_link'][virtual_link] = dict_merge(
default_values, ospf['area'][area]['virtual_link'][virtual_link])
+ if 'interface' in ospf:
+ default_values = defaults(base + ['interface'])
+ for interface in ospf['interface']:
+ ospf['interface'][interface] = dict_merge(default_values,
+ ospf['interface'][interface])
+
# We also need some additional information from the config, prefix-lists
# and route-maps for instance. They will be used in verify()
base = ['policy']
@@ -108,6 +116,11 @@ def verify(ospf):
return None
verify_route_maps(ospf)
+
+ if 'interface' in ospf:
+ for interface in ospf['interface']:
+ verify_interface_exists(interface)
+
return None
def generate(ospf):