| Age | Commit message (Collapse) | Author | 
|---|
|  | Locking the state file during `fsm get` operations is annoying. And
the returned state may be changed anytime after termination, so the
caller can not rely on it being up to date anyway. | 
|  | The next patch will need this to build catch-all DNS for the
robinson state. | 
|  | - update the redirection uhttpd config and www-root to redirect all
  incoming request to a url specified by /tmp/redirection_target
- use this to implement robinson and splash redirection during
  robinson and queen/ghost states, respectively
- change the service httpd to listen on the public IPv4 address
  available on the mesh interface in those states.
Missing is the
- iptable based redirection
- already referenced /sbin/urlencode | 
|  | Add function to enable/disable/change the uhttpd uci config state. Use
these functions to start the service httpd, listening on the
link-local IPv6 addresses of br-lan and br-mesh. | 
|  | This patch splits the single uhttpd instance into two uhttpd instances
with www root /www/<servicename> for the following purposes:
- service :: self-service / debugging / status.xml
- redirection :: use for splash/robinson redirection
The uhttpd uci config is adapted: by default all instances declared
there are disabled; They shall be enabled by the FSM inetable. To this
end a listen_http directive will be added and the config type will be
changed from 'disabled' to 'uhttpd' by state transition scripts. | 
|  | - add mesh_add/del_ipv4 to set/unset IPv4 addresses of mesh iface; the
  address is set using ifconfig to avoid ifudown+ifup but also updated
  in UCI to maintain a consistent state
- use this function in queen, ghost and robinson state transitions
- use `batctl gw off` in robinson state: this allows to deliever local
  DHCP replies while dropping the idea of announcing fake gateways
- ghost.leave reuses queen.leave | 
|  |  | 
|  |  | 
|  | - implemented according to documentation
- almost no tests so far | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | For debugging reasons both cronjobs are executed once per minute. This
rate should be reduced before deployment in larger networks. | 
|  | Add a init script that - early during the first boot only - creates
/etc/nodeid and fills it with a unique identifer. This nodeid is
persistent across reboots and protected from sysupgrades. | 
|  | The new script ./name_firmware is used to generates two files in
openwrt/$REPO/files/ during `make image/...`:
- /etc/firmware (see documentation on firmware id)
- /etc/banner (login banner; generated from the template in
  /files/common/etc/banner) | 
|  | FSM to handle firmware update process in a synchronized all-or-nothing
manner. See doc/overview.org for details. | 
|  |  | 
|  | lists an entire table (but without the version of each row) | 
|  | `test_connectivity <internet|vpn>` returns true iff. one of several
probe hosts can be reached over the given interface. | 
|  | - implements finite state machine given a definition in /etc/fsm/
- see upcoming doc/ commits for detail | 
|  |  | 
|  | The table broadcasted once per minute over br-mesh. To fill the table
with contents on all nodes, run:
p2ptbl update /tmp/p2ptbl/test somekey somevalue
on one node. If the command shall have immediate effect, run:
p2ptbl update /tmp/p2ptbl/test somekey somevalue br-mesh | 
|  | - add `p2ptbl gossip` to distribute tables via udp bcast
- add interface option to `p2ptbl update` for immediate communication
  of updates
- add p2ptbl-recv as HBBP-handler to receive table updates
p2ptbl-recv has to be symlinked from <HBBP-root>/p2ptbl/<table-name>.
It reads the table name from $0 and assumes that all tables are stored
in /tmp/p2ptbl/. | 
|  |  | 
|  |  | 
|  | P2P tables allow to maintain distributed state using a MVCC key-value
store. This patch adds the executable for manipulating a table but not
the gossip protocol to synchronize it. | 
|  |  | 
|  |  | 
|  |  |