luci-base: Show multiple upstream interface 2140/head
authorKristian Evensen <kristian.evensen@gmail.com>
Sun, 9 Sep 2018 15:27:28 +0000 (17:27 +0200)
committerKristian Evensen <kristian.evensen@gmail.com>
Wed, 19 Sep 2018 09:01:38 +0000 (11:01 +0200)
commita13748d4145edd3edc70e462714a115f7c99470e
tree502f6c45b52c8da9d6e1e4642c3547996f9a2be2
parentfb27334aef63cef39a93b63e185f047a91d9f33a
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>
modules/luci-base/luasrc/model/network.lua
modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm