193 Commits

Author SHA1 Message Date
Jo-Philipp Wich
5bdb5fd697 luci-mod-network: don't accidentally reset macvlan device names
Fixes: #5081
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 671c94b034db9d7470d5f1e681b919158de205f6)
2021-06-12 19:23:06 +02:00
Jo-Philipp Wich
b796bff7a9 luci-mod-network: make device selector dependent on protocol (again)
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)
2021-06-12 19:22:57 +02:00
Jo-Philipp Wich
1ef7cbf9da luci-mod-network: fix device dependencies in add interface dialog
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)
2021-06-12 19:22:53 +02:00
Rafał Miłecki
b860704936 luci-mod-network: migrate macaddr during bridge migration
Link: https://forum.openwrt.org/t/network-migration-21-02-0-rc2/97934
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 49be69316bfea092e90c2f5a821ded961069f518)
2021-05-31 21:52:13 +02:00
Jo-Philipp Wich
d9bff53a1c luci-mod-network: allow netifd version query to fail
Fixes: 17af33ee48 ("luci-mod-network: migrate network config depending on netifd version")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 34dc351303bad74c8f753c37788814796888129a)
2021-05-31 19:00:47 +02:00
Rafał Miłecki
09329fe7bb luci-mod-network: split config migration into 2 steps
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)
2021-05-29 18:19:54 +02:00
Rafał Miłecki
17a62e0f4e luci-mod-network: allow setting bridge device MTU and MAC
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit bbb3c4c4a59bc01e2f18d98596af1af354568fdd)
2021-05-28 15:44:44 +02:00
Rafał Miłecki
a86e770881 luci-mod-network: bump min netifd version for migration
Using "device" option requires netifd from 2021-05-26 or newer.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit bc81e09781de229e85ad74afd785afdd454b4892)
2021-05-27 12:19:08 +02:00
Rafał Miłecki
c7fd1bfb12 treewide: use "device" option in UCI "interface" sections
netifd has been recently patched to use "device" option instead of
"ifname" as more clear & accurate.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 74be304e541f5c03dacbdb05c543dfa6f79205a6)
2021-05-27 12:19:08 +02:00
Rafał Miłecki
3c34c4645b luci-mod-network: migrate network config depending on netifd version
Checking netifd version is important for users of the most recent LuCI
that didn't update netifd (e.g. OpenWrt package).

Suggested-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 17af33ee48bb709aec31d09b90cfbd4cbece6d0d)
2021-05-27 12:19:08 +02:00
Rafał Miłecki
482fc216ac luci-mod-network: migrate config to use "ports" option
LuCI supports only the newer method of specifying bridge ports using the
"ports" option. Offer users migration so they can configure their
network.

Example:

1. Before
config device
        option name 'br-lan'
        option type 'bridge'
        list ifname 'lan1'
        list ifname 'lan2'
        list ifname 'lan3'
        list ifname 'lan4'

2. After
config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit b8acde7f480a18343ee1f9624b790595065613ae)
2021-05-27 12:19:08 +02:00
Rafał Miłecki
8303c2eac3 luci-mod-network: drop 2 unused variables
Fixes: faad7464a8ed ("luci-mod-network: add support for network.device sections")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 398932f39b3a86ea4f7d25e18d1683acc8e76ea3)
2021-05-27 12:19:08 +02:00
Rafał Miłecki
a1b62732b8 luci-mod-network: don't hide "Device" on protocol change
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)
2021-05-27 12:19:08 +02:00
Rafał Miłecki
5356e3fa25 luci-mod-network: add bridge interface migration
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)
2021-05-27 12:19:08 +02:00
Rafał Miłecki
660156e166 luci-mod-network: use "ports" option for setting bridge ports
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)
2021-05-27 12:19:08 +02:00
Rafał Miłecki
8623436678 luci-mod-network: drop support for *editing* legacy bridges
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)
2021-05-27 12:19:08 +02:00
Rafał Miłecki
cdaf5635b2 luci-mod-network: drop support for *adding* legacy bridges
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)
2021-05-27 12:19:08 +02:00
Jo-Philipp Wich
220f5006af luci-mod-network: fix device section cleanup
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)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
e7a9d9e4bd luci-mod-network: allow disabling interface->device option migration
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)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
9f76002dae luci-mod-network: fix changing ifname in disabled legacy bridge mode
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 7dde01be3cc197f79bc6812a2c912c1889dbf1ee)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
08f5bc236e luci-mod-network: make condition for disabling legacy bridging more specific
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)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
8c2ea08aa8 luci-mod-network: fix unsetting network.device options
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)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
216ddcce71 luci-mod-network: don't implicitly move bridge opts into device sections
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)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
dec5d8099e luci-mod-network: fix handling of peerdns/dns/dns_search options
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)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
7684c18604 luci-mod-network: restore DNS option semantics for proto static
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)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
a3ec9b262d luci-mod-network: fix legacy bridge configuration
Ref: https://github.com/openwrt/luci/pull/4307#issuecomment-803432603
Fixes: faad7464a8 ("luci-mod-network: add support for network.device sections")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit edf640af583de122b020d215aadd141028c9458f)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
7147b37a24 luci-mod-network: fix invalid variable access when creating interfaces
Fixes: eeef38d534 ("luci-mod-network: add support for bridge vlan filtering")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 1c4284150dff9d37503f6f901d047c0caa9a3af0)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
dfd499b4d4 luci-mod-network: fix opacity for device icon tooltips
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit bea7b8dc7cd7231d7ec6ab82fcc80dfaec699326)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
f366dfe484 luci-mod-network: tools.network: handle bridge config and vlan corner cases
- 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)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
482f342d25 luci-mod-network: allow wifi bridging with bridge or bridge vlan ifaces
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)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
15ae326879 luci-mod-network: add support for bridge vlan filtering
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit eeef38d53412a78f185f0bb53153ecb3fe9e8838)
2021-05-27 12:19:05 +02:00
Jo-Philipp Wich
e75ac2ae34 luci-mod-network: add support for network.device sections
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit faad7464a8ed88a251c621dc92e8cbfb146bcd7f)
2021-05-27 12:19:04 +02:00
Jo-Philipp Wich
9e57b782aa luci-mod-network: interfaces.js: simplify some code using new ui helpers
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 069a97e55c9a44c366db2003944d40238dfc2620)
2021-05-27 12:19:04 +02:00
Oleksandr Pastushkov
5047592f77 luci-mod-network: issue with breakdown of dnsmasq after duplication of static IP was fixed
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)
2021-05-27 12:18:42 +02:00
Rafał Miłecki
a5586749d0 luci-mod-network: drop duplicated "Master" option
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>
2021-05-27 08:41:14 +02:00
Hannu Nyman
af7a61d3a6 luci-mod-network: fix handling of optional RA/NDP options
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)
2021-04-20 21:13:33 +03:00
Dirk Brenken
a307abc9d6 luci-mod-network: fix xhtml markup
* 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>
2021-04-17 19:15:57 +03:00
Paul Dee
3a9ebc537f luci-mod-network: Introduce new RA and NDP params with help-text.
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)
2021-04-17 19:13:52 +03:00
Paul Dee
c649db4f23 luci-mod-network: Add help text for many existing odhcpd IPv6 parameters
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)
2021-04-17 19:13:40 +03:00
Giovanni Giacobbi
af422b1924 treewide: removed trailing whitespaces and extra newlines in 'modules'
Signed-off-by: Giovanni Giacobbi <giovanni@giacobbi.net>
2021-01-20 17:48:16 +02:00
Hannu Nyman
e609ef0ef5 luci-mod-network: modernize 802.11w help text
Modernize the 802.11w help text as support for 802.11w is
currently always compiled into hostapd/wpad and most of
the relevant wireless drivers support it well.

Add a cautionary note that some drivers do not fully support
it. Mention mwlwifi by name as it has several 802.11w bugs
open in upstream and its development has stopped.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2021-01-02 15:20:18 +02:00
Dobroslaw Kijowski
ab01040663 luci-mod-network: skip check for 802.11w feature
OpenWrt commit 1a9b896d ("treewide: nuke DRIVER_11W_SUPPORT") enables
802.11w feature for all wpad/hostapd configurations. The feature flag
was removed at all but for the compatibility reasons 11w is still
advertised (but there's a plan to nuke it also) [1].

Remove conditional 802.11w LuCI support to match current behavior.

[1]: https://github.com/openwrt/openwrt/pull/3347

Signed-off-by: Dobroslaw Kijowski <dobo90@gmail.com>
2021-01-02 14:59:25 +02:00
Jo-Philipp Wich
f3417f2871 luci-mod-network: restrict legacy_rates option to hwmode 11g
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-12-23 19:02:38 +01:00
Florian Eckert
5a021f8419
Merge pull request #4649 from nicklowe/master
luci-mod-network Add description: Hidden SSID, WMM
2020-12-21 11:25:58 +01:00
Jo-Philipp Wich
7b5b7fbcd6 luci-mod-network: properly handle wireless devices when adding interfaces
Wireless device names must not be added as list/option ifname, but the
network must be backreferenced in config wifi-iface instead in these
cases.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-12-12 12:16:45 +01:00
Nick Lowe
9060c12915 luci-mod-network Add description: Hidden SSID, WMM
luci-mod-network Describe issues: Hidden SSID, WMM

The performance and reliability implications of hiding SSIDs or disabling
WMM are not commonly known and these settings often end up being
misconfigured to harmful effect.

To seek to mitigate this, add descriptions explaining that:

Where the ESSID is hidden, clients may fail to roam and airtime efficiency
may be significantly reduced.

Where Wi-Fi Multimedia (WMM) Mode QoS is disabled, clients may be limited
to 802.11a/802.11g rates.

Signed-off-by: Nick Lowe <nick.lowe@gmail.com>
2020-12-09 16:15:07 +00:00
Nick Lowe
ec49f3b546 luci-mod-network: wireless.js Disable 802.11b by default
The time has long come where 802.11b DSSS/CCK data rates should be disabled
By default in OpenWRT. Users in need of 802.11b client support can reasonably
enable these where they are needed.

The balance of equities has significantly, and for a long time, tipped
such that dropping backwards compatibility by default with 802.11b
devices is appropriate, proportionate and justified. By doing so,
management and control traffic is moved by default to a 20
MHz wide 6 Mb/s OFDM data rate instead of a 22 MHz wide 1 Mb/s DSSS data
rate. This is significantly more airtime efficient.

For discoverability:
1) Move the option from the Advanced Settings to the General Setup tab.
2) Add a description explaining potential compatibility implications.

Signed-off-by: Nick Lowe <nick.lowe@gmail.com>
2020-12-06 08:53:08 -10:00
Nick Lowe
f5c04e1a2e luci-mod-network: wireless.js cell_density support
Add support for the cell_density option added to OpenWRT via commit:
81ff23fc91dbbedc374e58afdb4b0b13146c0f15

This configures data rates based on the coverage cell density.
Normal configures basic rates to 6, 12, 24 Mbps if legacy 802.11b rates
are not used else to 5.5, 11 Mbps.
High configures basic rates to 12, 24 Mbps if legacy 802.11b rates are
not used else to the 11 Mbps rate.
Very High configures 24 Mbps as the basic rate. Supported rates lower
than the minimum basic rate are not offered.

Signed-off-by: Nick Lowe <nick.lowe@gmail.com>
2020-12-01 16:01:53 +00:00
Jo-Philipp Wich
03c77dafe3 treewide: transition div tables to actual table markup
Modern browsers allow decomposing table markup equally well as nested div
constructs, therefor migrate our <div> table markup to actual <table> tags
but keep the old table/tr/th/td CSS classes for now to allow for a smooth
theme transition.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-11-27 21:36:40 +01:00
Ansuel Smith
83c912716e
luci-mod-network: require ssid when join hidden wifi
WiFi join won't work if is tried to connect to a Hidden Wifi without specifying the WiFi SSID.

Fixes: #2085
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2020-11-01 19:04:06 +01:00