{% extends "bootstrap.html" %} {% block title %}{{super()}} :: {{ router.hostname }}{% endblock %} {% block head %}{{super()}} {% endblock %} {% block content %}

{%- if router.gateway %}Gateway{%- else %}Router{%- endif %}: {{ router.hostname }}

{%- if mac %}

Perma-Link: {{ url_for('router_mac', mac=mac|int2shortmac, _external=True) }}

{%- endif %}
System
{%- if router.status_text %} {%- endif %} {%- if router.description %} {%- endif %} {%- if router.position_comment %} {%- endif %} {%- if router.hoodname %} {%- endif %} {%- if router.tc_enabled != None %} {%- endif -%} {%- if router.w2_airtime != None or router.w5_airtime != None -%} {%- endif -%}
Hostname {{ router.hostname }} {%- if router.netifs|webui_addr %} (WebUI) {%- endif %}
Status{{ router.status }} {%- if router.status == "online" %} ({{ router.sys_uptime|format_ts_diff }} up) {%- endif -%}
Created {{ router.created|utc2local|format_dt }}
Last contact {{ router.last_contact|utc2local|format_dt }} ({{ router.last_contact|utc2local|format_dt_ago }}){{- "" -}}
Status Text{{ router.status_text }}
Description{{ router.description }}
Position{{ router.position_comment }}
Hood{{ router.hoodname }} {%- if router.community and router.community != 'franken' %} ({{ router.community }}) {%- elif router.local %} (local hood) {%- elif router.v2 %} (V2) {%- else %} (V1) {%- endif -%} {%- if router.reset %} - Router has lost its position! {%- elif not router.lat and not router.lng %} - Router has no position! {%- endif -%}
User {%- if router.user -%} {{ router.user }} {%- if router.contact %} ({{ router.contact|anon_email }}) {%- endif -%} {%- else -%} {%- if router.contact %} {{ router.contact|anon_email }} {%- else -%} FFF routers must have a contact address, but none is set.
Please provide a valid e-mail address!
{%- endif -%} {%- endif -%}
Hardware{{ router.hardware }}
WAN Uplink {%- if router.blocked and not router.v2 %}   -   Router BLOCKED by KeyXchange! {%- endif -%}
Traffic control {%- if router.tc_enabled %}   (up: {{ router.tc_out }} kBit/s, down: {{ router.tc_in }} kBit/s){%- endif -%}
Clients{{ router.clients }} {%- if router.clients_eth or router.clients_w2 or router.clients_w5 %}   (Ethernet: {{ router.clients_eth }}{%- if router.clients_w2 != None %}, 2.4 GHz: {{ router.clients_w2 }}{%- endif -%}{%- if router.clients_w5 != None %}, 5 GHz: {{ router.clients_w5 }}{%- endif -%}) {%- endif -%}
Airtime {%- if router.w2_airtime != None -%}2.4 GHz: {{ router.w2_airtime|format_airtime }}{%- endif -%}{%- if router.w2_airtime != None and router.w5_airtime != None -%}, {%- endif -%}{%- if router.w5_airtime != None -%}5 GHz: {{ router.w5_airtime|format_airtime }}{%- endif -%}
Software
Firmware{{ router.firmware }}
Operating System{{ router.os }}
Kernel{{ router.kernel }}
B.A.T.M.A.N. adv{{ router.batman }}{%- if router.routing_protocol -%}   -   Routing: {{ router.routing_protocol }}{%- endif -%}
Nodewatcher{{ router.nodewatcher }}
{%- if not router.neighbours|length > 0 %}
{%- endif %}
Events
{%- for event in router.events[-250:][::-1] %} {%- endfor %}
{{ event.time|utc2local|format_dt|nbsp|safe }} {{ event.type }} {{ event.comment }}
{%- if router.neighbours|length > 0 %}
Neighbours (Load full stats)
{%- for neighbour in router.neighbours %} {%- endfor %}
Hostname MAC Address Quality Interface
{%- if neighbour.hostname -%}{{ neighbour.hostname }}{%- else -%}---{%- endif -%} {{ neighbour.mac|int2mac }} {{ neighbour.quality }} {{ neighbour.netif }}
{# hack for graph vertical align #} {%- if router.neighbours|length < 3 %} {%- for n in range(3- router.neighbours|length) %}
{%- endfor %} {%- endif %}
{%- endif %}
Network Interfaces
    {# make sure that br-mesh is on top of the list #} {%- for netif in router.netifs if netif.netif == 'br-mesh' %}
  • br-mesh: Bridge

    {{ netif.mac|int2mac }}

    {%- if netif.fe80_addr -%} {{ netif.fe80_addr|bin2ipv6 }} {%- else -%} {{ netif.mac|macint2fe80 }} {%- endif -%} {%- if netif.ipv4_addr -%}
    {{ netif.ipv4_addr|int2ipv4 }} {%- endif -%} {%- for ipv6_addr in netif.ipv6_addrs -%}
    {{ ipv6_addr|bin2ipv6 }} {%- endfor -%}
    {%- if netif.rx is defined %}
    {{ netif.rx|bytes_to_bits }}/s {{ netif.tx|bytes_to_bits }}/s
    {%- endif %}
  • {%- endfor %} {%- for netif in router.netifs if netif.netif != 'br-mesh' %}
  • {{ netif.netif }}{%- if netif.description -%}: {{ netif.description }}{%- endif %}

    {{ netif.mac|int2mac }}

    {%- if netif.wlan_type -%} {{netif.wlan_type}},  {%- endif -%} {%- if netif.wlan_channel -%} Channel: {{netif.wlan_channel}},  {%- endif -%} {%- if netif.wlan_ssid -%} SSID: {{netif.wlan_ssid}},  {%- endif -%} {%- if netif.wlan_txpower -%} Tx-Power: {{netif.wlan_txpower}} {%- endif -%}
    {%- if netif.fe80_addr -%} {{ netif.fe80_addr|bin2ipv6 }} {%- else -%} {{ netif.mac|macint2fe80 }} {%- endif -%} {%- if netif.ipv4_addr -%}
    {{ netif.ipv4_addr|int2ipv4 }} {%- endif -%} {%- for ipv6_addr in netif.ipv6_addrs -%}
    {{ ipv6_addr|bin2ipv6 }} {%- endfor -%}
    {%- if netif.rx is defined %}
    {{ netif.rx|bytes_to_bits }}/s {{ netif.tx|bytes_to_bits }}/s
    {%- endif %}
  • {%- endfor %}
{%- if router.gws|length > 0 %}
Gateways
{%- for gw in router.gws %} {%- if gw.selected %} {%- else %} {%- endif %} {%- endfor %}
Gateway batX Qual Netif Class
{{ gw.label }} {{ gw.batX }} {{ gw.quality }} {{ gw.netif }} {{ gw.gw_class }}
{# hack for graph vertical align #} {%- if router.gws|length < 3 %} {%- for n in range(3- router.gws|length) %}
{%- endfor %} {%- endif %}
{%- endif %}
Clients
Average Load
Airtime (requires Firmware-Update)
Memory
Processes
{%- if session.admin %}
{%- endif %} {% endblock %}