treewide: add support for br-client
br-mesh has been renamed to br-client in recent firmware. Implement br-client parallel to br-mesh. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
parent
e4977356fc
commit
bd8d0280f6
|
@ -33,7 +33,7 @@ def ban_router(mysql,dbid):
|
|||
mac = mysql.findone("""
|
||||
SELECT mac
|
||||
FROM router_netif
|
||||
WHERE router = %s AND netif = 'br-mesh'
|
||||
WHERE router = %s AND (netif = 'br-mesh' OR netif = 'br-client')
|
||||
""",(dbid,),"mac")
|
||||
added = mysql.utcnow()
|
||||
if mac:
|
||||
|
@ -51,6 +51,8 @@ def import_nodewatcher_xml(mysql, infdict, mac, xml, banned, hoodsv2, hoodsdict,
|
|||
# The following values should stay available after router reset
|
||||
keepvalues = ['lat','lng','description','position_comment','contact']
|
||||
|
||||
brifs = ('br-mesh','br-client')
|
||||
|
||||
router_id = None
|
||||
olddata = False
|
||||
uptime = 0
|
||||
|
@ -180,7 +182,7 @@ def import_nodewatcher_xml(mysql, infdict, mac, xml, banned, hoodsv2, hoodsdict,
|
|||
akeys = []
|
||||
for n in router_update["netifs"]:
|
||||
nkeys.append(n["name"])
|
||||
if n["name"]=='br-mesh': # Only br-mesh will normally have assigned IPv6 addresses
|
||||
if n["name"] in brifs: # Only br-client will normally have assigned IPv6 addresses
|
||||
akeys = n["ipv6_addrs"]
|
||||
|
||||
if nkeys:
|
||||
|
@ -194,7 +196,7 @@ def import_nodewatcher_xml(mysql, infdict, mac, xml, banned, hoodsv2, hoodsdict,
|
|||
if akeys:
|
||||
adata = mysql.fetchall("SELECT netif, ipv6 FROM router_ipv6 WHERE router = %s",(router_id,))
|
||||
for a in adata:
|
||||
if a["netif"]=='br-mesh' and a["ipv6"] in akeys:
|
||||
if a["netif"] in brifs and a["ipv6"] in akeys:
|
||||
continue
|
||||
mysql.execute("DELETE FROM router_ipv6 WHERE router = %s AND netif = %s AND ipv6 = %s",(router_id,a["netif"],a["ipv6"],))
|
||||
else:
|
||||
|
|
|
@ -365,7 +365,7 @@ def wifianalhelper(router_data, headline):
|
|||
for router in router_data:
|
||||
if not router['mac']:
|
||||
continue
|
||||
if router["netif"] == 'br-mesh':
|
||||
if router["netif"] == 'br-mesh' or router["netif"] == 'br-client':
|
||||
s += int2mac(router["mac"]) + "|Mesh_" + router['hostname'] + "\n"
|
||||
elif router["netif"] == 'w2ap':
|
||||
s += int2mac(router["mac"]) + "|" + router['hostname'] + "\n"
|
||||
|
@ -432,7 +432,7 @@ def dnsentries():
|
|||
return Response(s,mimetype='text/plain')
|
||||
|
||||
def nodelist_helper(where = "",data=()):
|
||||
# Suppresses routers without br-mesh
|
||||
# Suppresses routers without br-client
|
||||
mysql = FreifunkMySQL()
|
||||
router_data = mysql.fetchall("""
|
||||
SELECT router.id, hostname, status, hoods.id AS hoodid, hoods.name AS hood, contact, nickname, hardware, firmware, clients, lat, lng, last_contact, mac, sys_loadavg, fe80_addr
|
||||
|
@ -440,7 +440,7 @@ def nodelist_helper(where = "",data=()):
|
|||
INNER JOIN hoods ON router.hood = hoods.id
|
||||
INNER JOIN router_netif ON router.id = router_netif.router
|
||||
LEFT JOIN users ON router.contact = users.email
|
||||
WHERE netif = 'br-mesh' {}
|
||||
WHERE (netif = 'br-mesh' OR netif = 'br-client') {}
|
||||
ORDER BY hostname ASC
|
||||
""".format(where),data)
|
||||
router_data = mysql.utcawaretuple(router_data,"last_contact")
|
||||
|
@ -470,7 +470,7 @@ def nodelist_helper(where = "",data=()):
|
|||
fastd += 1
|
||||
elif netif.startswith('l2tp'):
|
||||
l2tp += 1
|
||||
#elif netif['netif'] == 'br-mesh' and 'mac' in netif:
|
||||
#elif netif['netif'] in ('br-mesh','br-client') and 'mac' in netif:
|
||||
# mac = netif["mac"]
|
||||
|
||||
if not router['mac']:
|
||||
|
@ -538,7 +538,7 @@ def no_position():
|
|||
|
||||
@api.route('/routers')
|
||||
def routers():
|
||||
# Suppresses routers without br-mesh
|
||||
# Suppresses routers without br-client
|
||||
return jsonify(nodelist_helper())
|
||||
|
||||
@api.route('/routers_by_nickname/<nickname>')
|
||||
|
|
|
@ -60,7 +60,7 @@ def router_list():
|
|||
LEFT JOIN (
|
||||
SELECT router, blocked.mac AS blocked FROM router_netif
|
||||
INNER JOIN blocked ON router_netif.mac = blocked.mac
|
||||
WHERE netif = 'br-mesh'
|
||||
WHERE netif = 'br-mesh' OR netif = 'br-client'
|
||||
) AS b
|
||||
ON router.id = b.router
|
||||
{}
|
||||
|
@ -157,7 +157,7 @@ def router_info(dbid):
|
|||
netifs = []
|
||||
for n in router["netifs"]:
|
||||
n["ipv6_addrs"] = mysql.fetchall("""SELECT ipv6 FROM router_ipv6 WHERE router = %s AND netif = %s""",(dbid,n["netif"],),"ipv6")
|
||||
if n["netif"]=="br-mesh":
|
||||
if n["netif"] in ("br-mesh","br-client"):
|
||||
mac = n["mac"]
|
||||
netifs.append(n["netif"])
|
||||
|
||||
|
@ -206,7 +206,7 @@ def router_info(dbid):
|
|||
netif = n["netif"];
|
||||
desc = None
|
||||
color = None
|
||||
if netif == 'br-mesh':
|
||||
if netif in ('br-mesh','br-client'):
|
||||
desc = "Client Bridge"
|
||||
elif netif == 'br-ethmesh':
|
||||
desc = "Ethernet Mesh Bridge"
|
||||
|
@ -362,7 +362,7 @@ def router_info(dbid):
|
|||
mysql.close()
|
||||
return redirect(url_for("index"))
|
||||
else:
|
||||
flash("<b>Router has no br-mesh and thus cannot be banned!</b>", "danger")
|
||||
flash("<b>Router has no br-client/br-mesh and thus cannot be banned!</b>", "danger")
|
||||
else:
|
||||
flash("<b>You are not authorized to perform this action!</b>", "danger")
|
||||
elif request.form.get("act") == "changeblocked" and mac:
|
||||
|
@ -407,7 +407,7 @@ def router_info(dbid):
|
|||
SELECT blocked.mac
|
||||
FROM router_netif AS n
|
||||
LEFT JOIN blocked ON n.mac = blocked.mac
|
||||
WHERE n.router = %s AND n.netif = 'br-mesh'
|
||||
WHERE n.router = %s AND (n.netif = 'br-mesh' OR n.netif = 'br-client')
|
||||
""",(dbid,),"mac")
|
||||
mysql.close()
|
||||
|
||||
|
@ -528,7 +528,7 @@ def user_info(nickname):
|
|||
LEFT JOIN (
|
||||
SELECT router, blocked.mac AS blocked FROM router_netif
|
||||
INNER JOIN blocked ON router_netif.mac = blocked.mac
|
||||
WHERE netif = 'br-mesh'
|
||||
WHERE netif = 'br-mesh' OR netif = 'br-client'
|
||||
) AS b
|
||||
ON router.id = b.router
|
||||
WHERE contact = %s
|
||||
|
|
|
@ -246,7 +246,7 @@ def gravatar_url(email):
|
|||
|
||||
@filters.app_template_filter('webui_addr')
|
||||
def webui_addr(router_netifs):
|
||||
for br_mesh in filter(lambda n: n["netif"] == "br-mesh", router_netifs):
|
||||
for br_mesh in filter(lambda n: n["netif"] in ("br-mesh","br-client"), router_netifs):
|
||||
for ipv6 in br_mesh["ipv6_addrs"]:
|
||||
ipv6 = bintoipv6(ipv6)
|
||||
if not ipv6:
|
||||
|
|
|
@ -188,8 +188,8 @@
|
|||
<vpn_active>WAN-Uplink status, 0 or 1 [0]</vpn_active>
|
||||
</system_data>
|
||||
<interface_data> # List of interfaces with interface name as node name; one interface with mac address is required for identification of device
|
||||
<br-mesh> # Example br-mesh device
|
||||
<name>netif name [br-mesh]</name>
|
||||
<br-client> # Example br-client device
|
||||
<name>netif name [br-client]</name>
|
||||
<mtu>MTU [1500]</mtu>
|
||||
<mac_addr>netif MAC address [aa:bb:cc:dd:ee:f1]</mac_addr>
|
||||
<ipv4_addr>Device's IPv4 address in FFF network [10.83.999.1]</ipv4_addr>
|
||||
|
@ -198,7 +198,7 @@
|
|||
<ipv6_link_local_addr>Device's link-local address [fe80::a8bb:ccff:fedd:eef1/64]</ipv6_link_local_addr>
|
||||
<traffic_rx>Total RX traffic bytes [1033114334]</traffic_rx>
|
||||
<traffic_tx>Total TX traffic bytes [30814227528]</traffic_tx>
|
||||
</br-mesh>
|
||||
</br-client>
|
||||
<eth0.1> # Example VLAN device
|
||||
<name>netif name [eth0.1]</name>
|
||||
<mtu>MTU [1500]</mtu>
|
||||
|
|
|
@ -284,11 +284,11 @@
|
|||
<div id="netstat" class="graph"></div>
|
||||
</div>
|
||||
<ul class="list-group" id="netif-list">
|
||||
{# make sure that br-mesh is on top of the list #}
|
||||
{%- for netif in router.netifs if netif.netif == 'br-mesh' %}
|
||||
{# make sure that br-client is on top of the list #}
|
||||
{%- for netif in router.netifs if netif.netif in ('br-client','br-mesh') %}
|
||||
<li class="list-group-item active" data-name="{{ netif.netif|replace('.', '')|replace('$', '') }}">
|
||||
<div class="row">
|
||||
<div class="col-xs-7 col-sm-7"><h4 class="list-group-item-heading">br-mesh: <span class="netifdesc">Bridge</span></h4></div>
|
||||
<div class="col-xs-7 col-sm-7"><h4 class="list-group-item-heading">{{ netif.netif }}: <span class="netifdesc">Client Bridge</span></h4></div>
|
||||
<div class="col-xs-5 col-sm-5 text-right" style="text-transform: uppercase;"><h4 class="list-group-item-heading">{{ netif.mac|int2mac }}</h4></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
@ -314,7 +314,7 @@
|
|||
</div>
|
||||
</li>
|
||||
{%- endfor %}
|
||||
{%- for netif in router.netifs if netif.netif != 'br-mesh' %}
|
||||
{%- for netif in router.netifs if not netif.netif in ('br-client','br-mesh') %}
|
||||
<li class="list-group-item" data-name="{{ netif.netif|replace('.', '')|replace('$', '') }}">
|
||||
<div class="row">
|
||||
<div class="col-xs-7 col-sm-7"><h4 class="list-group-item-heading" style="{%- if netif.color -%}color:{{ netif.color }}{%- endif -%}">{{ netif.netif }}{%- if netif.description -%}: <span class="netifdesc">{{ netif.description }}</span>{%- endif %}</h4></div>
|
||||
|
@ -468,7 +468,7 @@
|
|||
load_netif_stats(netif);
|
||||
$(this).addClass("active");
|
||||
});
|
||||
load_netif_stats("br-mesh");
|
||||
load_netif_stats("br-client");
|
||||
});
|
||||
{%- if router.neighbours|length > 0 %}
|
||||
function load_neigh_stats() {
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
#
|
||||
# designed for GATEWAY FIRMWARE
|
||||
#
|
||||
# v1.4.7 - 2021-02-22
|
||||
# - Use br-client instead of br-mesh
|
||||
#
|
||||
# v1.4.6 - 2018-10-17
|
||||
# - Fix IPv4/IPv6 sed (leading space in match pattern)
|
||||
#
|
||||
|
@ -47,6 +50,7 @@
|
|||
# Config
|
||||
api_urls="https://monitoring.freifunk-franken.de/api/gwinfo" # space-separated list of addresses (api_urls="url1 url2")
|
||||
batctlpath=/usr/sbin/batctl
|
||||
brif=br-client
|
||||
hostname="$(uci -q get system.@system[0].hostname)"
|
||||
statslink="$(uci -q get gateway.@gateway[0].statslink)"
|
||||
|
||||
|
@ -67,10 +71,10 @@ for netif in $(ls /sys/class/net); do
|
|||
dhcpstart=""
|
||||
dhcpend=""
|
||||
if [ "$netif" = "bat0" ]; then
|
||||
ipv4="$(ip -4 addr show dev br-mesh | grep " 10\." | sed 's/.* \(10\.[^ ]*\/[^ ]*\) .*/\1/')"
|
||||
ipv6="$(ip -6 addr show dev br-mesh | grep " fd43" | grep '::' | sed 's/.* \(fd43[^ ]*\) .*/\1/')"
|
||||
ipv4="$(ip -4 addr show dev "$brif" | grep " 10\." | sed 's/.* \(10\.[^ ]*\/[^ ]*\) .*/\1/')"
|
||||
ipv6="$(ip -6 addr show dev "$brif" | grep " fd43" | grep '::' | sed 's/.* \(fd43[^ ]*\) .*/\1/')"
|
||||
[ "$(echo "$ipv6" | wc -l)" = "1" ] || ipv6=""
|
||||
dhcpstart="$(uci -q get dhcp.mesh.start)"
|
||||
dhcpstart="$(uci -q get dhcp.client.start)"
|
||||
fi
|
||||
|
||||
echo "$comma{\"mac\":\"$mac\",\"netif\":\"$netif\",\"vpnif\":\"$batctl\",\"ipv4\":\"$ipv4\",\"ipv6\":\"$ipv6\",\"dhcpstart\":\"$dhcpstart\",\"dhcpend\":\"$dhcpend\"}" >> $tmp
|
||||
|
|
Loading…
Reference in New Issue