+ifname_single = s:taboption("physical", Value, "ifname_single", translate("Interface"))
+ifname_single.template = "cbi/network_ifacelist"
+ifname_single.widget = "radio"
+ifname_single.nobridges = true
+ifname_single.network = arg[1]
+ifname_single.rmempty = true
+ifname_single:depends("type", "")
+
+function ifname_single.cfgvalue(self, s)
+ return self.map.uci:get("network", s, "ifname")
+end
+
+function ifname_single.write(self, s, val)
+ local n = nw:get_network(s)
+ if n then
+ local i
+ for _, i in ipairs(n:get_interfaces()) do
+ n:del_interface(i)
+ end
+ n:add_interface(val)
+ end
+end
+
+
+ifname_multi = s:taboption("physical", MultiValue, "ifname_multi", translate("Interface"))
+ifname_multi.template = "cbi/network_ifacelist"
+ifname_multi.nobridges = true
+ifname_multi.network = arg[1]
+ifname_multi.widget = "checkbox"
+ifname_multi:depends("type", "1")
+ifname_multi.cfgvalue = ifname_single.cfgvalue
+ifname_multi.write = ifname_single.write
+
+
+for _, d in ipairs(nw:get_interfaces()) do
+ if not d:is_bridge() then
+ ifname_single:value(d:name())
+ ifname_multi:value(d:name())