From 704b79464af13b67a943f877020ff6a1514a0235 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen.hemminger@vyatta.com>
Date: Tue, 16 Feb 2010 16:16:47 -0800
Subject: Use template to do syntax checks on ethernet device name

Bug 5256
Going out to perl to repeatedly validate ethernet device name slows
down adding VLAN's and other operations with lots of sub-devices.
---
 templates/interfaces/ethernet/node.def | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/templates/interfaces/ethernet/node.def b/templates/interfaces/ethernet/node.def
index a46ae722..081cabb5 100644
--- a/templates/interfaces/ethernet/node.def
+++ b/templates/interfaces/ethernet/node.def
@@ -2,9 +2,14 @@ tag:
 priority: 318
 type: txt
 help: Set ethernet interface
-syntax:expression: exec \
-   "/opt/vyatta/sbin/vyatta-interfaces.pl --dev=$VAR(@) --check=ethernet"
 allowed: /opt/vyatta/sbin/vyatta-interfaces.pl --show=ethernet
+syntax:expression: pattern $VAR(@) "^eth[0-9]+$" \
+		   ; "interface ethernet $VAR(@): not a valid name"
+syntax:expression: exec \
+    "if [ ! -d /sys/class/net/$VAR(@) ]; then \
+        echo \"interface ethernet $VAR(@): does not exist\";
+	exit 1; \
+    fi"
 create: sudo ip link set "$VAR(@)" up
 	/opt/vyatta/sbin/vyatta-link-detect $VAR(@) on
 delete: [ -d /sys/class/net/$VAR(../@) ] || exit 0
-- 
cgit v1.2.3