Matthias Schiffer
c479d9160d
gluon-core: don't request a prefix via DHCPv6 on WAN
...
The prefix is not used, and requesting it leads to odhcp6c log spam with
certain DHCPv6 servers.
2018-02-03 03:02:56 +01:00
Matthias Schiffer
09c2e60cd4
gluon-core: upgrade/110-network: fix formatting
2018-02-03 03:02:20 +01:00
Matthias Schiffer
6ae067cb37
gluon-core: add domain aliases and pretty name
...
Based-on-patch-by: lemoer <git@irrelefant.net>
2018-01-26 12:32:47 +01:00
Matthias Schiffer
a2f45d0d32
gluon-core: store default domain in UCI
2018-01-26 12:32:46 +01:00
Matthias Schiffer
24a085a542
gluon-site: add default domain and check for it
...
This does not do anything yet, as this_domain() is not implemented yet.
Based-on-patch-by: lemoer <git@irrelefant.net>
2018-01-26 12:32:46 +01:00
Matthias Schiffer
7ae8a51126
gluon-core: allow zero VXLAN UDP checksum on RX
...
Also disabling TX checksums and not only allowing incoming packets without
checksum will provide another small speedup. As doing so would break wired
meshing with VXLAN-enabled nodes that require non-zero checksums, we will
wait a few days before this step.
2018-01-24 22:41:29 +01:00
Matthias Schiffer
e54b37d835
gluon-core: firewall: move VXLAN rules to the top
...
Evaluating these rules before all the ICMPv6 rules improves wired mesh
throughput measurably.
2018-01-24 22:41:29 +01:00
Matthias Schiffer
2950cc3f59
gluon-core: only use a bridge for wired meshing when necessary
...
On most devices, there is only a single LAN interface connected to all LAN
ports, so no bridge is necessary.
2018-01-24 22:16:09 +01:00
Matthias Schiffer
7ccdacd294
treewide: rework check_site_lib.lua
...
In addition to significant internal differences in check_site_lib.lua (in
particular unifying error handling to a single place for the upcoming
multi-domain support), this changes the way fields are addressed in site
check scripts: rather than providing a string like 'next_node.ip6', the
path is passed as an array {'next_node', 'ip6'}.
Other changes in site check scripts:
* need_array and need_table now pass the full path to the sub fields to the
subcheck instead of the key and value
* Any check referring to a field inside a table implies that all higher
levels must be tables if they exist: a check for {'next_node', 'ip6'} adds
an implicit (optional) check for {'next_node'}, which allows to remove many
explicit checks for such tables
2018-01-19 10:12:43 +01:00
lemoer
50812b162c
treewide: forbid use of selected site variables in domain specific or site configs
...
[Matthias schiffer: rebase, add a few more restrictions]
2018-01-19 04:05:27 +01:00
lemoer
b520bf5c50
gluon-core: rename site_seed to domain_seed
...
[Matthias Schiffer: rebase]
2018-01-19 03:30:06 +01:00
lemoer
adcd5b7311
gluon-core: add gluon-reconfigure script
...
Not useful by itself except for testing; will be used for multi-domain
support.
[Matthias Schiffer: rename script, use for initial configuration]
2018-01-19 01:10:39 +01:00
lemoer
0f5d932c4f
gluon-core: add util gluon-show-site to print merged site config
...
This should not convert JSON to a Lua table and back, as this loses the
distinction between arrays and objects, but as our site.conf is defined in
Lua anyways (for now), this can be fixed in a later revision.
[Matthias Schiffer: rename to gluon-show-site, rebase]
2018-01-19 01:07:44 +01:00
lemoer
5817170821
gluon-core: introduce "gluon" uci package
...
[Matthias Schiffer: change section name and commit message]
2018-01-19 00:41:25 +01:00
Matthias Schiffer
0b80f1b5ce
gluon-core: reimplement gluon.site module in C
...
By basing the Lua gluon.site module on gluonutil_load_site_config(), the
config load implementation needs to changed only in a single place for
multi-domain support.
2018-01-18 16:29:00 +01:00
Matthias Schiffer
6cf88c3b03
Replace luci-lib-jsonc with our own lua-jsonc
2018-01-18 16:28:59 +01:00
Matthias Schiffer
01336f70ec
gluon-core: firewall: make the default input policy REJECT
...
Fixes #1311
2018-01-17 09:51:10 +01:00
Matthias Schiffer
a32fddf38c
gluon-core: firewall: accept inbound VXLAN traffic on wired mesh interfaces
...
Fixes #1308
2018-01-17 09:51:10 +01:00
David Bauer
99b02701cc
ar71xx: add support for TP-Link Archer C58/C59/C60 ( #1281 )
2018-01-16 18:51:12 +01:00
Matthias Schiffer
18b9174d03
Use 'disabled' attribute instead of 'auto' to disable wired mesh interfaces
...
The 'auto' attribute still allows enabling the interface using ifup, which
is not intended when wired mesh is disabled.
2018-01-11 23:06:36 +01:00
David Bauer
9273e56c63
ar71xx: add support for TP-Link Archer C7 v4 ( #1289 )
2018-01-03 16:50:23 +01:00
Matthias Schiffer
2b1ffb3034
gluon-core, gluon-client-bridge: create local_client zone in core
...
As core defines basic rules for this zone, it makes sense to create it
there.
2017-12-27 02:43:34 +01:00
Matthias Schiffer
8ea5810bda
gluon-core: firewall: allow inbound ICMPv4 ping on local_node
2017-12-27 02:43:34 +01:00
Matthias Schiffer
39284f00d0
gluon-core: firewall: allow Multicast Listener Discovery on mesh/local_client
...
Based-on-patch-by: Christof Schulze <christof.schulze@gmx.net>
2017-12-27 02:43:33 +01:00
Matthias Schiffer
a252383918
gluon-core: firewall: remove redundant ICMPv6 output rules
...
OUTPUT is always accepted, no need to allow ICMPv6 explicitly.
2017-12-27 02:43:33 +01:00
Matthias Schiffer
fe2048e4df
gluon-core: firewall: coding style
...
Wrap long lines.
2017-12-27 02:43:33 +01:00
Ralf Jung
4bae0a429f
docs: dns-cache: explain setting dns.servers a bit more ( #1268 )
2017-12-27 00:21:08 +01:00
Christof Schulze
1c1c9f8fc7
gluon-core: firewall rework, make base policy more restrictive
...
* gluon-core, gluon-client-bridge: introduce new firewall zone: local_client
* gluon-core: put clients in local_client zone, introduce drop-zone,
set dns-rules and zones
* gluon-respondd: allow respondd on mesh
* gluon-status-page-api: allow http input on mesh and client
2017-11-25 23:19:08 +01:00
Matthias Schiffer
13b325355d
gluon-core: make old site_config library reference new one, not the other way around
2017-08-11 22:07:35 +02:00
Matthias Schiffer
ee6afaced9
treewide: use new gluon.site Lua library
...
Some files have received some additional refactoring.
2017-08-11 22:07:34 +02:00
Matthias Schiffer
8a41ed05f1
gluon-core: more coding style fixes
2017-08-11 20:28:59 +02:00
kb-light
90305761ce
gluon-core: update lib/gluon/upgrade/150-poe-passthrough for naming within lede
2017-08-11 20:27:51 +02:00
kb-light
949f4b7dd5
gluon-core: lib/gluon/upgrade/150-poe-passthrough: fix indentation
2017-08-11 20:26:08 +02:00
Matthias Schiffer
3df9fcecb0
gluon-core: explicitly disable radios without configuration in site.conf
2017-08-08 14:08:35 +02:00
Matthias Schiffer
293a45456b
gluon-core, gluon-client-bridge: use new gluon.site library in gluon.util
...
In particular, this affects users of gluon.util.iterate_radios.
2017-08-08 14:07:09 +02:00
Matthias Schiffer
1d6e6726d7
gluon-core: use new gluon.site library to avoid 'or {}' syntax
2017-08-08 13:53:02 +02:00
Matthias Schiffer
57adb49de2
gluon-core: add new gluon.site library for convenient access to optional values
...
The new gluon.site lua library will eventually replace gluon.site_config
(which is hereby deprecated, but will continue to be supported for a
while).
The new gluon.site library will wrap all values to allow traversing
non-existing tables without errors.
site = require 'gluon.site'
c = site.a.b.c -- doesn't fail even if a or a.b don't exist
The wrapped values must be unwrapped using call syntax:
site_name = site.site_name()
Using the call syntax on a non-existing value will return nil. An
alternative default value may be passed instead:
mac = site.next_node.mac('16:41:95:40:f7:dc')
2017-08-08 13:20:38 +02:00
Matthias Schiffer
6884aad788
gluon-core: simplify 820-dns-config code
2017-08-08 04:31:53 +02:00
Matthias Schiffer
31721a61f5
gluonc-core: 200-wireless: remove unneeded nil checks for uci:set_list()
...
uci:set_list() will delete the list when nil is passed, so there is no need
to differentiate between the cases.
2017-08-08 04:31:52 +02:00
Matthias Schiffer
06d0c0f211
gluon-core: fix 200-wireless coding style
2017-08-08 04:31:52 +02:00
Matthias Schiffer
27f35e56b4
gluon-core: add interfaces having proto = gluon_mesh to mesh firewall zone
...
Based-on-patch-by: Christof Schulze <christof.schulze@gmx.net>
2017-06-27 23:49:56 +02:00
Christof Schulze
e432dd4d9f
gluon-core: gluon_mesh.sh: whitespace cleanup
2017-06-27 23:45:58 +02:00
Matthias Schiffer
ae593d8439
gluon-core: convert site seed to lowercase
...
While we use the hexadecimal representation as a hash input for simplicity,
it should not be interpreted as case-sensitive.
2017-06-27 23:28:23 +02:00
Matthias Schiffer
a2711065c8
gluon-core: add VXLAN support for gluon_wired protocol
2017-06-27 23:04:50 +02:00
Matthias Schiffer
0d6f957196
gluon-core: introduce new gluon_wired netifd proto for wired meshing
...
The new proto will simplify the switch to VXLAN encapsulation.
2017-06-27 23:00:17 +02:00
Matthias Schiffer
8bcd0975af
gluon-core: add a "site seed" to site.conf to seed site-specific random values
2017-06-27 23:00:17 +02:00
Matthias Schiffer
acfc3cc1a2
gluon-core: upgrade/210-interface-wan: whitespace cleanup
2017-06-21 17:16:41 +02:00
Matthias Schiffer
0db63008cd
gluon-core: upgrade/220-interface-lan: whitespace cleanup
2017-06-21 02:56:23 +02:00
Linus Lüssing
c519ec4596
gluon-core: reenable multicast snooping for wan zone
...
LEDE recently disabled multicast snooping by default:
https://git.lede-project.org/?p=project/netifd.git;a=commitdiff;h=52541140f8138e31958cdc3d7e42a4029fa6bbc9
Reenable it for Gluon as there have been no confirmed issues for
LEDE and no negative reports concerning Gluon v2016.2.x so far.
Closes #1025 .
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2017-04-13 22:31:47 +02:00
Matthias Schiffer
a502295eaf
gluon-core: gluon_mesh: make transitive and fixed_mtu available as interface data, add post-setup.d
...
In addition, transitive and fixed_mtu now default to 0 instead of an empty string.
2017-04-12 03:44:45 +02:00
Matthias Schiffer
02f2d8796c
gluon-core: don't call 'ip' to check if an interface exists
2017-04-11 02:01:21 +02:00
Matthias Schiffer
c4613c4e8d
gluon-core: gluon.util: pass UCI cursor to get_wlan_mac(), get rid of local UCI context
2017-04-11 01:48:11 +02:00
Matthias Schiffer
f48d10bdde
gluon-core: gluon.util: pass UCI cursor as argument to iterate_radios() instead of using local context
2017-04-11 01:48:11 +02:00
Julian Labus
734d1925de
gluon-core: gluon.util: fix PHY detection for radios addressed by PCIe address
2017-04-11 01:48:10 +02:00
Matthias Schiffer
da22c5cf8e
gluon-core: gluon.util: change find_phy argument to config table and make public
2017-04-11 01:48:10 +02:00
Julian
13c61d9394
gluon-core: fix pattern %v in opkg URLs ( #1087 )
2017-04-07 14:24:13 +02:00
Cyrus
6a0ca58fc3
gluon-core: Fixed bug which kept legacy VLAN interface definitions ( #1085 )
2017-04-03 20:48:42 +02:00
Christof Schulze
b7651ee96f
gluon-core: limit fq_codel memory to 1MB per AP with less than 48MB RAM ( #1046 )
2017-02-24 19:43:32 +01:00
Matthias Schiffer
b45585a109
Switch LAN and WAN port of Ubiquiti AirGateway
...
This makes the LAN port the PoE master, so the AirGateway can be used to
supply power to another node connected via mesh-on-LAN.
Fixes #608
2017-02-23 19:49:39 +01:00
kb-light
c9563cdebd
scripts: check_site_lib: introduce need_string_array_match() ( #1016 )
2017-02-21 09:45:33 +01:00
Matthias Schiffer
184cb1010d
gluon-core: add single_as_lan option to configure a single ethernet port as LAN instead of WAN
2017-02-10 22:48:23 +01:00
Matthias Schiffer
e39cbcbda1
gluon-core: gluon.util: make exec() replace all stdio files with /dev/null
2017-02-10 22:09:59 +01:00
Matthias Schiffer
ea12cb770d
gluon-core: nicer indentation of /lib/gluon/upgrade/020-interfaces
2017-02-10 22:08:51 +01:00
Matthias Schiffer
e5cb125737
Move wifi24/5 and mesh_on_wan/lan site validators from gluon-mesh-batman-adv-core to gluon-core
...
These values have been in use in gluon-core for some time, the validators
need to be moved as well.
2017-02-10 21:19:34 +01:00
Matthias Schiffer
f9a52fd54f
Move luci-base dependency from gluon-core to gluon-setup-mode
...
Nothing outside the config mode depends on luci-base anymore.
2017-02-10 02:10:02 +01:00
Matthias Schiffer
e665bfe64a
gluon-core: don't depend on luci.ltn12
2017-02-10 02:10:01 +01:00
Matthias Schiffer
c83b5b3cab
treewide: get rid of luci.util outside of config mode/advanced settings
2017-02-10 02:10:01 +01:00
Matthias Schiffer
6cf03bab37
treewide: replace normal uses of luci.model.uci with simple-uci to reduce LuCI dependencies
...
We also make use of the boolean support of simple-uci to make scripts
clearer.
2017-02-10 02:10:01 +01:00
Matthias Schiffer
6b62e2fc78
gluon-core: check_site.lua: only accept /64 as prefix6
...
A lot of our code does not actually work with other prefix lengths.
Fixes #1014
2017-01-26 18:59:38 +01:00
Christof Schulze
8b083d4986
gluon-core: check_site.lua: fix indentation
2017-01-24 23:21:10 +01:00
Christof Schulze
e2e910fb41
gluon-core: add configuration that enables the next_node to be used as dns cache
2017-01-24 23:20:40 +01:00
Matthias Schiffer
0a8e028e8f
gluon-core: upgrade: don't print an error message on systems without opkg
2017-01-19 13:10:57 +01:00
Matthias Schiffer
78b2775eec
Use LEDE as base for Gluon
2017-01-18 17:21:43 +01:00
Matthias Schiffer
04818c170b
package: refactor add_to_set/remove_to_set to get rid of last LuCI patch
2017-01-18 16:28:54 +01:00
Matthias Schiffer
2dd8a700ca
package: avoid use of GLUONDIR variable
2017-01-17 21:22:58 +01:00
Matthias Schiffer
99471f8d5d
ar71xx-generic: add support for TP-Link WBS210/510 (untested)
...
Closes #844
2017-01-06 12:02:32 +01:00
Christof Schulze
e41e5cb8d9
gluon-core: add get_mesh_devices(uconn) to gluon.util which will return all devices being up and having proto = gluon_mesh
2016-12-21 23:51:48 +01:00
Christof Schulze
0abe350782
gluon-core: replace blanks by tabs in gluon.util
2016-12-21 23:47:03 +01:00
Matthias Schiffer
d2373590e0
gluon-core: add support for removing sysctl settings
2016-12-10 23:43:44 +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
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
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
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
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
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
7e0075584d
Use a "pretty" hostname where possible
...
Fixes #414
2016-08-27 16:33:37 +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
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
Matthias Schiffer
b1a753e1c5
gluon-core: allow setting PoE passthrough default setting from site.conf
2016-07-30 00:00:39 +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
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
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
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
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