[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