3596 Commits

Author SHA1 Message Date
Florian Eckert
e52e1de53a luci-base: do not add validation for named section if readonly is set
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 1a2b7fef6cc181f7f0ff0e1133ad4d8ab03e279c)
2021-07-07 17:18:19 +02:00
Helge Mader
56f453ad13 luci-base: prevent empty field for adding new named section in JavaScript
Suggested-by: Helge Mader <ma@dev.tdt.de>
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 87215e3d1bd2406c4a5ae5088e176fb4aefbe546)
2021-07-07 17:18:16 +02:00
Florian Eckert
215a3141f0 luci-base: change css class btn to cbi-button
The css class btn is only a valid input element on lua rendered pages.
Use instead cbi-button for javascript rendered pages.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 80262bb9a7e63eeee0e1fa5f290b27a569a644bf)
2021-07-07 17:18:13 +02:00
Florian Eckert
c6b41bdecb luci-base: use button tag instead of input tag on named section add
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 97e673b72cc96f5f866df7e990a51fa65bff5b5f)
2021-07-07 17:18:10 +02:00
Jo-Philipp Wich
eafe171160 luci-mod-status: disable "Set static" lease action on readonly view
Fixes: f6b6a12927 ("luci-mod-status: add support for one-click static lease")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit a6d957d6f59329cc16c838afe3c88c6072fad236)
2021-07-07 17:17:16 +02:00
DeYu Liu
720a57647b luci-base: Fix time display error
Signed-off-by: DeYu Liu <vito_sam@outlook.com>
(cherry picked from commit 0e4b4c5b42f9d8b93a4936c4b2d63f9a90c5a61b)
2021-07-07 17:17:09 +02:00
Jo-Philipp Wich
1fed9af22c luci-base: validation: disallow mutlicast MACs by default
Extend the MAC address validator to disallow multicast MAC addresses and
add a new optional validator option to require multicast MACs instead of
unicast ones.

Fixes: #5166
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 00e41c3c4977f75e6ca43429dd4c8c2f5cb22419)
2021-07-07 17:17:02 +02:00
Jo-Philipp Wich
afea1dac74 Revert "luci-mod-network: issue with breakdown of dnsmasq after duplication of static IP was fixed"
This reverts commit 463e910119813aaea0755ff5c16c91ce412a8cbb.

This change causes the entire static lease to get deleted when attempting
to change the MAC address.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 91f46d765b36825fcfe63e2b7d4863de00cdc69d)
2021-07-03 07:21:24 +02:00
Jo-Philipp Wich
0ededb9bcc luci-mod-network: fix saving bridge VLANs without member ports
Calling `uci.set()` with an empty array yields an invalid argument error,
make sure to pass `null` instead in this case.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit f1f566bfe2a6b0960ba95a5ea05ca4353b766867)
2021-07-02 20:48:09 +02:00
Jo-Philipp Wich
ae00d0f712 luci-mod-network: work around jsmin bug
The jsmin minifier incorrectly transforms the expression `/\*/.test(...)`
into `/\* /.test(...)`, causing the VLAN filter dialog to not recognize
PVID settings in the configuration.

Work around the issue by using an equivalent `\x2a` escape sequence instead.

Ref: https://forum.openwrt.org/t/x/99222/28
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 2869c9cf324a9e057567075d4977c7cc40140938)
2021-07-02 20:48:09 +02:00
Jo-Philipp Wich
f66be1fe72 treewide: fix typo in "Enable VLAN filtering" label
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit c48d8f4a2c9a771c8c03a76eb1b554f62d57140b)
2021-07-01 21:16:56 +02:00
Jo-Philipp Wich
d1d452ed2f luci-mod-status: don't set '-' hostname when creating static lease
Fixes: #5153
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit e3357deb7d273b6a982dfaf9800c83eba85fe6b2)
2021-07-01 21:15:25 +02:00
Jo-Philipp Wich
49aa9c61db luci-mod-network: enforce IPv4 mode for traceroute call
Recent busybox traceroute applet versions support both IPv4 and IPv6 and
default to IPv6 when running a route trace to an IPv6 enabled target
host. Pass the `-4` flag to enforce IPv4 mode in this case.

Fixes: #5155
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit c4f429461545d1401429e7ba133f24a55d1015b6)
2021-07-01 21:15:15 +02:00
Jo-Philipp Wich
165e411cd4 luci-mod-network: parse ports without tag/pvid annotation as well
Fixes: 01eac366f6 ("luci-mod-network: fix tagging/pvid state parsing in bridge-vlan ports")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit e57f8663afd53cc7421debcd63444e1d136f5dec)
2021-07-01 21:15:04 +02:00
Jo-Philipp Wich
4c05263573 luci-mod-network: fix tagging/pvid state parsing in bridge-vlan ports
The previous code naively looked for a `t` in the entire port spec,
wrongly matching untagged ports having a `t` in their name, such
as `eth0`.

Rework the logic to be more strict when parsing the port member
specification to avoid this issue.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 01eac366f69ba58c090ddc2cb70aeb069adbdd5a)
2021-07-01 21:15:04 +02:00
Jo-Philipp Wich
ccf7c1e036 luci-mod-network: refactor device configuration
Since all netifd device types inherit generic device settings, we can
simplify various aspects of the device configuration ui and drop unused
code while we're at it.

 - Remove setIfActive() helper, superseded by commit
   f3f74bd0fe ("luci-base: form.js: consider aliased options in AbstractValue.remove()")

 - Remove most dependency constraints to make all generic device settings
   available for all device types

 - Add MTU value validation to disallow exceeding parent device MTU for
   VLAN interfaces

 - Dynamically update placeholder values when changing base or parent
   device options

 - Undo VLAN network config hack since all options are available now.
   Reverts commit
   3c6b59504a ("luci-mod-interfaces: simplify configuring MAC address of 802.1q devices")

 - Do not suggest inactive wireless networks as existing device or base
   device choices

 - Disallow specifying names of already existing network devices when
   creating new device settings

 - Fix a number of multicast dependency specifications

 - Drop now unused functions

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit f689d0d208acbf9934da5a2d49c8717c054be585)
2021-07-01 21:15:04 +02:00
Jo-Philipp Wich
0eb87ea65e luci-mod-network: change port status layout in vlan filter config
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 36350e9867ca9fd2f9b137ed76f0fabe0e57c880)
2021-07-01 21:15:04 +02:00
Florian Eckert
74c16549a1 luci-base: i18n sync translations
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-06-21 13:53:03 +02:00
Anton Kikin
2e6b6ec0dc luci-mod-network: Support for disabling routes
Support for disabling routes in netifd was added in commit [1]. This commit
adds support for disabling routes through the LuCI interface.

Additionally hidden the route options descriptions in the header of the
routes table (they are still available in the modal view).

[1]: https://git.openwrt.org/?p=project/netifd.git;a=commit;h=327da9895327bc56b23413ee91a6e6b6e0e4329d

Signed-off-by: Anton Kikin <a.kikin@tano-systems.com>
(cherry picked from commit bfe8a01040c8a74f38818195620f069f5bc10c5c)
2021-06-21 12:53:21 +02:00
Florian Eckert
95b3633055 luci-mod-status: switch to html table for wlan channel analysis
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 8f8ce8613fb6e41954aa5bcbb60330e3b034bd3a)
2021-06-21 12:21:44 +02:00
Jo-Philipp Wich
8b663587f9 luci-mod-network: only consider bridge vlans belonging to the current device
In case multiple bridges with bridge vlans are declared, LuCI did not
correctly filter the VLANs to show only the ones belonging to the
bridge being configured currently.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit f6f1eacb012b0364940c1dc9b9392fc0e60405b9)
2021-06-17 09:39:38 +02:00
Jo-Philipp Wich
199533a08e treewide: resync and merge master translations
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-06-15 10:06:26 +02:00
Jo-Philipp Wich
2778366916 luci-mod-network: wireless.js: recognize HE* htmodes
Ref: https://bugs.openwrt.org/index.php?do=details&task_id=3856#comment9797
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 4286c84825c15f4d36f294b2ea28071667a4be7e)
2021-06-14 09:06:39 +02:00
Jo-Philipp Wich
1397a1b72e luci-mod-network: small styling fixes for vlan filter matrix
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit cbf2cc396a29d6794a4d883d80f8390e227e072b)
2021-06-13 21:48:27 +02:00
Rafał Miłecki
4dff25448a luci-mod-network: migrate more device options
Include mtu and igmp_snooping while migrating.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit fa51d04459b16245d33a1562159c65d4b03a32f0)
2021-06-13 20:12:19 +02:00
Jo-Philipp Wich
973e80e97e luci-mod-network: reset bridge VLANs on cancelling modal dialog
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit bb3269945c7f189e1d1de1e7979d79d30a860b03)
2021-06-12 22:55:38 +02:00
Jo-Philipp Wich
7f15982c25 luci-mod-network: fix vlan filter matrix overflow after redraw
Ensure that the overflow styles are reapplied after a redraw. This also
simplifies the code as a side-effect.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 7a781d9cd8ab783dd7a5c72f154b972a9ea9aa98)
2021-06-12 22:10:15 +02:00
Jo-Philipp Wich
c7ee2c1141 treewide: resync and merge master translations
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-06-12 20:01:58 +02:00
Jo-Philipp Wich
6c6559ad05 treewide: consolidate {IPv4,IPv6,MAC} {address,gateway} spellings
- Turn IPv4-Address into IPv4 address
 - Turn IPv4-Gateway into IPv4 gateway
 - Turn IPv6-Address into IPv6 address
 - Turn IPv6-Gateway into IPv6 gateway
 - Turn MAC-Address into MAC address

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit 88b9d843882cf52a6acf4d08a878fd005120edd4)
2021-06-12 20:01:58 +02:00
Jo-Philipp Wich
003f367e8d treewide: fix "promiscious" typo
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit b5832d134e0e38609ea8a2d83b8aa62e0e662f24)
2021-06-12 20:01:58 +02:00
Dirk Brenken
ca66b630c0 luci-mod-system: remove bogus btn class in flash.js
* fixes #4970

Signed-off-by: Dirk Brenken <dev@brenken.org>
[omit translation sync]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(backported from commit 8c6a29a45cba64724bd726e52719eabbfa8528a6)
2021-06-12 20:01:58 +02:00
Wojciech Jowsa
7abec3b04f luci-mod-status: check if center_chan1 is defined
Signed-off-by: Wojciech Jowsa <wojciech.jowsa@gmail.com>
(cherry picked from commit ead64c0195cd792341a6dddce7ea5e724247c60d)
2021-06-12 20:01:58 +02:00
Jo-Philipp Wich
d3971680ee luci-mod-network: add port status to bridge vlan filter matrix
Also ensure that port devices are ordered numerically.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 8c71b1d01ee234c5681684e9aae5f63dbe9ebb07)
2021-06-12 20:01:58 +02:00
Jo-Philipp Wich
ba57ec5fd5 luci-base: network.js: add link status information accessors
Fixes: #5121
Fixes: 8c71b1d01e ("luci-mod-network: add port status to bridge vlan filter matrix")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 1bcb12570c3b6f26009801ee6006b2ab305d088f)
2021-06-12 20:01:58 +02:00
Jo-Philipp Wich
d49c6d46e6 luci-mod-network: fix horizontal scrolling in the bridge vlan filter matrix
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit ded6e53bcdb9c484f99779fffa20a37bc6d70c3c)
2021-06-12 20:01:57 +02:00
Jo-Philipp Wich
0df73ee571 luci-base: ui.js: determine dropdown position relative to overflow parent
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit e3bf521edbd0c6f59aba9aa9a89a9d96e1da3fd2)
2021-06-12 20:01:57 +02:00
Lukasz Baj
4243e21f13 luci-mod-status: fix NaN errors in realtime graphs
When I use Realtime Graphs I see following NaN errors:

    Error: <polyline> attribute points: Expected number, "0,298 0,NaN 5,NaN 10,NaN…".
    Error: <polyline> attribute points: Expected number, "0,298 0,NaN 5,NaN 10,NaN…".
    wireless.js?v=git-21.105.40538-2da37c2:19 Error: <polyline> attribute points: Expected number, "0,298 0,NaN 5,NaN 10,NaN…".
    eval @ wireless.js?v=git-21.105.40538-2da37c2:19
    Promise.then (async)
    eval @ wireless.js?v=git-21.105.40538-2da37c2:8
    step @ luci.js?v=git-21.105.40538-2da37c2:91
    start @ luci.js?v=git-21.105.40538-2da37c2:87
    add @ luci.js?v=git-21.105.40538-2da37c2:82
    pollData @ wireless.js?v=git-21.105.40538-2da37c2:7
    render @ wireless.js?v=git-21.105.40538-2da37c2:24
    Promise.then (async)
    __init__ @ luci.js?v=git-21.105.40538-2da37c2:148
    super @ luci.js?v=git-21.105.40538-2da37c2:22
    Anonymous42Class @ luci.js?v=git-21.105.40538-2da37c2:12
    (anonymous) @ luci.js?v=git-21.105.40538-2da37c2:181
    Promise.then (async)
    compileClass @ luci.js?v=git-21.105.40538-2da37c2:177
    Promise.then (async)
    require @ luci.js?v=git-21.105.40538-2da37c2:183
    instantiateView @ ui.js?v=git-21.105.40538-2da37c2:311
    (anonymous) @ wireless:47
    Promise.then (async)
    (anonymous) @ wireless:46

Signed-off-by: Lukasz Baj <l.baj@celerway.com>
[adjust subject]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit c6a5c809ed1fb050d257cf6273b8bc832babfa9b)
2021-06-12 20:01:57 +02:00
Jo-Philipp Wich
a648b36372 luci-mod-network: interfaces.js: fix ifname migration in device sections
The migration code attempted to add new device sections instead of moving
the ifname option to a ports list within the existing ones.

Fixes: #5108
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit e13d82a202975bd9ac5eca380049b887cb1d585d)
2021-06-12 20:01:57 +02:00
Jo-Philipp Wich
da2eefe94b luci-mod-network: interfaces: show bridge port device icons again
Restore the display of bridge port device icons in the interface overviews.
This feature has been lost after migrating the network config from legacy
bridge declarations to device bridge declarations.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 608f89429b4b8537ddaefd070c777a6d4fb1c7a1)
2021-06-12 20:01:57 +02:00
Jo-Philipp Wich
ab7717b2b4 luci-mod-network: support newer wireless.wifi-device.band option
OpenWrt switched from "option hwmode" to "option band" in order to select
the frequency band to use for the radio phy.

Extend the channel selector to recognize and use an existing "option band"
to select the appropriate channel list. When operating upon a wireless
configuration still using "option hwmode", then translate it to a band
value internally and translate it back to "option hwmode" on save.

This should provide forward- and backwards compatibility with both current
OpenWrt master and older versions still using hwmode.

Fixes: #5106
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 0829d31290e7c902743fbd86ea91b06ee90c6e42)
2021-06-12 20:01:57 +02:00
Jo-Philipp Wich
b9b279c4cc luci-mod-network: allow device declarations and device configs to coexist
It is legal to have two device sections referring to the same netdev if one
section is a declaration (a section setting option type) and the other is
a configuration (a section not specifying a type but matching an existing
netdev).

Support this case in LuCI since it might be required for some complex
device setups.

Additionally, fix the device type determination for device configuration
sections without type, those should be treated as ethernet (a.k.a.
simple device) configuration instead of falling back to the underlying
netdev device type.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit a6c0ad00b28a5d3f91338b50f7e69fbd45f2154e)
2021-06-12 20:01:57 +02:00
David Bauer
d721bb6875 luci-base: add 11ax HW / HT modes
Add the known values returned for 802.11ax HW as well as HT modes to the
respective method descriptions.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 4b17f8baa3574527dc6ab8914fd322a08cb9784c)
2021-06-12 20:01:57 +02:00
David Bauer
1af323e450 luci-mod-network: add 802.11ax HE support
This commit adds the ability to configure HE-modes for radios
(HE20 / HE40 / HE80 / HE160) as well as HE rate information in the
assiciation view.

Tested-on: Ubiquiti UniFi 6 Lite / LR

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit f35e877dc65c727a6ce7f7972a5be4d15921827b)
2021-06-12 20:01:57 +02:00
Jo-Philipp Wich
e8dd9331c1 luci-mod-interfaces: simplify configuring MAC address of 802.1q devices
Treat not explicitly configured, preexisting VLAN interfaces as simple
network devices when adding configuration for them, since it is more
likely that people want to set general device properties such as MAC
address instead of reconfiguring ingress/egress QoS mapping, which is
the only editable property of preexisting VLAN device config dialogs.

Ref: https://github.com/openwrt/luci/issues/5102
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 3c6b59504aaa6ee33a2ee768aafc0aeaefb06004)
2021-06-12 19:24:00 +02:00
Jo-Philipp Wich
5886f7478d luci-mod-network: interfaces: restructure DHCPv6 and IPv6 RA options
- Condense overly large IPv6 RA/DHCPv6 description texts and get rid of most embedded markup

 - Switch ra/ndp/dhcpv6 mode selections to rich dropdown lists and move extended choice
   descriptions next to the selection options

 - Drop ndproxy_static option which has been removed from odhcpd long ago

 - Add format validations to all text input fields

 - Add ability to configure master/relay modes for non-static interfaces (#2998)

 - Move extended RA configuration options into a new tab

 - Prevent enabling master mode on multiple interfaces

 - Prevent enabling ra/dhcpv6 server mode on non-static or master interfaces

 - Drop ra_management in favor to ra_flags option (#5083)

 - Add support for dns_service option

 - Read current effective IPv6 MTU and hop limit placeholder values from procfs

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 3fbd4338846e8229935b54256a3a541a3e15d8bd)
2021-06-12 19:23:49 +02:00
Jo-Philipp Wich
49e25bd03e luci-base: network.js: sorting fixes
Ensure that sort callbacks consistently return [-N .. 0 .. +N] values
instead of just true/false.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit e35041e0a8edcf039d62a74cbc5e0f4043d04029)
2021-06-12 19:23:37 +02:00
Niels Widger
7d7df070c3 treewide: Update JS using luci-rpc getHostHints
Update frontend JS code which uses luci-rpc getHostHints to support the new
response format which removes the `ipv4` and `ipv6` host hint string fields
and replaces them with `ipaddrs` and `ip6addrs` weighted string list fields.

Signed-off-by: Niels Widger <niels@qacafe.com>
[rework code to be forwards/backwards compatible, fix some Network.Hosts
 methods, fix IP choice ordering, change commit subject, rewrap commit
 message]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit c7b7b42cd3840cfd67f412191578a8659eb63c87)
2021-06-12 19:23:28 +02:00
Jo-Philipp Wich
56cd1abbe8 luci-mod-network: rename "device" option to "_net_device" internally
This is required to resolve conflicts with the existing "device" option
in other proto handlers such as PPP or QMI where "device" refers to the
device path of the tty control device instead of a netdev name.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 10f02472c5fdab72615a7d3695e8f354811cd661)
2021-06-12 19:23:18 +02:00
Jo-Philipp Wich
caa0abf99a luci-mod-network: clarify device settings reset button tooltip
Ref: #5090
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 26e21d43b5402d0c20bd2222429629c164968668)
2021-06-12 19:23:13 +02:00
Jo-Philipp Wich
9bbf5d4002 luci-base: form.js: consider aliased options in AbstractValue.remove()
If different options point to the same underlying uci option, we must only
remove the uci value if none of the other alias options is active in order
to prevent inactive options (due to unsatisfied depends) removing the uci
value of active once on save.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit f3f74bd0fe66b94a99a8d944b63dcd6bdd1b93c6)
2021-06-12 19:23:10 +02:00