Device ("ifname" UCI option) doesn't depend on protocol so there is no
need to hide / reset it on protocol change.
While at it drop names of two removed inputs (dead code).
Fixes: ec020cee0c44 ("luci-mod-network: drop support for *editing* legacy bridges")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 907b4222f70b3351d590d8a2e35c21a4ae07db8d)
LuCI now supports the updated UCI syntax for bridges that requires:
1. device section for L2
2. interface section for L3
Check for legacy syntax usage and offser user a migration to allow
changing network config.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit bca76a767316a689d59dfd4974dcb7bfb04db1e8)
netifd has been recently patched to use more accurate "ports" option
instead of "ifname"
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit a90115cd82372eaaa0ed531800b568387e200c97)
The old way of defining bridge (L2) as part of interface (L3) is
deprecated. All such configs should be migrated to define bridge as L3
UCI section type "device".
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit ec020cee0c44793f8ce1b346675c6a36e63b0154)
The old way of defining bridge (L2) as part of interface (L3) is
deprecated. Don't support *adding* interfaces like that.
Support for *editing* legacy bridges is kept for now for compatibility
with existing legacy setups.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit b7f3cf66cadf6753153bc9d1feac1eca0c7e37f0)
Ensure that device sections are only automatically removed after all
related options have been parsed, to avoid prematurely deleting sections.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 2072c66c5a4b755a6ed16bb6486afb956a475be9)
Introduce a `migrate` properties which selectively allows disabling the
`config interface` to `config device` migration logic for single options.
Use the new flag to disable migration of the "ipv6" option which has
different semantics in interface and device sections.
Ref: https://forum.openwrt.org/t/pppoe-disable-ipv6/92548
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 935e9a3c3430db5fad1004926ddfa2e35a950be5)
Only disable legacy bridging if an existing network.device section with type
bridge is found, ignore non-type sections since those do not declare a
bridge but set attributes on top of an existing one.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit f48f9f11e7f6e3d74e2fd4b6b2478e5673f2f459)
The existing logic only handled removing the last remaining device section
option (which results in the deletion of the entire section) but failed to
actually unset single options.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit b9fad85f2e3fc988528fd326db715719288604ea)
When setting bridge and device specific options such 'stp' or
'igmp_snooping', LuCI so far transparently created or reused a
`config device` section and set the corresponding option there.
In the case of bridges, this triggers multiple problems:
- When implicitely creating a `config device` section referring to the
bridge device, the legacy bridge configuration of the corresponding
interface is disabled, causing a broken configuration on subsequent
save operations
- Netifd does not appear to properly merge bridge settings from config
device and config interface sections, leading to an incoherent
configuration state
In order to avoid that issue, do not automatically migrate bridge specific
options.
Fixes: #4948
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit a9a223b973c7f5f057d19a7fc09e7364087fec79)
The previous change didn't take dynamic dependency mangling into account.
Fixes: 2bfd4908a9 ("luci-mod-network: restore DNS option semantics for proto static")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 9a92f9c7615f710a7934cccc8ac23902247c154b)
The peerdns settings makes little practical sense for proto:static
interfaces, so revert to allow setting the DNS server list directly.
Fixes: faad7464a8 ("luci-mod-network: add support for network.device sections")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 2bfd4908a9cfeac74c7abc31d8cef0bf1e58af52)
- Disable interface-level bridging if a corresponding br-$name bridge
already exists as device declaration
- Exempt wireless interfaces from bridge port configuration, they can only
be attached indirectly through "option network"
- Consider bridge ports from both "option ifname" in interface/device
sections and from "option ports" in bridge-vlan ones
- Small fixes for rendering quirks
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 14fdce0fcdfe39ff4143b294a1f1f65d7c783ce7)
Recent netifd automatically adds wireless devices as bridge ports if the
layer 2 device referenced by the "config interface" target network is a
Linux network bridge or a VLAN interface on top of a network bridge.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 3b4c161e01e2bd19105c123fbec463bc069d637b)
Use the newly introduced devtype attribute for more robust network device
type detection. This also allows us to easily recognize DSA ports.
Furthermore, synthesize VLAN devices declared by uci bridge-vlan sections,
similar to how it is done for legacy swconfig switch_vlan ones.
Finally implement a new Network.Device.getParent() method to use the newly
available "parent" attribute to resolve the base device of DSA ports or
VLAN devices.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit d1bf56d7f178f1b7582d7b3600ee70e65128ccfa)
Before this commit, assigning the same static IP address to two
different hosts disabled dnsmasq.
Logic of adding a new static lease was modified. If user try to assign a
new MAC address to already reserved IP, old lease will be modified (list
of MAC addresses will be extended by new MAC) instead of creation a new lease with the same IP.
Signed-off-by: Oleksandr Pastushkov <oleks.pastushkov@gmail.com>
(cherry picked from commit 463e910119813aaea0755ff5c16c91ce412a8cbb)
It got accidentally added while cherry picking RA and NDP params
support.
Fixes: 3a9ebc537f63 ("luci-mod-network: Introduce new RA and NDP params with help-text.")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
When an upstream NS returns PTR domain names containing HTML, it is
added verbatim to the connection status table.
Prevent this issue by HTML escaping any values in the source and
destination columns.
Fixes: CVE-2021-32019
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 3c66c5b1651aa25afbff09bee45047da9a0ba43d)
When ip6tables is not present, the tab group was not initialized,
causing the iptables status display to be empty with certain themes.
Manually mark the pane active in this case to avoid the problem.
Fixes: #5040
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit d24e3295f004c87722ad59927738f208a2a84ac5)
Change the left button of the UCI Apply-changes overview to the more correct
function close. This also avoids confusion between Dismiss and Revert, which
translate to the same in german.
Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
(cherry picked from commit b56912d9fcf6acb0ba3008de3df15188318376f2)
Fix the handling of optional IPv6 RA and NDP options
that were exposed to LuCI with 504bdb23f
Commit 504bdb23f defined them optional but provided default values.
Those values might get unnecessarily written to /etc/config dhcp when
the the user modifies some other values. Remove the default values,
but provide placeholder for some of them.
Add the missing optional definition to 'ndproxy_routing'.
(It is a flag, so optional default values do not get written to
the config file.)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(cherry picked from commit b7dd10da0fcdc9c69857d848ce1d47243998a22c)
* fix markup in interfaces.js (#4980)
Signed-off-by: Dirk Brenken <dev@brenken.org>
(Adapted from commit 2617fcdc631d0b504abdb27bb17d44f26c230cda
by taking only the .js part.)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
New: Router Advertisement parameters and accompanying help-text.
New: 3 additional NDP options and accompanying help-text.
Until now, some of the IPv6 settings are mysterious. They are now
clarified. The information is accessible to IPv6 beginners.
Signed-off-by: Paul Dee <itsascambutmailmeanyway@gmail.com>
(cherry picked from commit 504bdb23fbaff28cc31cc1dd2408a9f1cd5eddde)
and Global network options ULA.
Relocated the "DHCPv6 Mode" to below RA-Service: DHCPv6-Mode is actually
ra_management in disguise. Better grouping.
Until now, some of the IPv6 settings are mysterious. They are now
clarified. The information is accessible to IPv6 beginners.
Signed-off-by: Paul Dee <itsascambutmailmeanyway@gmail.com>
(cherry picked from commit 988c98bdc6b30a1d9fb17e1ba4444d0beb236b8a)
Serialize the uci list value into a space separated string before passing
it to String.format() for HTML escaping. Without that change, empty strings
were returned whenever the underlying uci get operation yieled an array.
Fixes: #4993
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 5c792aefc744d1417fc9e24cfb92cd61cf8a651f)
Update legacy CBI markup to use actual table, tr, th and td elements
instead of using div element corresponding table classes.
Fixes compatibility with OpenWrt 2020 theme.
Ref: https://github.com/openwrt/luci/issues/4972
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 2155868175fdf1de273cafc0b37b1b9fd5900b04)
Implement two new text "options" for UCI system config, intended to
help humans describe the device.
"system.description" is a short, single-line description suitable for
selector UIs in remote administration applications, or remote UCI (over
ubus RPC), etc. It would also be suitable as a default for LLDP/SNMP
"system description".
"system.notes" is a multi-line, free-form text field that can be used in
any way the user wishes, e.g. to hold installation notes, or unit serial
number and inventory number, location, etc.
Signed-off-by: Henrique de Moraes Holschuh <henrique@nic.br>
When a tooltip is rendered for a checkbox widget, an additional node is
placed after the checkbox label element, breaking DOM selectors in
bind(), isChecked(), setValue().
Apparently the functionality was never actually tested.
Fixes: #4938
Fixes: e951236e3 ("luci-base: add tooltip handling")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 95b5c6cd6464d11d6baa22bcf2c9469847353813)
Deflate is just too slow for zram. Replace it with zstd, which is much faster at
similar compression ratios.
As a side note, this is an ugly hack. We're hard-coding compression algorithms
which might not be available in the system. The availability should be parsed
from /sys/block/zram0/comp_algorithm.
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
(cherry picked from commit 02cadf67b23806b37ea71c0a16459876817b337b)
Support negative prefix length in the `cidr`, `cidr4`, `cidr6`, `ipmask`,
`ipmask4` and `ipmask6` data types when an optional truish flag is passed
to the datatype name.
Ref: #4812
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit cd06e708d8d8037486b77dab3389ca91a88f2dd0)
The parent node of the current li might be null after collapsing the
dropdown, so resolve the parent ul early to avoid passing null to
subsequent calls.
Fixes clearing custom input values in DynamicList dropdowns.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit b8d2bcd432ab23a883de1dd4fbce29f9751a6e84)