[2/2] show_info: Fix traffic statistics and add assignment without switch

Submitted by Adrian Schmutzler on Aug. 10, 2017, 1:53 p.m.

Details

Message ID 1502373212-2487-2-git-send-email-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler Aug. 10, 2017, 1:53 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       | 105 ++++++++++++---------
 1 file changed, 58 insertions(+), 47 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 fc7cffb..8677aad 100755
--- a/src/packages/fff/fff-support/files/usr/sbin/show_info
+++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
@@ -9,15 +9,16 @@  HOSTNAME=$(uci -q get 'system.@system[0].hostname')
 
 human_bytes() {
 	while read B ; do
-		[ $B -lt 1024 ] && echo ${B} B && break
+		[ $B -lt 1024 ] && echo ${B} B && return
 		KB=$(((B+512)/1024))
-		[ $KB -lt 1024 ] && echo ${KB} KB && break
+		[ $KB -lt 1024 ] && echo ${KB} KB && return
 		MB=$(((KB+512)/1024))
-		[ $MB -lt 1024 ] && echo ${MB} MB && break
+		[ $MB -lt 1024 ] && echo ${MB} MB && return
 		GB=$(((MB+512)/1024))
-		[ $GB -lt 1024 ] && echo ${GB} GB && break
-		echo $(((GB+512)/1024)) TB
+		[ $GB -lt 1024 ] && echo ${GB} GB && return
+		echo $(((GB+512)/1024)) TB && return
 	done
+	echo "-"
 }
 format_state() {
 	batmanports=$(swconfig dev switch0 vlan 3 show | grep 'ports:')
@@ -125,16 +126,16 @@  echo "Fastd Version: $(fastd --version 2> /dev/null | cut -d' ' -f 2)"
 echo ""
 echo "-> Netz: FREIFUNK"
 echo "Nutzer: $(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W')"
-echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes | human_bytes)"
-echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes | human_bytes)"
+echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes 2> /dev/null | human_bytes)"
+echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes 2> /dev/null | human_bytes)"
 echo "IPv4 Adressen: $(addr 4 br-mesh)"
 echo "IPv6 Adressen: $(addr 6 br-mesh)"
 
 echo ""
 echo "-> Netz: WAN"
 echo "Internet vorhanden: ${internet_active}"
-echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes | human_bytes)"
-echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes | human_bytes)"
+echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2> /dev/null | human_bytes)"
+echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes 2> /dev/null | human_bytes)"
 echo "IPv4 Adressen: $(addr 4 $wanif)"
 echo "IPv6 Adressen: $(addr 6 $wanif)"
 
@@ -149,7 +150,7 @@  echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')"
 
 echo ""
 echo "-> BITRATEN-BEGRENZUNG"
-if [ "$(uci -q get 'simple-tc.example.enabled')" == "1" ] ; then
+if [ "$(uci -q get 'simple-tc.example.enabled')" = "1" ] ; then
 	echo "Aktiv: ja"
 else
 	echo "Aktiv: nein"
@@ -162,49 +163,59 @@  if grep -q 'PORTORDER=' /etc/network.$board_name ; then
 fi
 
 echo ""
-if [ -n "$portorder" ] ; then
-	echo "-> SWITCH (tatsaechliche Portreihenfolge)"
-else
-	echo "-> SWITCH (interne logische Portreihenfolge)"
-fi
+if swconfig list | grep -q switch0 ; then
+	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 ""
+	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"
+	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
-	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 ""
+	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
+	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
+else
+	echo "-> PORT ASSIGNMENT"
+	if grep -q "ONE_PORT" "/etc/network.$board_name" || grep -q "ETHPORT" "/etc/network.$board_name" ; then
+		# Device has a port set by $ETHMODE
+		. /etc/network.mode
+		. /etc/network.config
+		echo "Port Modus: $ETHMODE"
 	fi
-	printf '%-10s' "Port #${port}: "
-	format_port "${line}"
-done
+fi
 
 echo ""
 echo "END"

Comments

Christian Dresel Aug. 20, 2017, 10:43 a.m.
Hi

kannst du mir mal kurz erklären was das Problem ist? Ich hab aktuell
leider nur einen Router zur Hand wo ich aufs WebUI drauf komme, dem dem
es sowohl davor als auch danach geht, seh also keinen Unterschied. Was
genau ist also der Grund das zu ändern?

mfg

Christian

On 10.08.2017 15:53, 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       | 105 ++++++++++++---------
>  1 file changed, 58 insertions(+), 47 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 fc7cffb..8677aad 100755
> --- a/src/packages/fff/fff-support/files/usr/sbin/show_info
> +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
> @@ -9,15 +9,16 @@ HOSTNAME=$(uci -q get 'system.@system[0].hostname')
>  
>  human_bytes() {
>  	while read B ; do
> -		[ $B -lt 1024 ] && echo ${B} B && break
> +		[ $B -lt 1024 ] && echo ${B} B && return
>  		KB=$(((B+512)/1024))
> -		[ $KB -lt 1024 ] && echo ${KB} KB && break
> +		[ $KB -lt 1024 ] && echo ${KB} KB && return
>  		MB=$(((KB+512)/1024))
> -		[ $MB -lt 1024 ] && echo ${MB} MB && break
> +		[ $MB -lt 1024 ] && echo ${MB} MB && return
>  		GB=$(((MB+512)/1024))
> -		[ $GB -lt 1024 ] && echo ${GB} GB && break
> -		echo $(((GB+512)/1024)) TB
> +		[ $GB -lt 1024 ] && echo ${GB} GB && return
> +		echo $(((GB+512)/1024)) TB && return
>  	done
> +	echo "-"
>  }
>  format_state() {
>  	batmanports=$(swconfig dev switch0 vlan 3 show | grep 'ports:')
> @@ -125,16 +126,16 @@ echo "Fastd Version: $(fastd --version 2> /dev/null | cut -d' ' -f 2)"
>  echo ""
>  echo "-> Netz: FREIFUNK"
>  echo "Nutzer: $(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W')"
> -echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes | human_bytes)"
> -echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes | human_bytes)"
> +echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes 2> /dev/null | human_bytes)"
> +echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes 2> /dev/null | human_bytes)"
>  echo "IPv4 Adressen: $(addr 4 br-mesh)"
>  echo "IPv6 Adressen: $(addr 6 br-mesh)"
>  
>  echo ""
>  echo "-> Netz: WAN"
>  echo "Internet vorhanden: ${internet_active}"
> -echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes | human_bytes)"
> -echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes | human_bytes)"
> +echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2> /dev/null | human_bytes)"
> +echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes 2> /dev/null | human_bytes)"
>  echo "IPv4 Adressen: $(addr 4 $wanif)"
>  echo "IPv6 Adressen: $(addr 6 $wanif)"
>  
> @@ -149,7 +150,7 @@ echo "E-Mail Adresse: $(uci -q get 'system.@system[0].contact')"
>  
>  echo ""
>  echo "-> BITRATEN-BEGRENZUNG"
> -if [ "$(uci -q get 'simple-tc.example.enabled')" == "1" ] ; then
> +if [ "$(uci -q get 'simple-tc.example.enabled')" = "1" ] ; then
>  	echo "Aktiv: ja"
>  else
>  	echo "Aktiv: nein"
> @@ -162,49 +163,59 @@ if grep -q 'PORTORDER=' /etc/network.$board_name ; then
>  fi
>  
>  echo ""
> -if [ -n "$portorder" ] ; then
> -	echo "-> SWITCH (tatsaechliche Portreihenfolge)"
> -else
> -	echo "-> SWITCH (interne logische Portreihenfolge)"
> -fi
> +if swconfig list | grep -q switch0 ; then
> +	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 ""
> +	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"
> +	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
> -	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 ""
> +	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
> +	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
> +else
> +	echo "-> PORT ASSIGNMENT"
> +	if grep -q "ONE_PORT" "/etc/network.$board_name" || grep -q "ETHPORT" "/etc/network.$board_name" ; then
> +		# Device has a port set by $ETHMODE
> +		. /etc/network.mode
> +		. /etc/network.config
> +		echo "Port Modus: $ETHMODE"
>  	fi
> -	printf '%-10s' "Port #${port}: "
> -	format_port "${line}"
> -done
> +fi
>  
>  echo ""
>  echo "END"
>
Adrian Schmutzler Aug. 20, 2017, 8:50 p.m.
Hallo Christian,

bei den Geräten mit einem Lan-Port (z.B. Picostation) gibt es die Datei
/sys/class/net/${wanif}/statistics/rx_bytes nicht, wenn der Port als BATMAN
oder CLIENT konfiguriert ist (da es dann auch kein wanif gibt). Wenn du auf
einem solchen Gerät show_info ausführst, kommt an der entsprechenden Stelle
eine Fehlermeldung, dass die Datei (rx_bytes, tx_bytes) nicht existiert.
Dies wird zunächst unterdrückt (2>dev/null).

Zusätzlich funktioniert human_bytes() nur, wenn es eine Zahl als Argument
bekommt. Im Falle des o.g. Fehlers bekommt die Funktion aber einen leeren
String als Argument. Das siehst du sowohl im show_info als auch im WebUI (da
steht dann nicht 0 B, sondern nichts) auf z.B. einer Picostation.
Entsprechend wird in solchen Fällen dann eben nach der Änderung ein Minus
"-" zurückgegeben.

Grüße

Adrian

-----Original Message-----
From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
Christian Dresel
Sent: Sonntag, 20. August 2017 12:44
To: Adrian Schmutzler <freifunk@adrianschmutzler.de>;
franken-dev@freifunk.net
Subject: Re: [PATCH 2/2] show_info: Fix traffic statistics and add
assignment without switch

Hi

kannst du mir mal kurz erklären was das Problem ist? Ich hab aktuell leider
nur einen Router zur Hand wo ich aufs WebUI drauf komme, dem dem es sowohl
davor als auch danach geht, seh also keinen Unterschied. Was genau ist also
der Grund das zu ändern?

mfg

Christian

On 10.08.2017 15:53, 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       | 105
++++++++++++---------
>  1 file changed, 58 insertions(+), 47 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 fc7cffb..8677aad 100755
> --- a/src/packages/fff/fff-support/files/usr/sbin/show_info
> +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
> @@ -9,15 +9,16 @@ HOSTNAME=$(uci -q get 'system.@system[0].hostname')
>  
>  human_bytes() {
>  	while read B ; do
> -		[ $B -lt 1024 ] && echo ${B} B && break
> +		[ $B -lt 1024 ] && echo ${B} B && return
>  		KB=$(((B+512)/1024))
> -		[ $KB -lt 1024 ] && echo ${KB} KB && break
> +		[ $KB -lt 1024 ] && echo ${KB} KB && return
>  		MB=$(((KB+512)/1024))
> -		[ $MB -lt 1024 ] && echo ${MB} MB && break
> +		[ $MB -lt 1024 ] && echo ${MB} MB && return
>  		GB=$(((MB+512)/1024))
> -		[ $GB -lt 1024 ] && echo ${GB} GB && break
> -		echo $(((GB+512)/1024)) TB
> +		[ $GB -lt 1024 ] && echo ${GB} GB && return
> +		echo $(((GB+512)/1024)) TB && return
>  	done
> +	echo "-"
>  }
>  format_state() {
>  	batmanports=$(swconfig dev switch0 vlan 3 show | grep 'ports:') @@ 
> -125,16 +126,16 @@ echo "Fastd Version: $(fastd --version 2> /dev/null |
cut -d' ' -f 2)"
>  echo ""
>  echo "-> Netz: FREIFUNK"
>  echo "Nutzer: $(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2>
/dev/null | grep -c 'W')"
> -echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes |
human_bytes)"
> -echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes |
human_bytes)"
> +echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes 2>
/dev/null | human_bytes)"
> +echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes 2>
/dev/null | human_bytes)"
>  echo "IPv4 Adressen: $(addr 4 br-mesh)"
>  echo "IPv6 Adressen: $(addr 6 br-mesh)"
>  
>  echo ""
>  echo "-> Netz: WAN"
>  echo "Internet vorhanden: ${internet_active}"
> -echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes |
human_bytes)"
> -echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes |
human_bytes)"
> +echo "Empfangen: $(cat /sys/class/net/${wanif}/statistics/rx_bytes 2>
/dev/null | human_bytes)"
> +echo "Gesendet: $(cat /sys/class/net/${wanif}/statistics/tx_bytes 2>
/dev/null | human_bytes)"
>  echo "IPv4 Adressen: $(addr 4 $wanif)"
>  echo "IPv6 Adressen: $(addr 6 $wanif)"
>  
> @@ -149,7 +150,7 @@ echo "E-Mail Adresse: $(uci -q get
'system.@system[0].contact')"
>  
>  echo ""
>  echo "-> BITRATEN-BEGRENZUNG"
> -if [ "$(uci -q get 'simple-tc.example.enabled')" == "1" ] ; then
> +if [ "$(uci -q get 'simple-tc.example.enabled')" = "1" ] ; then
>  	echo "Aktiv: ja"
>  else
>  	echo "Aktiv: nein"
> @@ -162,49 +163,59 @@ if grep -q 'PORTORDER=' /etc/network.$board_name 
> ; then  fi
>  
>  echo ""
> -if [ -n "$portorder" ] ; then
> -	echo "-> SWITCH (tatsaechliche Portreihenfolge)"
> -else
> -	echo "-> SWITCH (interne logische Portreihenfolge)"
> -fi
> +if swconfig list | grep -q switch0 ; then
> +	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 ""
> +	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"
> +	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
> -	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 ""
> +	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
> +	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
> +else
> +	echo "-> PORT ASSIGNMENT"
> +	if grep -q "ONE_PORT" "/etc/network.$board_name" || grep -q
"ETHPORT" "/etc/network.$board_name" ; then
> +		# Device has a port set by $ETHMODE
> +		. /etc/network.mode
> +		. /etc/network.config
> +		echo "Port Modus: $ETHMODE"
>  	fi
> -	printf '%-10s' "Port #${port}: "
> -	format_port "${line}"
> -done
> +fi
>  
>  echo ""
>  echo "END"
>