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)
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)
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)
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)
Include mtu and igmp_snooping while migrating.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit fa51d04459b16245d33a1562159c65d4b03a32f0)
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)
Also ensure that port devices are ordered numerically.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 8c71b1d01ee234c5681684e9aae5f63dbe9ebb07)
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)
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)
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)
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)
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)
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)
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)
- 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)
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)
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)
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)
This commit effectively reverts the change made with
907b4222f7 ("luci-mod-network: don't hide "Device" on protocol change").
Floating tunnel protocols such as 6in4, plain PPP over modem device,
VPNC etc. do not have any layer 2 device at all, for such protocols the
device selector should be hidden.
Also swap back the incorrect option order introduced with commit
b7f3cf66ca ("luci-mod-network: drop support for *adding* legacy bridges").
Since device depends on proto, it should come after the protocol selection,
not before.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit fc12933670ba9efd87a24b6823cf57a666b54c1a)
Commit b7f3cf66ca "luci-mod-network: drop support for *adding* legacy bridges"
dropped the protocol dependcies of the ifname/device selector in the add new
interface dialog.
Re-add the required dependencies and swap the order of the protocol and
device inputs while we're at it since latter depends on the former.
Fixes: b7f3cf66ca ("luci-mod-network: drop support for *adding* legacy bridges")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 147188f6ee7067119746ffc2a505ef8f4eb8943a)
Problem with handling all migrations in 1 step is that uci.sections()
doesn't include changes queued using uci.callAdd() and uci.callSet().
That could result in unexpected behaviour and generating invalid
configs.
For the sake of simplicity and reliability use 2 steps migration. The
downside is that users may get prompted twice to migrate.
Reported-by: Hauke Mehrtens <hauke@hauke-m.de>
Fixes: 74be304e541f ("treewide: use "device" option in UCI "interface" sections")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Tested-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit e7c9c63c657963daa1a0d57dcb0848d88e909c25)
Those are L2 options that are not part of interfaces (L3), should not be
set there and don't work. Setting MAC and MTU should be done at device
layer (config device) and is supported for basic types already.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 79947af064122438c803f3b7bc580ede093a26e4)