Commit Graph

1503 Commits

Author SHA1 Message Date
Matthias Schiffer
2796f66fcb Merge pull request #976 from FreifunkVogtland/batadv-netlink
Switch from batman-adv v14/v15 debugfs to netlink
2016-12-13 01:20:27 +01:00
Matthias Schiffer
182c21eddc
gluon-site: convert site.conf to JSON in compile instead of install step 2016-12-11 15:19:09 +01:00
Sven Eckelmann
22946b14b6 gluon-mesh-batman-adv-core: Switch from debugfs to batadv netlink
The batadv debugfs requires large memory blocks to write the text debug
tables. This is inefficient for large tables like the global translation
table or the originators table.

The memory requirement can be reduced by using netlink. It copies smaller
packets in a binary format to the userspace program. The respondd module of
gluon-mesh-batman-adv-core can therefore parse larger originator tables
without causing an OOM on systems which are tight on memory.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2016-12-11 12:03:12 +01:00
Sven Eckelmann
6ac5b9cbc8 gluon-status-page-api: Switch from debugfs to batadv netlink
The batadv debugfs requires large memory blocks to write the text debug
tables. This is inefficient for large tables like the global translation
table or the originators table.

The memory requirement can be reduced by using netlink. It copies smaller
packets in a binary format to the userspace program. gluon-status-page-api
can therefore parse larger originator tables without causing an OOM on
systems which are tight on memory.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2016-12-11 12:03:12 +01:00
Ruben Barkow
ff0ad20752 gluon-config-mode-core: hand over more info to the reboot screen (#930) 2016-12-11 03:13:28 +01:00
Matthias Schiffer
9a06a98651
gluon-respondd: add delay to mesh-wide multicast requests
Mesh-wide multicast requests are answered with a random delay of up to 10s.
2016-12-11 00:42:41 +01:00
Matthias Schiffer
8c4403ba11
gluon-client-bridge, gluon-mesh-batman-adv-core: switch roles of br-client and local-node interfaces
MAC and IP addresses are switched. This makes the gluon-client-bridge
package more useful for different routing protocols that don't need a
unique address on the client bridge.

As a side effect, gluon-radvd is now using the next-node address, which had
been considered before, but was dismissed to avoid having gluon-radvd
depend on gluon-next-node and gluon-mesh-batman-adv. This will be useful
for announcing default routes via gluon-radvd.

One downside is that this introduces a minor dependency on batman-adv in
gluon-respondd: the hotplug script that checked for the client interface
before will now check for local-node. This doesn't really matter: for mesh
protocols without a local-node interface, the check will do nothing (which
makes sense, as there is no interface to bind to for mesh-wide respondd).
2016-12-10 23:43:44 +01:00
Matthias Schiffer
d2373590e0
gluon-core: add support for removing sysctl settings 2016-12-10 23:43:44 +01:00
Matthias Schiffer
3fc9154d1d
gluon-batman-adv-core: merge gluon-next-node into gluon-batman-adv-core 2016-12-10 23:43:44 +01:00
Matthias Schiffer
fb85d96d5e
gluon-next-node: don't require next_node.ip6
The next-node interface may be useful with IPv4 only or even just a MAC
address. This prepares merging gluon-next-node into gluon-batman-adv-core.
2016-12-10 23:43:23 +01:00
Jan-Philipp Litza
fcf3abd9c4 gluon-respondd: restart on state change of client iface
Because we unconditionally appended `-i br-client` to the command line of
respondd, it wasn't restarted when br-client changed state. Now, we use a
jsonfilter expression on the network.interface dump data, similar to how the
other interface names are generated, and only add the interface to the argument
list if it is up.
2016-12-09 10:43:24 +01:00
Jan-Philipp Litza
d8bb97831b gluon-respondd: Use procd in initscript and to restart on network changes 2016-12-08 23:30:57 +01:00
Matthias Schiffer
cb86fce29f
gluon-respondd: make setup.d script executable 2016-12-08 23:02:23 +01:00
Christof Schulze
ca57cdfe77 gluon-respondd: make initialisation mesh protocol agnostic (#946) 2016-12-08 17:44:29 +01:00
rubo77
2a101ddd56
gluon-core: add dirty flag to gluon-version, add site-version 2016-12-06 20:05:34 +01:00
Matthias Schiffer
b32ed384c7 gluon-mesh-batman-adv-core: respondd: correctly detect lower interface types (#954)
Fixes #941
2016-12-03 13:22:22 +01:00
Matthias Schiffer
1f3e789463
gluon-next-node: fix ebtables rules without next_node.ip4 2016-11-30 15:27:06 +01:00
Ruben Barkow
34deeac380 gluon-config-mode-geo-location: make the label for altitude definable in the site folder (#883) 2016-11-30 13:13:59 +01:00
Matthias Schiffer
20fc162b38
gluon-core, gluon-setup-mode: fix WAN/LAN assignment on CPE210
The interfaces were accidentially switched when the CPE210 was separated
from the CPE510 code.
2016-11-22 20:01:13 +01:00
viisauksena
539081d315 gluon-mesh-vpn-fastd: make fastd syslog level configurable (#915) 2016-11-06 00:01:49 +01:00
Brother-Lal
740c60c7e4 gluon-status-page: add hint to enable JavaScript if it is disabled (#913) 2016-10-24 14:43:12 +02:00
Brother-Lal
e80f751a85 fix error in statuspage if cookies are disabled (#912)
If cookies are disabled, the Statuspage only displays an empty ("Not connected")
This checks if the localStorage API is available and working and only uses it in this case
Also allows better backwards compatibility.
2016-10-24 14:18:01 +02:00
Jan-Tarek Butt
85c66b3bf8
gluon-autoupdater: double quote $1 to prevent globbing and word splitting 2016-10-10 05:44:27 +02:00
Matthias Schiffer
4e2888f7a2
gluon-wan-dnsmasq: fix handling of static DNS servers
Fixes #886
2016-09-18 22:39:22 +02:00
Matthias Schiffer
b902ddd8df
gluon-next-node: make IPv4 next-node address optional
If next_node.ip4 is not set or gluon-next-node is not used, prefix4 will
now be optional as well.
2016-09-10 17:15:16 +02:00
Ruben Barkow
d03c88afb4 gluon-config-mode-contact-info: define an "obligatory" option in site.conf (#843) 2016-09-07 06:44:57 +02:00
J0WI
d2fb547a3f gluon-status-page: removed obsolete css prefixes (#877)
None of them are used by modern browsers anymore, so it's safe to remove them.
2016-09-07 06:03:57 +02:00
Matthias Schiffer
d05cee5b55
gluon-mesh-batman-adv-core: explicitly set primary MAC address using a dummy interface
Fixes #834
2016-09-07 02:14:43 +02:00
Matthias Schiffer
6cddaedfc7
Reorganize MAC addresses, always explicitly set address for private WLAN
Fixes #842
2016-09-07 02:14:42 +02:00
Matthias Schiffer
4f39be09c9
gluon-core: migrate custom batadv interfaces to gluon_mesh proto
Users may have defined additional mesh interfaces. Properly migrate these
to avoid subtly breaking the network config (and make them ready for new
mesh protocols).
2016-09-07 02:14:42 +02:00
Matthias Schiffer
9a5a8e0ab0
gluon-client-bridge: add LAN interfaces to client bridge by default (instead of doing this in the batman-adv-specific scripts)
This allows to weaken the gluon-mesh-batman-adv-core dependency of
gluon-luci-portconfig to gluon-client-bridge.
2016-09-07 02:14:42 +02:00
Matthias Schiffer
8434896014
gluon-mesh-batman-adv-core: move config not specific to batman-adv to gluon-core 2016-09-07 02:14:42 +02:00
Matthias Schiffer
d1e6dfb7e3
gluon-mesh-batman-adv-*, gluon-mesh-vpn-fastd: configure batman-adv through gluon_mesh proto 2016-09-07 02:14:42 +02:00
Matthias Schiffer
b7380decc2
gluon-mesh-batman-adv-*: add gluon_mesh protocol handlers 2016-09-07 02:14:42 +02:00
Matthias Schiffer
5cd6295265
gluon-core: add gluon_mesh netifd proto
This new protocol will allow configuring mesh interfaces independently of
the used mesh protocol.
2016-09-07 02:14:42 +02:00
Matthias Schiffer
d70788adbc
gluon-status-page-api: hide warning in upgrade script 2016-08-30 22:09:40 +02:00
Matthias Schiffer
2331cb194e
gluon-mesh-batman-adv-core, gluon-mesh-vpn-fastd: switch MAC address assignment
Switch to:

1. WAN
2. LAN
3. Mesh VPN

As WAN and LAN are setup in gluon-mesh-batman-adv-core (and will be moved
to gluon-core), while the mesh VPN has its own package, giving WAN and LAN
the first indices is preferable.
2016-08-30 21:25:40 +02:00
Matthias Schiffer
051fd926ef
gluon-wan-dnsmasq: add interface name to link-local addresses
Fixes #854
2016-08-28 22:04:47 +02:00
Matthias Schiffer
e0ed7dde85
gluon-config-mode-mesh-vpn: fix indentation 2016-08-27 16:39:30 +02:00
Matthias Schiffer
7e0075584d
Use a "pretty" hostname where possible
Fixes #414
2016-08-27 16:33:37 +02:00
Matthias Schiffer
819c7d59f1
gluon-config-mode-*, gluon-luci-*: add escaping for many user- or site-defined strings
Allows weird release numbers, models and site names, and prepares support
for pretty hostnames.
2016-08-27 15:18:13 +02:00
Matthias Schiffer
79a49a1515
gluon-luci-theme: add HTML and URL escaping utility functions 2016-08-27 13:19:42 +02:00
kb-light
81280d8e18 gluon-mesh-batman-adv-core: use need_one_of() to check for valid mcast_rate 2016-08-27 07:12:07 +02:00
kb-light
6ff94aca35 gluon-core: make wifi rates configurable by site.conf
and add documentation
2016-08-27 07:11:58 +02:00
Matthias Schiffer
c84bb17915
Merge branch 'enable-multicast-snooping' of https://github.com/T-X/gluon 2016-08-26 21:05:30 +02:00
Matthias Schiffer
e5acba5fbc
gluon-radvd: fix init script
Fixes #862
2016-08-24 13:07:29 +02:00
Linus Lüssing
6594ba314c gluon-core: reenable multicast snooping on WAN side
Just like we enabled multicast snooping on the batman-adv client bridge
again, let's do the same for the WAN side.

With one exception: The IGMP/MLD querier is kept disabled to avoid
becoming too "bossy"/"noisy" on a foreign network. The main router on
the WAN side should perform querying and by that enable
IGMP/MLD/snooping if it considers this appropriate there.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-08-23 00:21:26 +02:00
Linus Lüssing
2a51d94fbb gluon-mesh-batman-adv-core: reenable multicast snooping
A few issues with the bridge snooping were identified and fixed
upstream in OpenWRT:

* "firewall: Allow IGMP and MLD input on WAN" (r45613)
* "kernel: bridge: backport two snooping related patches" (r45783)
* netifd: "bridge: Fix multicast_to_unicast feature by hairpin+isolate"
  (OW: "netifd: update to the latest version, adds multicast-to-unicast fixes" (r46719))
* "kernel: bridge, multicast-to-unicast: assign src after pskb_may_pull()" (r46721)
* "kernel: bridge, multicast-to-unicast: fix echoes on STA" (46765)

These have very likely caused issues with the bridge snooping before,
which led to disabling it in the past. Let's reenable the multicast
snooping now that they were fixed for reduced multicast overhead on the
wifi.

Advantages are the following:

This mildly reduces overhead on the mesh layer. And significantly reduces
overhead on the AP interface and therefore significantly increases
available airtime (the currently most significant scalability bottleneck).

Secondly removes an easy, often accidental node-local Denial-of-Service
vector based on multicast flooding / streaming.

Thirdly, makes node-local multicast streaming feasible.

Finally should noticably increase battery life of mobile devices.

Note: bridge querier is disabled for br-wan. We want to avoid becoming
too "bossy"/"noisy" on a foreign network.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-08-23 00:15:27 +02:00
T-X
d5829d87be gluon-mesh-batman-adv-core: disable bridge port learning on bat0 (#780)
The mesh side has become fairly huge in many communities. Up to
a few thousand entries can currently be found in the forwarding
database (fdb) of a bridge for its bridge port bat0.

The bridge fdb is kind of redundant to the batman-adv global translation
table here. Therefore this patch tries to reduce memory footprint by
following an approach similar to the IGMP/MLD split patchset approach:

Make the bridge oblivious not only regarding multicast listeners towards
the mesh but with this patch unicast hosts on the mesh, too.

If the destination of an ethernet frame is known by the bridge to be a
local one, then the frame is forwarded to the according port. If it is
unknown, then the frame is forwarded to the wifi AP interface and bat0.

mac80211 and batman-adv then know whether to drop or forward a frame
further through their own book-keeping.

Note that unicast-flood is not disabled for the wifi AP bridge port, nor
is learning disabled on the wifi AP. This is mainly to keep the
configuration in UCI and according setup scripts simple ;). However, not
disalbling unicast-flood on the wifi AP interface might also give a
minor latency improvement for newly joining wifi clients.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-08-22 23:26:07 +02:00
kb-light
2789aebcb2 gluon-luci-private-wifi: limit ssid to 32 characters (#848)
Fixes #845
2016-08-08 11:38:57 +02:00
Jan-Philipp Litza
d445cb772d gluon-radvd: Use procd in init script
The main advantage is that procd is capable of logging stderr to logd,
making errors easier to debug.
2016-07-30 20:27:20 +02:00
Matthias Schiffer
f3cb6d7b36
gluon-luci-portconfig: add setting for PoE passthrough
Fixes #328
2016-07-30 00:04:17 +02:00
Matthias Schiffer
b1a753e1c5
gluon-core: allow setting PoE passthrough default setting from site.conf 2016-07-30 00:00:39 +02:00
Matthias Schiffer
b241373640
gluon-luci-private-wifi: set MAC address if the driver provides one 2016-07-28 00:27:47 +02:00
Matthias Schiffer
279a409198
gluon-core: split get_wlan_mac_from_driver() out of get_wlan_mac() 2016-07-27 17:25:05 +02:00
Matthias Schiffer
806af27083
gluon-client-bridge, gluon-mesh-batman-adv-core: make macaddr variable local in upgrade script 2016-07-27 17:25:05 +02:00
Matthias Schiffer
7565839fc4 Merge pull request #674 from T-X/filter-igmp-mld
Filter IGMP+MLD
2016-07-27 17:24:43 +02:00
Matthias Schiffer
85674a5557
gluon-luci-admin: rename "Expert Mode" to "Advanced settings"
Use the common term; the "Expert Mode" never was a distinct mode of
operation anyways.
2016-07-27 02:38:39 +02:00
Matthias Schiffer
5e3b1f80b0
gluon-luci-admin: regenerate fr.po 2016-07-27 02:35:06 +02:00
Christof Schulze
65ee128c37
gluon-radvd: externalize arguments
The arguments are now provided by gluon-mesh-batman-adv-core, so
gluon-radvd can be used with other mesh protocols.

[Matthias Schiffer: removed PROVIDES dependency]
2016-07-27 01:24:33 +02:00
Matthias Schiffer
55d6f71cff
gluon-setup-mode: remove unneeded require 2016-07-26 01:11:03 +02:00
lemoer
8e8f794c24 gluon-neighbour-info: improve verbosity on wrong cli parameters (#829)
gluon-neighbour-info: improve verbosity on wrong cli parameters
2016-07-25 15:52:27 +02:00
Matthias Schiffer
2afe34efec
Use MAC addresses provided by WLAN drivers by default
Some drivers (mt76) don't support arbitrary MAC addresses. Use the
addresses provided by the driver (avoiding the primary address) by default,
but fall back to our has-based scheme when the driver doesn't provide
(enough) addresses.
2016-07-20 18:42:56 +02:00
Matthias Schiffer
c8bc4620d1
gluon-core: unify indentation in gluon/util.lua 2016-07-20 17:51:09 +02:00
Matthias Schiffer
849af9ade0
gluon-client-bridge, gluon-mesh-batman-adv-core: simplify VIF config functions 2016-07-20 15:44:36 +02:00
Matthias Schiffer
64fdc0d7ba
gluon-mesh-batman-adv-core: add sleep to autoupdater network stop script
Accidentially forgot to commit this. The sleep is necessary so netifd can
actually stop the WLAN interfaces after `wifi down`.
2016-07-19 15:49:07 +02:00
Jan-Tarek Butt
8f5a7c9001
gluon-mesh-batman-adv-core: stop WLAN and batman-adv before autoupdater upgrades
[Matthias Schiffer:
  - improve commit message
  - add pidof check
  - also call `wifi down`
]
2016-07-19 03:41:21 +02:00
Jan-Tarek Butt
1c1f490527
Minify all Lua code 2016-07-10 20:14:25 +02:00
Matthias Schiffer
42910c0606
ramips-mt7621: use phy1 MAC address as primary on DIR-860L B1 2016-07-10 15:51:07 +02:00
Matthias Schiffer
c913957e01
gluon-luci-wifi-config: fix to work with legacy configs using macaddr instead of path to identify radios 2016-07-09 23:32:46 +02:00
Matthias Schiffer
bae721a9bb
Add target ar71xx-mikrotik
Fixes #121

Based-on-patch-by: Tobias Hachmer <tobias@hachmer.de>
2016-06-23 00:29:28 +02:00
Matthias Schiffer
dc485f7356
gluon-core: make gluon.platform.match() match all boards when no boards are given 2016-06-23 00:07:25 +02:00
Sven Eckelmann
fa04fff88d ar71xx-generic: Add support for OpenMesh MR1750v2
The new MR1750v2 device support is only available in LEDE master. The
relevant patches have to backported to add support for them in Gluon

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-06-17 20:04:00 +02:00
Sven Eckelmann
3ccd516971 ar71xx-generic: Add support for OpenMesh OM2P-HSv3
The new OM2P-HSv3 device support is only available in LEDE master. The
relevant patches have to backported to add support for them in Gluon

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-06-17 20:04:00 +02:00
Thomas Weißschuh
0a936e4de5 gluon-batman-adv-core: respondd: add gateway_nexthop field 2016-06-02 16:14:13 +02:00
Jan-Philipp Litza
76c3456787 gluon-node-info: simplify respondd module code a bit 2016-05-27 22:40:17 +02:00
Jan-Philipp Litza
f7eda9381f respondd modules: Use proper formatting of doubles
Most doubles that are delivered via respondd have limited input
precision, but are converted with up to 17 digits of precision. That can
cause ugly blowups like 0.2800000000000001 in the output, which is
avoided by specifying better format strings (like "%.2f" in most cases).
2016-05-26 17:38:36 +02:00
Sven Eckelmann
780f7cad2a ar71xx-generic: Use eth0 as OpenMesh primary mac address
The OpenMesh devices have a sticker with the eth0 mac address on the
bottom. Also all other mac addresses are calculated based on this address.
Therefore, it is better to use this as primary mac address instead of the
WiFi mac address.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-05-23 21:39:27 +02:00
Linus Lüssing
4199b216c6 ebtables-segment-mld: Segment IGMP/MLD domain
This patch adds a new gluon-ebtables package to filter IGMP/MLD messages
via ebtables.

For one thing this reduces multicast overhead: About one third of all
ICMPv6 multicast traffic in Lübeck or Hamburg is MLD.

Furthermore it removes a potential Distributed Denial-of-Service vector
(see Gluon ticket #553).

Finally, it is a prerequisite for enabling bridge multicast snooping in
a decentral and robust fashion.

Note that IGMP/MLD are filtered for multicast traffic coming from
the mesh, too (new MULTICAST_IN), as unfortunately there seem to
be other queriers somewhere in the mesh at least for Freifunk
Lübeck. Also adding these rules to be prepared to anyone intentionally
or unintentionally disabling these filters on his/her node.

Node operators not running Gluon (for instance gateway nodes) should
make sure to either enable multicast_router towards bat0 or disable
multicast snooping entirely if they have a bridge on top of bat0.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-05-20 22:59:31 +02:00
Linus Lüssing
8e891b2cc4 ebtables-filter-mcast: Remove redundant allow-filter for hop-by-hop
ebtables actually skips any IPv6 extension headers like the hop-by-hop
one. So this rule is actually void.

The intend back then was to allow passing MLD messages into the mesh.
Since extension headers are skipped, the general icmpv6 rule will
actually match MLD messages. So the hop-by-hop rule is unnecessary,
too.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-05-20 02:04:25 +02:00
Matthias Schiffer
97879e80ad
gluon-config-mode-core: clean up reboot handling
Don't fork reboot process before all package hooks have been handled and
rendering is complete.

Replace debug.setfenv hack to close stdout with nixio.dup.

Fixes #772
2016-05-19 15:31:47 +02:00
Matthias Schiffer
4a60e5a02a
gluon-mesh-vpn-fastd: add missing iptables dependency confusing Kconfig
This was causing "recursive dependency" errors and potentially broken
configurations.
2016-05-18 01:24:11 +02:00
Sven Eckelmann
d30a6ff1db gluon-luci-admin: Fix uploaded image validation
The image validation currently fails on some devices (tested OpenMesh)
because it isn't done via sysupgrade. But the checks depend partially on
the integration in sysupgrade (e.g. via loops that can be stopped via
"break statements").

Instead of hacking its own version check, it is easier and better tested to
just use 'sysupgrade -T' like it is already done by LuCI.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-05-16 13:31:25 +02:00
Matthias Schiffer
cab23b1838
ar71xx-generic: switch default WAN/LAN assignment on Ubiquiti UAP Pro
Fixes #764
2016-05-14 01:02:25 +02:00
Matthias Schiffer
087112a09b
ar71xx-generic: add support for UniFi AC PRO/LITE (LITE untested)
Also backport some patches improving QCA956x support.
2016-05-14 00:48:10 +02:00
Matthias Schiffer
86ef9b0e97
Fix creation of IBSS interfaces on devices with two radios
Lua's tables are 1-based, so we must decrement the index by 1 to get the
desired MAC addresses. By not doing this, the second IBSS interface would
get the address with index 8, but only indices 0..7 are available.

Fixes: c73a12e0ea
2016-05-14 00:34:04 +02:00
kb-light
f68a5662b6 gluon-node-info: add a script to fix whitespaces within the coordinates
Signed-off-by: kb-light <freifunk@kb-light.de>
2016-04-28 09:34:33 +02:00
Matthias Schiffer
d77bfe9da9 gluon-mesh-batman-adv-core: fix rssid for setups without 11s 2016-04-27 21:07:46 +02:00
kb-light
d8092bce62 gluon-config-mode-mesh-vpn: provide contact-information for reboot-message (#671) 2016-04-27 17:08:42 +02:00
kb-light
269a8fbdd4 gluon-config-mode-geo-location: add ability to hide the altitude field (#693) 2016-04-27 12:37:30 +02:00
Matthias Schiffer
937fe715c7 gluon-mesh-batman-adv-core: make mesh_lan config a bridge
There are a few devices which have more than one LAN interface (for example
some revision of the TL-WR941ND, which uses a DSA-based switch, so each
switch port has its own netdev.) On these devices we need a bridge for
mesh-on-lan (as the alternative of adding them to batman-adv individually
would need too many MAC addresses.)
2016-04-27 12:20:27 +02:00
lemoer
c73a12e0ea Change MAC schema generation (#715)
While ath9k/ath10k devices can supprt VIFs with any combination of MAC addresses, there are also adapters which have a hardware MAC filter which only allows a few bits to differ. This commit changes the addresses of all VIFs to ony differ in the last 3 bits, which is required to support many Ralink/Mediatek based WLAN adapters.

Technically, the new addresses are generated by calculating an MD5 hash of the primary MAC address and using a part of this hash as a prefix for the MAC addresses.

The addresses (BSSIDs) of the AP VIFs are also reused for the LAN and WAN interfaces in mesh-on-LAN/WAN mode to reduce the number of needed addresses, and thus reduce the chance of collisions. This is not a problem as the MAC addresses of the AP VIFs are never used except as BSSID, and thus not seen by routing protocols like batman-adv.

Fixes #648

[Matthias Schiffer: rewrote commit message]
2016-04-27 12:16:39 +02:00
corvusmo
82b5b5a8d2 gluon-status-page: refactor creation of table rows and cells (#738) 2016-04-27 08:40:13 +02:00
Matthias Schiffer
7f2b93e7f0 gluon-status-page: remove old status page
We have Git for history, there's no reason to keep old files that aren't
used anymore.
2016-04-26 21:29:48 +02:00
Matthias Schiffer
c936fd8054 Merge branch 'master' of https://github.com/corvusmo/gluon 2016-04-25 18:33:10 +02:00
Matthias Schiffer
c18d43d2cb gluon-core: use correct file variable in get_site_config() 2016-04-24 15:55:37 +02:00
Matthias Schiffer
f38bbf0d2c gluon-mesh-batman-adv-core: remove 'gluon.batman_adv' Lua module
It is not used anymore.
2016-04-24 09:47:06 +02:00
Matthias Schiffer
db32736d3b Merge pull request #730 from jannic/master
Add support for carambola 2 board
2016-04-22 18:13:10 +02:00
Jan Niehusmann
bdcd166c7c ar71xx-generic: add support for Carambola 2
Device information can be found at:
http://www.8devices.com/products/carambola-2
https://wiki.openwrt.org/toh/8devices/carambola2

I only did some minimal testing of gluon on the carambola 2 development
board:

 - Config mode works
 - Connects to Wifi Mesh
 - Allows clients to connect

Notably, autoupgrade has not yet been tested.

Change to 010-primary-mac is necessary as the mac address printed
on the sticker is the one of eth0, not the wifi mac.
2016-04-22 08:32:19 +02:00
Matthias Schiffer
ddb9e6b2e5 Merge pull request #679 from T-X/preparations-for-mcast-snooping-final
Preparations for Multicast Snooping Final
2016-04-20 19:44:53 +02:00
corvusmo
80515c087d gluon-status-page: sort gateways alphabetically
Fixes #698
2016-04-08 21:23:56 +02:00
Jan-Philipp Litza
3a3c922a4d gluon-core: use exec on uci commit 2016-04-03 16:14:48 +02:00
Matthias Schiffer
4658afb2c6 gluon-core: commit all UCI configs at the end
Avoid commiting configs inbetween to decrease number of flash writes.

Fixes #714.
2016-04-02 18:56:45 +02:00
Matthias Schiffer
827d81aab3 gluon-config-mode-mesh-vpn: fix save() call for traffic limits
It doesn't seem like this mistake had any effect.
2016-04-02 18:53:56 +02:00
Matthias Schiffer
b8cb60a8d6 Merge pull request #675 from T-X/preparations-for-mcast-snooping
Preparations for Multicast Snooping
2016-03-11 13:27:33 +01:00
Linus Lüssing
c9aa2672bd bridge: Increase IGMP/MLD robustness parameter to three for br-client
We are mostly dealing with the 2.4GHz crap-band here, so increasing the
IGMP/MLD robustness parameter to three to be able to compensate for up
to two consecutive instead of just one lost packet.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-03-10 16:44:34 +01:00
Linus Lüssing
4d00c804c0 bridge: Lower IGMP/MLD query intervals for br-client
There are some devices not acting properly to roaming events, in that
they do not timely reissue IGMP/MLD reports after reconnecting.

To compensate for that this commit reduces the query interval from 125
seconds to 20 and the query response interval from 20 seconds to 5.
This reduces a timeout to 20+5 seconds in the worst-case (12.5s average)
after a roaming event for such broken devices. This should be below the
30s "impatient user threshold" and below any connection timeout.

Until the bridge multicast snooping + querier gets re-enabled this is a
no-op.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-03-10 16:44:05 +01:00
Matthias Schiffer
fc6d4d6c97 gluon-mesh-batman-adv-core: respondd: add uci.h include
This include wasn't actually missing, but well hidden behind the iwinfo.h
include. Make this more obvious.
2016-03-08 07:57:06 +01:00
Linus Lüssing
0fc9e1d966 update config: "firewall: Allow IGMP and MLD input on WAN" (r45613)
Adopt the according modifications to the default firewall settings of
the WAN interface from OpenWRT, revision 45613.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-03-08 07:55:55 +01:00
Linus Lüssing
ca9a6f34f3 gluon-mesh-batman-adv-core: Always forward towards mesh/batman-adv
An IGMP/MLD domain split will prevent us from being able to track
multicast listeners on other nodes.

Therefore we need to always hand any multicast packets we received from
local clients to batman-adv. With bridge multicast snooping disabled,
the current setting in Gluon, this is already the case.

However, in preparation to enabling multicast snooping, we need to
enforce forwarding towards batman-adv by setting the bridge port
option "multicast_router" to 2.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-03-08 07:55:55 +01:00
Matthias Schiffer
289b599233 gluon-status-page: unify prefix list of prettyBytes and prettyBits 2016-03-01 00:06:20 +01:00
Matthias Schiffer
6e452f207a gluon-status-page: don't use internationalization API
It is not supported by all browsers yet.

Also change load display always to display 2 decimal digits (as it is read
from the kernel with 2 decimal digits).

Fixes #606
2016-03-01 00:06:20 +01:00
Matthias Schiffer
79bc3a8d4b gluon-status-page: fix neighbour purging
notUpdated is a Set, to a for-in loop doesn't work.

Fixes #657
2016-02-29 01:12:20 +01:00
Matthias Schiffer
bb8d1783b3 gluon-config-mode-*, gluon-luci-portconfig: improve validation
Make bandwidth limits unsigned; trim numbers, the validator accepts
trailing whitespace.
2016-02-28 22:38:19 +01:00
Matthias Schiffer
88bdc98108 gluon-status-page: don't reset signal graphs on resize events if width hasn't changed
Mobile browsers will often show or hide the address bar while scrolling.
This causes resize events which would often reset the signal graphs.

Fixes #662
2016-02-26 05:35:47 +01:00
Matthias Schiffer
6961406523 Merge pull request #640 from kokel/preserve-wifi-channel
gluon-core: add preserve wifi channel feature
2016-02-24 17:25:02 +01:00
Matthias Schiffer
f0ad8ed5cb gluon-mesh-batman-adv-core: enable mesh_no_rebroadcast for Mesh-on-WAN/LAN
Ethernet links provide transitive connectivity in all but very unusual
setup, enable mesh_no_rebroadcast to reduce load for devices on links with
many nodes.

Fixes #652
2016-02-16 23:26:42 +01:00
Kokel
388d264ff0 gluon-core: add preserve wifi channels feature
This new feature introduces the new uci section 'gluon-core.wireless' with a preserve_channels option:
 * preserve_channels (boolean)

By setting this option to 1 (true) wifi channels will be preserved during upgrades.
2016-02-10 07:06:36 +01:00
Matthias Schiffer
19242f4deb Remove all uses of batman-adv-visdata
Should be redundant after 0bd0df6f93
2016-02-08 20:58:28 +01:00
Matthias Schiffer
e0e96b7b28 Merge branch 'restrict-respondd' 2016-02-05 19:18:40 +01:00
Matthias Schiffer
145cb4ded2 gluon-luci-admin: ensure that the authorized_keys file always ends with a newline
Fixes #558
2016-02-05 18:31:25 +01:00
Matthias Schiffer
2f499dbfc1 gluon-respondd: restrict queries from the mesh to link-local addresses
Restrict to link-local addresses to prevent amplification attacks from
outside the mesh, or such attacks affecting the outside world.

Fixes #637
2016-02-05 17:06:07 +01:00
Matthias Schiffer
6554cc21ab Merge remote-tracking branch 'origin/firewall-multicast' 2016-02-03 08:40:20 +01:00
Matthias Schiffer
d58484c84e gluon-mesh-batman-adv-core: respondd: fix pattern to count clients to work with compat 15 2016-02-02 17:18:52 +01:00
Jan-Philipp Litza
5bb4316f71 gluon-neighbour-info: Open firewall on WAN for respondd replies
If the query was via multicast, the response isn't matched by
--state ESTABLISHED,RELATED

This fixes #619
2016-02-02 13:06:54 +01:00
Matthias Schiffer
0005b3b5a2 autoupdater: stop non-essential services before downloading the image 2016-02-02 09:22:50 +01:00
Matthias Schiffer
b4aaf8a1f8 gluon-respondd: add init script
Instead of starting gluon-respondd from a hotplug handler, add a proper
init script. The new init script has a restart_if_running argument which
is now used by the hotplug handler.
2016-02-02 09:18:13 +01:00
Matthias Schiffer
9004028cb4 Convert gluon-announce Lua code to C modules, rename to gluon-respondd
gluon-announced and gluon-announce are merged to gluon-respondd.
2016-02-02 09:18:12 +01:00
Matthias Schiffer
840d07dd48 Add utility library libgluonutil 2016-02-02 06:39:22 +01:00
Daniel Golle
4ce85afc22 gluon-status-page-api: support batadv-in-VLAN on ibss interface
introduce function to recurse down to the lowest layer-2 interface
corresponding to a given interface.
also re-introduce some of the previously removed input validation plus
some more to protect against glob and path based exploits.
2016-01-13 12:59:16 +01:00
Matthias Schiffer
0880159eb5 gluon-status-page: fix handling of interface names containing dots 2016-01-08 14:54:30 +01:00
Delta / Stefan
bbdc334b43 gluon-status-page: add TB to list of units for transfer volumes
Fixes #614
2016-01-07 18:09:30 +01:00
Matthias Schiffer
f23e024787 Convert site.conf to JSON during build
This will allow us to use its content from other languages than Lua as
well.
2016-01-02 23:49:25 +01:00
Matthias Schiffer
8ffdcaaa1b gluon-mesh-batman-adv-core: announce/neighbours.d: use batman-adv-visdata 2015-12-18 17:46:24 +01:00
Matthias Schiffer
939087cec9 gluon-status-page-api: neighbours-batadv: use batman-adv-visdata, increase interval 2015-12-18 17:46:24 +01:00
Matthias Schiffer
90a64ca87f gluon-status-page-api: use sse-multiplex 2015-12-18 17:46:24 +01:00
Matthias Schiffer
fa504dae8d gluon-neighbour-info: simplify and fix timeout calculation
The timeout was calculated incorrectly (in each iteration the span between
the start time and the current time was substracted from the timeout
again), and would often become negative, causing warnings in the kernel
log.
2015-12-18 17:46:24 +01:00
Matthias Schiffer
a3155c427a gluon-neighbour-info: fix a few compiler warnings 2015-12-18 17:46:24 +01:00
Matthias Schiffer
d3bc707caa gluon-neighbour-info: flush after writing the HTTP header
sse-multiplex likes to get the header as fast as possible.
2015-12-18 17:46:24 +01:00
Matthias Schiffer
c3150d821f gluon-announce{,d}: create a new UCI cursor for each run 2015-12-18 17:46:24 +01:00
Matthias Schiffer
077dbe3c08 gluon-status-page-api: decrease dyn/statistics event frequency
The statistics data is now cached for 5s, no need to send an event every
second. The new interval is 3s, which is coprime with the cache timeout.
2015-12-18 17:45:45 +01:00
Matthias Schiffer
48d24c2674 gluon-announce: enable caching 2015-12-18 17:43:16 +01:00
Matthias Schiffer
eba7ecbbc0 gluon-announced: add support for caching announced data 2015-12-18 17:43:12 +01:00
Matthias Schiffer
5927fd66db gluon-status-page: filter out duplicate events in statistics event stream
Allows simple handling of cached events.
2015-12-18 17:37:48 +01:00
Matthias Schiffer
5ecb8a7366 gluon-mesh-vpn-fastd: gluon-annouced: fix fastd status always being reported as enabled 2015-12-08 22:47:32 +01:00
Nils Schneider
0bb530d1c6 gluon-status-page: fix display of rx and tx traffic
On the status page statistics section counters for transmitted and received traffic were mixed up. Transmitted traffic was shown as received while received traffic was shown as being transmitted.

Fixes #586
2015-12-07 13:44:17 +01:00
Matthias Schiffer
9c7582afe0 gluon-luci-private-wifi: fix typo in code file and regenerate translation files (correctly this time) 2015-11-27 14:33:56 +01:00
Matthias Schiffer
7f0fe061dc gluon-luci-private-wifi: fix translation files 2015-11-27 09:49:12 +01:00
Matthias Schiffer
d428576ec5 Merge pull request #552 from freifunk-gluon/disable-mesh
gluon-mesh-batman-adv-core: keep disabled state even when the mesh interface section name is changed
2015-11-23 00:42:39 +01:00
Matthias Schiffer
81b2142e65 Merge branch 'patch-1' of https://github.com/ohrensessel/gluon 2015-11-22 23:28:39 +01:00
Matthias Schiffer
0335ce10e2 gluon-mesh-batman-adv-core: keep disabled state even when the mesh interface section name is changed
Is makes sense to always look for both ibss_radio* and mesh_radio* sections
to determine if the meshing should be enabled when regenerating these
sections. Doing this, the disabled state will survive updates changing the
section name (either updating from pre-2015.2 while keeping IBSS, or
changing from IBSS to 11s or vice-versa).

If both ibss_radio* and mesh_radio* sections exist, the disabled state will
be kept correctly for each section, the behaviour is changed only when
creating a section that didn't exist before.

Fixes #549
2015-11-18 03:01:18 +01:00
Matthias Schiffer
e528977100 gluon-site: set PKG_FILE_DEPENDS to site.conf and i18n/ only
PKG_FILE_DEPENDS caused the whole site repo to be hashed to determine if
gluon-site needed rebuilding. While this is normally no problem,
alternative build setups sometimes put the Gluon repo inside the site repo,
causing long build times and parallel build failures.
2015-11-18 02:39:05 +01:00
Leo Krueger
bc15b6c810 gluon-ebtables-filter-multicast: drop icmpv6 type 128 & 139, drop icmp
in a layer 2 mesh network, multicast pings cause a lot of traffic in the
network, significantly increasing the 'backgroudn noise' (= Grundrauschen)
and stressing nodes in the network.

this commit blacklists all icmpv4 multicast traffic as well as multicast
icmpv6 echo-requests and node iformation queries. as no application
depending on these types of multicast traffic is known, blacklisting is safe.
2015-11-12 21:16:37 +01:00
Matthias Schiffer
412e1ef147 gluon-core: fix removal of "OpenWrt" default WLAN interface
Fixes #534
2015-10-28 17:06:29 +01:00
Matthias Schiffer
3ddcf50b80 Drop htmode field from config, always use HT20
Fixes #487
2015-10-27 01:57:10 +01:00
Matthias Schiffer
3647cf1d18 Remove leftover file from gluon-radio-config 2015-10-27 01:57:10 +01:00
Matthias Schiffer
9b46a05de7 Merge pull request #450 from freifunk-gluon/status-page
gluon-status-page: new status page
2015-10-26 22:55:00 +01:00
Matthias Schiffer
557a073dc7 gluon-mesh-batman-adv-core/gluon-luci-portconfig: fix configuration of br-client ifname with multiple interfaces in lan_ifname
There are a few devices on which lan_ifname contains multiple interface
names separated by spaces.
2015-10-26 22:29:44 +01:00
Nils Schneider
84b6374970 gluon-client-bridge: basic br-client config and wireless AP
This package provides br-client and sets up a wireless AP interface for
clients.
2015-10-26 21:14:32 +01:00
Matthias Schiffer
22130e84e8 Merge gluon-radio-config into gluon-core
gluon-radio-config contained only a single file. The code has been adjusted
to allow creating a Gluon configuration without WLAN support by removing
the wifi24 and wifi5 sections from site.conf.
2015-10-26 20:59:56 +01:00
Matthias Schiffer
53211b5b46 Replace gluon-cron by micrond 2015-10-15 23:52:30 +02:00
Matthias Schiffer
d0a78ea8ba Merge branch 'opkg' 2015-10-15 22:28:41 +02:00
Matthias Schiffer
45d1d04ae3 Merge branch 'simple-tc' 2015-10-15 22:28:32 +02:00
Matthias Schiffer
2fefdeee63 gluon-mesh-batman-adv-core: neighbours.d/wifi: output empty object instead of empty list when there are no neighbours on an interface 2015-10-15 02:42:28 +02:00
Matthias Schiffer
26682b24b3 Replace gluon-simple-tc by non-Gluon-specific simple-tc
The Gluon-specific functions of the gluon-simple-tc package are moved to
gluon-mesh-vpn-fastd.
2015-10-15 02:38:47 +02:00
Jan-Philipp Litza
daa15290ab gluon-announce: Remove now unused collect.lua
The file promotes the probably unnecessary re-execution of the announce
scripts. Instead, gluon-announced should be queried using

    gluon-neighbour-info -d ::1 -p 1001 -t0 -r nodeinfo

if both gluon-announced and gluon-neighbour-info are present. But to not
depend on any of those, no script for this one-liner is provided.
2015-10-15 01:49:20 +02:00
Jan-Philipp Litza
bae6519279 gluon-alfred/gluon-status-page: Query gluon-announced
By not executing all scripts from gluon.announce themselves, both should
be considerably faster and lighter on RAM usage.
2015-10-15 01:49:20 +02:00
Jan-Philipp Litza
d2ff7d5c22 gluon-neighbour-info: Add -l and -c parameter, make event type for -s configurable 2015-10-15 01:49:20 +02:00
Matthias Schiffer
3725f7bca3 Merge remote-tracking branch 'origin/announce.d' 2015-10-15 01:31:05 +02:00
Matthias Schiffer
d5c334af6d gluon-core: replace opkg site configuration to make it more flexible
The new options allow specifying custom repositories and are evaluated
in an upgrade script, not during build.
2015-10-14 02:57:29 +02:00
Matthias Schiffer
b46d4fd537 gluon-mesh-batman-adv-core: make gateway selection class configurable
Fixes #401
2015-10-12 21:49:02 +02:00
Nils Schneider
9dffb1284f gluon-announce(d): preload functions, collectgarbage
By calling collectgarbage() at various places I was able to reduce heap
usage by ~270kb.
2015-10-12 20:54:03 +02:00
Nils Schneider
435ded0c60 gluon-announce: build a tree of functions first
collect_dir() will now pre-load all files and return a function that will
collect all information.
2015-10-12 20:54:03 +02:00
Matthias Schiffer
a22c808634 Merge pull request #466 from kb-light/11s-mesh-dev
gluon-mesh-batman-adv-core: prepare for 802.11s mesh
2015-10-11 23:01:08 +02:00
Matthias Schiffer
12f9df7e86 gluon-config-mode-core: don't throw error when no config mode modules are installed
The expert mode can still be useful without any cohfig mode modules.
2015-10-11 21:19:28 +02:00
Matthias Schiffer
05f146f817 Validate section names from site.conf in various packages 2015-10-11 19:34:14 +02:00
Ruben Barkow
06a2b2b1d1 gluon-luci-private-wifi: typo seperaten 2015-10-09 11:59:12 +02:00
Matthias Schiffer
98542b015d i18n: s/noeud/nœud/ 2015-10-08 22:16:25 +02:00
kb-light
955dc886a8 gluon-mesh-batman-adv-core: prepare for 802.11s mesh
keep macfilter and maclist config after fw-update
2015-09-22 10:48:09 +02:00
srauscher
16888d214d Add french translation 2015-09-17 07:28:09 +02:00
Alex
b465504ae8 add: info for 802.11s interface
additional information for commit 2a93c58042
2015-09-13 14:32:53 +02:00
Nils Schneider
014f5751c8 gluon-status-page-api: increase uhttp.max_requests to 32
Now that the status page api has been rewritten in C CPU load and memory
usage is much lower. Also, nodes with both ibss and 11s mesh and dual
band wifi may require up to 9 connections for a single client, thus the
previous limit of 12 seemed a little low.
2015-09-05 12:11:35 +02:00
Nils Schneider
8be372a590 gluon-status-page-api: rewrite stations in C 2015-09-05 12:11:33 +02:00
Nils Schneider
4b8f6c9835 gluon-status-page-api: rewrite neighbours-batadv in C 2015-09-05 11:47:44 +02:00
Nils Schneider
431ac81407 gluon-status-page-api: split API from gluon-status-page
This will make it easier to replace the API with C programs.
2015-09-05 11:47:44 +02:00
Nils Schneider
5e5dc5ab18 gluon-status-page: new status page 2015-09-04 20:50:18 +02:00
Nils Schneider
34752c7e0b br-client: convert option ifname to list ifname
Convert option ifname in br-client to use a list instead. This
simplifies adding and remove interfaces:

uci:add_to_set("network", "client", "ifname", "eth0")
uci:remove_from_set("network", "client", "ifname", "eth0")

An option ifname will be automatically converted to a list when
performing an upgrade.

Packages affected: gluon-mesh-batman-adv-core, gluon-luci-portconfig
2015-09-04 20:31:53 +02:00
Matthias Schiffer
faba9efb88 Merge branch 'jsonc-sink' of https://github.com/FreifunkBremen/gluon 2015-09-04 17:15:58 +02:00
Jan-Philipp Litza
961e6cc1c0 Add sink support to luci-lib-jsonc and use it where needed 2015-09-04 12:27:45 +02:00
Nils Schneider
96033758ab Merge pull request #473 from FreifunkBremen/batctl-if-lua
Don't fork batctl from announce scripts
2015-09-04 11:40:00 +02:00
Jan-Philipp Litza
bccf4f7b21 gluon-mesh-batman-adv-core: Add lua code for iface listing, don't fork 2015-09-03 16:33:13 +02:00
Matthias Schiffer
3599d8912b Merge branch 'slim-down-lua-scripts' of https://github.com/FreifunkBremen/gluon 2015-09-03 15:29:27 +02:00
Nils Schneider
21935ffc81 gluon-status-page: set html encoding to utf-8 2015-09-02 21:19:41 +02:00
Jan-Philipp Litza
339a6c9959 Remove dependencies on luci.util (and partly nixio.fs) from announce scripts 2015-09-02 13:17:59 +02:00
Matthias Schiffer
a25d00ddce Merge branch 'feature-optional-thekey' of https://github.com/FreifunkBremen/gluon 2015-08-31 00:42:54 +02:00
Matthias Schiffer
d97586dd89 Merge branch 'announce-separate-frequencies' of https://github.com/FreifunkBremen/gluon 2015-08-30 23:53:36 +02:00
Jan-Philipp Litza
89a9d8138c gluon-mesh-batman-adv-core: Announce client count by frequency 2015-08-30 23:39:45 +02:00
Jan-Philipp Litza
eb590bdc12 gluon-config-mode-mesh-vpn: Move display of key to translations
When rebooting the node in config mode, currently the fastd key is
forcefully displayed in a fixed format. This is confusing in communities
where fastd accepts all keys and no key submission is needed.
Furthermore, some communities might want to personalize the display of
the key (see #387).

This patch moves the displaying <div> from the package's lua file to the
translation files of the sample site configuration and mentiones the
change in the release notes.
2015-08-30 21:55:29 +02:00
Jan-Philipp Litza
15a80aaffd Switch from luci-lib-json to luci-lib-jsonc
Apart from replacing a patch for the former by two patches for latter,
this involved minimal adaptations of the lua scripts in the following
packages:

* gluon-announce
* gluon-announced
* gluon-mesh-batman-adv-core
* gluon-status-page
2015-08-30 21:05:13 +02:00
Matthias Schiffer
4405f39869 Merge remote-tracking branch 'origin/radio-config' 2015-08-29 02:36:38 +02:00
kb-light
753c1f9e2a gluon-status-page: handle 11s interfaces 2015-08-23 23:19:28 +02:00
Nils Schneider
6906ef9de6 gluon-radvd: use uradvd 2015-08-19 21:20:50 +02:00
Nils Schneider
177086b881 gluon-radio-config: basic wireless configuration
Split basic radio configuration from gluon-mesh-batman-adv as this will
be required for virtually any wireless mesh protocol.

This package takes care of setting:

  - wireless channel,
  - htmode and
  - regulatory domain

gluon-mesh-batman-adv-core depends on this package.
2015-08-18 11:41:14 +02:00
Matthias Schiffer
86773d7628 gluon-luci-wifi-config: add support for new WLAN configuration 2015-08-07 18:36:13 +02:00
Matthias Schiffer
26c6a787f6 Merge remote-tracking branch 'origin/flexible-wifi' 2015-08-07 17:45:23 +02:00
Nils Schneider
2a93c58042 mesh-batadv-core: introduce 11s mesh, refactor wireless config
This is a site.conf-breaking change in regard to the wireless config.
Make sure to read http://gluon.readthedocs.org/en/latest/user/site.html
and update your site.conf accordingly!

Support for 802.11s mesh interfaces has been added. Gluon now supports
three interface types: ap, ibss and mesh. All of them are now optional
and may be configured independently in site.conf.

A sample site.conf may look like this:

    wifi24 = {
            channel = 1,
            htmode = 'HT40+',
            ap = {
                    ssid = 'luebeck.freifunk.net',
            },
            ibss = {
                    ssid = '02:d1:11:37:fc:38',
                    bssid = '02:d1:11:37:fc:38',
                    mcast_rate = 12000,
            },
            mesh = {
                    id = 'ffhl-mesh',
                    mcast_rate = 12000,
            },
    },
2015-08-04 23:05:29 +02:00
Nils Schneider
d9df118686 gluon-wan-dnsmasq: fix usage of libpacketmark
Using service_start requires exporting of environment variables.

Fixes #397
2015-08-04 22:51:40 +02:00
Jan-Philipp Litza
4e5b3354d2 gluon-mesh-batman-adv-core: Only announce valid IPv6 addresses
The nodeinfo/network/addresses announcement included deprecated and
tentative addresses, which it clearly shouldn't as the host doesn't want
to be contacted on those addresses. They are now filtered out.
2015-08-04 00:11:45 +02:00
Matthias Schiffer
f6498e8773 Update modules 2015-07-18 18:02:13 +02:00
Matthias Schiffer
88ed124d5e Merge remote-tracking branch 'origin/on-link' 2015-07-12 18:23:08 +02:00
Matthias Schiffer
aa33a94ea7 Merge pull request #411 from FreifunkBremen/feature-neighbour-info-timeout
gluon-neighbour-info: Support sub-second timeout
2015-07-12 16:42:28 +02:00
Matthias Schiffer
e878155601 gluon-luci-admin: fix setting the password
This was broken due to the switch to Chaos Calmer.
2015-07-12 16:31:00 +02:00
Matthias Schiffer
34e0451e45 gluon-mesh-batman-adv-core: unconditionally set the WAN MAC address
This fixes MAC address conflicts on devices which use the eth0 as primary
address.
2015-07-11 18:27:35 +02:00
Matthias Schiffer
f5764a4a7b gluon-mesh-batman-adv-core: adjust rssid config to renamed WLAN interfaces
This should fix the signal strength indicators on the TP-Link CPE210/510.
2015-07-10 20:58:46 +02:00
Matthias Schiffer
d386ccdcf8 Always use eth0 address as primary address on x86 and brcm2708
These targets don't have a WLAN adapter by default, so it doesn't make
sense to default to the phy0 address.
2015-07-10 20:22:53 +02:00
Jan-Philipp Litza
9f91a5f841 gluon-neighbour-info: Support sub-second timeout 2015-07-09 20:18:11 +02:00
Nils Schneider
1c4b179dd2 gluon-config-mode-geo-location: translate "altitude" to "Höhe" 2015-07-08 23:18:42 +02:00
Hans-Werner Hilse
66060cf08a gluon-neighbour-info: Do not use error()
error() is a glibc specific function and should not be used in
code meant to be portable.
2015-07-06 09:37:22 +02:00
Nils Schneider
6ced715e13 Merge pull request #371 from freifunk-gluon/status-page-api
gluon-status-page: API
2015-06-29 17:33:04 +02:00
Nils Schneider
4f8ce12325 uhttpd: set max_requests to 12
This limits the number of concurrent users to 2 or 3 (approx. 4 connections per
user), greatly reducing DoS potential.
2015-06-29 12:03:01 +02:00
Nils Schneider
28668c8c52 gluon-status-page: API 2015-06-29 12:03:01 +02:00
Matthias Schiffer
68a3b5f394 gluon-announce, ...: don't output empty lists where not appropriate
Always output empty objects or nothing at all where objects are expected, but
no elements exist.

Also remove a few unneeded "requires", a few basic modules are provided by
announce.lua by default.
2015-06-15 21:17:00 +02:00
Matthias Schiffer
317478e2b7 gluon-mesh-batman-adv-core: don't break network configuration on upgrades with mesh_on_lan=true 2015-05-28 01:44:25 +02:00
Nils Schneider
a42db7a71f gluon-luci-admin: fix translation of "Export Mode"
Export Mode -> Expert Mode
2015-05-22 11:51:32 +02:00
Matthias Schiffer
ab10be9f50 We're on Chaos Calmer now 2015-05-22 01:09:19 +02:00
Matthias Schiffer
6a31830600 gluon-mesh-batman-adv-core: always set hop penalty to 15
15 is the default in batman-adv-legacy, the new default 30 in newer batman-adv
versions is too high in larger networks.
2015-05-16 14:00:06 +02:00
Nils Schneider
e8a483c9a1 luci-wifi-config: don't disable mesh interface
fixes #365
2015-05-09 22:10:32 +02:00
Nils Schneider
2164893616 gluon-radvd: on-link flag
By introducing a new option -a in addition to -p this patch allows
controlling the on-link flag of announcements.

A prefix specified using -a will have the on-link flag set to zero
while a prefix specified using -p will retain its behaviour (i.e.
on-link flag set).

Example:

    gluon-radvd -i local-node -p 2001:db8:aaaa:/64 -a 2001:db8:bbbb::/64

This will announce 2001:db8:aaaa::/64 with the on-link flag set and
2001:db8:bbbb::/64 with the flag unset.
2015-05-08 21:46:12 +02:00
Matthias Schiffer
6d2741c024 gluon-luci-mesh-vpn-fastd: minor text change 2015-05-07 02:23:32 +02:00
Matthias Schiffer
a258092760 Merge remote-tracking branch 'origin/mesh-on-lan' 2015-05-06 23:55:04 +02:00
Matthias Schiffer
1e427c4e77 Merge branch 'configurable-methods' 2015-05-06 23:54:17 +02:00
Nils Schneider
d4c3467bc3 luci-portconfig: allow toggling of mesh_on_lan 2015-05-06 13:57:46 +02:00
Nils Schneider
39d0c8f459 mesh-batman-adv: mesh_on_lan
This adds mesh_on_lan functionality.

A new optional site.conf option, mesh_on_lan, has been added. If set to
'true', all LAN ports will be used for meshing instead of being part of
the client bridge.
2015-05-06 13:57:46 +02:00
Matthias Schiffer
cd00eeb367 Merge remote-tracking branch 'origin/meshinterfaces' 2015-05-04 19:28:28 +02:00
Nils Schneider
a349dd07bd nodeinfo: mesh interface classes (wireless, tunnel, other)
This will introduce a new nodeinfo object, network.mesh.bat0.interfaces,
containing any of the the following subordinated objects:

- wireless
- tunnel
- other

Each of these objects contains a (possibly empty) list of MAC addresses
(lowercase, colon-notation) corresponding to a interface of the given
class. Combined with a batman graph it is thus possible to mark
sub-graphs as "wireless" or "vpn".

The previously used object mesh_intefaces is superseded by this new
object structure and mesh_interfaces will be removed in a future Gluon
release.
2015-05-04 19:15:39 +02:00
Matthias Schiffer
fadfc64e16 gluon-luci-wifi-config: don't use luci.sys.wifi.getiwinfo()
Directly using libiwinfo is more reliable.
2015-05-04 19:07:33 +02:00
Matthias Schiffer
f4a3f73fcb gluon-luci-private-wifi: various fixes and cleanup
It would be nice to generalize this to work with multiple radios, maybe by
integrating it into the wifi-config module...
2015-05-04 04:44:12 +02:00
Matthias Schiffer
6fc1db3a70 gluon-luci-wifi-config: add txpower setting
Fixes #219
2015-05-04 04:34:23 +02:00
Matthias Schiffer
76607b0070 Add new package gluon-luci-mesh-vpn-fastd
This new package allows enabling or disabling the null method for the
fastd mesh VPN.
2015-05-04 03:09:36 +02:00
Matthias Schiffer
ce2f494e0c gluon-luci-theme: add cbi-value-field-long class
This new class allows visually pleasing lists of radio buttons/checkboxes/etc.
with long explanation texts.
2015-05-04 03:09:35 +02:00
Matthias Schiffer
a50cce4e09 gluon-mesh-vpn-fastd: make adding or removing the null method survive updates (if desired) 2015-05-04 03:09:07 +02:00
Matthias Schiffer
b76e1a9e48 gluon-luci-wifi-config: i18n and miscellaneous fixes 2015-05-04 03:04:25 +02:00
Matthias Schiffer
4b06bc6a3d gluon-luci-theme: don't color section titles
All other titles are grey, the magenta-colored section titles inbetween look
weird.
2015-05-04 02:49:40 +02:00
Matthias Schiffer
a02d7ad800 gluon-luci-private-wifi: i18n 2015-05-04 02:43:48 +02:00
Matthias Schiffer
56c8fe5145 gluon-luci-autoupdater: order next to the manual upgrades in the navigation 2015-05-04 02:17:38 +02:00
Matthias Schiffer
cdc16af1bd gluon-luci-portconfig: i18n 2015-05-04 02:15:22 +02:00
Matthias Schiffer
fe265126a9 gluon-luci-autoupdater: i18n 2015-05-04 01:57:50 +02:00
Matthias Schiffer
e1f2ac11b6 gluon-luci-admin: i18n 2015-05-04 01:29:29 +02:00
Matthias Schiffer
623966afae gluon-luci-theme: more consistent button spacing 2015-05-04 01:29:03 +02:00
Matthias Schiffer
4d7e84b405 gluon-config-mode-core: nicer LuCI view filenames 2015-05-03 01:58:07 +02:00
Matthias Schiffer
1838cee0d6 gluon-setup-mode: set br-setup MAC address to the primary MAC address
This allows to reach the node in setup mode over the same link-local IPv6
address as br-client uses during normal operation.
2015-05-01 19:57:45 +02:00
Matthias Schiffer
2deb82bcb6 gluon-setup-mode: set regdom
OpenWrt doesn't set the regdom unless a WLAN device is started. Explicitly set
the regdom in the setup mode to get the correct list of allowed txpower entries
in the planned LuCI module.
2015-05-01 19:50:40 +02:00
Hendrik Lüth
34d48501cf fix the data types in the check_site.lua 2015-05-01 05:36:50 +02:00
Matthias Schiffer
f1b5692c2c Merge pull request #344 from do9xe/master
Add the package gluon-luci-wifi-config
2015-05-01 00:17:12 +02:00
Matthias Schiffer
1b7c3e060b gluon-luci-node-role: make node role display strings translatable 2015-04-30 23:48:07 +02:00
Matthias Schiffer
82983c871e Merge branch 'i18n' of https://github.com/freifunk-mwu/gluon 2015-04-30 22:22:30 +02:00
Matthias Schiffer
00c47f2912 gluon-mesh-vpn-fastd: extend site configuration to allow multiple and nested peer groups 2015-04-30 13:05:15 +02:00
kokel
25d8b18f7a gluon-luci-node-role: activate reset button 2015-04-28 17:22:38 +02:00
Kokel
0c80e7863f gluon-luci-node-role: add translations 2015-04-28 17:22:38 +02:00
do9xe
e0a1bf5f9a add the package gluon-luci-wifi-config 2015-04-28 07:10:47 +02:00
Matthias Schiffer
6bcd9b92d4 gluon-announced: allow announced queries on WAN (if mesh-on-wan is enabled) 2015-04-28 05:25:56 +02:00
Matthias Schiffer
bca916dd55 gluon-core: disable multicast snooping on the WAN bridge
This seems to mitigate weird bridge forwarding issues.
2015-04-27 22:00:38 +02:00
Matthias Schiffer
5aa6838828 Introduce virtual packages for gluon-setup-mode and gluon-config-mode-core
This will require site.mk to explicitly pull in the gluon-setup-mode and
gluon-config-mode-core packages.
2015-04-26 13:16:23 +02:00
Matthias Schiffer
6ee65907a4 gluon-announce: add number of CPUs 2015-04-25 23:25:26 +02:00
Matthias Schiffer
53dac66a04 Merge branch 'survive-upgrades' of https://github.com/do9xe/gluon 2015-04-25 21:44:00 +02:00
DO9XE
44beb0c178 gluon-mesh-batman-adv-core: make wireless-disable state survive updates and allow site option 2015-04-25 21:38:57 +02:00
Matthias Schiffer
5d8aee0559 gluon-config-mode-geo-location: add "Altitude" string to the POT file 2015-04-25 18:40:19 +02:00
Matthias Schiffer
d7fb0c7fa0 gluon-announced: use respondd
This also adds an extended query protocol and deflate compression.
2015-04-23 18:36:00 +02:00
Matthias Schiffer
62de29cb67 gluon-announce: don't make the lua module executable 2015-04-23 18:27:15 +02:00
bjoern
c4f7a52621 gluon-config-mode-mesh-vpn: Remove trailing newline from pubkey variable in 0100-mesh-vpn.lua 2015-04-10 23:00:13 +02:00
Jan-Philipp Litza
ba9ce051b0 gluon-announce: Fix permissions of collect.lua 2015-04-08 21:16:55 +02:00
Matthias Schiffer
cd34cb2ebb gluon-core, gluon-setup-mode: improve support for UAP Outdoor+ 2015-04-08 00:44:12 +02:00
Matthias Schiffer
a476dd4e33 gluon-site: remove PO template, it is maintained in the site-example
Having two POT files will only cause confusion.
2015-03-25 17:43:37 +01:00
Matthias Schiffer
a97116b909 Remove english .po files, they are redundant. 2015-03-25 17:42:58 +01:00
Nils Schneider
653ea4a301 Merge pull request #76 from freifunk-gluon/neighours
announce neighbours using alfred/gluon-announce
2015-03-24 20:56:39 +01:00
Nils Schneider
7e7ee16105 gluon-announce: move collect_dir to library 2015-03-23 22:09:27 +01:00
Martin Weinelt
8361b51c32 gluon-config-mode-geo-location: add altitude field 2015-03-23 02:19:36 +01:00
Matthias Schiffer
127b576fa5 gluon-config-mode-*: remove usages of the word "Freifunk" 2015-03-22 23:42:23 +01:00
Matthias Schiffer
6c387af9ca gluon-site: always provide a PKG_VERSION, also during package scan 2015-03-21 18:26:54 +01:00
Jan-Philipp Litza
335026af09 Allow empty hostname prefix
In Bremen it has been noted that a prefix may lead people to believe it
has to stay there and thus naming their nodes "ffhb-*", which is not
what the community wants (see FreifunkBremen/gluon-site-ffhb#1).

However, an empty prefix lead to the connecting hyphen still being
inserted. This commit thus makes the hyphen part of the configured
prefix and allows the prefix to be missing from the `site.conf`.
2015-03-21 13:43:45 +01:00
Matthias Schiffer
7896f91f86 gluon-config-mode-mesh-vpn: add translations 2015-03-19 22:22:39 +01:00
Matthias Schiffer
ce82baf0ad gluon-config-mode-core: use translated messages from the site configuration 2015-03-19 22:11:43 +01:00
Matthias Schiffer
5805e78455 gluon-site: add translations from the site configuration 2015-03-19 21:31:44 +01:00
Matthias Schiffer
0e9095b58c gluon-config-mode-contact-info: add missing translation 2015-03-19 21:14:41 +01:00
Matthias Schiffer
87370a456d gluon-site: add POT file for site-configurable messages 2015-03-19 20:31:12 +01:00
Matthias Schiffer
65b44ca4ce Rename gluon-config to gluon-site 2015-03-19 20:14:40 +01:00
Matthias Schiffer
d9366935e3 gluon-config-mode-*: add source directory to GluonBuildI18N calls 2015-03-19 19:05:42 +01:00
Matthias Schiffer
113f362c30 gluon-config: use PKG_FILE_DEPENDS 2015-03-19 03:54:12 +01:00
Matthias Schiffer
67b607d882 gluon-config-mode-core: add translations 2015-03-19 02:35:20 +01:00
Matthias Schiffer
76ccfeea25 gluon-config-mode-contact-info: fix c&p mistake 2015-03-19 02:35:13 +01:00
Matthias Schiffer
224f3990e0 gluon-config-mode-contact-info: add translations 2015-03-19 01:43:25 +01:00
Matthias Schiffer
613dceaa25 gluon-config-mode-geo-location: add translations 2015-03-19 01:22:31 +01:00
Matthias Schiffer
325eeb4f69 gluon-config-mode-hostname: add translations 2015-03-19 00:57:16 +01:00
Matthias Schiffer
c6f96c3666 gluon-config-mode-autoupdater: add translations for English and German 2015-03-18 20:25:27 +01:00
Matthias Schiffer
0a1e1ad37e gluon-config-mode-core: pull in LuCi i18n packages for enabled languages 2015-03-18 20:25:12 +01:00
Matthias Schiffer
dce26de28c gluon-core: add i18n support 2015-03-18 20:24:57 +01:00
Lars Bußmann
9e267f30bf gluon-next-node: fix IPv4 next node feature 2015-03-18 15:58:21 +01:00
Nils Schneider
b58ab9abb9 ebtables-filter-mcast: drop ARPs to/from 0.0.0.0
Fixes https://github.com/freifunk-gluon/gluon/issues/311
2015-03-16 20:08:22 +01:00
Matthias Schiffer
93cc8e543e gluon-core: fix primary MAC address on TP-LINK Archer C5/C7 2015-03-10 13:40:45 +01:00
Matthias Schiffer
8c59e0c4ea Merge branch 'announce_site_code' of https://github.com/freifunk-mwu/packages 2015-03-02 23:12:53 +01:00
Matthias Schiffer
112c9d5c9d gluon-wan-dnsmasq: don't rewrite resolv.conf when its content hasn't changed
This avoids poking dnsmasq every time a DHCP lease is obtained or a router
advertisement received.
2015-02-18 01:23:11 +01:00
Kokel
3b3b0bf521 gluon-announce: add script to announce site_code 2015-02-10 18:20:44 +01:00
Nils Schneider
9f4770fd62 Merge pull request #99 from freifunk-gluon/allow-ripng
ebtables-filter-multicast: allow ripng
2015-02-10 16:38:55 +01:00
Nils Schneider
3bd93dea06 ebtables-filter-multicast: allow ripng 2015-02-09 02:41:28 +01:00
Nils Schneider
db1fddb0c6 gluon-mesh-vpn-fastd: announce peer status using statistics.d
This adds basic peer statistics to statistics.d:

    "mesh_vpn": {
      "muehlentor": {
        "established": 23.8 // seconds
      },
      "huextertor": null,
      "holstentor": null
    }
2015-02-05 21:33:36 +01:00
Matthias Schiffer
cbedc9421e gluon-core: sysconfig: differentiate between nil and empty string 2015-01-26 20:18:33 +01:00
Matthias Schiffer
c45a0bcdc1 gluon-core: fall back to eth0 for the primary MAC address when there is no WLAN device 2015-01-25 02:29:43 +01:00
Matthias Schiffer
2dea903120 gluon-mesh-batman-adv-core: explicitly set WLAN client and mesh interfaces' ifname 2015-01-24 23:34:35 +01:00
Matthias Schiffer
949420158f gluon-mesh-batman-adv-core: remove unused variable in upgrade script 2015-01-24 23:11:27 +01:00
Matthias Schiffer
6e22c667de gluon-mesh-batman-adv-*: move MTU configuration to version-specific upgrade scripts 2015-01-24 17:18:47 +01:00
Nils Schneider
2e0e24a992 announce neighbours using alfred/gluon-announce
This adds a new announce.d datum "neighbours" (alfred 160) containing
information about mesh neighbours. It's intended to be an replacement
for batadv-vis.

In addition to the data already provided by batadv-vis it'll also
provide information about direct wifi neighbours.

Unlike batadv-vis, no data about clients is transmitted.

Sample data:

    {
      "wifi": {
        "90:f6:52:82:06:02": {
          "neighbours": {
            "f8:d1:11:2c:a7:d2": {
              "noise": -95,
              "inactive": 0,
              "signal": 0
            },
            "96:f6:52:ff:cd:6f": {
              "noise": -95,
              "inactive": 0,
              "signal": -37
            }
          }
        }
      },
      "batadv": {
        "90:f6:52:82:06:02": {
          "neighbours": {
            "96:f6:52:ff:cd:6f": {
              "lastseen": 2.8500000000000001,
              "tq": 177
            }
          }
        },
        "90:f6:52:82:06:03": {
          "neighbours": {
            "f8:d1:11:2c:a7:d3": {
              "lastseen": 2.3500000000000001,
              "tq": 206
            }
          }
        }
      },
      "node_id": "90f652820602"
    }
2015-01-24 12:12:53 +01:00
Matthias Schiffer
9b172bbaf4 Move all upgrade scripts to a common directory
Moving the scripts to a common directory not only vastly simplifies the
zzz-gluon-upgrade script, but also allows to define an ordering of such
scripts across packages.
2015-01-24 11:27:47 +01:00
Matthias Schiffer
20187005d4 gluon-legacy: convert the remaining legacy infrastructure to a simple invariant script 2015-01-24 11:14:09 +01:00
Matthias Schiffer
0371b443d3 gluon-legacy: convert the remaining legacy scripts to invariant scripts 2015-01-24 11:14:09 +01:00
Matthias Schiffer
5e0bad2f25 gluon-legacy: convert gluon-core legacy scripts to invariant scripts
This also fixes a long-broken legacy upgrade script which would leave the
sysconfig variable lan_ifname unset and the LAN ports unusable.
2015-01-24 11:14:09 +01:00
Matthias Schiffer
ecfcb4dd6b gluon-mesh-vpn-fastd: get rid of initial script 2015-01-24 11:14:09 +01:00
Matthias Schiffer
7940bad4a9 gluon-lock-password: convert to invariant script and remove legacy script 2015-01-24 11:14:09 +01:00
Matthias Schiffer
6f11279438 gluon-core: convert all initial scripts to invariant scripts 2015-01-24 11:14:09 +01:00
NeoRaider
71c498edd2 Merge pull request #83 from kokel/node-role
add section "system" to gluon-node-info with new option "role" and luci package to change role via config mode
2015-01-24 11:13:42 +01:00
NeoRaider
12304fcb4c Merge pull request #95 from freifunk-gluon/config-mode-skip
gluon-setup-mode: allow skipping on first boot
2015-01-24 11:12:19 +01:00
NeoRaider
4947578d48 Merge pull request #87 from freifunk-darmstadt/patch-1
gluon-announce: rename announce.lua to collect.lua
2015-01-24 11:11:55 +01:00
Kokel
a80400bb41 add package gluon-luci-node-role; depends on package "gluon-node-info"; depends on new site.conf section 2015-01-23 12:22:48 +01:00
Kokel
ba81359c60 "gluon-node-info": add section system and option role; add announce script to announce the role as nodeinfo;
add invariant script "001-node-system" to add section "system" if not exist; add invariant script "010-node-role"
to add section "system" if not exist; add invariant script "010-node-role" to set role to default value
(site.roles.default) if not exist; depends on new site.conf section
2015-01-23 12:22:42 +01:00
Nils Schneider
629409364b gluon-setup-mode: allow skipping on first boot
By setting setup_mode.skip to true in site.conf the device will skip
setup mode on first boot.
2015-01-23 12:05:26 +01:00
Matthias Schiffer
8e33dd5075 gluon-setup-mode: always finalize the overlay before rebooting
When an early reboot is triggered because an upgrade script has disabled the
config mode, we need to explicitly call /etc/init.d/done, otherwise the overlay
will not be finalized after a firstboot and we get an endless reboot loop.
2015-01-22 23:53:56 +01:00
Daniel Golle
3de151c286 mesh-batman-adv-core: allow sites to set VLAN for mesh
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2015-01-18 08:03:59 +01:00
flokli
63ff54e4bc gluon-announce: rename announce.lua to collect.lua
Signed-off-by: flokli <florian@darmstadt.freifunk.net>
2015-01-14 10:36:32 +01:00
flokli
fc62de55e3 gluon-announced: rename DEVLIST file to gluon-announced.devs
was gluon-announce.devs before

Signed-off-by: flokli <florian@darmstadt.freifunk.net>
2015-01-14 10:31:29 +01:00
flokli
0df0eaeaac gluon-announced: add dependency to gluon-announce
the gluon-announced package installs a hotplug script
that uses announce.lua from the gluon-announce package.

So we need to include gluon-announce as dependency.

Signed-off-by: flokli <florian@darmstadt.freifunk.net>
2015-01-14 06:20:28 +01:00
Matthias Schiffer
78b43b1dd6 gluon-core, gluon-setup-mode: fix LAN and WAN on nanostation-m-xw 2014-11-26 23:30:56 +01:00
Matthias Schiffer
bf4b3a265f gluon-setup-mode: initialize all LEDs 2014-11-26 20:32:47 +01:00
Matthias Schiffer
9dd4f52bfa CPE510-specific config (switch WAN and LAN, config mode on WAN) 2014-11-26 19:50:45 +01:00
Matthias Schiffer
104c92dfe6 gluon-status-page: remove workaround for now fixed LuCi bug 2014-11-17 16:22:05 +01:00
Nils Schneider
14553d42be gluon-alfred: no parallel cronjobs
This should reduce memory consumption a little.

https://github.com/freifunk-gluon/gluon/issues/109#issuecomment-61681696
2014-11-17 15:36:06 +01:00
Matthias Schiffer
691f0cb6c5 gluon-status-page: show VPN status (very minimalistic for now) 2014-11-17 03:24:08 +01:00
Matthias Schiffer
5ee5cf3ec1 gluon-mesh-vpn-fastd: configure a status socket 2014-11-17 03:23:36 +01:00
Matthias Schiffer
7bd30f9c84 gluon-ebtables-filter-multicast: allow hop-by-hop options as ICMPv6 is sometimes prefixed by an HBH header 2014-11-13 02:37:30 +01:00
Matthias Schiffer
2627161509 Merge remote-tracking branch 'origin/status-page-164' 2014-11-13 01:37:18 +01:00
Nils Schneider
5266a07334 status-page: escape html, move script to body 2014-11-13 01:36:38 +01:00
Nils Schneider
710cb8b36c status-page: lua rewrite, use gluon-neighbour-info 2014-10-27 23:21:40 +01:00
ohrensessel
15adcae331 Fix ebtables dhcpv6 rules
the ports were interchanged, see the following packet flow:

client:546 --> [ff02::1:2]:547
server:547 --> client:546

therefore we need to allow outgoing multicast packets with dst-port 547
and unicast packets from bat0 to clients with dst-port 546 and 547 in the other direction
2014-10-19 16:02:30 +02:00
Kokel
0e5a2ea38d deactivate multicast_mode by default 2014-10-05 15:24:58 +02:00
Matthias Schiffer
7496b3d3c1 gluon-luci-admin: fix SSH keys being removed when a password is set 2014-10-03 00:47:48 +02:00
Matthias Schiffer
f9cc73187f gluon-mesh-vpn-fastd: use delete_all instead of foreach to delete the old peers 2014-09-15 21:50:43 +02:00
Matthias Schiffer
1803525745 Configure unique MAC addresses for all WLAN interfaces 2014-09-15 19:55:09 +02:00
Matthias Schiffer
b51e1063b7 Add utility function to generate unique MAC addresses derived from the primary MAC 2014-09-15 19:55:09 +02:00
Matthias Schiffer
b977f00162 Fix mesh-batman-adv-core legacy script path 2014-09-15 19:55:09 +02:00
Matthias Schiffer
2dfe68d50a Remove obsolete legacy upgrade script 2014-09-15 19:55:09 +02:00
Nils Schneider
c06141cff3 gluon-node-info: remove fixup-owner script 2014-09-15 19:54:30 +02:00
Nils Schneider
0de7bf5f64 gluon-core: port initial/020-wireless to lua 2014-09-15 19:50:10 +02:00
Nils Schneider
53e56b0853 Merge pull request #74 from freifunk-gluon/authorized-keys
gluon-authorized-keys: add keys from site.conf
2014-09-15 19:20:01 +02:00
Nils Schneider
a753fa79e3 gluon-authorized-keys: add keys from site.conf
This package will run as invariant script after each upgrade and copy
all keys from site.conf's authorized_keys entry to
/etc/dropbear/authorized_keys.

Existing keys will be preserved.

The site.conf entry 'authorized_keys' is required (if this package is
selected) and must contain a list of strings, each representing a line
of the resulting file.
2014-09-15 19:19:21 +02:00
Nils Schneider
f21678dc0d Merge pull request #69 from freifunk-gluon/gluon-neighbour-info
gluon-neighbour-info: query direct neighbours
2014-09-15 18:52:25 +02:00
Nils Schneider
5fa97f8fdb gluon-core: add node_id() to gluon.util 2014-09-11 12:27:29 +02:00
Nils Schneider
d87cf05c95 mesh-batman-adv-core: disable igmp_snooping on br-client
IGMP snooping causes serious trouble with IPv6 neighbour discovery.
2014-09-09 11:29:51 +02:00
Nils Schneider
abcc86bf8f gluon-neighbour-info: global timeout 2014-09-06 15:40:03 +02:00
Nils Schneider
0222f342af gluon-neighbour-info: newlines between responses 2014-09-06 14:10:43 +02:00
Nils Schneider
b969f3e644 gluon-neighbour-info: cleanup, use recv instead of recvfrom 2014-09-06 14:02:19 +02:00
Nils Schneider
29464a4ba1 Merge pull request #72 from freifunk-gluon/fastd-site-enable
mesh-vpn-fastd: enable from site.conf
2014-09-06 13:38:43 +02:00
Nils Schneider
4e19df098a mesh-vpn-fastd: enable from site.conf
This patch allows fastd's enabled flag's default value to be set from
site.conf.
2014-09-03 20:37:17 +02:00
Jan-Philipp Litza
ae43f3dc3e gluon-core: Remove VERSION_DIR hack
As the (removed) comment said, this was a one-time-hack that was obsoleted long ago.
2014-08-30 15:13:52 +02:00
Nils Schneider
fe57f93bc7 gluon-neighbour-info: query direct neighbours
This is a simple client for gluon-announced.
2014-08-28 18:48:57 +02:00
Nils Schneider
e2ff6a6ed3 gluon-luci-admin: restructure firmware upgrades 2014-08-28 16:36:04 +02:00
NeoRaider
9d11f4bda1 Merge pull request #68 from FreifunkBremen/gluon-cron-fix
gluon-cron: Fix endless loop parsing invalid lines
2014-08-27 10:33:34 +02:00
Jan-Philipp Litza
afce06c3d3 gluon-cron: Fix endless loop parsing invalid lines
Using the line
```
* * * * echo "foobar"
```
(notice the missing fifth time field) in a crontab causes gluon-cron
to enter an endless loop while parsing it, thus it won't even execute
the other, valid crontabs.

This is caused by the loop in [line 138] where `begin - min`
substracts the unsigned `min` from the signed `begin`. If now `begin`
is invalid, `strict_atoi` returns -1 and the loop starts at
`(-1)-1=MAX_INT` and runs while `i <= MAX_INT` which is always true.

The real culprit lies in [line 134] where exactly this case
`begin < min` is checked - but because of the signedness, this check doesn't
work as expected either.

The easiest solution is to make `min` a signed integer instead of an unsigned
one, as we do not require it to be very large and only pass the constants 0 or
1 to it.

To avoid other similar problems, this patch makes the input variable `n` a
signed integer as well.
2014-08-27 10:20:04 +02:00
Nils Schneider
a90920e373 gluon-announced: avoid spawning zombies 2014-08-25 21:53:21 +02:00
Nils Schneider
40321595a9 Merge pull request #62 from freifunk-gluon/clientcount
mesh-batman-adv-core: add clientcount statistics
2014-08-22 14:40:09 +02:00
ohrensessel
fea00b3603 calculate rootfs usage instead of overlayfs
in case a target does not use overlayfs
2014-08-18 14:07:23 +02:00
ohrensessel
4d747c09c4 adapt overlay_usage to match the comments from luebeck 2014-08-18 13:08:54 +02:00
ohrensessel
42c43ba2af overlay: rename to clarify value 2014-08-18 12:12:00 +02:00
ohrensessel
0e95c90e21 overlay: change to normalized, fix error handling 2014-08-18 12:10:54 +02:00
ohrensessel
4e76436932 add overlay usage to statistics.d 2014-08-18 11:40:13 +02:00
Matthias Schiffer
fe2fc8785e Remove gluon-ath9k-workaround 2014-08-17 19:34:03 +02:00
Matthias Schiffer
f9e5e3325f gluon-setup-mode: cleanup and upgrade fix
Since switching to Barrier Breaker/procd, we'd not notice if we were
upgrading from a version before renaming the config file to gluon-setup-mode
as the upgrade scripts run after the preinit.

Fix this by checking later during setup mode init again and rebooting into the
regular run mode if we detect this case.
2014-08-16 15:15:24 +02:00
Matthias Schiffer
f3ff07b1a5 gluon-mesh-vpn-fastd: delete all old backbone peers on update 2014-08-16 14:51:18 +02:00
penguineer
31fe529e92 Beschreibungstext umformuliert, damit die Option "Mesh-VPN" klarer wird.
Die Bezeichnung "Mesh-VPN" ist etwas irreführend. Man kann denken, dass hiermit das Meshing aktiviert wird, wobei es ja — im Gegenteil — um eine Nutzung des WAN geht.
2014-08-15 15:28:05 +02:00
Nils Schneider
3652628e96 luci-portconfig: fix dns 2014-08-10 17:13:39 +02:00
Nils Schneider
a1d27aefbb mesh-batman-adv-core: add clientcount statistics
This adds

  "client" { "total": <int>, "wifi": <int>" }

to statistics.d. "total" will be the number of clients connected.
"wifi" will be the number of clients connected over wifi. I.e. "total"
will always be equal to or greater than "wifi".

The node will not count itself.
2014-08-10 13:24:08 +02:00
Nils Schneider
d90b1d66fd Merge pull request #61 from freifunk-gluon/configurable-wan
Configurable WAN
2014-08-09 23:31:19 +02:00
Nils Schneider
5145eab954 Merge pull request #59 from freifunk-gluon/form-fields
luci-theme: fix centering of form fields
2014-08-09 20:56:48 +02:00
Matthias Schiffer
62d910edde gluon-luci-portconfig: expose advanced WAN configuration 2014-08-09 17:36:15 +02:00
Matthias Schiffer
3762f52c69 gluon-core: restructure WAN configuration 2014-08-09 14:39:21 +02:00
Matthias Schiffer
d8f0c531c9 gluon-wan-dnsmasq: allow configuring static DNS servers 2014-08-09 14:39:05 +02:00
Nils Schneider
25e0c6e07b luci-theme: fix checkboxes on firefox 2014-08-09 09:35:39 +02:00
Nils Schneider
488ed1bdd7 Merge pull request #58 from jplitza/patch-1
gluon-announced: fix help message
2014-08-08 21:44:11 +02:00
Matthias Schiffer
143d5a9565 Add gluon-mesh-batman-adv-15 2014-08-08 15:56:36 +02:00
Matthias Schiffer
279cfd5117 Split gluon-mesh-batman-adv into gluon-mesh-batman-adv-core and gluon-mesh-batman-adv-14 2014-08-08 15:50:52 +02:00
Nils Schneider
b169a169d6 luci-theme: fix centering of form fields 2014-08-08 14:53:27 +02:00
Jan-Philipp Litza
8a32dd7887 gluon-announced: fix help message
It incorrectly stated "-m" to be the multicast group option, when it really was "-g"
2014-08-08 14:50:00 +02:00
Nils Schneider
4f65d49950 Revert "gluon-luci-theme: remove top padding cbi-field-title"
This reverts commit f37f1f1ac2c9a44d0aafb25e3f5a01e16df6019e.
2014-08-08 14:34:19 +02:00
Matthias Schiffer
cd0a932ac0 gluon-setup-mode: provide alternative rc.d directory for procd 2014-08-07 15:52:38 +02:00
Julian Kornberger
60e0a5601c gluon-luci-private-wifi: fix package naming
previously it was gluon-luci-privatewifi
2014-08-06 23:21:33 +02:00
Matthias Schiffer
1bf1a8ad05 Remove gluon-luci-core
The package luci-base now contains everything we need.
2014-08-06 12:07:34 +02:00
Matthias Schiffer
201acaa3a9 Dependency fixes for the new LuCi version 2014-08-06 12:06:49 +02:00
Matthias Schiffer
c0139e871f gluon-setup-mode: change START to 15
To start after haveged after the recent update.
2014-08-06 11:45:26 +02:00
Nils Schneider
257787a0b0 Merge pull request #40 from digineo/private-wifi
gluon-luci-private-wifi: UI for enabling a private WLAN
2014-08-05 15:50:53 +02:00
Nils Schneider
3aecc92073 gluon-config-mode: modularize wizard
This commit splits gluon-config-mode into several, mostly independent
packages.

* gluon-config-mode-core: basic functionality (required)
* gluon-config-mode-hostname: hostname field
* gluon-config-mode-autoupdater: show when autoupdater is enabled
* gluon-config-mode-mesh-vpn: fastd vpn configuration, bw limit
* gluon-config-mode-geo-location: geo coordinates
* gluon-config-mode-contact-info: contact info field

The package gluon-config-mode has been removed. You need to replace
it with these packages (or any subset of them) in site.mk:

* gluon-config-mode-hostname
* gluon-config-mode-autoupdater
* gluon-config-mode-mesh-vpn
* gluon-config-mode-geo-location
* gluon-config-mode-contact-info

Note: It is not possible to deactivate the autoupdater in config mode
anymore (expert mode will still allow it). Instead, a message is shown
in case the autoupdater is enabled.
2014-08-05 14:56:45 +02:00
Julian Kornberger
1fc572e863 gluon-luci-wifi: UI for enabling a private WLAN
freifunk-gluon/gluon#122
2014-08-05 01:20:15 +02:00
Matthias Schiffer
07ce01517c gluon-radvd: fix NULL deref
The specification says that the ifa_addr field of struct ifaddrs may be NULL,
and in Barrier Breaker, this does actually occur...
2014-08-04 22:57:26 +02:00
Nils Schneider
ce1a160bcc gluon-config-mode: mention reboot on button
Make it clear that saving settings will reboot the device.
2014-08-04 20:46:33 +02:00
Nils Schneider
74dfce8a30 gluon-announced: do not strdup optarg 2014-08-04 20:41:00 +02:00
Nils Schneider
a7a8f37308 Merge pull request #53 from freifunk-gluon/fastd-key-generate
config-mode, mesh-vpn: refactor key generation
2014-08-04 20:32:03 +02:00
Matthias Schiffer
8f6ec2fb4b gluon-simple-tc: replace tc with own implementation to reduce size 2014-08-04 20:08:40 +02:00
Matthias Schiffer
4732de1f82 gluon-radvd: implement own radvd to reduce size 2014-08-04 20:08:40 +02:00
Matthias Schiffer
bce2f19a8c Remove outdated IP dependencies 2014-08-04 20:08:40 +02:00
Matthias Schiffer
117f9b4662 gluon-mesh-batman-adv: don't parse ip output for nodeinfo 2014-08-04 20:08:40 +02:00
Matthias Schiffer
4795fc4a50 gluon-mesh-batman-adv: use lua-ethtool-stats instead of ethtool 2014-08-04 20:08:40 +02:00
Matthias Schiffer
7b0ed188b0 gluon-wan-dnsmasq: use libpacketmark 2014-08-03 11:07:28 +02:00
Matthias Schiffer
354508752c gluon-mesh-batman-adv: fix network.mesh_inferfaces announce field with new netifd 2014-07-28 16:29:20 +02:00
Nils Schneider
2f5705b5de config-mode, mesh-vpn: refactor key generation
Previously, the config-mode was responsible for generating the fastd
secret. This patch sets the default secret to "generate" causing a
secret to be generated on its first use (e.g. show_key or start).

This also changes the info page (in Expert Mode) to show "n/a" when the
public key is not yet available.
2014-07-27 16:22:40 +02:00
Matthias Schiffer
9510d03b8b gluon-autoupdater: perform fallback updates hourly 2014-07-25 16:55:00 +02:00
Matthias Schiffer
35d8ff579f gluon-autoupdater: unconditionally perform an update 5 minutes after boot when the whole PRIORITY delay has passed 2014-07-21 17:27:47 +02:00
Matthias Schiffer
a39f527dad gluon-autoupdater: add locking to ensure no two instances of the autoupdater run in parallel 2014-07-21 17:27:47 +02:00
Matthias Schiffer
bb2adefd34 gluon-autoupdater: adjust for new updater logic
The probability field is removed, updates are performed once per night between
04:00 and 05:00.
2014-07-21 17:27:47 +02:00
Matthias Schiffer
059ea7e5fd gluon-autoupdater: add version_file option to uci settings 2014-07-21 17:27:47 +02:00
Cyrus
cfc4a99307 Fixed bug which led to empty ath9k crontab file
The crontab file was opened in write mode but in the case where no monitor is defined it would leave an empty file.
2014-07-20 16:30:36 +02:00
Nils Schneider
0a3bf70d56 split announce.d into nodeinfo + statistics 2014-07-20 14:00:10 +02:00
Nils Schneider
a9c22c5ace gluon-core: add unique node_id
This adds a `node_id` to announce.d. `node_id` is an hex-number uniquely
identifying a particular node. On nodes having a
primary MAC this MAC address will be used as `node_id` (sans the
colons). The value is opaque. It must not be converted back into
a MAC address.

`node_id` should be sent in all alfred and announced packets to
ensure clients can link the data to a particular node.
2014-07-20 11:24:47 +02:00
Matthias Schiffer
12144126fe gluon-luci-admin: add an info page 2014-07-20 08:12:48 +02:00
Matthias Schiffer
71c9bb815f gluon-luci-theme: remove top padding cbi-field-title
This allows to use cbi-field to format plain text instead of form fields.
2014-07-20 08:12:48 +02:00
Matthias Schiffer
971dec8d27 gluon-core: remove now unused dnsmasq.d support 2014-07-20 04:04:27 +02:00
Matthias Schiffer
e9376fc3bd gluon-mesh-vpn-fastd: use gluon-wan-dnsmasq 2014-07-20 04:03:43 +02:00
Matthias Schiffer
f389ef925e Add new package gluon-wan-dnsmasq
This package provides a secondary dnsmasq instance on port 54 which resolves
everything over the WAN interface.
2014-07-20 03:25:22 +02:00
Matthias Schiffer
d638359215 Explicitly set the WAN MAC address on all models where WAN is a VLAN device
Also move it to gluon-mesh-batman-adv, as mesh_on_wan is the only feature that
needs a unique MAC address on the WAN interface.
2014-07-19 18:40:12 +02:00
Matthias Schiffer
f792997bb1 gluon-simple-tc: add site validator 2014-07-16 17:31:40 +02:00
Matthias Schiffer
de633e9bc3 gluon-simple-tc: change type of the enabled option in the site config to boolean 2014-07-16 16:56:15 +02:00
Matthias Schiffer
ce37755488 gluon-mesh-batman-adv: validate mesh_on_wan option 2014-07-16 16:44:33 +02:00
Nils Schneider
e2d9bd5160 Merge pull request #27 from freifunk-gluon/batman-on-wan
gluon-batman-on-wan + gluon-luci-portconfig
2014-07-16 16:30:36 +02:00
Nils Schneider
d2d3a7b628 gluon-batman-on-wan + gluon-luci-portconfig 2014-07-16 16:11:31 +02:00
ohrensessel
a25a56c0e8 gluon-ath9k-workaround: fix path of announce.d directory 2014-07-15 19:06:26 +02:00
Matthias Schiffer
baebeee98f gluon-luci-admin: support disabling password login again 2014-07-14 22:09:43 +02:00
Matthias Schiffer
e5999b3f44 gluon-luci-admin: allow removing all SSH keys 2014-07-14 18:56:49 +02:00
Matthias Schiffer
74d29bcdc9 gluon-mesh-batman-adv: fix mesh config script 2014-07-14 18:23:56 +02:00
Matthias Schiffer
16060d25d5 Move essential firewall rules from gluon-firewall to gluon-core and gluon-mesh-batman-adv
The now empty gluon-firewall is removed.
2014-07-14 17:53:41 +02:00
Matthias Schiffer
efe81b1c1c Merge branch 'gluon-announced' of https://github.com/freifunk-gluon/packages 2014-07-14 16:52:10 +02:00
Matthias Schiffer
a64483a3fc Merge branch 'mesh-announce-interfaces' of https://github.com/freifunk-gluon/packages 2014-07-14 16:50:54 +02:00
Nils Schneider
09e1de7dde gluon-announced: send nodeinformation on request
This is a simple daemon that will respond to multicast UDP packets
containing the keyword "nodeinfo" with all the information we
currently distribute using alfred.

The daemon will listen on all mesh interface, that is the hard
interfaces batman-adv uses.
2014-07-14 16:50:26 +02:00
Nils Schneider
b2a55f29d4 Merge pull request #35 from sargon/ath9k
gluon-ath9k-workaround: Announce how often the workaround has been trigg...
2014-07-13 09:13:30 +02:00
Nils Schneider
ae4c130c74 gluon-mesh-batman-adv: announce MAC of mesh ifaces
This will make a node announce all MACs of its interfaces participating
in the batman-adv mesh. This enables other nodes to associate the
announced object with both the data reported by batadv-vis as well as a
simple list of neighbours as output by `iw dev $IFACE station dump`.
2014-07-13 09:06:32 +02:00
Matthias Schiffer
eae6c25de6 Add support for IPv6 mesh VPN connections
The support is still very limited (IPv6-only DNS on WAN doesn't work yet), and
we now need fastd running as root, but apart from that, is should work.
2014-07-11 16:57:28 +02:00
NeoRaider
0312167fcd Merge pull request #36 from freifunk-gluon/gluon-announce
gluon-announce: detach announce.d from alfred
2014-07-11 14:45:40 +02:00
Nils Schneider
318e9d1a1d gluon-announce: detach announce.d from alfred
All announce.d scripts have been moved to /lib/gluon/announce/announce.d
The script /lib/gluon/announce/announce.lua will collect all information
and output json.
2014-07-11 14:43:47 +02:00
Matthias Schiffer
4d80b7a62d Split parts not Gluon-specific out of gluon-autoupdater 2014-07-11 14:06:42 +02:00
Matthias Schiffer
58ced87261 Use nicer platform match 2014-07-11 12:11:47 +02:00
Matthias Schiffer
6f1777b072 gluon-core: add platform utility module 2014-07-11 11:36:53 +02:00
Matthias Schiffer
1a52c6bdf2 gluon-core: remove sysconfig.sh 2014-07-10 23:45:03 +02:00
Matthias Schiffer
f73d727ae6 Remove all remaining uses of sysconfig.sh 2014-07-10 23:44:06 +02:00
Matthias Schiffer
7773afdc18 gluon-core: remove model.sh and model.lua 2014-07-10 17:57:31 +02:00
Matthias Schiffer
9c53b705d5 Remove all uses of gluon.model and model.sh 2014-07-10 17:57:31 +02:00
Matthias Schiffer
9a892e7948 gluon-alfred: use lua-platform-info 2014-07-10 17:57:31 +02:00
Nils Schneider
7dd8d3ee1e gluon-luci-admin: fix wording 2014-07-08 21:52:11 +02:00
Daniel Ehlers
941e398572 gluon-ath9k-workaround: Announce how often the workaround has been triggered. 2014-07-08 12:40:04 +02:00
Nils Schneider
011e68e5cc Merge pull request #34 from sargon/ath9k
gluon-ath9k-workaround: Workaround for the ath9k wifi bug.
2014-07-08 12:13:16 +02:00
Daniel Ehlers
bb699204ca gluon-ath9k-workaround: bug reporting support
If the `monitor` attribute in the site.conf is defined, the cron
script is modifed to send debug informations, generated on bug
detection, to given remote host and port,
e.g.: "fda1:384a:74de:4242::2 8090"
2014-07-08 01:51:09 +02:00
Daniel Ehlers
49febb43e7 gluon-ath9k-workaround: Workaround for the ath9k wifi bug.
Cron script which restarts wifi iff queues are marked stopped.
This script also outputs some debug information to nail
down the problem.
2014-07-07 22:53:52 +02:00
Matthias Schiffer
81dc4f44e2 gluon-core: remove now unused sysctl.sh 2014-07-07 22:23:56 +02:00
Matthias Schiffer
f82850fc37 gluon-mesh-batman-adv: convert mesh config upgrade script to Lua 2014-07-07 22:22:48 +02:00
Matthias Schiffer
3dddafea21 gluon-core: convert network config script to lua 2014-07-07 21:58:08 +02:00
Matthias Schiffer
0fd7ac1768 gluon-core: add and use a sysctl Lua module 2014-07-07 21:57:37 +02:00
Matthias Schiffer
1c0429ce8f gluon-core: extend user management library and convert it to Lua 2014-07-07 21:48:35 +02:00
Matthias Schiffer
f93e9b818f Split gluon-setup-mode package out of gluon-config-mode
gluon-config-mode retains the luci frontend, all setup scripts and config is
moved to the new package.
2014-07-05 20:11:41 +02:00
Matthias Schiffer
2ec02a41c2 gluon-core: add functions to unset sysconfig settings 2014-07-05 19:39:24 +02:00
Matthias Schiffer
f6a51c63e4 gluon-firewall: reject DNS queries from br-client (they should be accepted on local-node only) 2014-07-05 16:01:20 +02:00
Matthias Schiffer
ffd86668fe Validate site.conf 2014-07-05 02:48:56 +02:00
Matthias Schiffer
626056e625 gluon-legacy: fix order of version_files and old_files handling 2014-07-05 01:12:04 +02:00
Matthias Schiffer
10519660ea gluon-luci-admin: change text "Expertmode" to "Expert Mode" 2014-07-02 16:24:08 +02:00
ohrensessel
b7b374bd56 Improve explanation of the Mesh-VPN 2014-07-01 23:29:36 +02:00
Julian Kornberger
e5b2978a48 ubiquity-bullet-m does also work with picostation
Closes #31
2014-06-29 10:12:22 +02:00
Matthias Schiffer
040a68ee65 gluon-alfred: some announce.lua cleanup 2014-06-26 17:57:15 +02:00
Nils Schneider
8600a2f288 gluon-config-mode: down/upstream is kbit/s
The bandwidth limit input fields were missing a unit confusing users as to which value should be entered. It's kbit/s for both.
2014-06-17 19:33:58 +02:00
Matthias Schiffer
5d3ce91f75 gluon-status-page: fix neighbor view with current iw/mac80211
The whole status page should be rewritten ASAP, but this fix will at least
make it work again for now...
2014-06-15 13:22:39 +02:00
Matthias Schiffer
14ea7980f6 gluon-firewall: enable conntrack on WAN
Otherwise, the state match doesn't work, not allowing replies to outgoing
packets to get in.
2014-06-13 21:56:32 +02:00
Nils Schneider
d3d22a17d1 gluon-alfred: use gzip 2014-06-10 19:20:55 +02:00
Matthias Schiffer
bc54f80dfd gluon-alfred: reduce usage of util.exec, improve table formatting 2014-06-10 15:44:35 +02:00
Matthias Schiffer
ea7774c0b6 gluon-alfred: add fields idletime, memory and processes to statistics 2014-06-09 19:50:25 +02:00
Matthias Schiffer
7a3e8d1632 gluon-mesh-batman-adv: add batman-adv version information to alfred 2014-06-09 19:29:13 +02:00
Matthias Schiffer
48ea4b711f gluon-alfred: split announce.lua into several files and move parts into the appropriate packages
This also fixes the type of a few fields which were strings instead of numbers.
2014-06-09 19:23:16 +02:00
Matthias Schiffer
e317bdc230 gluon-core: add gluon.model lua module 2014-06-09 17:56:29 +02:00
ohrensessel
b89a0162eb Allow sysconfig variable to be used on reboot page 2014-06-07 13:43:31 +02:00
Matthias Schiffer
68149f25fd Add gluon-firewall package to mitigate open resolver issue
Original patch by Daniel Ehlers <danielehlers@mindeye.net>
2014-06-06 12:59:32 +02:00
Daniel Ehlers
aba0a3bc0c gluon-mesh-batman-adv: Do not ACCEPT incoming packets.
For security reasons we should not accept incoming packets per default
and instead allow specific services on specific interfaces.
2014-06-06 11:36:03 +02:00
Matthias Schiffer
acd60a22b1 gluon-config: add /lib/gluon/release
/lib/gluon/release had been lost during the conversion to the new site config
format.
2014-05-19 00:09:14 +02:00
Matthias Schiffer
5c121c1608 gluon-config-mode: allow using templates for texts again 2014-05-17 13:43:08 +02:00
Matthias Schiffer
a3ed0dde1f gluon-autoupdater: replace config script generator with Lua script 2014-05-17 13:43:08 +02:00
Matthias Schiffer
4d9df6d253 gluon-mesh-vpn-fastd: replace config script generator with Lua script 2014-05-17 13:43:08 +02:00
Matthias Schiffer
156813b34f gluon-simple-tc: replace config script generator with Lua script 2014-05-17 13:43:08 +02:00
Matthias Schiffer
ee307ec1de gluon-core: make Lua files proper modules 2014-05-17 13:43:08 +02:00
Matthias Schiffer
bf7a2c974e gluon-legacy: don't use generated scripts anymore 2014-05-17 13:43:02 +02:00
Matthias Schiffer
9367c1ffe7 gluon-next-node: convert pregenerated ebtables rules to Lua code 2014-05-14 15:08:43 +02:00
Matthias Schiffer
0953c9befb gluon-ebtables: use Lua instead of sh for the rule DSL to increase flexibility 2014-05-14 15:02:57 +02:00
Matthias Schiffer
ee829e8c90 gluon-radvd: replace pregenerated config file with Lua script 2014-05-14 14:30:13 +02:00
Matthias Schiffer
41dbaed19e gluon-config-mode: fix reboot.htm validity 2014-05-14 13:48:47 +02:00
Matthias Schiffer
24ac1dc1bc gluon-config-mode: convert templates to use the new site config 2014-05-14 13:23:15 +02:00
Matthias Schiffer
c33a434884 gluon-next-node: convert upgrade script to Lua 2014-05-14 12:31:16 +02:00
Matthias Schiffer
a6f87d2461 gluon-mesh-batman-adv: convert generated upgrade scripts to Lua 2014-05-14 11:55:06 +02:00
Matthias Schiffer
b95a4d67e8 gluon-core: convert generated upgrade scripts to Lua 2014-05-14 11:06:07 +02:00
Matthias Schiffer
d31ea9eba9 gluon-core: add site_config loader script 2014-05-14 08:00:54 +02:00
Matthias Schiffer
17b9514e38 Add gluon-config package containing the site config 2014-05-13 20:09:28 +02:00
Matthias Schiffer
25b8446a05 Fix gluon-legacy depends 2014-05-11 10:03:25 +02:00
NeoRaider
45189d1066 Merge pull request #23 from sargon/autoupdate-enforce
gluon-autoupdater: Always allow forced autoupdate.
2014-04-01 19:32:40 +02:00
Daniel Ehlers
b3d2d8cd32 gluon-autoupdater: Always allow forced autoupdate.
On nodes with autoupdate disabled the cmdline parameter '-f' has no
effect. But using the autoupdater for manual updates is quite handy.
2014-03-19 21:02:21 +01:00
Jan-Philipp Litza
579f521822 gluon-autoupdater: update manifest.sample 2014-03-19 18:14:48 +01:00
Matthias Schiffer
80797fb6d9 gluon-node-info: add script to fix owner section after a run of a broken config mode 2014-03-17 14:53:29 +01:00
Matthias Schiffer
99e74b1004 gluon-config-mode: fix unsetting of the contact info 2014-03-17 14:41:03 +01:00
Nils Schneider
c7d96917d0 gluon-luci-autoupdater: remove branch settings 2014-03-14 16:02:32 +01:00
Matthias Schiffer
13d632acb8 gluon-autoupdater: fix version comparison 2014-03-11 20:32:58 +01:00
Nils Schneider
c8c9d72df9 Merge pull request #21 from freifunk-gluon/alfred-lua
gluon-alfred: replace announce.sh with lua script
2014-03-03 22:23:10 +01:00
Matthias Schiffer
6e2b5a19b3 gluon-radvd: run on br-client to provide that interface with an address 2014-03-03 20:07:58 +01:00
Nils Schneider
69387322a7 gluon-node-info: remove 010-migrate-location 2014-03-02 20:24:27 +01:00
Nils Schneider
020169f292 gluon-config-mode: fix coordinates when disabled 2014-03-02 19:28:59 +01:00
Nils Schneider
59a28c6721 gluon-config-mode: allow contact field to be empty 2014-03-02 19:28:40 +01:00
Nils Schneider
db11e29df1 gluon-config-mode: show coordinates only when enabled 2014-03-02 18:59:20 +01:00
Nils Schneider
cd8e21739c gluon-config-mode: add contact field
Closes #20
2014-03-02 18:39:56 +01:00
Nils Schneider
a4ca5a9f7d gluon-config-mode: replace foreach with get_first 2014-03-02 18:14:36 +01:00
Matthias Schiffer
cd30517ec1 gluon-config-mode: add sysconfig option for config interface(s), default to WAN on nanostation-m 2014-03-02 17:56:50 +01:00
Matthias Schiffer
49700fc70d gluon-core: add sysconfig_isset function 2014-03-02 17:36:12 +01:00
Matthias Schiffer
bbd8ee6772 gluon-core: switch LAN and WAN on nanostation-m 2014-03-02 17:36:12 +01:00
Nils Schneider
a2f699cafd gluon-config-mode: avoid string.format("%f", ...
An undocumented feature of uci:get_first() is to cast the returned value
to the same type as the default argument. Thus, supplying a default
value ot type number makes string.format superfluous.
2014-03-02 14:05:14 +01:00
Nils Schneider
1269a7350e gluon-alfred: replace announce.sh with lua script
This replaces announce.sh with a lua script of (hopefully) equal
functionality. Using lua generating JSON is much faster than jshn and
allows for greater flexibility.
2014-03-01 23:47:03 +01:00
Matthias Schiffer
96b213c386 We DON'T want the gluon version file to collide with the package version stamp dir 2014-02-26 10:21:14 +01:00
Matthias Schiffer
7d27f1f045 gluon-alfred: add version string to software.firmware.base field 2014-02-25 11:38:06 +01:00
Matthias Schiffer
8f9ee8d62a gluon-core: add version file 2014-02-25 11:30:07 +01:00
Matthias Schiffer
c2cda254ae Rename gluon-location to gluon-node-info, add owner section 2014-02-24 05:12:01 +01:00
Matthias Schiffer
7586b3e393 gluon-legacy: gluon-mesh-batman-adv: ensure a default route is accepted on the client interface 2014-02-24 03:02:04 +01:00
Matthias Schiffer
b953d5026f gluon-core: use awk instead of grep+cut 2014-02-23 20:23:47 +01:00
Matthias Schiffer
5f8e34fc2f gluon-core: remove support for incremental upgrade scripts
As we don't have any older gluon versions so far, and hope to be able to do all
upgrades with invariant scripts, remove the code for now.

If we ever see the need to add such upgrade scripts, we can just re-add this.
2014-02-23 20:20:16 +01:00
Matthias Schiffer
b775741d30 gluon-legacy: remove_bat0 doesn't make sense for the wan interface 2014-02-23 20:06:21 +01:00
Matthias Schiffer
a045ec6549 gluon-legacy: gluon-mesh-batman-adv: always set proto to dhcpv6 2014-02-23 18:57:17 +01:00
Matthias Schiffer
fc7cd56031 gluon-legacy: gluon-mesh-vpn-fastd: correctly set enabled state 2014-02-23 17:35:56 +01:00
Matthias Schiffer
4fa228365a gluon-core: don't call legacy scripts on normal upgrades 2014-02-23 17:29:32 +01:00
Matthias Schiffer
dd0ec447e7 gluon-core: adjust to new escaped array handling for generate expressions 2014-02-23 06:31:23 +01:00
Matthias Schiffer
f5e966a666 gluon-legacy: whitespace fix 2014-02-23 06:21:05 +01:00
Matthias Schiffer
2454c8abb7 Add gluon-legacy package with legacy upgrade scripts 2014-02-22 08:27:51 +01:00
Matthias Schiffer
65c7db78fd Convert more upgrade scripts to the new sysctl helper 2014-02-21 19:58:38 +01:00
Nils Schneider
3e7e4b43af Merge pull request #16 from rubo77/master
gluon-config-mode: Corrected grammar
2014-02-19 15:03:37 +01:00
Nils Schneider
14d0d522bc Merge pull request #19 from sargon/master
gluon-core: force kernel panic on out of memory

This also adds /lib/gluon/functions/sysctl.sh for setting sysctl options.
2014-02-19 14:39:51 +01:00
Nils Schneider
c31df31553 gluon-luci-theme: show gluon release 2014-02-19 11:26:22 +01:00
Nils Schneider
0b3db87d6f gluon-luci-admin: expertmode texts translated 2014-02-19 03:24:48 +01:00
Nils Schneider
cbacca6108 gluon-luci-autoupdater: use expertmode template 2014-02-19 03:16:50 +01:00
Nils Schneider
26305a7150 gluon-luci-admin: replace overview with ssh/pass
Various changes and moving stuff around.
2014-02-19 03:16:50 +01:00
Nils Schneider
072acf5ae3 gluon-luci-admin: remove unused function 2014-02-19 03:16:50 +01:00
Nils Schneider
9c2ba883c9 gluon-luci-admin: system.lua -> upgrade.lua 2014-02-19 03:16:50 +01:00
Nils Schneider
6a2e7d45d8 gluon-autoupdater: drop caches before upgrade
This will free about 5 to 12 MB of RAM even on lightly used devices
yielding plenty of RAM for autoupdate to succeed.
2014-02-19 01:18:54 +01:00
Nils Schneider
3712f8795c gluon-luci-admin: remove backup/restore 2014-02-18 23:13:42 +01:00
Nils Schneider
08bc198e36 gluon-luci-admin: fix firmware upgrade feature 2014-02-18 22:21:31 +01:00
Nils Schneider
123fef47f0 gluon-luci-admin: remove reboot feature
Configmode should be exited by using the wizard instead.
2014-02-18 19:17:47 +01:00
Daniel Ehlers
6f302fc8df gluon-core: force kernel panic on out of memory
In combination with kernel.panic the node will reboot if out of memory.
2014-02-18 00:21:12 +01:00
Matthias Schiffer
c2adf36e20 gluon-config-mode: don't let UCI_CONFIG_DIR leak to the telnet environment etc. 2014-02-13 19:40:36 +01:00
Matthias Schiffer
39eed2b913 gluon-config-mode: simplify dnsmasq command, remove sleep after network setup 2014-02-13 16:27:40 +01:00
Matthias Schiffer
24fd45d424 gluon-config-mode: remove bind mounts 2014-02-13 15:55:52 +01:00
Nils Schneider
601fd3f3ea gluon-status-page: show model 2014-02-13 12:56:14 +01:00
Daniel Ehlers
de2c9ceefa gluon-luci-autoupdater: Fix typo 2014-02-13 00:21:40 +01:00
Matthias Schiffer
30869d9080 gluon-autoupdater: enable by default only if GLUON_BRANCH is set, set default branch accordingly 2014-02-11 17:10:11 +01:00
Nils Schneider
a365d626c2 gluon-luci-core: replacing luci-mod-admin-core
This commit adds gluon-luci-core, a package both gluon-config-mode and
gluon-luci-admin will depend on. gluon-luci-core itself will depends on
gluon-luci-theme, gluon-core and most importantly luci-lib-web. It also
copies a few files from luci-mod-admin-core but leaves out everyting we
do not use.

At a later point I plan to move functionality from luci-lib-web into
this package, too. luci-lib-web contains most parts of luci including
hardcoded templates for CBI, which I intend to replace.
2014-02-09 23:20:38 +01:00
Nils Schneider
6e4596fe87 gluon-luci-admin: remove translation support
We'll have to revisit translations at a later point after configmode and
expertmode have matured. Texts in this package were pretty inconsistent
anyway so there is no point in keeping translations for random text
fragments.
2014-02-09 23:17:50 +01:00
Nils Schneider
bb32d5c3a9 gluon-autoupdater: depend on sha512sum
This makes gluon-autoupdater depend on coreutils-sha512sum when it's not
included in busybox.
2014-02-09 23:16:34 +01:00
ruben
732727dde5 gluon-config-mode: Corrected grammar 2014-02-07 13:11:55 +01:00
Nils Schneider
b4ce341601 gluon-config-mode: fix type (gluon-locaton -> gluon-location) 2014-02-06 20:23:17 +01:00
Matthias Schiffer
cc1af68caa Don't use site config in compile step 2014-02-06 19:57:39 +01:00
Nils Schneider
b562ad7bbd gluon-status-page: escape HTML special characters 2014-02-06 15:35:21 +01:00
Matthias Schiffer
5c81f5fa70 gluon-autoupdater: add SHA512 support 2014-02-06 00:17:33 +01:00
Matthias Schiffer
ebceae82ad gluon-config-mode: don't include sysconfig before the start function is called
Otherwise the enable during image create will throw a few error messages
2014-02-06 00:05:10 +01:00
Nils Schneider
c839bd8892 statusscript 2014-02-04 13:15:18 +01:00
Nils Schneider
2d8dda6eee gluon-status-page: make index.html redirect to cgi 2014-02-03 23:59:22 +01:00
Matthias Schiffer
62c30abd6f gluon-core: ensure the release file is always up-to-date 2014-01-31 15:25:49 +01:00
Nils Schneider
4878839186 gluon-luci-theme: input fields on error readable
Do not use 'red' as text color on input fields with errors as the
backgronud color is already red, rendering the value unreadable.
2014-01-29 23:37:31 +01:00
Matthias Schiffer
d87ba9eb44 Merge branch 'config-mode-hostname' of https://github.com/freifunk-gluon/packages 2014-01-29 19:37:16 +01:00
Matthias Schiffer
869f81d12e Add stub gluon-status-page package 2014-01-29 17:17:49 +01:00
Nils Schneider
1097fadc92 gluon-config-mode: correct hostname on reboot.html
Display the correct hostname on the final page of configmode.
Previously, this page used to simply call luci.sys.hostname() which
would return the current hostname. However, when the configmode changes
the hostname luci.sys.hostname() will not reflect this. This patch
fetches the hostname directly from the UCI system config.

This adds a variable called 'hostname' which may be used in site.conf at
config_mode.msg_reboot and .msg_pubkey.
2014-01-28 03:16:56 +01:00
Matthias Schiffer
5bb4cf4e3a gluon-mesh-vpn-fastd: always use wan DNS servers to resolve the peers 2014-01-25 03:20:03 +01:00
Matthias Schiffer
4cf9b23e02 Enable DNS servers from mesh, disable on wan 2014-01-25 02:09:35 +01:00
Matthias Schiffer
ded5925f83 Remove odhcp6c.user hack 2014-01-25 01:54:19 +01:00
Matthias Schiffer
410733d423 gluon-mesh-batman-adv: use kmod-batman-adv-legacy package 2014-01-24 05:19:00 +01:00
Matthias Schiffer
f5dc52f665 Revert "gluon-radvd: run on br-client"
This reverts commit f5c532a3a923053ab229952bde31da0b0284d8ab.
2014-01-23 18:41:41 +01:00
Matthias Schiffer
ee74235a3b gluon-next-node: don't wait for br-client to get an address 2014-01-23 18:40:59 +01:00
Nils Schneider
5486cf2c4e gluon-config-mode: new helptexts 2014-01-23 02:24:02 +01:00
Nils Schneider
68a0da5daa gluon-config-mode: label submit button "Fertig" 2014-01-23 01:34:25 +01:00
Nils Schneider
ad2d413f23 gluon-config-mode: use welcome text from site.conf 2014-01-23 01:21:43 +01:00
Nils Schneider
1e348ddd45 gluon-config-mode: delay reboot a little
The reboot page should be delayed a little to give the browser time for
fetching assets (like the stylesheet). This adds a two second delay.
Unfortunately, I couldn't think of a sane way to do this within a luci
controller.

This patch forks the process. The parent will continue rendering the
page for the browser while the child will sleep and then reboot the
device. For this to work reliable the child needs to close stdout before
sleeping so the webserver closes the connection to the browser. This,
again, required a hack as lua does not allow closing std filehandles,
when prevented using luci.reboot() which was calling os.execute() and
that function will not work with stdout closed.
2014-01-23 00:04:14 +01:00
Nils Schneider
a299a150b6 gluon-config-mode: fix indentation 2014-01-22 23:18:46 +01:00
Matthias Schiffer
bc1be30486 More fixes for strange network interface configurations 2014-01-22 22:04:08 +01:00
Matthias Schiffer
f1fa2a2971 gluon-radvd: run on br-client 2014-01-22 21:32:02 +01:00
Nils Schneider
cd822a3a57 Merge pull request #11 from freifunk-gluon/expertmode
gluon-luci-admin: various changes
2014-01-22 12:03:00 -08:00
Nils Schneider
528d04cb67 Merge pull request #10 from freifunk-gluon/luci-theme
add new luci-theme
2014-01-22 12:02:48 -08:00
Matthias Schiffer
b8820bab61 Properly support devices with only one ethernet interface 2014-01-22 20:44:34 +01:00
Matthias Schiffer
bb4a9fd5af Fix race condition in dnsmasq config dir handling 2014-01-22 19:52:17 +01:00
Matthias Schiffer
6d5e47eeec gluon-config-mode: respect switch configuration 2014-01-22 19:45:07 +01:00
Matthias Schiffer
3369802094 gluon-core: sysconfig: don't print error message for unset config 2014-01-22 19:45:07 +01:00
Nils Schneider
c7efde1acf gluon-luci-admin: reboot.html, remove refresh
Don't refresh the reboot page after rebooting the node. It's not going
back to configmode anyway so it'll never reload without user
intervention.
2014-01-22 17:05:42 +01:00
Nils Schneider
8d62f92a4d gluon-luci-admin: replace overview text
This completely replaces the text on the overview page. Consider this a
placeholder until someone writes a better suited version :)
2014-01-22 17:05:42 +01:00
Nils Schneider
dd7934a39a gluon-luci-admin: remove redundant headings 2014-01-22 17:05:42 +01:00
Nils Schneider
78f5efa7ce gluon-luci-admin: no logout button in configmode
Hide the "logout" button when in configmode.
2014-01-22 17:05:42 +01:00
Nils Schneider
d85214d4c5 gluon-luci-admin: fix indentation
Replaces double-spaces with tabs to match surrounding code.
2014-01-22 17:05:42 +01:00
Nils Schneider
efc958fbf8 gluon-luci-admin: disable when not in configmode
For security reasons we'd like to disable all HTTP config interfaces
when the node is operating normally. This patch disables gluon-luci-admin
when configmode is not enabled.
2014-01-22 17:05:42 +01:00
Nils Schneider
de22275c60 gluon-config-mode: remove subsection headings
Those headings do not convey much information make the wizard less
compact. The help texts will be rewritten to guide the user instead.
2014-01-22 17:01:27 +01:00
Nils Schneider
57f65acaf2 gluon-config-mode: replace inline style with class
Replace the inline stylesheet for the public key box on the reboot page
with a CSS class so it can be styled using the theme.
2014-01-22 17:00:58 +01:00
Nils Schneider
b1cc62b680 gluon-config-mode,luci-admin: use gluon-luci-theme
This makes gluon-config-mode and gluon-luci-admin depend on
gluon-luci-theme instead of luci-theme-openwrt.
2014-01-22 16:56:54 +01:00
Nils Schneider
40c4659e18 gluon-luci-theme: new theme, still magenta/yellow
This is the initial version of our new configmode theme. It's far from
finished but at least configmode looks good. There are lots of
declarations copied from OpenWRT's default theme so most other luci
modules would be somewhat usable when shown using this theme.
2014-01-22 16:56:32 +01:00
Nils Schneider
5e0048ae84 gluon-config-mode: remove 'reset' button
The reset button resets the form. I don't think this is needed in a
wizard that simple and might confuse users so I removed it.
2014-01-21 23:42:03 +01:00
Nils Schneider
5b8e044893 gluon-config-mode: fix wizard
Due to my previous two commits configmode was broken when either meshvpn
or bandwidth limit was disabled. This fixes it but there may be a
cleaner solution provided by luci.
2014-01-21 22:19:25 +01:00
Nils Schneider
566faeb6ca gluon-config-mode: bwlimit hidden when not meshvpn
Hide the bandwidth limit checkbox when meshvpn is disabled.
2014-01-21 20:02:17 +01:00
Nils Schneider
bb3e93b55d gluon-config-mode: more compact tc form
Hide the downstream/upstream input fields when bandwitdh limiting is
disabled.
2014-01-21 19:50:07 +01:00
Nils Schneider
2f5524fdb4 gluon-autoupdater: Randomize mirror order
This way we have a kind of load balancing among the mirrors.
2014-01-21 13:20:50 +01:00
Daniel Ehlers
2062d1fcb6 gluon-luci-autoupdater: Catch up mirror support in gluon-autoupdater 2014-01-21 05:46:10 +01:00
Matthias Schiffer
ff166453d4 gluon-mesh-batman-adv: accept input on wan interface 2014-01-21 05:24:01 +01:00
Matthias Schiffer
f1dae6ca6e gluon-core: move initial/020-wireless from generate to files 2014-01-21 05:24:01 +01:00
Nils Schneider
c7991c6df4 gluon-autoupdater: add more models to README
This adds a list of known models to the readme.
2014-01-21 04:45:56 +01:00
Matthias Schiffer
e03fb9f8eb gluon-core: add support for NTP server configuration 2014-01-21 04:22:59 +01:00
Matthias Schiffer
e57e88ee6c gluon-mesh-batman-adv: add DNS support 2014-01-21 03:59:15 +01:00
Matthias Schiffer
1ceb38ac26 gluon-mesh-batman-adv: more initial -> invariant conversions 2014-01-21 03:05:42 +01:00
Matthias Schiffer
1ba10ac018 Add support for custom dnsmasq config and odhcp6c handler scripts 2014-01-21 03:01:12 +01:00
Matthias Schiffer
10d6c1930d gluon-autoupdater: allow configuring the branch name independently of the UCI config section name 2014-01-21 00:29:55 +01:00
Matthias Schiffer
72e7ae68fa gluon-autoupdater: adjust example config for mirror support 2014-01-21 00:10:00 +01:00
Daniel Ehlers
27871c0dc3 gluon-autoupdater: Enable list of mirrors for manifest and firmware.
Instead of a single url this patch allows to have a list of urls. So in case
of network instability a router can still reach local mesh-cloud server to pull
a update from. In this stage the autoupdater simply tries every mirror until
one passes all tests.
2014-01-20 23:31:15 +01:00
Daniel Ehlers
cb6c025a7f gluon-autoupdater: Less global variables.
This also removes the need for the cleanup function. Instead the cleanup
code is moved in place.
2014-01-20 23:31:15 +01:00
Daniel Ehlers
f0b63da868 gluon-autoupdater: Refactor code.
Move building blocks of the update into seperate functions.
2014-01-20 13:26:58 +01:00
Matthias Schiffer
1b924d6265 gluon-core: use gluon release in package version string 2014-01-20 05:07:55 +01:00
Matthias Schiffer
ee4e896fea gluon-core: use GLUON_RELEASE from environment 2014-01-20 02:35:21 +01:00
Matthias Schiffer
f36f7bcf26 Merge gluon-release into gluon-core 2014-01-20 01:59:10 +01:00
Matthias Schiffer
8f7b59d787 gluon-simple-tc: add missing defaults on every upgrade 2014-01-20 00:06:55 +01:00
Matthias Schiffer
f9cb8a7258 gluon-mesh-batman-adv: move wifi config to invariant 2014-01-20 00:06:55 +01:00
Matthias Schiffer
59c1900e9a gluon-location: move information to /etc/config/gluon-location 2014-01-20 00:06:55 +01:00
Matthias Schiffer
1dd9a9a8a1 gluon-autoupdater: no need to provide a default config just to delete it in the initial script 2014-01-20 00:06:55 +01:00
Nils Schneider
8e73ff90a0 gluon-autoupdater: typo corrected 2014-01-19 23:19:55 +01:00
Nils Schneider
4fef2e5e11 Merge pull request #7 from FreifunkBremen/master
gluon-autoupdater: get random number from /dev/urandom
2014-01-19 13:40:13 -08:00
Jan-Philipp Litza
7cdf3708f0 gluon-autoupdater: get random number from urandom
The approach with awk's rand() wasn't really random between across
devices: When srand() was called without arguments, time() was used as
seed, which of course is the same on all devices when the script is
called via cron at HH:00:00.

This patch instead uses /dev/urandom as source of random (we don't need
cryptographically strong random numbers, so urandom is just fine) but
still uses awk for the comparison as busybox's ash cannot deal with
floats in $(())
2014-01-19 22:36:49 +01:00
Matthias Schiffer
086efed428 gluon-alfred: add chosen gateway and load average 2014-01-19 21:44:26 +01:00
Matthias Schiffer
74493b2ba5 gluon-alfred: run every minute
The run frequency and exact time affect the alfred announce interval, so we can
just run it every minute to supply alfred with the most up-to-date data.
2014-01-18 21:56:05 +01:00
Matthias Schiffer
8b4474e18f gluon-mesh-batman-adv: set gateway mode to client 2014-01-18 19:44:02 +01:00
Jan-Philipp Litza
54620d6231 autoupdater: Use awk instead of grep+head+tail to split manifest 2014-01-17 16:09:34 +01:00
Matthias Schiffer
4ca8a35fc9 gluon-mesh-batman-adv: set bat0 MAC address to primary address 2014-01-16 23:57:42 +01:00
Jan-Philipp Litza
4b61062636 alfred: add more traffic statistics
+ mgmt and forward counters
+ packet in addition to byte counters for everything
2014-01-16 23:47:41 +01:00
Jan-Philipp Litza
7fdd0300b2 alfred: Add --no-sleep option to send immediately 2014-01-16 23:46:54 +01:00
Jan-Philipp Litza
692f093d21 alfred: clean up delay code 2014-01-16 22:42:02 +01:00
Jan-Philipp Litza
cc2ef851c7 alfred: add random node-specific delay before sending 2014-01-16 22:36:09 +01:00
Jan-Philipp Litza
50782f759e alfred: make traffic counters absolute
After a lenghty discussion, we settled on absolute vs. relative values.
Main reasons:

* stateless implementation on node possible
* convertable to relative values by differentiaion on receiver
* missed transmissions only decrease granularity, whereas relative
  values would introduce wrong numbers on integration if values are
  missed
2014-01-16 22:34:57 +01:00
Jan-Philipp Litza
6bf44622dc alfred: add statistics (uptime+traffic) 2014-01-16 16:50:25 +01:00
Matthias Schiffer
72b27ea2e0 gluon-mesh-vpn-fastd: enable secure handshakes 2014-01-14 19:37:15 +01:00
Matthias Schiffer
1c9dec091e gluon-radvd: don't run as root 2014-01-14 19:34:07 +01:00
Matthias Schiffer
5241565a79 gluon-mesh-vpn-fastd: don't run as root 2014-01-14 18:46:17 +01:00
Matthias Schiffer
3275c92f72 gluon-core: add function to add users 2014-01-14 18:19:51 +01:00
Matthias Schiffer
f99767fb9f Add firewall rules
gluon-mesh-batman-adv should not be used without firewall to prevent forwarding
of packets from the mesh to the wan interface.

For some reason, the firewall package won't work at all without
kmod-ipt-nathelper.
2014-01-14 01:50:59 +01:00
Matthias Schiffer
1cf4d41cba gluon-config-mode: use different document root 2014-01-13 20:17:29 +01:00
Matthias Schiffer
d204b0e24f Remove initscript enable/disable hacks
Better configure these properly.
2014-01-13 18:29:00 +01:00
Matthias Schiffer
604e3caceb gluon-mesh-batman-adv: disable client interface in dnsmasq 2014-01-13 18:02:45 +01:00
Jan-Philipp Litza
a3f2eb6bc7 alfred: name -> hostname 2014-01-13 17:11:41 +01:00
Jan-Philipp Litza
59616e8d77 alfred: improved readability 2014-01-13 17:09:15 +01:00
Jan-Philipp Litza
e901ceda71 alfred: split up firmware info, include fastd version+status 2014-01-13 17:06:47 +01:00
Jan-Philipp Litza
d0e3cbc8bc alfred: added more information to send, reformatted location
location is object with latitude and longitude
added:
* firmware
* autoupdater status
* hardware model
* primary mac address
* mesh IPv6 addresses
2014-01-13 16:10:03 +01:00
Nils Schneider
5f976809a1 gluon-autoupdater: strip trailing - from model 2014-01-13 12:45:55 +01:00
Matthias Schiffer
2e155f9d09 gluon-mesh-vpn-fastd: enable no_rebroadcast on the VPN interface 2014-01-13 01:03:08 +01:00
Matthias Schiffer
d1f01a588f Clean up gluon-alfred
* Merge gluon-alfred-ffmap into gluon-alfred
* Use gluon-crond instead of alfred's "facter" mechanism based on the broken busybox crond
2014-01-12 22:37:28 +01:00
Jan-Philipp Litza
dece1f4122 added gluon-alfred and gluon-alfred-ffmap 2014-01-12 22:06:50 +01:00
Matthias Schiffer
293c64e723 gluon-autoupdater: use the new get_model function 2014-01-12 21:40:19 +01:00
Matthias Schiffer
13e3d7ff79 gluon-core: add sh file to get model name etc. 2014-01-12 21:33:44 +01:00
Nils Schneider
a2329773eb gluon-autoupdater: improve manifest.sample
Makes manifest.sample use the model instead of the board name as that is
what the script actually expects. Also, a sample signature is added.
2014-01-12 21:18:27 +01:00
Nils Schneider
61171c8c25 gluon-autoupdater: remove dead code
Recently the autoupdater contained a case statement to distinguish
between TP-Link WDR3600 and TP-Link WDR4300. This was left over from
previous development versions of autoupdater that relied on the board
name instead of the model. It is thus no longer needed and be removed
safely.
2014-01-12 21:18:27 +01:00
Matthias Schiffer
f2c8be9c48 gluon-config-mode: don't depend on haveged
Now that haveged starts before the config mode, there is no need to explicity
depend on it; instead it is just used when specified in the site configuration.
2014-01-12 00:50:43 +01:00
Matthias Schiffer
a259e771e9 gluon-core: fixup WAN interface MAC address setting 2014-01-11 21:31:28 +01:00
Matthias Schiffer
a626c9a165 gluon-core: remove left over 'EOF' from config script 2014-01-11 20:34:58 +01:00
Matthias Schiffer
f969e3a2b1 gluon-ebtables-filter-multicast: correct interface name 2014-01-11 19:27:06 +01:00
Matthias Schiffer
1b9c8dcc0b Don't accept router advertisements by default 2014-01-11 17:43:35 +01:00
Matthias Schiffer
df00835f4c Add gluon-radvd package 2014-01-11 16:05:17 +01:00
Matthias Schiffer
ccc1330ebb next-node: rename config sections 2014-01-11 14:23:27 +01:00
Matthias Schiffer
c14f323058 next-node: remove unused include 2014-01-11 14:11:42 +01:00
Matthias Schiffer
bcb6603333 Disable IPv6 forwarding on br-client
Disabling forwarding prevents the node from reacting to the Subnet-Router
anycast address.
2014-01-11 14:01:23 +01:00
Matthias Schiffer
0f5190bc6e Reimplement next-node configuration based on the new netifd version 2014-01-10 22:34:26 +01:00
Matthias Schiffer
f8cdeaefd9 Add ebtables filters from the legacy firmware 2014-01-10 21:49:18 +01:00
Matthias Schiffer
9015c01c34 Allow telnet login in config mode again 2014-01-09 10:06:36 +01:00
Matthias Schiffer
6c952a513a Add gluon-lock-password package and make config mode depend on it 2014-01-09 09:58:59 +01:00
Matthias Schiffer
1be0a7667f Make package version depend on the site config version where necessary 2014-01-04 09:19:13 +01:00
Nils Schneider
c03843eac1 gluon-luci-autoupdater: simple luci module for autoupdater 2013-11-28 21:49:34 +01:00
Nils Schneider
0b57802354 configmode -> gluon-config-mode 2013-11-28 20:00:37 +01:00
Nils Schneider
c3fcb81a4b ssh keys 2013-11-28 20:00:37 +01:00
Nils Schneider
29b480522e basic admin mode 2013-11-28 20:00:37 +01:00
Nils Schneider
be79b874c5 gluon-config-mode: show hostname on reboot page. fixes #8 2013-11-28 19:16:39 +01:00
Nils Schneider
4fdcc218c5 autoupdater: fix initial upgrade script 2013-11-11 11:45:12 +01:00
Matthias Schiffer
4521362ce3 gluon-core: clean up upgrade main script 2013-10-09 21:56:32 +02:00
Nils Schneider
15aafe47c8 gluon-config-mode: texts from mkm 2013-10-09 21:13:48 +02:00
Matthias Schiffer
3c8d9ed4eb gluon-simple-tc: add newline to end of example config 2013-10-09 20:35:55 +02:00
Nils Schneider
9b69ac2845 gluon-simple-tc: initial.pl: sort keys before creating config 2013-10-04 10:47:31 +02:00
Nils Schneider
75ac64ca20 gluon-config-mode: simple-tc ifname must be mesh-vpn, not mesh_vpn 2013-10-03 23:26:00 +02:00
Nils Schneider
0d1e3e144b gluon-config-mode: site.conf: configmode -> config_mode 2013-10-03 23:04:41 +02:00
Nils Schneider
2468154ad1 gluon-config-mode: add simple-tc settings for mesh_vpn 2013-10-03 23:00:47 +02:00
Nils Schneider
05633089c4 gluon-config-mode: forgot to rename uci config in button script 2013-10-03 22:48:54 +02:00
Nils Schneider
0a6c21e167 gluon-config-mode: forgot to rename uci config in button script 2013-10-03 22:12:47 +02:00
Nils Schneider
903d157550 gluon-simple-tc: create initial config from site.conf 2013-10-03 21:10:42 +02:00
Matthias Schiffer
7edb775444 gluon-mesh-batman-adv: clean up config script 2013-10-03 19:02:06 +02:00
Matthias Schiffer
8b069954a0 gluon-core: clean up uci config 2013-10-03 18:54:59 +02:00
Matthias Schiffer
6729bf37ef gluon-mesh-vpn-fastd: clean up configuration script 2013-10-03 18:41:45 +02:00
Matthias Schiffer
e73f79f392 Move some more configuration into the corrent packages, correctly configure multiple radios 2013-10-03 18:04:03 +02:00
Matthias Schiffer
a5c042c294 Add gluon-simple-tc package 2013-10-03 13:59:45 +02:00
Nils Schneider
c73d52d77f gluon-config-mode: fix upgrade script /lib/gluon/ugprade/config-mode/ 2013-10-03 13:10:18 +02:00
Nils Schneider
71b8be79f4 gluon-config-mode: rename config-mode to gluon-config-mode 2013-10-02 22:56:51 +02:00
Matthias Schiffer
f22f0e44f6 gluon-mesh-vpn-fastd: always enable fastd 2013-10-02 20:33:32 +02:00
Matthias Schiffer
0a9b811477 gluon-cron: always enable cron when it is installed 2013-10-02 20:33:32 +02:00
Matthias Schiffer
9c0db9e291 gluon-ebtables: always enable ebtables when they are installed 2013-10-02 20:33:32 +02:00
Nils Schneider
cf6c51ee5e gluon-config-mode: rename configmode to config-mode (except in lua variables where it is still called configmode) 2013-10-02 15:24:14 +02:00
Nils Schneider
ae5277ff9f gluon-location is a dependency of config-mode, not autoupdater 2013-10-02 15:00:07 +02:00
Nils Schneider
7c64af8c7e gluon-config-mode: various fixes (default values, autoupdater changes) 2013-10-02 14:46:39 +02:00
Nils Schneider
b6484440e1 gluon-location: store lat/lon in system config 2013-10-02 14:18:42 +02:00
Nils Schneider
61a384f214 Revert "gluon-mesh-vpn-fastd: set mesh_vpn.enabled flag"
This reverts commit baf6d14160ab15069f68161d0d1556c369cf0cbd.
2013-10-02 14:02:24 +02:00
Nils Schneider
f637e923f5 gluon-autoupdater: new branch specification
It is now possible to specific multiple branches like this:

config branch stable
  option url ...
  list pubkey ...
  ...

config branch testing
  ...

and select one in autoupdater.settings:

config autoupdater settings
  option branch "stable"
2013-10-02 13:33:47 +02:00
Nils Schneider
09855e0c80 gluon-mesh-vpn-fastd: set mesh_vpn.enabled flag 2013-10-02 13:19:39 +02:00
Nils Schneider
d866400ef9 gluon-autoupdater: rename script to autoupdater (was autoupdate) 2013-10-02 13:18:48 +02:00
Matthias Schiffer
54ba93f4bf gluon-mesh-batman-adv: configure batman-adv 2013-10-01 21:38:21 +02:00
Matthias Schiffer
00a97602a4 gluon-core: upgrade: fix directory movement 2013-10-01 21:38:21 +02:00
Matthias Schiffer
568cfbf398 gluon-core: ensure version stamp dir existence 2013-10-01 21:38:21 +02:00
Matthias Schiffer
d508728da6 gluon-core: fix typo 2013-10-01 21:38:21 +02:00
Matthias Schiffer
7771cd9f2e gluon-core: make 001-sysconfig executable 2013-10-01 21:38:21 +02:00
Matthias Schiffer
2d93cad89d gluon-core: always handle core scripts first 2013-10-01 21:38:21 +02:00
Matthias Schiffer
fa1774a4e6 Remove batman-adv specific parts of gluon-core 2013-10-01 21:38:21 +02:00
Nils Schneider
fd4222f65d gluon-autoupdater: read config from site.conf 2013-09-30 23:31:35 +02:00
Matthias Schiffer
01da55cdd4 gluon-next-node: fix ebtables interface name 2013-09-30 21:39:11 +02:00
Matthias Schiffer
fdf19830d7 gluon-mesh-vpn-fastd: generate fastd config from site configuration 2013-09-30 21:29:52 +02:00
Matthias Schiffer
e684418cb3 Use odhcp6c for interface configuration 2013-09-30 18:47:46 +02:00
Matthias Schiffer
946438f215 gluon-core: remove deprecated accept_ra settings 2013-09-30 18:47:46 +02:00
Matthias Schiffer
20caa3662a gluon-next-node: set accept_ra to 0 2013-09-30 18:47:46 +02:00
Nils Schneider
e352326a9b gluon-config-mode: do not depend on luci-mod-failsafe (gluon-luci-admin will provide it's functionality) 2013-09-30 18:39:26 +02:00
Matthias Schiffer
225f15f9e1 gluon-next-node: add ebtables to filter IP packets with the next-node address 2013-09-30 17:38:04 +02:00
Nils Schneider
18f0fc6366 gluon-autoupdater: read version from /lib/gluon/release 2013-09-30 17:12:57 +02:00
Nils Schneider
b72a7d0b59 gluon-release: creates /lib/gluon/release 2013-09-30 17:12:47 +02:00
Matthias Schiffer
346c96b4a2 gluon-ebtables: add missing mod-ipt-core dependency 2013-09-30 16:25:42 +02:00
Nils Schneider
8ada602570 configmode: move upgrade script from 0.4 to invariant 2013-09-30 16:24:37 +02:00
Nils Schneider
a2539ead02 configmode: show current bandwidth limit in wizard 2013-09-30 15:14:01 +02:00
Nils Schneider
b0b95ae135 configmode: migrate uci config of pre 0.4 firmwares 2013-09-30 14:50:29 +02:00
Matthias Schiffer
b6045bb1aa gluon-next-node: fix interface names 2013-09-30 14:36:53 +02:00
Nils Schneider
1044a446b8 autoupdater: enable by default 2013-09-30 01:07:31 +02:00
Nils Schneider
663b419cd5 configmode: read pubkey message from site configuration 2013-09-30 00:55:38 +02:00
Nils Schneider
91d70b98c7 autoupdater: fix Makefile 2013-09-30 00:12:45 +02:00
Nils Schneider
1666df3cbf configmode: initscript takes care of enabled-flag 2013-09-30 00:12:21 +02:00
Nils Schneider
9402824e14 autoupdater: simple autoupdater updated to use gluon-cron 2013-09-29 22:38:12 +02:00
Matthias Schiffer
639e300a93 gluon-crond: fix matches == 6 case 2013-09-29 22:18:24 +02:00
Nils Schneider
8476bf5a2b configmode: remove tab "Wizard" in basic mode 2013-09-29 22:06:03 +02:00
Matthias Schiffer
b1c14b2b97 Add gluon-cron package 2013-09-29 21:55:57 +02:00
Matthias Schiffer
aaaf5a1485 gluon-next-node: generated config: move prefix information out of next-node scope 2013-09-29 14:42:00 +02:00
Matthias Schiffer
f2d9bdaba7 Fix MAC address getters for current OpenWRT 2013-09-28 23:39:53 +02:00
Nils Schneider
c19b4efd05 new basic configmode 2013-09-28 23:33:12 +02:00
Matthias Schiffer
4783a52a71 Add hostname prefix config 2013-09-28 23:13:57 +02:00
Matthias Schiffer
62397f8920 gluon-next-node: some minor fixes 2013-09-28 22:33:53 +02:00
Matthias Schiffer
7c55b5060e gluon-next-node: add ebtables rules 2013-09-28 22:15:37 +02:00
Matthias Schiffer
8f20b25632 Add ebtables package 2013-09-28 22:03:20 +02:00
Matthias Schiffer
6543ef9725 Adjust some old scripts to gluon (TODO: reimplement backwards compatiblity) 2013-09-28 21:48:46 +02:00
Matthias Schiffer
8a51242f3e Some work on the next-node anycast address 2013-09-28 21:24:13 +02:00
Matthias Schiffer
05fb012ae4 Generate wifi config 2013-09-28 18:40:37 +02:00
Matthias Schiffer
7affd55c1b Add some gluon-config-mode dependencies 2013-02-19 00:18:14 +01:00
Matthias Schiffer
fb65dfe12d Make gluon-mesh-batman-adv depend on kmod-batman-adv 2013-02-12 00:05:55 +01:00
Matthias Schiffer
6f41a9b7bf Add stub setup script so the package is not empty 2013-02-11 21:48:36 +01:00
Matthias Schiffer
eecf9b06fd Move disable-services script to invariant directory 2013-01-31 16:24:29 +01:00
Matthias Schiffer
a7e22f30b3 Move batman-adv migration scripts to gluon-mesh-batman-adv package 2013-01-31 16:15:32 +01:00
Matthias Schiffer
0637c9fa6d More makefiles for some basic packages 2013-01-31 11:36:18 +01:00
Matthias Schiffer
19b611f8ab Add gluon-core package
This is the most basic core of the Gluon framework. Most upgrade scripts will
have to be rewritten and/or moved to other packages.
2013-01-31 10:23:27 +01:00
Matthias Schiffer
d9902c0664 Adjustments for the Gluon project 2013-01-30 21:32:50 +01:00