summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2008-12-15 16:03:12 -0800
committerStephen Hemminger <stephen.hemminger@vyatta.com>2008-12-15 16:03:12 -0800
commitbfb79fae51932334916ee52681a39b29488bc38f (patch)
tree583d72628d19a4937da1ca1a840162621b9e15c4
parent016ab3be232c6029358bd6aaea80f10ee9daa851 (diff)
downloadvyatta-cfg-quagga-bfb79fae51932334916ee52681a39b29488bc38f.tar.gz
vyatta-cfg-quagga-bfb79fae51932334916ee52681a39b29488bc38f.zip
Allow any interface for interface routes
Allow interface routes to be configured to any device name (existing or not). This allows for future technolgies, and also handles case of tunnels and other devices that may need routes configured before they exist.
-rw-r--r--templates/protocols/static/interface-route/node.tag/next-hop-interface/node.def35
-rw-r--r--templates/protocols/static/interface-route6/node.tag/next-hop-interface/node.def35
2 files changed, 10 insertions, 60 deletions
diff --git a/templates/protocols/static/interface-route/node.tag/next-hop-interface/node.def b/templates/protocols/static/interface-route/node.tag/next-hop-interface/node.def
index da7b7864..7582362d 100644
--- a/templates/protocols/static/interface-route/node.tag/next-hop-interface/node.def
+++ b/templates/protocols/static/interface-route/node.tag/next-hop-interface/node.def
@@ -1,36 +1,11 @@
-#
-# Config template for
-# protocols/static/interface-route/<prefix>/next-hop-interface
-#
-
tag:
-
type: txt
-
help: Set the next-hop interface
-
-#
-# Argument must be the name of an interface on the system. PPP interfaces
-# only come into existance when they come up. Allow interface routes
-# via them to be configured even though the link may not be up right now.
-# We need a special case for multilink interfaces because their names
-# are not coded into the name of the PPP config file in /etc/ppp/peers.
-#
-syntax:expression: exec " \
- IFNAME=$VAR(@) ; \
- if [ ! -e /sys/class/net/$IFNAME ]; then \
- if [ \"${IFNAME::5}\" != \"pppoa\" -a \"${IFNAME::5}\" != \"pppoe\" \
- -a \"${IFNAME::3}\" != \"wan\" \
- -a \"${IFNAME::2}\" != \"ml\" ]; then \
- echo interface $IFNAME doesn\\'t exist on this system ; \
- exit 1 ; \
- fi ; \
- if [ ! -e /etc/ppp/peers/${IFNAME} -a \"$IFNAME\" != \"ml0\" \
- -a \"$IFNAME\" != \"ml1\" ]; then \
- echo PPP interface $IFNAME doesn\\'t exist on this system ; \
- exit 1 ; \
- fi ; \
- fi ; "
+# show all current interface
+# but syntax accepts any interface since it may exist later (ppp etc)
+allowed: local -a array
+ array=( /sys/class/net/* )
+ echo -n ${array[@]##*/}
delete: touch /tmp/static.$PPID
diff --git a/templates/protocols/static/interface-route6/node.tag/next-hop-interface/node.def b/templates/protocols/static/interface-route6/node.tag/next-hop-interface/node.def
index 981201b3..5321c619 100644
--- a/templates/protocols/static/interface-route6/node.tag/next-hop-interface/node.def
+++ b/templates/protocols/static/interface-route6/node.tag/next-hop-interface/node.def
@@ -1,36 +1,11 @@
-#
-# Config template for
-# protocols/static/interface-route6/<prefix>/next-hop-interface
-#
-
tag:
-
type: txt
-
help: Set the next-hop interface
-
-#
-# Argument must be the name of an interface on the system. PPP interfaces
-# only come into existance when they come up. Allow interface routes
-# via them to be configured even though the link may not be up right now.
-# We need a special case for multilink interfaces because their names
-# are not coded into the name of the PPP config file in /etc/ppp/peers.
-#
-syntax:expression: exec " \
- IFNAME=$VAR(@) ; \
- if [ ! -e /sys/class/net/$IFNAME ]; then \
- if [ \"${IFNAME::5}\" != \"pppoa\" -a \"${IFNAME::5}\" != \"pppoe\" \
- -a \"${IFNAME::3}\" != \"wan\" \
- -a \"${IFNAME::2}\" != \"ml\" ]; then \
- echo interface $IFNAME doesn\\'t exist on this system ; \
- exit 1 ; \
- fi ; \
- if [ ! -e /etc/ppp/peers/${IFNAME} -a \"$IFNAME\" != \"ml0\" \
- -a \"$IFNAME\" != \"ml1\" ]; then \
- echo PPP interface $IFNAME doesn\\'t exist on this system ; \
- exit 1 ; \
- fi ; \
- fi ; "
+# show all current interface
+# but syntax accepts any interface since it may exist later (ppp etc)
+allowed: local -a array
+ array=( /sys/class/net/* )
+ echo -n ${array[@]##*/}
delete: touch /tmp/static.$PPID