123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- Gluon 2014.3
- ============
- New hardware support
- ~~~~~~~~~~~~~~~~~~~~
- * Linksys WRT160NL
- New features
- ~~~~~~~~~~~~
- New autoupdater
- ---------------
- The autoupdater has been rewritten.
- Two new fields have been added to the manifest:
- ``DATE``
- Specifies the time and date the update was released. ``make manifest`` will take care of setting it to the correct value.
- ``PRIORITY``
- Specifies the maximum number of days until the update should be attempted (thus lower numbers
- mean the priority is higher). It must be set either in ``site.mk`` or on the ``make manifest`` command line.
- Updates will be attempted at night, between 04:00 and 5:00, with a specific probability.
- When less than ``PRIORITY`` days have passed (calculated using ``DATE`` and the current time),
- the probability will proportional to the time passed. I.e. the update probability will start at 0
- and slowly increase to 1 until ``PRIORITY`` days have passed. From then, the probability will be fixed at 1.
- **Note:** For the new update logic to work, a valid NTP server reachable over the mesh (using IPv6) must
- be configured in ``site.conf``. If the autoupdater is unable to determine the correct time, it will fall back to
- a behavior similar to the old implementation (i.e. hourly update attempts).
- Seperation of announced data
- ----------------------------
- The data announced by alfred has been split into two data types:
- * *nodeinfo* (type 158) contains all static information about a node
- * *statistics* (type 159) contains all dynamic information about a node
- Both types also contain a new field ``node_id`` which contains an arbitrary unique ID
- (currently the primary MAC address, sans colons) which can be used to match the *nodeinfo*
- with *statistics* information.
- gluon-announced
- ---------------
- A new daemon has been added in a new package ``gluon-announced``. This daemon can be
- used for querying the *nodeinfo* data of a node via link-local multicast on the ad-hoc
- interfaces.
- At the moment, this daemon is not used, but we recommend including it in ``site.mk`` nevertheless
- as we plan to implement a new status page showing some information about neighbor nodes in
- the next version of Gluon.
- VPN over IPv6
- -------------
- It is now possible to use fastd in IPv6 WAN networks. This still needs testing, but it should work well.
- Please note that the MTU of 1426 used by many communities for VPN over IPv4 is too big for IPv6 as
- the IPv6 header is 20 bytes longer (fastd over IPv4 has an overhead of 66 bytes,
- fastd over IPv6 has an overhead of 86 bytes).
- More modular Config Mode
- ------------------------
- The package ``gluon-config-mode`` has been split into multiple packages to simplify the development of
- extensions. The low-level logic (handling of the button, starting the services for the config mode) has been moved
- into a new package ``gluon-setup-mode``, while ``gluon-config-mode`` only contains the frontend now.
- Extended Expert Mode
- --------------------
- The Expert Mode now has a nice info page. In addition, the new package ``gluon-luci-portconfig`` has been added
- which allows simple configuration of batman-adv on the WAN interface.
- Site validators
- ---------------
- The content of the ``site.conf`` is now validated when the images are built to make it less likely to accidentially
- build broken images.
- gluon-firewall
- --------------
- The package ``gluon-firewall`` has been removed. Its features are now part of the packages ``gluon-core`` and
- ``gluon-mesh-batman-adv``.
- gluon-ath9k-workaround
- ----------------------
- This package installs a cron job which tries to recognize ath9k hangs and restart the WLAN while recording some information.
- It is very rudimentary and we can't really recommend using it on "production" nodes.
- Bugfixes
- ~~~~~~~~
- Improved ath9k stability
- ------------------------
- Multiple bugs in the WLAN driver ath9k have been fixed upstream. This should greatly improve the WLAN stability.
- odhcp6c 50 day bug
- ------------------
- An important update for odhcp6c fixes a bug which caused Gluon nodes to lose their IPv6 addresses on br-client after an uptime
- of 50 days, making the nodes unable perform automated updates (besides other issues).
- IPv6 preference
- ---------------
- Commands like ``wget`` now prefer IPv6 for domains with both AAAA and A records, allowing to use such domains for the autoupdater URLs
- and as NTP servers in ``site.conf``.
- Site changes
- ~~~~~~~~~~~~
- * ``site.conf``
- - The ``probability`` fields for the autoupdater branches can be dropped as they aren't used anymore
- - The type of the ``enabled`` options of the ``gluon-simple-tc`` configuration has been changed to boolean, so ``true`` and ``false`` must be used instead of 1 and 0 now
- * ``site.mk``
- - Obsolete packages:
- + ``gluon-firewall``
- - Recommended new packages:
- + ``gluon-announced``
- + ``gluon-luci-portconfig``
- - GLUON_PRIORITY must be set in ``site.mk`` or on the ``make manifest`` commandline. Use ``GLUON_PRIORITY ?= 0`` in ``site.mk`` to allow overriding from the commandline.
- Internals
- ~~~~~~~~~
- Some internal changes not mentioned before which are interesting for developers:
- * Many more shell scripts have been converted to Lua
- * ``gluon-mesh-vpn-fastd`` now uses the new package ``gluon-wan-dnsmasq``, which provides a secondary DNS server on port 54
- that is only reachable from *localhost* and uses the DNS servers on the WAN interface for everything. This allowed us to
- remove some ugly hacks which were making the DNS servers used depend on the domain being resolved.
- For IPv6, the default route is now controlled via packet marks, so the secondary DNS server and fastd set the packet mark
- so they use the default route provided on the WAN interface instead of the mesh.
|