Commit graph

26 commits

Author SHA1 Message Date
Kristian Evensen
a13748d414 luci-base: Show multiple upstream interface
Several devices have multiple upstream interfaces, for example a fixed
and a mobile broadband connection. Currently, only one upstream
interface is shown per address family in Luci. So in my example, one of
the interfaces would not appear on the Status-page.

This PR introduces support for showing multiple upstream interfaces on
the Status-page. The code is not very complicated. get_status_by_route()
has been extended to return a list of all routes, and
get_wannet()/get_wan6net() now returns all upstream interfaces.

I could not find any other (active) users of these three functions than
calls triggered from the Status-page, so changing the default behavior
should be fine. get_wandev()/get_wan6dev() called get_status_by_route(),
but I could not find any place where those functions were called. I
removed the dev-functions instead of keeping the old
get_status_by_route().

On the status page, the wan/wan6-variables have been replaced with
arrays. When populating the html, we now iterate through these arrays
and create one element for each interface.

I have tested the code with different interface types, v4, v6, as well as
disconnecting and connecting interfaces. The status is updated and the
correct interfaces (or sometimes none at all) are shown.

Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
2018-09-19 11:01:38 +02:00
Jo-Philipp Wich
37aeb77dda luci-base: luci.model.network: recognize alias interfaces
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-15 17:07:28 +02:00
Jo-Philipp Wich
94be4881a0 luci-base: add error reporting and basic support for dynamic interfaces
This allows exposing virtual ubus-based network interfaces in LuCI.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-07-12 18:10:10 +02:00
Jo-Philipp Wich
64da34b13c luci-base: handle potential crash in luci.model.network.interface.get_i18n()
Should prevent the crash mentioned in #1779.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-05-19 22:11:08 +02:00
Hannu Nyman
4edc9256fa luci-base: show wifi chip identification on overview
Show the correct wifi chip identification in case iwinfo
recognises the chip.

So far the wifidev.get_i18n function has practically always
returned just "Generic", but use iwinfo.hardware_name to
fetch the name.

In case iwinfo returns the default "Generic MAC80211", there
is a double 80211 in the final string, which is a cosmetic bug.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2018-05-05 21:20:41 +03:00
Dirk Brenken
87c2d95264 luci-base/network.lua: fix get_interface function
* fix wrong private function call to handle
  section id as parameter (fix for #1687)

Signed-off-by: Dirk Brenken <dev@brenken.org>
2018-03-31 07:11:02 +02:00
Jo-Philipp Wich
28e3b32854 treewide: unify mac address handling
Use the new luci.ip MAC address facilities to parse and verify MAC addresses
in a common way, instead of relying on various ad-hoc solutions.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-03-12 16:12:18 +01:00
Jo-Philipp Wich
bf49505ea0 luci-base: properly handle undefined IPv6 local-address information
If IPv6 prefix assignment is disabled, the "local-address" structure
might exist, but be empty which causes the adress formatting in the
network model class to bail out.

Verify the completeness of the "local-address" structure before using
it in order to avoid runtime errors.

Fixes #1657.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-03-02 14:42:52 +01:00
Jo-Philipp Wich
852ec6e28b luci-base, luci-mod-admin-full: store backup vars in luci configuration
Keep the ifname and bridge state backup variables in /etc/config/luci to not
pollute /etc/config/network.

Fixes #1655.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-03-02 12:44:35 +01:00
Jo-Philipp Wich
461df8b0dc luci-base: do not assume a fixed host address in delegated prefix (#1484)
OpenWrt/LEDE introduced the "local-address" field a while back to expose the
effective local host address of the delegated prefix, so use that information
instead of assuming `[prefix]:1`.

Fixes #1484.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-02-16 17:05:52 +01:00
Jo-Philipp Wich
c8b48f9524 luci-base: reorder private functions
The _wifi_sid_by_ifname() function depends on _wifi_state_by_ifname()
so reorder the private helper functions accordingly to avoid nil value
call attempts.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-01-02 00:30:53 +01:00
Jo-Philipp Wich
f9b8d7ff7b luci-base: rework wireless state handling (#1179)
- fix mapping of ubus wireless state to uci declared vifs
 - fix leaking foreign vif info into per-phy iwinfo stats

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-01-02 00:24:10 +01:00
Hannu Nyman
3c988cf16c treewide: cleanup references to madwifi from LuCI
Remove the code related to the deprecated madwifi driver.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2017-02-28 18:55:11 +02:00
Cody R. Brown
5377d22b4a mod-admin-full: Add IPv6 Prefix Delegation information to Status Pages
The Overview page and Network>Interfaces page currently do not give much information about IPv6, particularly with Prefix Delegated setups. In these setups, ISP will delegate a prefix to the router. Currently LuCI doesn't display this Prefix Delegation from the ISP anywhere. A number of changes was added to this commit:

1) self:_ubus("ipv6-prefix") was extracted and put into protocol.ip6prefix.
2) Network>Interfaces page, if a .ip6prefix is present, show it under Status. (IPv6-PD).
3) On the Overview page, "Type" and "Prefix Delegated" has been added to the IPv6 Network Overview Status:
  - Type will display the .proto, similar to the IPv4 case. If a .ip6prefix is present, it'll display a "-pd" at the end of the Type: i.e. dhcpv6-pd vs. dhcpv6.
  - If no .ip6prefix is present, it'll do what it does currently, and just show Address, or :: if no address is present.
  - If .ip6prefix is present, it'll show the "Prefix Delegated", it'll also hide "Address" if no address is present, else it'll show ifc6.ip6addr as well.

Signed-off-by: Cody R. Brown <dev@codybrown.ca>
2017-01-28 01:38:06 -08:00
Jo-Philipp Wich
8cd6e4efe8 luci-base: support reading switch topology from /etc/board.json
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-08-15 17:52:28 +02:00
Jo-Philipp Wich
123f14b55d luci-base: fix handling of monitor ifaces
Wireless monitor interfaces usually have no SSID set in their config and
various network model utility functions did not handle this case properly,
mainly while trying to incorperate the SSID string into various description
labels.

Fall back to the internal network id (radioX.networkY) in cases where neither
the SSID nor the BSSID are available.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-08-04 11:45:30 +02:00
Jo-Philipp Wich
313e325ab1 luci-base: fix syntax error in luci.model.network
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-04-26 21:02:51 +02:00
Jo-Philipp Wich
182506113d luci-base: add more ignore patterns to luci.model.network
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-04-26 21:01:18 +02:00
Jo-Philipp Wich
4983a9b034 luci-base: fix luci.model.network.ignore_interface()
Fix the underlying _iface_ignore() function to not ignore virtual interfaces,
in order to let ignore_interface() return true for PPP and similar devices.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-04-26 21:01:18 +02:00
Oskari Rauta
57e58b9bf9 Update network.lua
Fix display of WAN status when WAN is provided by using WWAN device or similar with other similar similar methods.
Explanation:
Before this, protocol was fetched from /etc/config/network for interface which often is wan_4 - but protocol is configured in file as wan, and therefore protocol is always none, since configuration is made for wan and then setup as wan_4 and possibly wan_6 if ipv6 is being used. This commit uses ubus to get used active protocol. For example, in case of qmi, it displays protocol as dhcp since even if I configured wan to use qmi, dhcp was used as a protocol for getting IP address.
2016-04-01 04:15:11 +00:00
Jo-Philipp Wich
55f458326d luci-base: use board.json to infer switch netdev
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-11-21 00:31:06 +01:00
Jo-Philipp Wich
e626599c26 luci-base: eliminate use of uci state vars in luci.model.network
Also implement :ipaddrs() and :ip6addrs() helper for network instances.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-11-17 17:35:02 +01:00
Georgi Valkov
159b60f449 Fix: Status for disabled wireless networks may display the SSID, BSSID and Mode of an active network on the same radio. 2015-07-27 11:37:09 +02:00
Jo-Philipp Wich
7a3493b1f7 Globally reduce copyright headers
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-01-16 23:38:38 +01:00
Jo-Philipp Wich
c159d28091 luci-base: switch luci.model.network to common ubus api
Replaces the ubus calls in luci.model.network with the common api
from luci.util.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-01-15 11:10:02 +01:00
Jo-Philipp Wich
1bb4822dca Rework LuCI build system
* Rename subdirectories to their repective OpenWrt package names
 * Make each LuCI module its own standalone package
 * Deploy a shared luci.mk which is used by each module Makefile

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
2015-01-08 16:26:20 +01:00
Renamed from modules/base/luasrc/model/network.lua (Browse further)