Commit Graph

458 Commits

Author SHA1 Message Date
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
Matthias Schiffer
c18d43d2cb gluon-core: use correct file variable in get_site_config() 2016-04-24 15:55:37 +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
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
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
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
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
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
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
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
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
Alex
b465504ae8 add: info for 802.11s interface
additional information for commit 2a93c58042
2015-09-13 14:32:53 +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
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
f6498e8773 Update modules 2015-07-18 18:02:13 +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
Matthias Schiffer
ab10be9f50 We're on Chaos Calmer now 2015-05-22 01:09:19 +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
cd34cb2ebb gluon-core, gluon-setup-mode: improve support for UAP Outdoor+ 2015-04-08 00:44:12 +02: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
65b44ca4ce Rename gluon-config to gluon-site 2015-03-19 20:14:40 +01:00
Matthias Schiffer
dce26de28c gluon-core: add i18n support 2015-03-18 20:24:57 +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
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
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
6f11279438 gluon-core: convert all initial scripts to invariant scripts 2015-01-24 11:14:09 +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
9dd4f52bfa CPE510-specific config (switch WAN and LAN, config mode on WAN) 2014-11-26 19:50:45 +01: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
Nils Schneider
0de7bf5f64 gluon-core: port initial/020-wireless to lua 2014-09-15 19:50:10 +02:00
Nils Schneider
5fa97f8fdb gluon-core: add node_id() to gluon.util 2014-09-11 12:27:29 +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
Matthias Schiffer
3762f52c69 gluon-core: restructure WAN configuration 2014-08-09 14:39:21 +02:00
Matthias Schiffer
201acaa3a9 Dependency fixes for the new LuCi version 2014-08-06 12:06:49 +02:00
Matthias Schiffer
971dec8d27 gluon-core: remove now unused dnsmasq.d support 2014-07-20 04:04:27 +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
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
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
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
81dc4f44e2 gluon-core: remove now unused sysctl.sh 2014-07-07 22:23:56 +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
2ec02a41c2 gluon-core: add functions to unset sysconfig settings 2014-07-05 19:39:24 +02:00
Matthias Schiffer
ffd86668fe Validate site.conf 2014-07-05 02:48:56 +02:00
Matthias Schiffer
e317bdc230 gluon-core: add gluon.model lua module 2014-06-09 17:56:29 +02:00
Matthias Schiffer
ee307ec1de gluon-core: make Lua files proper modules 2014-05-17 13:43:08 +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
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
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
8f9ee8d62a gluon-core: add version file 2014-02-25 11:30:07 +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
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
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
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
62c30abd6f gluon-core: ensure the release file is always up-to-date 2014-01-31 15:25:49 +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
bc1be30486 More fixes for strange network interface configurations 2014-01-22 22:04:08 +01: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
3369802094 gluon-core: sysconfig: don't print error message for unset config 2014-01-22 19:45:07 +01:00
Matthias Schiffer
f1dae6ca6e gluon-core: move initial/020-wireless from generate to files 2014-01-21 05:24:01 +01:00
Matthias Schiffer
e03fb9f8eb gluon-core: add support for NTP server configuration 2014-01-21 04:22:59 +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
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
3275c92f72 gluon-core: add function to add users 2014-01-14 18:19:51 +01:00
Matthias Schiffer
d204b0e24f Remove initscript enable/disable hacks
Better configure these properly.
2014-01-13 18:29:00 +01:00
Matthias Schiffer
13e3d7ff79 gluon-core: add sh file to get model name etc. 2014-01-12 21:33:44 +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
1b9c8dcc0b Don't accept router advertisements by default 2014-01-11 17:43:35 +01:00
Matthias Schiffer
1be0a7667f Make package version depend on the site config version where necessary 2014-01-04 09:19:13 +01:00
Matthias Schiffer
4521362ce3 gluon-core: clean up upgrade main script 2013-10-09 21:56:32 +02:00
Matthias Schiffer
8b069954a0 gluon-core: clean up uci config 2013-10-03 18:54:59 +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
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
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
f2d9bdaba7 Fix MAC address getters for current OpenWRT 2013-09-28 23:39:53 +02:00
Matthias Schiffer
4783a52a71 Add hostname prefix config 2013-09-28 23:13:57 +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
05fb012ae4 Generate wifi config 2013-09-28 18:40:37 +02: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