summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/vyatta_quagga_utils.pl18
-rw-r--r--templates/protocols/ospf/area/node.def1
-rw-r--r--templates/protocols/ospf/router-id/node.def2
3 files changed, 20 insertions, 1 deletions
diff --git a/scripts/vyatta_quagga_utils.pl b/scripts/vyatta_quagga_utils.pl
index 2b5b05ac..d64be3a9 100644
--- a/scripts/vyatta_quagga_utils.pl
+++ b/scripts/vyatta_quagga_utils.pl
@@ -8,11 +8,13 @@ use Getopt::Long;
GetOptions("check-prefix-boundry=s" => \$prefix,
"not-exists=s" => \$notexists,
"exists=s" => \$exists,
+ "check-ospf-area=s" => \$area,
);
if (defined $prefix) { check_prefix_boundry($prefix); }
if (defined $notexists) { check_not_exists($notexists); }
if (defined $exists) { check_exists($exists); }
+if (defined $area) { check_ospf_area($area); }
exit 0;
@@ -52,3 +54,19 @@ sub check_not_exists() {
exit 1;
}
+sub check_ospf_area() {
+ my $area = shift;
+
+ if ($area =~ m/^\d+$/) {
+ if ($area >= 0 && $area <= 4294967295) {
+ return 0;
+ }
+ }
+
+ if (isIpAddress($area)) {
+ return 0;
+ }
+ print "invalid ospf area\n";
+ exit 1;
+}
+
diff --git a/templates/protocols/ospf/area/node.def b/templates/protocols/ospf/area/node.def
index d06ef605..22cb1ca0 100644
--- a/templates/protocols/ospf/area/node.def
+++ b/templates/protocols/ospf/area/node.def
@@ -1,4 +1,5 @@
tag:
type: txt
+syntax: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --check-ospf-area $(@)"
help: "Area"
diff --git a/templates/protocols/ospf/router-id/node.def b/templates/protocols/ospf/router-id/node.def
index b5072ccd..e37ba0ee 100644
--- a/templates/protocols/ospf/router-id/node.def
+++ b/templates/protocols/ospf/router-id/node.def
@@ -1,4 +1,4 @@
-type: ipv4; "router-id must be a IPv4 address"
+type: ipv4
help: "Override the default router identifier"
update: "/usr/bin/vtysh -c \"configure terminal\" -c \"router ospf\" \
-c \"ospf router-id $(@)\" "