Gluon 2023.1
============

Important notes
---------------

Upgrades to v2023.1 and later releases are only supported from releases v2021.1 and later.
This is due to migrations that have been removed to simplify maintenance.

**Note:**
Due to a bug, configuration is lost on upgrades from Gluon v2021.1.x on the *x86-64*,
*x86-generic* and *x86-legacy* targets, returning nodes to config mode. If your
network is still running a Gluon version older than v2022.1, it is recommended to
skip v2023.1 and wait for the v2023.1.1 release.

Added hardware support
----------------------

ath79-generic
~~~~~~~~~~~~~

- Extreme Networks

  - WS-AP3805i

ath79-nand
~~~~~~~~~~

- GL.iNet

  - GL-XE300

ramips-mt7621
~~~~~~~~~~~~~

- TP-Link

  - EAP615-Wall

- Wavlink

  - WS-WN572HP3 4G

ramips-mt76x8
~~~~~~~~~~~~~

- TP-Link

  - TL-MR6400 (v5)


Features
--------

DNS Caching
~~~~~~~~~~~

DNS caching using the dnsmasq resolver is reintroduced.

See the :ref:`DNS caching documentation <dns-caching>` section for
details on how to enable this feature.

Cellular Modem Support
~~~~~~~~~~~~~~~~~~~~~~

Support for using cellular data connections as the primary uplink connection has been added
to Gluon. This is supported for hardware that comes with a built-in cellular modem. The required user
configuration for the APN and SIM-PIN can be performed in the Advanced Settings in Config Mode.

To use this feature in config-mode, the ``web-cellular`` needs to be enabled in ``site.mk``.

Interface Role UI
~~~~~~~~~~~~~~~~~

Interface Roles can now be assigned from the Network page of the Advanced Settings
in Config Mode. This configuration is preserved on Gluon upgrades.

WireGuard Key Translation
~~~~~~~~~~~~~~~~~~~~~~~~~

This release adds a new mechanism for seamlessly translating existing fastd private keys on the nodes into
equivalent WireGuard keys. The corresponding public keys can be translated **separately** on the servers.
This mitigates the need to re-exchange public keys for communities when migrating to WireGuard-based VPN.

See the :ref:`gluon-mesh-vpn-key-translate <gluon-mesh-vpn-key-translate>` section for details.


Bugfixes
--------

- Custom channel lists using a radios ``channels`` UCI option are now preserved on upgrade
  in case ``gluon.wireless.preserve_channels`` is set.
- Custom HT modes for radios are now preserved when ``gluon.wireless.preserve_channels``
  is set.
- Broken mesh links between MediaTek 11ax and Qualcomm 11ac hardware are worked around. (`#2905 <https://github.com/freifunk-gluon/gluon/pull/2905>`_)
- Fixed a bug in the MediaTek MT7621 NAND driver that caused devices to end in a bootlooping state
  after the initial installation.


Minor changes
-------------

- .. rst-class:: strike

  Images built for the ``x86`` targets are now natively bootable on
  EFI systems without CSM or BIOS support modes.

  EFI support was found to break upgrades from Gluon v2021.1.x. It will be removed from
  v2023.1.x to be reintroduced in a later release.

Known issues
------------

* The integration of the BATMAN_V routing algorithm is incomplete.

  - Mesh neighbors don't appear on the status page. (`#1726 <https://github.com/freifunk-gluon/gluon/issues/1726>`_)
    Many tools have the BATMAN_IV metric hardcoded, these need to be updated to account for the new throughput
    metric.
  - Throughput values are not correctly acquired for different interface types.
    (`#1728 <https://github.com/freifunk-gluon/gluon/issues/1728>`_)
    This affects virtual interface types like bridges and VXLAN.

* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown
  (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)

  Reducing the TX power in the Advanced Settings is recommended.

* In configurations without VXLAN, the MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled
  (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)

  This may lead to issues in environments where a fixed MAC address is expected (like VMware when promiscuous mode is disallowed).

* Configuration is lost on upgrades from Gluon v2021.1.x on the *x86-64*, *x86-generic* and *x86-legacy* targets,
  returning nodes to config mode
  (`#2967 <https://github.com/freifunk-gluon/gluon/issues/2967>`_)
