summaryrefslogtreecommitdiffhomepage
path: root/modules/luci-base
diff options
context:
space:
mode:
Diffstat (limited to 'modules/luci-base')
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/network.js21
1 files changed, 20 insertions, 1 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/network.js b/modules/luci-base/htdocs/luci-static/resources/network.js
index 8c9ee255ff..864cbba52c 100644
--- a/modules/luci-base/htdocs/luci-static/resources/network.js
+++ b/modules/luci-base/htdocs/luci-static/resources/network.js
@@ -2852,6 +2852,15 @@ Device = baseclass.extend(/** @lends LuCI.network.Device.prototype */ {
this.device = this.device || device;
this.dev = Object.assign({}, _state.netdevs[this.device]);
this.network = network;
+
+ var conf;
+
+ uci.sections('network', 'device', function(s) {
+ if (s.name == device)
+ conf = s;
+ });
+
+ this.config = Object.assign({}, conf);
},
_devstate: function(/* ... */) {
@@ -2946,6 +2955,10 @@ Device = baseclass.extend(/** @lends LuCI.network.Device.prototype */ {
return 'vlan';
else if (this.dev.devtype == 'dsa' || _state.isSwitch[this.device])
return 'switch';
+ else if (this.config.type == '8021q' || this.config.type == '8021ad')
+ return 'vlan';
+ else if (this.config.type == 'bridge')
+ return 'bridge';
else
return 'ethernet';
},
@@ -3245,7 +3258,13 @@ Device = baseclass.extend(/** @lends LuCI.network.Device.prototype */ {
* ordinary ethernet interfaces.
*/
getParent: function() {
- return this.dev.parent ? Network.prototype.instantiateDevice(this.dev.parent) : null;
+ if (this.dev.parent)
+ return Network.prototype.instantiateDevice(this.dev.parent);
+
+ if ((this.config.type == '8021q' || this.config.type == '802ad') && typeof(this.config.ifname) == 'string')
+ return Network.prototype.instantiateDevice(this.config.ifname);
+
+ return null;
}
});