[PATCH v3] show_info: Add assignment without switch

Christian Dresel fff at chrisi01.de
So Nov 12 18:19:43 CET 2017


hi

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

Es sind wieder ein paar mal Leerzeichen vor den ; am Zeilenende, hatten
wir ja glaub ich schon mal.

mfg

Christian

On 25.10.2017 15:01, Adrian Schmutzler wrote:
> Changes in v2:
> Fix VLAN grep to also work on 1043 V1.
>
> Changes in v3:
> Removed part "fix traffic statistics" as this is addressed
> in a separate patch.
>
> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
>
> Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> ---
>  .../fff/fff-support/files/usr/sbin/show_info       | 96 ++++++++++++----------
>  1 file changed, 53 insertions(+), 43 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 95c8853..e446e41 100755
> --- a/src/packages/fff/fff-support/files/usr/sbin/show_info
> +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info
> @@ -41,7 +41,7 @@ format_port() {
>  	format_state "${port}"
>  	printf '%-26s' "@ $speed $duplex "
>  	
> -	swconfig dev switch0 show | grep "VLAN\s" | while read line ; do
> +	swconfig dev switch0 show | grep -E "VLAN\s[0-9]+:[ \t]*$" | 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
> @@ -127,16 +127,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)"
>  
> @@ -151,7 +151,7 @@ echo "E-Mail Adresse: $(uci -q get 'system. at 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"
> @@ -164,49 +164,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 -E "VLAN\s[0-9]+:[ \t]*$" | 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"


-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 819 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20171112/856a7777/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev