forked from freifunk-franken/firmware
fff-nodewatcher: self-detect client interfaces
Signed-off-by: Tim Niemeyer <tim@tn-x.org> Reviewed-by: Jan Kraus <mayosemmel@gmail.com>
This commit is contained in:
parent
d9d69f55aa
commit
92dc0c647d
|
@ -110,7 +110,7 @@ Jetzt gehst du n Kaffee trinken.
|
|||
|
||||
### Netzwerkeinstellungen korrekt setzen
|
||||
Am Ende sollte im bin/ Verzeichnis das Image für v1 und v2 liegen. Das v2 Image wird auf den Router geflasht. Achtung: Eventuell ist das Netzwerk jetzt so falsch eingestellt, dass man nicht mehr über Netzwerk auf den Router zugreifen kann. Am einfachsten ist es den Router dann über eine serielle Konsole zu verwenden. Theoretisch kann man an den unterschiedlichen LAN-Ports mit der IPv6 Link-Local aus der MAC Adresse des Geräts versuchen drauf zu kommen. Es kann auch sein, dass die IPv6 +/- 1 am Ende hat. Letztlich kann das funktionieren, ist aber aufwändig und da am LAN Einstellungen verändert werden sollen, ist die serielle Konsole das Mittel der Wahl!
|
||||
Wenn man dann auf dem Router drauf ist, muss als erstes festgestellt werden, welches Ethernet-Device für den WAN Port zuständig ist. Mir sind da folgende Möglichkeiten bekannt. a) WAN ist eth0, b) WAN ist eth1, c) WAN ist teil vom Switch eth0. Dementsprechend wird das WANDEV auf dem Router in der /etc/network.tl-wr1043nd-v2 konfiguriert. Wenn WAN ein eigenes ethX hat, dann muss WAN_PORTS="" sein. Dann muss eingestellt werden welches Ethernet-Device an dem internen Switch angeschlossen ist (swconfig list). Dieses wird als SWITCHDEV konfiguriert. Ich glaub CLIENTIF musst nicht angepasst werden. Aber es muss noch eingestellt werden, welches Ethernet oder Wifi Device die MAC Adresse hat, die auch unter dem Gerät steht. Dieses Device wird als ROUTERMAC eingetragen. Nun ist es an der Zeit die Einstellungen zu testen, dafür muss die falsche Netzwerk-Config zurück gesetzt werden:
|
||||
Wenn man dann auf dem Router drauf ist, muss als erstes festgestellt werden, welches Ethernet-Device für den WAN Port zuständig ist. Mir sind da folgende Möglichkeiten bekannt. a) WAN ist eth0, b) WAN ist eth1, c) WAN ist teil vom Switch eth0. Dementsprechend wird das WANDEV auf dem Router in der /etc/network.tl-wr1043nd-v2 konfiguriert. Wenn WAN ein eigenes ethX hat, dann muss WAN_PORTS="" sein. Dann muss eingestellt werden welches Ethernet-Device an dem internen Switch angeschlossen ist (swconfig list). Dieses wird als SWITCHDEV konfiguriert. Es muss noch eingestellt werden, welches Ethernet oder Wifi Device die MAC Adresse hat, die auch unter dem Gerät steht. Dieses Device wird als ROUTERMAC eingetragen. Nun ist es an der Zeit die Einstellungen zu testen, dafür muss die falsche Netzwerk-Config zurück gesetzt werden:
|
||||
```
|
||||
cp /rom/etc/config/network /etc/config/network
|
||||
reboot
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fff-network
|
||||
PKG_VERSION:=0.0.2
|
||||
PKG_VERSION:=0.0.3
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-network
|
||||
|
|
|
@ -3,7 +3,6 @@ SWITCHDEV=eth0
|
|||
CLIENT_PORTS="0t"
|
||||
WAN_PORTS="0t"
|
||||
BATMAN_PORTS="0t"
|
||||
CLIENTIF="w2ap eth0.1"
|
||||
|
||||
ETHMESHMAC="w2ap"
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ WANDEV=eth0
|
|||
SWITCHDEV=eth1
|
||||
WAN_PORTS=
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=eth1
|
||||
ROUTERMAC=eth0
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ BATMAN_PORTS=""
|
|||
|
||||
. /etc/network.mode
|
||||
|
||||
CLIENTIF="w2ap"
|
||||
ETHMESHMAC=eth0
|
||||
ROUTERMAC=eth0
|
||||
|
||||
|
@ -23,7 +22,6 @@ if [ "$ETHMODE" = "WAN" ] ; then
|
|||
uci set network.wan.ifname=$WANDEV
|
||||
elif [ "$ETHMODE" = "CLIENT" ] ; then
|
||||
## Activate Client:
|
||||
CLIENTIF="w2ap eth0"
|
||||
uci set network.mesh.ifname="bat0 $SWITCHDEV"
|
||||
else
|
||||
## Activate BATMAN:
|
||||
|
|
|
@ -6,7 +6,6 @@ BATMAN_PORTS=""
|
|||
|
||||
. /etc/network.mode
|
||||
|
||||
CLIENTIF="w2ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w2mesh
|
||||
|
||||
|
@ -23,7 +22,6 @@ if [ "$ETHMODE" = "WAN" ] ; then
|
|||
uci set network.wan.ifname=$WANDEV
|
||||
elif [ "$ETHMODE" = "CLIENT" ] ; then
|
||||
## Activate Client:
|
||||
CLIENTIF="w2ap eth0"
|
||||
uci set network.mesh.ifname="bat0 $SWITCHDEV"
|
||||
else
|
||||
## Activate BATMAN:
|
||||
|
|
|
@ -6,7 +6,6 @@ BATMAN_PORTS=""
|
|||
|
||||
. /etc/network.mode
|
||||
|
||||
CLIENTIF="w2ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w2mesh
|
||||
|
||||
|
@ -23,7 +22,6 @@ if [ "$ETHMODE" = "WAN" ] ; then
|
|||
uci set network.wan.ifname=$WANDEV
|
||||
elif [ "$ETHMODE" = "CLIENT" ] ; then
|
||||
## Activate Client:
|
||||
CLIENTIF="w2ap eth0"
|
||||
uci set network.mesh.ifname="bat0 $SWITCHDEV"
|
||||
else
|
||||
## Activate BATMAN:
|
||||
|
|
|
@ -4,6 +4,5 @@ CLIENT_PORTS="0t 1 2"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="0t 3 4"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap w5ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w2mesh
|
|
@ -4,6 +4,5 @@ CLIENT_PORTS="0t 4 5"
|
|||
WAN_PORTS="0t 1"
|
||||
BATMAN_PORTS="0t 2 3"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap w5ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w5mesh
|
|
@ -4,6 +4,5 @@ CLIENT_PORTS="0t 4 5"
|
|||
WAN_PORTS="0t 1"
|
||||
BATMAN_PORTS="0t 2 3"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap w5ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w5mesh
|
|
@ -4,6 +4,5 @@ CLIENT_PORTS="0t 4 5"
|
|||
WAN_PORTS="0t 1"
|
||||
BATMAN_PORTS="0t 2 3"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap w5ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w5mesh
|
|
@ -4,6 +4,5 @@ CLIENT_PORTS="3 4 5t"
|
|||
WAN_PORTS="0 5t"
|
||||
BATMAN_PORTS="1 2 5t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=w2ap
|
||||
ROUTERMAC=eth0
|
|
@ -4,6 +4,5 @@ CLIENT_PORTS="1 2 6t"
|
|||
WAN_PORTS="5 6t"
|
||||
BATMAN_PORTS="3 4 6t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=eth1
|
|
@ -4,6 +4,5 @@ CLIENT_PORTS="1 2 6t"
|
|||
WAN_PORTS="5 6t"
|
||||
BATMAN_PORTS="3 4 6t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=eth1
|
|
@ -5,6 +5,5 @@ CLIENT_PORTS="1 4 0t"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="2 3 0t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=eth1
|
||||
ROUTERMAC=w2mesh
|
|
@ -5,6 +5,5 @@ CLIENT_PORTS="1 2 0t"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="3 4 0t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=eth1
|
||||
ROUTERMAC=w2mesh
|
|
@ -5,6 +5,5 @@ CLIENT_PORTS="1 4 0t"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="2 3 0t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=eth1
|
||||
ROUTERMAC=w2mesh
|
|
@ -6,6 +6,5 @@ CLIENT_PORTS="1 2 0t"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="3 4 0t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=eth1
|
||||
ROUTERMAC=eth0
|
||||
|
|
|
@ -6,6 +6,5 @@ CLIENT_PORTS="1 2 0t"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="3 4 0t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=eth1
|
||||
ROUTERMAC=eth0
|
||||
|
|
|
@ -6,6 +6,5 @@ CLIENT_PORTS="1 4 0t"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="3 2 0t"
|
||||
|
||||
CLIENTIF="eth1.1 w2ap"
|
||||
ETHMESHMAC=eth0
|
||||
ROUTERMAC=eth1
|
||||
|
|
|
@ -6,6 +6,5 @@ CLIENT_PORTS="1 2 0t"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="3 4 0t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=eth1
|
||||
ROUTERMAC=eth0
|
||||
|
|
|
@ -6,6 +6,5 @@ CLIENT_PORTS="1 2 0t"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="3 4 0t"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap"
|
||||
ETHMESHMAC=eth1
|
||||
ROUTERMAC=wlan0
|
||||
|
|
|
@ -4,6 +4,5 @@ CLIENT_PORTS="1 4 0t"
|
|||
WAN_PORTS=
|
||||
BATMAN_PORTS="3 2 0t"
|
||||
|
||||
CLIENTIF="eth1.1 w2ap"
|
||||
ETHMESHMAC=eth0
|
||||
ROUTERMAC=eth1
|
||||
|
|
|
@ -6,7 +6,6 @@ BATMAN_PORTS=""
|
|||
|
||||
. /etc/network.mode
|
||||
|
||||
CLIENTIF="w2ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w2mesh
|
||||
|
||||
|
@ -23,7 +22,6 @@ if [ "$ETHMODE" = "WAN" ] ; then
|
|||
uci set network.wan.ifname=$WANDEV
|
||||
elif [ "$ETHMODE" = "CLIENT" ] ; then
|
||||
## Activate Client:
|
||||
CLIENTIF="w2ap eth0"
|
||||
uci set network.mesh.ifname="bat0 $SWITCHDEV"
|
||||
else
|
||||
## Activate BATMAN:
|
||||
|
|
|
@ -6,7 +6,6 @@ BATMAN_PORTS=""
|
|||
|
||||
. /etc/network.mode
|
||||
|
||||
CLIENTIF="w2ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w2mesh
|
||||
|
||||
|
@ -25,7 +24,6 @@ if [ "$ETHMODE" = "WAN" ] ; then
|
|||
uci set network.wan.ifname=$WANDEV
|
||||
elif [ "$ETHMODE" = "CLIENT" ] ; then
|
||||
## Activate Client:
|
||||
CLIENTIF="w2ap eth0"
|
||||
uci set network.mesh.ifname="bat0 $SWITCHDEV"
|
||||
else
|
||||
## Activate BATMAN:
|
||||
|
|
|
@ -6,7 +6,6 @@ BATMAN_PORTS=""
|
|||
|
||||
. /etc/network.mode
|
||||
|
||||
CLIENTIF="w2ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w2mesh
|
||||
|
||||
|
@ -23,7 +22,6 @@ if [ "$ETHMODE" = "WAN" ] ; then
|
|||
uci set network.wan.ifname=$WANDEV
|
||||
elif [ "$ETHMODE" = "CLIENT" ] ; then
|
||||
## Activate Client:
|
||||
CLIENTIF="w2ap eth0"
|
||||
uci set network.mesh.ifname="bat0 $SWITCHDEV"
|
||||
else
|
||||
## Activate BATMAN:
|
||||
|
|
|
@ -12,12 +12,6 @@
|
|||
BOARD="$(uci get board.model.name)"
|
||||
. /etc/network.$BOARD
|
||||
|
||||
if ! uci get nodewatcher.@network[0].client_interfaces; then
|
||||
echo "Setting nodewatchers client interfaces to: $CLIENTIF"
|
||||
uci set nodewatcher.@network[0].client_interfaces="$CLIENTIF"
|
||||
uci commit
|
||||
fi
|
||||
|
||||
if ! uci get network.$SWITCHDEV.ifname; then
|
||||
|
||||
SWITCHHW=$(swconfig list | awk '{ print $4 }')
|
||||
|
|
|
@ -4,6 +4,5 @@ CLIENT_PORTS="0t 4 5"
|
|||
WAN_PORTS="0t 1"
|
||||
BATMAN_PORTS="0t 2 3"
|
||||
|
||||
CLIENTIF="eth0.1 w2ap w5ap"
|
||||
ETHMESHMAC=
|
||||
ROUTERMAC=w5mesh
|
|
@ -1,7 +1,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fff-nodewatcher
|
||||
PKG_VERSION:=37
|
||||
PKG_VERSION:=38
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-nodewatcher
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Netmon Nodewatcher (C) 2010-2012 Freifunk Oldenburg
|
||||
# License; GPL v3
|
||||
|
||||
SCRIPT_VERSION="37"
|
||||
SCRIPT_VERSION="38"
|
||||
|
||||
test -f /tmp/started || exit
|
||||
|
||||
|
@ -13,7 +13,6 @@ if [ -f /etc/config/nodewatcher ];then
|
|||
SCRIPT_LOGFILE=`uci get nodewatcher.@script[0].logfile`
|
||||
SCRIPT_DATA_FILE=`uci get nodewatcher.@script[0].data_file`
|
||||
MESH_INTERFACE=`uci get nodewatcher.@network[0].mesh_interface`
|
||||
CLIENT_INTERFACES=`uci get nodewatcher.@network[0].client_interfaces`
|
||||
IFACEBLACKLIST=`uci get nodewatcher.@network[0].iface_blacklist`
|
||||
IPWHITELIST=`uci get nodewatcher.@network[0].ip_whitelist`
|
||||
SCRIPT_STATUS_FILE=`uci get nodewatcher.@script[0].status_text_file`
|
||||
|
@ -228,6 +227,7 @@ crawl() {
|
|||
err "`date`: Collecting information about conected clients"
|
||||
#CLIENTS
|
||||
client_count=0
|
||||
CLIENT_INTERFACES=$(bridge link | awk '$2 !~/^bat/{ printf $2" " }')
|
||||
for clientif in ${CLIENT_INTERFACES}; do
|
||||
local cc=$(bridge fdb show br $MESH_INTERFACE brport $clientif | grep -v self | grep -v permanent -c)
|
||||
client_count=$((client_count + $cc))
|
||||
|
|
Loading…
Reference in New Issue