Projecte

General

Perfil

Actions

Característica #58

tancat

bmx6-json plugin

Afegit per Axel Neumann fa casi 13 anys. Actualitzat fa més de 12 anys.

Estat:
Tancat
Prioritat:
Normal
Assignat a:
Categoria:
WEB interface
Versió prevista:
-
Inici:
01-04-2011
Data de venciment:
% realitzat:

80%

Temps previst:
100:00 h
Temps invertit:

Descripció

bmx6 json plugin should export all available status and topology information in json notation.

The following posix api have been discussed for data exchange between bmx6 daemon and other apps (like web-server,...)
  • unix file system (regular file), for example /var/run/bmx6/json/...
  • unix pipes
  • unix socket (traditional batman/bmx api to access exchange information at runtime), e.g. bmx6 -c json-parameters

During discussion it became clear that unix file system would be the most convinient way api for most applications.
However, this requires information to be rendered and stored proactive even when no application is interested in it.

unix pipes and unix sockets would allow the bmx6 daemon to create the required information only on demand and not (proactively) update the volatile (non-durable) information all the time which would create lots of useless cpu load.

unix pipes seem to be kind of unstable since blocking and listening to a pipe is not fully posix standard.
unix sockets have the disadvantage of requiring cgi-scripts to execute the connect command before information is available

The current solution is focusing on unix file system where file-system updates are triggered by events.

bmx6 information is classified in durable and volatile

durable information:

  • options: This FILE provides a detailed description of all available bmx6 configuration options and its
    attributes (like default/min/max values, help, syntax).

*parameters: This FILE provides a detailed summary of the daemons current configuration

*descriptions: This DIRECTORY holds one file for each currently active node in the network, describing the attributes (like IP addresses, hostname, IDs,...) of each node respectively.

*descriptionExtensions: (to be defined...)

volatile information:
  • status: uptime, cpu-load, globalID, number of active nodes, version
  • interfaces: names, status, bandwidth, ip address,...
  • links: outgoing interface to linklocal neighbor interfaces, neighbor ip addresses, link qualities
  • originators: list of currently originators in the network, primary ip, metric,...
Actions

També disponible a: Atom PDF