summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStig Thormodsrud <stig@uffda.(none)>2007-11-20 13:18:02 -0800
committerStig Thormodsrud <stig@uffda.(none)>2007-11-20 13:18:02 -0800
commit65b95aa0fd0210501bd828299f561925269b6321 (patch)
tree7430cdd2d53b80d269ba880e055a0d3e232b79e8
parent2f0f6a02079f0dd65679076eac1c02fc1467a608 (diff)
downloadvyatta-cfg-65b95aa0fd0210501bd828299f561925269b6321.tar.gz
vyatta-cfg-65b95aa0fd0210501bd828299f561925269b6321.zip
Fix 2482: Interface speed and duplex cannot be set to auto.
-rw-r--r--templates/interfaces/ethernet/node.tag/duplex/node.def20
-rw-r--r--templates/interfaces/ethernet/node.tag/speed/node.def19
2 files changed, 33 insertions, 6 deletions
diff --git a/templates/interfaces/ethernet/node.tag/duplex/node.def b/templates/interfaces/ethernet/node.tag/duplex/node.def
index e7e87ad..92fd6e3 100644
--- a/templates/interfaces/ethernet/node.tag/duplex/node.def
+++ b/templates/interfaces/ethernet/node.tag/duplex/node.def
@@ -1,9 +1,23 @@
type: txt
help: "Set the duplex mode for this interface"
-syntax: $(@) in "half", "full"; "duplex must be half or full"
-commit: $(../speed) != ""; "if duplex is hardcoded, speed must also be hardcoded"
-update: "sudo ethtool -s $(../@) speed $(../speed/@) duplex $(@) autoneg off"
+default: "auto"
+syntax: $(@) in "auto", "half", "full"; "duplex must be auto, half or full"
+commit: exec "if [ x$(@) != xauto ]; then \
+ if [ x$(../speed/@) == xauto ]; then \
+ exit 1; \
+ fi; \
+ else \
+ if [ x$(../speed/@) != xauto ]; then \
+ exit 1; \
+ fi; \
+ fi; " ; "if duplex is hardcoded, speed must also be hardcoded"
+update: "if [ x$(@) != xauto ]; then \
+ sudo ethtool -s $(../@) speed $(../speed/@) duplex $(@) autoneg off; \
+ else \
+ sudo ethtool -s $(../@) autoneg on; \
+ fi; "
delete: "sudo ethtool -s $(../@) autoneg on"
#comp_help:Possible completions:
+# auto\t\tAuto negotiation
# half\t\tHalf duplex
# full\t\tFull duplex
diff --git a/templates/interfaces/ethernet/node.tag/speed/node.def b/templates/interfaces/ethernet/node.tag/speed/node.def
index 9f983e1..bff2f08 100644
--- a/templates/interfaces/ethernet/node.tag/speed/node.def
+++ b/templates/interfaces/ethernet/node.tag/speed/node.def
@@ -1,6 +1,19 @@
type: txt
help: "Set the speed for this interface"
-syntax: $(@) in "10", "100", "1000"; "Speed must be 10, 100, or 1000"
-commit: $(../duplex) != ""; "if speed is hardcoded, duplex must also be hardcoded"
-update: "sudo ethtool -s $(../@) speed $(@) duplex $(../duplex/@) autoneg off"
+default: "auto"
+syntax: $(@) in "auto", "10", "100", "1000"; "Speed must be auto, 10, 100, or 1000"
+commit: exec "if [ x$(@) != xauto ]; then \
+ if [ x$(../duplex/@) == xauto ]; then \
+ exit 1; \
+ fi; \
+ else \
+ if [ x$(../duplex/@) != xauto ]; then \
+ exit 1; \
+ fi; \
+ fi;"; "if speed is hardcoded, duplex must also be hardcoded"
+update: "if [ x$(@) != xauto ]; then \
+ sudo ethtool -s $(../@) speed $(@) duplex $(../duplex/@) autoneg off; \
+ else \
+ sudo ethtool -s $(../@) autoneg on; \
+ fi; "
delete: "sudo ethtool -s $(../@) autoneg on"