firmware/src/packages/fff/fff-web-ui/files/www/ssl/cgi-bin/ports.html
Fabian Bläse 0234203bed treewide: remove ETHPORT leftovers
ETHPORT was used to configure devices with two physical ethernet ports,
one of them being connected directly to the CPU, while the other one is
connected to the internal switch of the platform.

As the GL-AR150 has been converted to the TWO_PORT codepath and no other
devices utilizes ETHPORT, remove all leftovers.

Signed-off-by: Fabian Bläse <fabian@blaese.de>
Tested-by: Sebastian Beck <freifunk@beibecks.de>
2022-03-31 19:31:25 +02:00

246 lines
8.9 KiB
HTML
Executable File

#!/usr/bin/haserl
<%
board_name=$(uci -q get board.model.name)
# write
if [ "$REQUEST_METHOD" = "POST" ] ; then
if [ "$POST_change_mode" != "" ] ; then
sed -i '/^.*# set via WebUI/d' /etc/network.config
echo "ETHMODE=\"${POST_mode}\" # set via WebUI" >> /etc/network.config
sed -i '/^FORCEPARSE/d' /etc/network.config
echo "FORCEPARSE='2'" >> /etc/network.config
do_reboot=1
MSG='<span class="green">Port Modus ge&auml;ndert! Router startet neu...</span>'
fi
if [ "$POST_change_twoport" != "" ] ; then
sed -i '/^.*# set via WebUI/d' /etc/network.config
echo "LAN0MODE=\"${POST_mode0}\" # set via WebUI" >> /etc/network.config
echo "LAN1MODE=\"${POST_mode1}\" # set via WebUI" >> /etc/network.config
sed -i '/^FORCEPARSE/d' /etc/network.config
echo "FORCEPARSE='2'" >> /etc/network.config
do_reboot=1
MSG='<span class="green">Port Modus ge&auml;ndert! Router startet neu...</span>'
fi
fi
#helpers
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
echo -n "<span class=\"assign\" style=\"color:black\">Multi-Link"
elif echo "$clientports" | grep -q "${1}" ; then
echo -n "<span class=\"assign\" style=\"color:orange\">CLIENT"
elif echo "$batmanports" | grep -q "${1}" ; then
echo -n "<span class=\"assign\" style=\"color:green\">BATMAN"
elif echo "$wanports" | grep -q "${1}" ; then
echo -n "<span class=\"assign\" style=\"color:blue\">WAN"
else
echo -n "<span class=\"assign\" style=\"color:red\">Unknown"
fi
echo "</span><br />"
}
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
echo "<img src=\"/port_${link}.png\" alt=\"${link}\" /><br /><br />"
format_state "${port}"
echo "<span class=\"stat\">$speed<br />$duplex</span><br /><br />"
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
echo "<span class=\"vassign\">tagged</span><br />"
elif echo "$vports" | grep -q "${port}" ; then
echo "<span class=\"vassign\">untagged</span><br />"
else
echo "<span class=\"vassign\">-</span><br />"
fi
done
}
%>
<%in /www/include/header %>
<%in /www/include/helpers %>
<% show_msg %>
<form method="post">
<table style="width: 100%;">
<% if swconfig list | grep -q switch0 ; then %>
<%# Device has a switch %>
<tr><td>
<fieldset>
<legend>Switch</legend>
<table>
<tr>
<%
echo "<td class=\"swport\" style=\"vertical-align:bottom\">"
swconfig dev switch0 show | grep -E "VLAN\s[0-9]+:[ \t]*$" | while read line ; do
vid=$(echo "$line" | sed 's/.*VLAN \([^:]*\).*/\1/')
echo "<span class=\"vassign\" style=\"font-weight:bold;font-style:italic\">VLAN $vid </span><br />"
done
echo "</td>"
echo "<td class=\"swport\" style=\"width:2em\"></td>"
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
echo "<td class=\"swport\">"
echo "<span class=\"port\" style=\"color:blue\">WAN-Port</span><br />"
echo "<img src=\"/port_${link}.png\" alt=\"${link}\" /><br /><br />"
echo "<span class=\"assign\" style=\"color:blue\">WAN</span><br />"
echo "<span class=\"stat\">$speed</span>"
echo "</td>"
fi
. /lib/functions/fff/portorder
portorder=$(get_port_order)
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/')
echo "<td class=\"swport\">"
echo "<span class=\"port\">Port #${port}</span><br />"
format_port "${line}"
echo "</td>"
done
if [ -n "$portorder" ] ; then
echo "<td class=\"swport\" style=\"width:4em\"></td>"
fi
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
echo "<td class=\"swport\">"
echo "<span class=\"port\">Port #${port}</span><br />"
format_port "${line}"
echo "</td>"
done
%>
</tr>
</table>
<table>
<tr><td></td></tr>
<tr><td>
<% if [ -n "$portorder" ] ; then %>
Dies zeigt die tats&auml;chliche Zuordnung der Ports, wobei der WAN Port auf der linken Seite liegt. Die Nummerierung entspricht der internen Zuordnung!<br />
<% else %>
Die Nummerierung und Reihenfolge der Ports entspricht nicht notwendigerweise der der Netzwerkanschl&uuml;sse am Router!<br />
<% fi %>
Einer (oder mehrere) der Ports sind keine Netzwerkanschl&uuml;sse am Router sondern binden die Router CPU an den internen Switch an.
</td></tr>
</table>
</fieldset>
</td></tr>
<% fi %>
<% if grep -q "ONE_PORT" "/etc/network.$board_name" ; then %>
<%
# Device has a port set by $ETHMODE
. /etc/network.mode
. /etc/network.config
%>
<tr><td>
<fieldset>
<legend>Ethernet Anschluss</legend>
<table>
<tr>
<th style="width: 1em;">Anschluss&nbsp;Modus:</th>
<td>
<select name="mode">
<option value="BATMAN" <% [ "$ETHMODE" = "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
<option value="CLIENT" <% [ "$ETHMODE" = "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
<% if grep -q "ONE_PORT" "/etc/network.$board_name" ; then %>
<option value="WAN" <% [ "$ETHMODE" = "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
<% fi %>
</select>
</td>
</tr>
<tr><td colspan="2"><input type="submit" name="change_mode" /></td></tr>
<tr><td colspan="2"></td></tr>
<tr><td colspan="2">
WAN: Knoten stellt &uuml;ber Ethernet Anschluss Verbindung zum Internet her.<br />
Client: Normale Clients stellen &uuml;ber Ethernet Anschluss des Knotens Verbindung zum Freifunk Netz her.<br />
BATMAN: Knoten stellt &uuml;ber Ethernet Anschluss Verbindung zu anderen MESH Knoten her.<br /><br />
Wenn diese Einstellung ver&auml;ndert wird, wird eine evtl. vorhandene manuelle Netzwerkkonfiguration in der
<tt>/etc/config/network</tt> &uuml;berschrieben.<br />
Anschlie&szlig;end wird der Router neugestartet.
</td></tr>
</table>
</fieldset>
</td></tr>
<% fi %>
<% if grep -q "LAN0PORT" "/etc/network.$board_name" || grep -q "LAN1PORT" "/etc/network.$board_name" ; then %>
<%
# Device has two ports
. /etc/network.mode
. /etc/network.config
%>
<tr><td>
<fieldset>
<legend>Ethernet Anschl&uuml;sse</legend>
<table>
<tr>
<th style="width: 15em;text-align:left">Modus&nbsp;Anschluss&nbsp;0:</th>
<th style="width: 15em;text-align:left">Modus&nbsp;Anschluss&nbsp;1:</th>
<th></th>
</tr>
<tr>
<td>
<select name="mode0">
<option value="BATMAN" <% [ "$LAN0MODE" = "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
<option value="CLIENT" <% [ "$LAN0MODE" = "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
<option value="WAN" <% [ "$LAN0MODE" = "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
</select>
</td>
<td>
<select name="mode1">
<option value="BATMAN" <% [ "$LAN1MODE" = "BATMAN" ] && echo -n 'selected="selected" ' %>>BATMAN</option>
<option value="CLIENT" <% [ "$LAN1MODE" = "CLIENT" ] && echo -n 'selected="selected" ' %>>CLIENT</option>
<option value="WAN" <% [ "$LAN1MODE" = "WAN" ] && echo -n 'selected="selected" ' %>>WAN</option>
</select>
</td>
<td><input type="submit" name="change_twoport" /></td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3">
WAN: Knoten stellt &uuml;ber Ethernet Anschluss Verbindung zum Internet her.<br />
Client: Normale Clients stellen &uuml;ber Ethernet Anschluss des Knotens Verbindung zum Freifunk Netz her.<br />
BATMAN: Knoten stellt &uuml;ber Ethernet Anschluss Verbindung zu anderen MESH Knoten her.<br /><br />
Wenn diese Einstellung ver&auml;ndert wird, wird eine evtl. vorhandene manuelle Netzwerkkonfiguration in der
<tt>/etc/config/network</tt> &uuml;berschrieben.<br />
Anschlie&szlig;end wird der Router neugestartet.
</td></tr>
</table>
</fieldset>
</td></tr>
<% fi %>
</table>
</form>
<%in /www/include/footer %>
<%
# write
if [ "$do_reboot" = "1" ] ; then
reboot
fi
%>