show_info: Add extended switch scheme and bandwidth control

Submitted by Adrian Schmutzler on Aug. 9, 2017, 9:38 p.m.

Details

Message ID 1502314722-1783-1-git-send-email-freifunk@adrianschmutzler.de
State Accepted
Headers show

Commit Message

Adrian Schmutzler Aug. 9, 2017, 9:38 p.m.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
---
 .../fff/fff-support/files/usr/sbin/show_info       | 119 ++++++++++++++++++---
 1 file changed, 103 insertions(+), 16 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info b/src/packages/fff/fff-support/files/usr/sbin/show_info
index 17fbb9f..fc7cffb 100755
--- a/src/packages/fff/fff-support/files/usr/sbin/show_info
+++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
@@ -3,6 +3,8 @@ 
 . /etc/community.cfg
 . /etc/firmware_release
 
+board_name=$(uci -q get board.model.name)
+
 HOSTNAME=$(uci -q get 'system.@system[0].hostname')
 
 human_bytes() {
@@ -17,6 +19,51 @@  human_bytes() {
 		echo $(((GB+512)/1024)) TB
 	done
 }
+format_state() {
+	batmanports=$(swconfig dev switch0 vlan 3 show | grep 'ports:')
+	clientports=$(swconfig dev switch0 vlan 1 show | grep 'ports:')
+	wanports=$(swconfig dev switch0 vlan 2 show | grep 'ports:')
+	
+	if (echo "$clientports" | grep -q "${1}") && (echo "$batmanports" | grep -q "${1}") ; then
+		linkstate="Multi-Link"
+	elif echo "$clientports" | grep -q "${1}" ; then
+		linkstate="CLIENT"
+	elif echo "$batmanports" | grep -q "${1}" ; then
+		linkstate="BATMAN"
+	elif echo "$wanports" | grep -q "${1}" ; then
+		linkstate="WAN"
+	else
+		linkstate="Unknown"
+	fi
+	printf '%-11s' "$linkstate "
+}
+format_port() {
+	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
+	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
+	if [ "$link" = "up" ] ; then
+		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
+		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
+	else
+		speed="no link"
+		duplex=""
+	fi
+	printf '%-5s%s' "${link} " "- "
+	format_state "${port}"
+	printf '%-26s' "@ $speed $duplex "
+	
+	swconfig dev switch0 show | grep "VLAN\s" | while read line ; do
+		vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/')
+		vports=$(swconfig dev switch0 vlan "$vid" show | grep 'ports:')
+		if echo "$vports" | grep -q "${port}t" ; then
+			printf '%-2s ' "t"
+		elif echo "$vports" | grep -q "${port}" ; then
+			printf '%-2s ' "u"
+		else
+			printf '%-2s ' "-"
+		fi
+	done
+	echo ""
+}
 
 if pidof fastd >/dev/null ; then
 	vpn_active="aktiv"
@@ -101,23 +148,63 @@  echo "Standortbeschreibung: $(uci -q get 'system.@system[0].position_comment')"
 echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')"
 
 echo ""
-echo "-> SWITCH"
-if swconfig list | grep -q switch0 ; then
-	swconfig dev switch0 show | grep "\t*link:" | while read line ; do
-		line=$(echo "$line" | tr -d '\n' | tr -d '\t')
-		port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/')
-		link=$(echo "$line" | sed 's/.* link:\([^ ]*\).*/\1/')
-		if [ "$link" == "up" ] ; then
-			speed=$(echo "$line" | sed 's/.* speed:\([^ ]*\).*/\1/')
-			duplex=$(echo "$line" | sed 's/.* \([^ ]*-duplex\).*/\1/')
-		else
-			speed="no link"
-			duplex=""
-		fi
-		port="Port ${port}"
-		echo "${port}: ${link} @ $speed $duplex"
-	done
+echo "-> BITRATEN-BEGRENZUNG"
+if [ "$(uci -q get 'simple-tc.example.enabled')" == "1" ] ; then
+	echo "Aktiv: ja"
+else
+	echo "Aktiv: nein"
+fi
+echo "Download-Limit: $(uci -q get 'simple-tc.example.limit_ingress') kBit/s"
+echo "Upload-Limit: $(uci -q get 'simple-tc.example.limit_egress') kBit/s"
+
+if grep -q 'PORTORDER=' /etc/network.$board_name ; then
+	portorder=$(awk -F= '/PORTORDER=/ { print $2 }' /etc/network.$board_name | sed "s/\"//g")
 fi
 
 echo ""
+if [ -n "$portorder" ] ; then
+	echo "-> SWITCH (tatsaechliche Portreihenfolge)"
+else
+	echo "-> SWITCH (interne logische Portreihenfolge)"
+fi
+
+printf '%-54s' "VLAN-IDs:"
+swconfig dev switch0 show | grep "VLAN\s" | while read line ; do
+	vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/')
+	printf '%-2s ' "$vid"
+done
+echo ""
+echo ""
+
+if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then
+	wanif=$(uci -q get network.wan.ifname)
+	link=$(cat /sys/class/net/${wanif}/operstate)
+	if [ "$link" = "up" ] ; then
+		speed="connected"
+	else
+		speed="no link"
+	fi
+	printf '%-10s%-5s%-13s%s\n' "WAN-Port: " "${link} " "- WAN " "@ $speed"
+fi
+
+for internalport in $portorder
+do
+	line=$(swconfig dev switch0 port "$internalport" show | tr -d '\n' | tr -d '\t')
+	port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/')
+	printf '%-10s' "Port #${port}: "
+	format_port "${line}"
+done
+echo ""
+
+swconfig dev switch0 show | grep "\t*link:" | while read line ; do
+	line=$(echo "$line" | tr -d '\n' | tr -d '\t')
+	port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/')
+	if echo "$portorder" | grep -q "$port" ; then
+		continue
+	fi
+	printf '%-10s' "Port #${port}: "
+	format_port "${line}"
+done
+
+echo ""
 echo "END"

Comments

Christian Dresel Aug. 20, 2017, 11:13 a.m.
hi

das Ding hat mich erstmal geschockt weil es auf meinen Test wdr4900 mit
alten OpenWRT nicht ging. Habs dann nochmal auf einen LEDE wdr4900
getestet und da tut es. Sieht klasse aus, so langsam freunde ich mich
vielleicht doch an das Script an wenn auch bei vielen VLANs etwas
unübersichtlich:

-> SWITCH (interne logische Portreihenfolge)
VLAN-IDs:                                             1  2  3  4  5  6
7  8  9  10 11 12 13 14 15 16


Port #0:  up   - Multi-Link @ 1000baseT full-duplex   t  t  t  t  t  t
t  t  t  t  t  t  t  t  t  t
Port #1:  down - CLIENT     @ no link                 u  -  -  -  -  -
-  -  -  -  -  -  -  -  -  -
Port #2:  down - Multi-Link @ no link                 t  -  u  -  -  -
-  -  -  -  -  -  -  -  -  -
Port #3:  down - Multi-Link @ no link                 t  -  u  -  -  -
-  -  -  -  -  -  -  -  -  -
Port #4:  up   - CLIENT     @ 100baseT full-duplex    u  -  -  t  t  t
t  t  t  t  t  t  t  t  t  t
Port #5:  up   - CLIENT     @ 1000baseT full-duplex   u  -  -  t  t  t
t  t  t  t  t  t  t  t  t  t
Port #6:  down - Unknown    @ no link                 -  -  -  -  -  -
-  -  -  -  -  -  -  -  -  -

ist aber vermutlich ja nicht die Regel. Ich hab es jetzt nur ohne
Portorder getestet:

Reviewed-by: Christian Dresel <fff@chrisi01.de>

mfg

Christian

On 09.08.2017 23:38, Adrian Schmutzler wrote:
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  .../fff/fff-support/files/usr/sbin/show_info       | 119 ++++++++++++++++++---
>  1 file changed, 103 insertions(+), 16 deletions(-)
> 
> diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info b/src/packages/fff/fff-support/files/usr/sbin/show_info
> index 17fbb9f..fc7cffb 100755
> --- a/src/packages/fff/fff-support/files/usr/sbin/show_info
> +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
> @@ -3,6 +3,8 @@
>  . /etc/community.cfg
>  . /etc/firmware_release
>  
> +board_name=$(uci -q get board.model.name)
> +
>  HOSTNAME=$(uci -q get 'system.@system[0].hostname')
>  
>  human_bytes() {
> @@ -17,6 +19,51 @@ human_bytes() {
>  		echo $(((GB+512)/1024)) TB
>  	done
>  }
> +format_state() {
> +	batmanports=$(swconfig dev switch0 vlan 3 show | grep 'ports:')
> +	clientports=$(swconfig dev switch0 vlan 1 show | grep 'ports:')
> +	wanports=$(swconfig dev switch0 vlan 2 show | grep 'ports:')
> +	
> +	if (echo "$clientports" | grep -q "${1}") && (echo "$batmanports" | grep -q "${1}") ; then
> +		linkstate="Multi-Link"
> +	elif echo "$clientports" | grep -q "${1}" ; then
> +		linkstate="CLIENT"
> +	elif echo "$batmanports" | grep -q "${1}" ; then
> +		linkstate="BATMAN"
> +	elif echo "$wanports" | grep -q "${1}" ; then
> +		linkstate="WAN"
> +	else
> +		linkstate="Unknown"
> +	fi
> +	printf '%-11s' "$linkstate "
> +}
> +format_port() {
> +	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
> +	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
> +	if [ "$link" = "up" ] ; then
> +		speed=$(echo "$1" | sed 's/.* speed:\([^ ]*\).*/\1/')
> +		duplex=$(echo "$1" | sed 's/.* \([^ ]*-duplex\).*/\1/')
> +	else
> +		speed="no link"
> +		duplex=""
> +	fi
> +	printf '%-5s%s' "${link} " "- "
> +	format_state "${port}"
> +	printf '%-26s' "@ $speed $duplex "
> +	
> +	swconfig dev switch0 show | grep "VLAN\s" | while read line ; do
> +		vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/')
> +		vports=$(swconfig dev switch0 vlan "$vid" show | grep 'ports:')
> +		if echo "$vports" | grep -q "${port}t" ; then
> +			printf '%-2s ' "t"
> +		elif echo "$vports" | grep -q "${port}" ; then
> +			printf '%-2s ' "u"
> +		else
> +			printf '%-2s ' "-"
> +		fi
> +	done
> +	echo ""
> +}
>  
>  if pidof fastd >/dev/null ; then
>  	vpn_active="aktiv"
> @@ -101,23 +148,63 @@ echo "Standortbeschreibung: $(uci -q get 'system.@system[0].position_comment')"
>  echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')"
>  
>  echo ""
> -echo "-> SWITCH"
> -if swconfig list | grep -q switch0 ; then
> -	swconfig dev switch0 show | grep "\t*link:" | while read line ; do
> -		line=$(echo "$line" | tr -d '\n' | tr -d '\t')
> -		port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/')
> -		link=$(echo "$line" | sed 's/.* link:\([^ ]*\).*/\1/')
> -		if [ "$link" == "up" ] ; then
> -			speed=$(echo "$line" | sed 's/.* speed:\([^ ]*\).*/\1/')
> -			duplex=$(echo "$line" | sed 's/.* \([^ ]*-duplex\).*/\1/')
> -		else
> -			speed="no link"
> -			duplex=""
> -		fi
> -		port="Port ${port}"
> -		echo "${port}: ${link} @ $speed $duplex"
> -	done
> +echo "-> BITRATEN-BEGRENZUNG"
> +if [ "$(uci -q get 'simple-tc.example.enabled')" == "1" ] ; then
> +	echo "Aktiv: ja"
> +else
> +	echo "Aktiv: nein"
> +fi
> +echo "Download-Limit: $(uci -q get 'simple-tc.example.limit_ingress') kBit/s"
> +echo "Upload-Limit: $(uci -q get 'simple-tc.example.limit_egress') kBit/s"
> +
> +if grep -q 'PORTORDER=' /etc/network.$board_name ; then
> +	portorder=$(awk -F= '/PORTORDER=/ { print $2 }' /etc/network.$board_name | sed "s/\"//g")
>  fi
>  
>  echo ""
> +if [ -n "$portorder" ] ; then
> +	echo "-> SWITCH (tatsaechliche Portreihenfolge)"
> +else
> +	echo "-> SWITCH (interne logische Portreihenfolge)"
> +fi
> +
> +printf '%-54s' "VLAN-IDs:"
> +swconfig dev switch0 show | grep "VLAN\s" | while read line ; do
> +	vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/')
> +	printf '%-2s ' "$vid"
> +done
> +echo ""
> +echo ""
> +
> +if [ ! "$(awk -F= '/WANDEV=/ { print $2 }' /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }' /etc/network.$board_name)" ] ; then
> +	wanif=$(uci -q get network.wan.ifname)
> +	link=$(cat /sys/class/net/${wanif}/operstate)
> +	if [ "$link" = "up" ] ; then
> +		speed="connected"
> +	else
> +		speed="no link"
> +	fi
> +	printf '%-10s%-5s%-13s%s\n' "WAN-Port: " "${link} " "- WAN " "@ $speed"
> +fi
> +
> +for internalport in $portorder
> +do
> +	line=$(swconfig dev switch0 port "$internalport" show | tr -d '\n' | tr -d '\t')
> +	port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/')
> +	printf '%-10s' "Port #${port}: "
> +	format_port "${line}"
> +done
> +echo ""
> +
> +swconfig dev switch0 show | grep "\t*link:" | while read line ; do
> +	line=$(echo "$line" | tr -d '\n' | tr -d '\t')
> +	port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/')
> +	if echo "$portorder" | grep -q "$port" ; then
> +		continue
> +	fi
> +	printf '%-10s' "Port #${port}: "
> +	format_port "${line}"
> +done
> +
> +echo ""
>  echo "END"
>
Tim Niemeyer Aug. 20, 2017, 12:23 p.m.
Hi

Und applied.

Tim

Am Sonntag, den 20.08.2017, 13:13 +0200 schrieb Christian Dresel:
> hi
> 
> das Ding hat mich erstmal geschockt weil es auf meinen Test wdr4900
> mit
> alten OpenWRT nicht ging. Habs dann nochmal auf einen LEDE wdr4900
> getestet und da tut es. Sieht klasse aus, so langsam freunde ich mich
> vielleicht doch an das Script an wenn auch bei vielen VLANs etwas
> unübersichtlich:
> 
> -> SWITCH (interne logische Portreihenfolge)
> VLAN-
> IDs:                                             1  2  3  4  5  6
> 7  8  9  10 11 12 13 14 15 16
> 
> 
> Port #0:  up   - Multi-Link @ 1000baseT full-
> duplex   t  t  t  t  t  t
> t  t  t  t  t  t  t  t  t  t
> Port #1:  down - CLIENT     @ no
> link                 u  -  -  -  -  -
> -  -  -  -  -  -  -  -  -  -
> Port #2:  down - Multi-Link @ no
> link                 t  -  u  -  -  -
> -  -  -  -  -  -  -  -  -  -
> Port #3:  down - Multi-Link @ no
> link                 t  -  u  -  -  -
> -  -  -  -  -  -  -  -  -  -
> Port #4:  up   - CLIENT     @ 100baseT full
> -duplex    u  -  -  t  t  t
> t  t  t  t  t  t  t  t  t  t
> Port #5:  up   - CLIENT     @ 1000baseT full
> -duplex   u  -  -  t  t  t
> t  t  t  t  t  t  t  t  t  t
> Port #6:  down - Unknown    @ no
> link                 -  -  -  -  -  -
> -  -  -  -  -  -  -  -  -  -
> 
> ist aber vermutlich ja nicht die Regel. Ich hab es jetzt nur ohne
> Portorder getestet:
> 
> Reviewed-by: Christian Dresel <fff@chrisi01.de>
> 
> mfg
> 
> Christian
> 
> On 09.08.2017 23:38, Adrian Schmutzler wrote:
> > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > 
> > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > ---
> >  .../fff/fff-support/files/usr/sbin/show_info       | 119
> > ++++++++++++++++++---
> >  1 file changed, 103 insertions(+), 16 deletions(-)
> > 
> > diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info
> > b/src/packages/fff/fff-support/files/usr/sbin/show_info
> > index 17fbb9f..fc7cffb 100755
> > --- a/src/packages/fff/fff-support/files/usr/sbin/show_info
> > +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
> > @@ -3,6 +3,8 @@
> >  . /etc/community.cfg
> >  . /etc/firmware_release
> >  
> > +board_name=$(uci -q get board.model.name)
> > +
> >  HOSTNAME=$(uci -q get 'system.@system[0].hostname')
> >  
> >  human_bytes() {
> > @@ -17,6 +19,51 @@ human_bytes() {
> >  		echo $(((GB+512)/1024)) TB
> >  	done
> >  }
> > +format_state() {
> > +	batmanports=$(swconfig dev switch0 vlan 3 show | grep
> > 'ports:')
> > +	clientports=$(swconfig dev switch0 vlan 1 show | grep
> > 'ports:')
> > +	wanports=$(swconfig dev switch0 vlan 2 show | grep
> > 'ports:')
> > +	
> > +	if (echo "$clientports" | grep -q "${1}") && (echo
> > "$batmanports" | grep -q "${1}") ; then
> > +		linkstate="Multi-Link"
> > +	elif echo "$clientports" | grep -q "${1}" ; then
> > +		linkstate="CLIENT"
> > +	elif echo "$batmanports" | grep -q "${1}" ; then
> > +		linkstate="BATMAN"
> > +	elif echo "$wanports" | grep -q "${1}" ; then
> > +		linkstate="WAN"
> > +	else
> > +		linkstate="Unknown"
> > +	fi
> > +	printf '%-11s' "$linkstate "
> > +}
> > +format_port() {
> > +	port=$(echo "$1" | sed 's/.* port:\([^ ]*\) .*/\1/')
> > +	link=$(echo "$1" | sed 's/.* link:\([^ ]*\).*/\1/')
> > +	if [ "$link" = "up" ] ; then
> > +		speed=$(echo "$1" | sed 's/.* speed:\([^
> > ]*\).*/\1/')
> > +		duplex=$(echo "$1" | sed 's/.* \([^ ]*-
> > duplex\).*/\1/')
> > +	else
> > +		speed="no link"
> > +		duplex=""
> > +	fi
> > +	printf '%-5s%s' "${link} " "- "
> > +	format_state "${port}"
> > +	printf '%-26s' "@ $speed $duplex "
> > +	
> > +	swconfig dev switch0 show | grep "VLAN\s" | while read
> > line ; do
> > +		vid=$(echo "$line" | sed 's/.*VLAN
> > \([^:]*\).*/\1/')
> > +		vports=$(swconfig dev switch0 vlan "$vid" show |
> > grep 'ports:')
> > +		if echo "$vports" | grep -q "${port}t" ; then
> > +			printf '%-2s ' "t"
> > +		elif echo "$vports" | grep -q "${port}" ; then
> > +			printf '%-2s ' "u"
> > +		else
> > +			printf '%-2s ' "-"
> > +		fi
> > +	done
> > +	echo ""
> > +}
> >  
> >  if pidof fastd >/dev/null ; then
> >  	vpn_active="aktiv"
> > @@ -101,23 +148,63 @@ echo "Standortbeschreibung: $(uci -q get 'sys
> > tem.@system[0].position_comment')"
> >  echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')"
> >  
> >  echo ""
> > -echo "-> SWITCH"
> > -if swconfig list | grep -q switch0 ; then
> > -	swconfig dev switch0 show | grep "\t*link:" | while read
> > line ; do
> > -		line=$(echo "$line" | tr -d '\n' | tr -d '\t')
> > -		port=$(echo "$line" | sed 's/.* port:\([^ ]*\)
> > .*/\1/')
> > -		link=$(echo "$line" | sed 's/.* link:\([^
> > ]*\).*/\1/')
> > -		if [ "$link" == "up" ] ; then
> > -			speed=$(echo "$line" | sed 's/.*
> > speed:\([^ ]*\).*/\1/')
> > -			duplex=$(echo "$line" | sed 's/.* \([^ ]*-
> > duplex\).*/\1/')
> > -		else
> > -			speed="no link"
> > -			duplex=""
> > -		fi
> > -		port="Port ${port}"
> > -		echo "${port}: ${link} @ $speed $duplex"
> > -	done
> > +echo "-> BITRATEN-BEGRENZUNG"
> > +if [ "$(uci -q get 'simple-tc.example.enabled')" == "1" ] ; then
> > +	echo "Aktiv: ja"
> > +else
> > +	echo "Aktiv: nein"
> > +fi
> > +echo "Download-Limit: $(uci -q get 'simple-
> > tc.example.limit_ingress') kBit/s"
> > +echo "Upload-Limit: $(uci -q get 'simple-tc.example.limit_egress') 
> > kBit/s"
> > +
> > +if grep -q 'PORTORDER=' /etc/network.$board_name ; then
> > +	portorder=$(awk -F= '/PORTORDER=/ { print $2 }'
> > /etc/network.$board_name | sed "s/\"//g")
> >  fi
> >  
> >  echo ""
> > +if [ -n "$portorder" ] ; then
> > +	echo "-> SWITCH (tatsaechliche Portreihenfolge)"
> > +else
> > +	echo "-> SWITCH (interne logische Portreihenfolge)"
> > +fi
> > +
> > +printf '%-54s' "VLAN-IDs:"
> > +swconfig dev switch0 show | grep "VLAN\s" | while read line ; do
> > +	vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/')
> > +	printf '%-2s ' "$vid"
> > +done
> > +echo ""
> > +echo ""
> > +
> > +if [ ! "$(awk -F= '/WANDEV=/ { print $2 }'
> > /etc/network.$board_name)" = "$(awk -F= '/SWITCHDEV=/ { print $2 }'
> > /etc/network.$board_name)" ] ; then
> > +	wanif=$(uci -q get network.wan.ifname)
> > +	link=$(cat /sys/class/net/${wanif}/operstate)
> > +	if [ "$link" = "up" ] ; then
> > +		speed="connected"
> > +	else
> > +		speed="no link"
> > +	fi
> > +	printf '%-10s%-5s%-13s%s\n' "WAN-Port: " "${link} " "- WAN
> > " "@ $speed"
> > +fi
> > +
> > +for internalport in $portorder
> > +do
> > +	line=$(swconfig dev switch0 port "$internalport" show | tr
> > -d '\n' | tr -d '\t')
> > +	port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/')
> > +	printf '%-10s' "Port #${port}: "
> > +	format_port "${line}"
> > +done
> > +echo ""
> > +
> > +swconfig dev switch0 show | grep "\t*link:" | while read line ; do
> > +	line=$(echo "$line" | tr -d '\n' | tr -d '\t')
> > +	port=$(echo "$line" | sed 's/.* port:\([^ ]*\) .*/\1/')
> > +	if echo "$portorder" | grep -q "$port" ; then
> > +		continue
> > +	fi
> > +	printf '%-10s' "Port #${port}: "
> > +	format_port "${line}"
> > +done
> > +
> > +echo ""
> >  echo "END"
> > 
> 
>