From 1af622ab0332f583c842cad1dd9ff9f9c5dcc42d Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 11 Mar 2009 08:21:42 -0700 Subject: Disable creating vlan on disabled interface Print message and fail commit if interface is disabled. --- templates/interfaces/ethernet/node.tag/vif/node.def | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'templates') diff --git a/templates/interfaces/ethernet/node.tag/vif/node.def b/templates/interfaces/ethernet/node.tag/vif/node.def index e496a7c..e8554fa 100644 --- a/templates/interfaces/ethernet/node.tag/vif/node.def +++ b/templates/interfaces/ethernet/node.tag/vif/node.def @@ -2,8 +2,14 @@ tag: type: u32 help: Set Virtual Local Area Network (VLAN) ID syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 4094; "VLAN ID must be between 0 and 4094" -create: sudo ip link add link $VAR(../@) name "$VAR(../@).$VAR(@)" type vlan id $VAR(@) - sudo ip link set "$VAR(../@).$VAR(@)" up +create: read flags < /sys/class/net/$VAR(../@)/flags + if [ $(( flags & 1 )) -eq 0 ] + then + echo "Can not create VLAN on disabled interface: " $VAR(../@) + exit 1 + fi + sudo ip link add link $VAR(../@) name "$VAR(../@).$VAR(@)" type vlan id $VAR(@) || exit 1 + sudo ip link set "$VAR(../@).$VAR(@)" up /opt/vyatta/sbin/vyatta-link-detect "$VAR(../@).$VAR(@)" on delete: sudo ip link delete "$VAR(../@).$VAR(@)" type vlan id $VAR(@) comp_help: possible completions: -- cgit v1.2.3 From 1fe53b8edbc7f5d51bf05b640eb63b8ebe183560 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 11 Mar 2009 20:04:20 -0700 Subject: Block disabling interface with VIF If interface with VIF is disabled, then it would fail on next boot when VIF's were created. --- templates/interfaces/ethernet/node.tag/disable/node.def | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'templates') diff --git a/templates/interfaces/ethernet/node.tag/disable/node.def b/templates/interfaces/ethernet/node.tag/disable/node.def index 90dd582..b7fcd49 100644 --- a/templates/interfaces/ethernet/node.tag/disable/node.def +++ b/templates/interfaces/ethernet/node.tag/disable/node.def @@ -1,5 +1,10 @@ help: Set interface disabled -update: /etc/netplug/linkdown.d/dhclient $VAR(../@) +create: vif=`/opt/vyatta/sbin/vyatta-interfaces.pl --vif=$VAR(../@) --show` + if [ ! -z $vif ]; then + echo "Can not disable interface " $VAR(../@) " with vif:" $vif + exit 1 + fi + /etc/netplug/linkdown.d/dhclient $VAR(../@) if ! sudo ip link set $VAR(../@) down 2>/dev/null; then echo "Error disabling dev $VAR(../@)" /etc/netplug/linkup.d/dhclient $VAR(../@) -- cgit v1.2.3 From 2f01fa9fc9c5f050d4840bc0db22bfaae69b86e7 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 11 Mar 2009 21:09:31 -0700 Subject: Fix vif delete Need 'dev' in argument to ip link --- templates/interfaces/ethernet/node.tag/vif/node.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'templates') diff --git a/templates/interfaces/ethernet/node.tag/vif/node.def b/templates/interfaces/ethernet/node.tag/vif/node.def index e8554fa..bca6307 100644 --- a/templates/interfaces/ethernet/node.tag/vif/node.def +++ b/templates/interfaces/ethernet/node.tag/vif/node.def @@ -11,7 +11,7 @@ create: read flags < /sys/class/net/$VAR(../@)/flags sudo ip link add link $VAR(../@) name "$VAR(../@).$VAR(@)" type vlan id $VAR(@) || exit 1 sudo ip link set "$VAR(../@).$VAR(@)" up /opt/vyatta/sbin/vyatta-link-detect "$VAR(../@).$VAR(@)" on -delete: sudo ip link delete "$VAR(../@).$VAR(@)" type vlan id $VAR(@) +delete: sudo ip link delete dev "$VAR(../@).$VAR(@)" type vlan id $VAR(@) comp_help: possible completions: <0-4094> Set VLAN ID -- cgit v1.2.3 From 5116c0fdb09a7e7c34298cd80622d59742e42359 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 11 Mar 2009 21:15:18 -0700 Subject: Fix argument to show-interfaces to find vif Need to do show=all --- templates/interfaces/ethernet/node.tag/disable/node.def | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'templates') diff --git a/templates/interfaces/ethernet/node.tag/disable/node.def b/templates/interfaces/ethernet/node.tag/disable/node.def index b7fcd49..3d3ffef 100644 --- a/templates/interfaces/ethernet/node.tag/disable/node.def +++ b/templates/interfaces/ethernet/node.tag/disable/node.def @@ -1,6 +1,6 @@ help: Set interface disabled -create: vif=`/opt/vyatta/sbin/vyatta-interfaces.pl --vif=$VAR(../@) --show` - if [ ! -z $vif ]; then +create: vif=`/opt/vyatta/sbin/vyatta-interfaces.pl --vif=$VAR(../@) --show=all` + if [ ! -z "$vif" ]; then echo "Can not disable interface " $VAR(../@) " with vif:" $vif exit 1 fi -- cgit v1.2.3 From 4135f9791f0a820513930916f42373e8390b2235 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 12 Mar 2009 16:18:26 -0700 Subject: Use create rather than update on multi-node (loopback) --- templates/interfaces/loopback/node.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'templates') diff --git a/templates/interfaces/loopback/node.def b/templates/interfaces/loopback/node.def index 690dc39..7351a8e 100644 --- a/templates/interfaces/loopback/node.def +++ b/templates/interfaces/loopback/node.def @@ -4,4 +4,4 @@ help: Set loopback interface syntax:expression: exec \ "/opt/vyatta/sbin/vyatta-interfaces.pl --dev=$VAR(@) --check=loopback" allowed: /opt/vyatta/sbin/vyatta-interfaces.pl --show=loopback -update: sudo ip link set $VAR(@) up +create: sudo ip link set $VAR(@) up -- cgit v1.2.3