mwan3: add troublshoot command from LuCI
authorFlorian Eckert <fe@dev.tdt.de>
Mon, 5 Jul 2021 14:15:02 +0000 (16:15 +0200)
committerFlorian Eckert <fe@dev.tdt.de>
Thu, 8 Jul 2021 07:07:52 +0000 (09:07 +0200)
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
net/mwan3/files/usr/sbin/mwan3

index 0bb26b2eaf8113493c666450e43b88f5a518ab53..1ba6004bb4f5a65ad0d9910419bdeb36ba1e9c2a 100755 (executable)
@@ -30,6 +30,7 @@ EOF
        command_help "connected" "Show directly connected networks"
        command_help "rules" "Show active rules"
        command_help "status" "Show all status"
+       command_help "internal <ipv4|ipv6>" "Show internal configuration <default: ipv4>"
        command_help "use <iface> <cmd>" "Run a command bound to <iface> and avoid mwan3 rules"
 }
 
@@ -113,6 +114,92 @@ status()
        rules
 }
 
+internal()
+{
+       local family="$1"
+       local dash="-------------------------------------------------"
+
+       if [ -f "/etc/openwrt_release" ]; then
+               . /etc/openwrt_release
+       fi
+
+       local ipt ip output
+
+       if [ "$family" = "ipv6" ]; then
+               ipt="$IPT6"
+               ip="$IP6"
+       else
+               ipt="$IPT4"
+               ip="$IP4"
+       fi
+
+       echo "Software-Version"
+       echo "$dash"
+
+       if [ "$DISTRIB_RELEASE" != "" ]; then
+               echo "OpenWrt - $DISTRIB_RELEASE"
+       else
+               echo "OpenWrt - unknown"
+       fi
+
+       echo ""
+       echo "Output of \"$ip a show\""
+       echo "$dash"
+       output="$($ip a show)"
+       if [ "$output" != "" ]; then
+               echo "$output"
+       else
+               echo "No data found"
+       fi
+
+       echo ""
+       echo "Output of \"$ip route show\""
+       echo "$dash"
+       output="$($ip route show)"
+       if [ "$output" != "" ]; then
+               echo "$output"
+       else
+               echo "No data found"
+       fi
+
+       echo ""
+       echo "Output of \"$ip rule show\""
+       echo "$dash"
+       output="$($ip rule show)"
+       if [ "$output" != "" ]; then
+               echo "$output"
+       else
+               echo "No data found"
+       fi
+
+       echo ""
+       echo "Output of \"$ip route list table 1-250\""
+       echo "$dash"
+       local dump=0
+       for i in $(seq 1 250); do
+               output=$($ip route list table $i 2>/dev/null)
+               if [ "$output" != "" ];then
+                       dump=1
+                       echo "Routing table $i:"
+                       echo "$output"
+                       echo ""
+               fi
+       done
+       if [ "$dump" = "0" ]; then
+               echo "No data found"
+               echo ""
+       fi
+
+       echo "Output of \"$ipt -L -v -n\""
+       echo "$dash"
+       output="$($ipt -L -v -n)"
+       if [ "$output" != "" ]; then
+               echo "$output"
+       else
+               echo "No data found"
+       fi
+}
+
 start() {
        /etc/init.d/mwan3 enable
        /etc/init.d/mwan3 start
@@ -154,7 +241,7 @@ use() {
 }
 
 case "$1" in
-       ifup|ifdown|interfaces|policies|connected|rules|status|start|stop|restart|use)
+       ifup|ifdown|interfaces|policies|connected|rules|status|start|stop|restart|use|internal)
                mwan3_init
                # shellcheck disable=SC2048
                $*