Ondataservice

Aus Opennet
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

olsr ondataservice plugin

Das Plugin dient zur Verteilung der Konfigurations- und Statusinformationen im Opennet. Es gibt zwei Versionen, eine light-version, die nur Daten senden kann und eine komplette Version, die Daten senden und emfangen kann. Als Datenquelle nutzt die Light-Version ein JSON-Datenfile, die komplette Version eine SQlite3-Datenbank.

Die aktuelle Version (binaries und ipk-pakete) kann unter http://absorb.it/software/opennet/ondataservice/ heruntergeladen werden.

Konfiguration: ondataservice_light

Standard-Version die als Teil der neuen Firmware ausgeliefert wird (keine Möglichkeit zum Empfangen der Daten, nur senden)

 PlParam "interval" "SEC"
	interval for sending the DATABASE in seconds.
	(default: 10800 - 3 hours)
 
 PlParam "inc_interval" "SEC"
    interval for continously sending TABLES from DATABASE in seconds.
    (default: 5 seconds)
 
 PlParam "database" "/path/to/database"
        Path to the database (json)

Konfiguration: ondataservice (full version)

Voll-Version mit SQlite-Schnittstelle, Kann Daten senden und empfangen.

 PlParam "interval" "SEC"
	interval for sending the DATABASE in seconds.
	(default: 10800 - 3 hours)
 
 PlParam "inc_interval" "SEC"
    interval for continously sending TABLES from DATABASE in seconds.
    (default: 5 seconds)
 
 PlParam "cleanup_interval" "SEC"
    Interval how often DATABASE should be checked for old DATASETS.
    (default: 1800 - 0.5 hours)
 
 PlParam "timeout" "SEC"
	validity time for received NAME messages in seconds.
	(default: 21600 - 6 hours)
 
 PlParam "database" "/path/to/database"
        Path to the database
 
 PlParam "receive" "false|true"
        Set to true if you like to receive and store the values.
        Otherwise the values from other Nodes are ignored.
        (default: false - not stored)
 
 PlParam "spreadall" "false|true"
        Set to true if you like to spread all data from the database.
        (default: false - only data for own mainip is spreaded)

Aktuelle Installationen

Übertragung der Statusinformationen

Abhängig von der Firmware-Version werden die Informationen jedes APs entweder per Push (neue Firmware, via OLSR) oder per Pull (alte Firmware, Abfrage via http) übertragen.

Aktuelle Firmware

Dieser Modus gilt für die Firmware-Versionen ab 0.3-8 und die AirOS-Anpassungen ab Version opennet0.5.

Das olsrd-Plugin ondataservice versendet periodisch die lokalen AP-Informationen in Form eines JSON-Datensatzes.

Ältere Firmware

Dies gilt beispielsweise für Version ON5.

Auf inez.on-i.de läuft täglich ein Skript [1] welches die Daten der Opennet-Accesspoints mit alter Firmware abfragt. Dazu werden von allen 192.168.x.y-Hosts, die inez erreichen kann, die URL /cgi-bin-status.html abgerufen (Beispiel).

Die Kurzzusammenfassung des letzten Abrufs ist auf inez im Verzeichnis /home/rene/APData/lastrun.log zu finden. Die folgenden Markierung sind dabei besonders interessant:

  • old statuspage missing: die Seite /cgi-bin-status.html ist nicht abrufbar -> auf diesem Weg sind keine Informationen abrufbar
  • ++done: die Abfrage war erfolgreich

Die hierbei gesammelten Daten aller alten APs werden von dem ondataservice-Plugin auf inez via OLSR verteilt (spreadall=true). Dies erlaubt jedem Datensammler den kompletten Datensatz (alte und neue Firmware) allein aus den OLSR-Daten zu beziehen.

Schnittstelle zum Wiki

Auf www.on-i.de läuft ein ondataservice-Plugin, welches alle empfangenen Daten speichert. Diese werden über die Extension:APData (vgl. auch [2]) zur Verfügung gestellt und können im Wiki genutzt werden.

Quellcode / Eigenbau

ondataservice plugin

git clone git://absorb.it/olsrd-0.6.2
cd olsrd-0.6.2
make ondataservice
make ondataservice_light

olsr mit plugin als Teil von openwrt backfire

Im Verzeichnis (backfire)/feeds/packages/net findet sich das Verzeichnis von olsr. Dies kann einfach ersetzt werden, bspw. durch http://absorb.it/software/opennet/ondataservice/olsrd_0.6.2.tgz oder http://absorb.it/software/opennet/ondataservice/olsrd_0.6.1.tgz (je nach gewünschter olsrd-Version). Im Verzeichnis ist ein patch (023), welcher die Erweiterungen einbindet. Ausserdem ist das Makefile für die Erweiterungen modifiziert.

Ergänzung auf eigenem AP (neue Firmware)

Anpassung per Hand

  1. die Datei status_values.sh in das (evtl. zu erstellende) Verzeichnis /etc/cron.daily/ kopieren
  2. das zur Hardware und olsrd-Version passende ondataservices_light-plugin installieren
  3. das plugin aktivieren (achtung, olsrd muss neu gestartet werden, also nich remote machen)
section=$(uci add olsrd LoadPlugin)
uci set olsrd.$section.library=olsrd_ondataservice_light.so.0.1
uci commit olsrd
/etc/init.d/olsrd restart

Firmware-Update

Ab Version 0.3-8 ist ondataservice_light Teil der neuen Opennet Firmware. Die AirOS-Anpassung für Opennet enthält ab Version opennet0.5 ondataservice_light.

Tabellen-Übersicht

nodes

PRIMARY KEY (mainip) ON CONFLICT REPLACE

Feld-Name Bsp. Alte Firmware Bsp. Neue Firmware
originator 172.16.0.23
mainip 192.168.1.243 192.168.2.19
sys_ver Linux 2.6.32.27
sys_board 0x0467/42 Atheros AR9132 rev 2
sys_cpu MIPS 24Kc V7.4
sys_mem 29536
sys_uptime 20 days, 17:03 1801658.05
sys_load 0.27, 0.12, 0.10 0.35 0.09 0.03
sys_free 2716
sys_watchdog 1
sys_os_type OpenWrt OpenWrt
sys_os_name WHITE RUSSIAN (0.9-ON5) backfire
sys_os_rel 10.03
sys_os_ver 43.15-r26741
sys_os_arc ar71xx
sys_os_insttime 1310573386
on_core_ver 0.11ipkg-13 0.3-7
on_core_insttime 1310573392
on_packages on-usergw on-wifidog on-openvpn
on_id 1.243 2.19
on_olsrd_status 1
on_olsrd_mainip 192.168.1.243 192.168.2.19
on_wifidog_status 0 1
on_wifidog_id AP2.19
on_vpn_cn 2.19.aps.on
on_vpn_status 1 1
on_vpn_gw 192.168.0.248 192.168.0.244
on_vpn_autosearch 0 0
on_vpn_sort metric
on_vpn_gws 192.168.0.248:y:8 192.168.0.247:y:8 192.168.0.254:y:7 192.168.0.244:y:1 192.168.0.254:y:12 192.168.0.248:y:16 192.168.0.247:y:1
on_vpn_blist
on_ugw_status 0 0
on_ugw_enabled 0 0
on_ugw_possible 0
on_ugw_tunnel 0
on_ugw_connected
on_ugw_presetips 192.168.0.247 192.168.0.251
on_ugw_presetnames erina.on-i.de nagare.on-i.de
on_old_autoadapttxpwr 0
on_old_remoteconf 1
db_time Mon Oct 31 15:53:01 2011 Mon Oct 31 14:37:09 UTC 2011
db_epoch 1320072781 1320071825
db_ver 0.1 0.2
db_update 1320081762 1320071825

ifaces

PRIMARY KEY (mainip, if_name) ON CONFLICT REPLACE

Feld-Name Bsp. Alte Firmware Bsp. Neue Firmware
originator 192.168.10.3 192.168.1.23
mainip 192.168.1.171 192.168.1.23
if_name eth1:0 wlan0
if_type_bridge
if_type_bridgedif 1
if_hwaddr 00:16:B6:B1:0A:33 54:e6:fc:cc:e1:74
ip_label
ip_addr 192.168.34.171/255.255.254.0
ip_broadcast 192.168.35.255
on_networks
on_zones
on_olsr 0
dhcp_start
dhcp_limit
dhcp_leasetime
dhcp_fwd
ifstat_collisions 0
ifstat_rx_compressed 0
ifstat_rx_errors 0
ifstat_rx_length_errors 0
ifstat_rx_packets 576377
ifstat_tx_carrier_errors 0
ifstat_tx_errors 0
ifstat_tx_packets 977111
ifstat_multicast 0
ifstat_rx_crc_errors 0
ifstat_rx_fifo_errors 0
ifstat_rx_missed_errors 0
ifstat_tx_aborted_errors 0
ifstat_tx_compressed 0
ifstat_tx_fifo_errors 0
ifstat_tx_window_errors 0
ifstat_rx_bytes 50419237
ifstat_rx_dropped 0
ifstat_rx_frame_errors 0
ifstat_rx_over_errors 0
ifstat_tx_bytes 1264554549
ifstat_tx_dropped 0
ifstat_tx_heartbeat_errors 0
wlan_essid frieda23.opennet-initiative.de
wlan_apmac 54:E6:FC:CC:E1:74
wlan_type nl80211
wlan_hwmode 802.11bgn
wlan_mode Master
wlan_channel 6
wlan_freq 2.437
wlan_txpower 18
wlan_signal ?
wlan_noise
wlan_bitrate 0.0
wlan_crypt WEP Open System (NONE)
wlan_vaps yes
db_ver 0.1 0.2
db_update 1320217469 1320240220
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge