alfred - html man page (v2025.2-1-g16a7397)
[1mDESCRIPTION[0m
alfred is a user space daemon for distributing arbitrary local informa-
tion over the mesh/network in a decentralized fashion. This data can be
anything which appears to be useful - originally designed to replace
the batman-adv visualization (vis), you may distribute hostnames, phone
books, administration information, DNS information, the local weather
forecast ...
alfred runs as daemon in the background of the system. A user may in-
sert information by using the alfred binary on the command line, or use
special programs to communicate with alfred (done via unix sockets).
alfred then takes care of distributing the local information to other
alfred servers on other nodes. This is done via IPv6 link-local multi-
cast, and does not require any configuration. A user can request data
from alfred, and will receive the information available from all alfred
servers in the network.
[1mOPTIONS[0m
[1m-v[22m, [1m--version[0m
Print the version
[1m-h[22m, [1m--help[0m
Display a brief help message.
[1m-u[22m, [1m--unix-path [4m[22mpath[0m
path to unix socket used for client-server communication.
[1mCLIENT OPTIONS[0m
[1m-s[22m, [1m--set-data [4m[22mdata-type[0m
Sets new data to distribute from stdin for the supplied data
type (0-255).
Note that 0 - 63 are reserved (please send an e-mail to the au-
thors if you want to register a datatype), and can not be used
on the commandline. Information must be periodically written
again to alfred, otherwise it will timeout and alfred will for-
get about it (after 10 minutes).
[1m-r[22m, [1m--request [4m[22mdata-type[0m
Collect data from the network and print on stdout
[1m-d[22m, [1m--verbose[0m
Show extra information in the data output
[1m-d[22m, [1m--force[0m
Start server even when batman-adv or interface(s) are not yet
available.
[1m-V[22m, [1m--req-version [4m[22mversion[0m
Specify the data version set for [1m-s[0m
Skipping the parameter entirely has the same effect as setting
the parameter to 0 ('[1m-V [22m0').
[1m-M[22m, [1m--modeswitch [4m[22mmode[0m
[1mprimary[0m
Switch daemon to mode primary
[1msecondary[0m
Switch daemon to mode secondary
[1m-I[22m, [1m--change-interface [4m[22minterface[0m
Change the alfred server to use the new [1minterface[22m(s)
[1m-B[22m, [1m--change-bat-iface [4m[22minterface[0m
Change the alfred server to use the new [1mbatman-adv interface[0m
[1m-S[22m, [1m--server-status[0m
Request server status information such as mode & interfaces
[1m-E[22m, [1m--event-monitor[0m
Start alfred event monitor connecting to the alfred server and
reporting update events
[1mSERVER OPTIONS[0m
[1m-i[22m, [1m--interface [4m[22miface[0m
Specify the interface (or comma separated list of interfaces) to
listen on. Use 'none' to disable interface operations.
[1m-b [4m[22mbatmanif[0m
Specify the batman-adv interface configured on the system (de-
fault: bat0). Use 'none' to disable the batman-adv based best
server selection.
The interface option [1m-i [22mis optional. If interface 'none' is
specified, the alfred daemon will not communicate with other al-
fred instances on the network unless the interface list is modi-
fied at runtime via the unix socket. The [1m-b [22moption is optional,
and only needed if you run alfred on a batman-adv interface not
called bat0, or if you don't use batman-adv at all (use '[1m-b[0m
none'). In this case, alfred will still work but will not be
able to find the best next primary server based on metrics.
[1m-m[22m, [1m--primary[0m
Start up the daemon in primary mode, which accepts data from
secondaries and syncs it with other primaries.
alfred servers may either run as primary or secondary in the
network. Primaries will announce their status via broadcast, so
that secondaries can find them. Secondaries will then send
their data to their nearest primary (based on TQ). Primaries
will exchange their data (which they have received from secon-
daries or got on their own) with other primaries. By using pri-
maries and secondaries, overhead can be reduced while still
keeping redundancy (by having multiple primaries). Obviously, at
least one primary must be present in the network to let any data
exchange happen. Also having all nodes in primary mode is possi-
ble (for maximum decentrality and overhead).
[1m-c[22m, [1m--update-command [4m[22mcommand[0m
Specify command to execute on data change. It will be called
with data-type list as arguments.
[1m-p[22m, [1m--sync-period [4m[22mperiod[0m
Specify alfred synchronization period, in seconds. If not speci-
fied, the default ALFRED_INTERVAL setting of 10 seconds will be
used. Fractional seconds are supported.
[1m-4 [4m[22mgroup-address[0m
Specify the IPv4 multicast group address and enable IPv4 data-
sharing (disabling IPv6 communication). This option is required
on systems that do not support IPv6 addressing.
[1mEXAMPLES[0m
Start an alfred server listening on bridge br0 (assuming that this
bridge includes the batman interface bat0):
[1malfred -i br0 -m[0m
Send data to the alfred server and store it under id 65:
[1mcat /etc/hostname | alfred -s 65[0m
Retrieve all data stored as id 65 from all connected alfred servers:
[1malfred -r 65[0m
{ "fe:f1:00:00:01:01", "OpenWRT-node-1\x0a" },
{ "fe:f1:00:00:02:01", "OpenWRT-node-2\x0a" },
{ "fe:f1:00:00:03:01", "OpenWRT-node-3\x0a" },
[1mSEE ALSO[0m
[1mbatadv-vis[22m(8), [1mbatctl[22m(8)
[1mAUTHOR[0m
alfred was written by Simon Wunderlich <sw@simonwunderlich.de> and Sven
Eckelmann <sven@open-mesh.com>.
This manual page was written by Simon Wunderlich <sw@simonwunder-
lich.de> and Sven Eckelmann <sven@open-mesh.com>.
Linux Sep 21, 2013 [4mALFRED[24m(8)
Man(1) output converted with
man2html