new LuCI.network()
Classes
Methods
-
addNetwork(name, options){Promise.<(null|LuCI.network.Protocol)>}
-
Adds a new network of the given name and update it with the given uci option values.
If a network with the given name already exist but is empty, then this function will update its option, otherwise it will do nothing.
Name Type Description namestring The name of the network to add. Must be in the format
[a-zA-Z0-9_]+.optionsObject.<string, (string|Array.<string>)> optional An object of uci option values to set on the new network or to update in an existing, empty network.
Returns:
Type Description Promise.<(null|LuCI.network.Protocol)> Returns a promise resolving to the Protocolsubclass instance describing the added network or resolving tonullif the name was invalid or if a non-empty network of the given name already existed. -
addWifiNetwork(options){Promise.<(null|LuCI.network.WifiNetwork)>}
-
Adds a new wireless network to the configuration and sets its options to the provided values.
Name Type Description optionsObject.<string, (string|Array.<string>)> The options to set for the newly added wireless network. This object must at least contain a
deviceproperty which is set to the radio name the new network belongs to.Returns:
Type Description Promise.<(null|LuCI.network.WifiNetwork)> Returns a promise resolving to a WifiNetworkinstance describing the newly added wireless network ornullif the given options were invalid or if the associated radio device could not be found. -
deleteNetwork(name){Promise.<boolean>}
-
Deletes the given network and its references from the network and firewall configuration.
Name Type Description namestring The name of the network to delete.
Returns:
Type Description Promise.<boolean> Returns a promise resolving to either trueif the network and references to it were successfully deleted from the configuration orfalseif the given network could not be found. -
deleteWifiNetwork(netname){Promise.<boolean>}
-
Deletes the given wireless network from the configuration.
Name Type Description netnamestring The name of the network to remove. This may be either a network ID in the form
radio#.network#or a Linux network device name likewlan0which is resolved to the corresponding configuration section throughubusruntime information.Returns:
Type Description Promise.<boolean> Returns a promise resolving to trueif the wireless network has been successfully deleted from the configuration orfalseif it could not be found. -
flushCache(){Promise.<Object>}
-
Flushes the local network state cache and fetches updated information from the remote
ubusapis.Returns:
Type Description Promise.<Object> Returns a promise resolving to the internal network state object. -
formatWifiEncryption(encryption){null|string}
-
Converts a given
encryption entryinto a human readable string such asmixed WPA/WPA2 PSK (TKIP, CCMP)orWPA3 SAE (CCMP).Name Type Description encryptionLuCI.network.WifiEncryption The wireless encryption entry to convert.
Returns:
Type Description null | string Returns the description string for the given encryption entry or nullif the given entry was invalid. -
getDevice(name){Promise.<(null|LuCI.network.Device)>}
-
Get a
Deviceinstance describing the given network device.Name Type Description namestring The name of the network device to get, e.g.
eth0orbr-lan.Returns:
Type Description Promise.<(null|LuCI.network.Device)> Returns a promise resolving to the Deviceinstance describing the network device ornullif the given device name could not be found. -
getDevices(){Promise.<Array.<LuCI.network.Device>>}
-
Get a sorted list of all found network devices.
Returns:
Type Description Promise.<Array.<LuCI.network.Device>> Returns a promise resolving to a sorted array of Deviceclass instances describing the network devices found on the system. -
getDSLModemType(){Promise.<(null|string)>}
-
Queries the internal DSL modem type from board information.
Returns:
Type Description Promise.<(null|string)> Returns a promise resolving to the type of the internal modem (e.g. vdsl) or tonullif no internal modem is present. -
getHostHints(){Promise.<LuCI.network.Hosts>}
-
Queries aggregated information about known hosts.
This function aggregates information from various sources such as DHCP lease databases, ARP and IPv6 neighbour entries, wireless association list etc. and returns a
Hostsclass instance describing the found hosts.Returns:
Type Description Promise.<LuCI.network.Hosts> Returns a Hostsinstance describing a host known on the system. -
getIfnameOf(obj){null|string}
-
Obtains the network device name of the given object.
Name Type Description objLuCI.network.Protocol | LuCI.network.Device | LuCI.network.WifiDevice | LuCI.network.WifiNetwork | string The object to get the device name from.
Returns:
Type Description null | string Returns a string containing the device name or nullif the given object could not be converted to a name. -
getNetwork(name){Promise.<(null|LuCI.network.Protocol)>}
-
Get a
Protocolinstance describing the network with the given name.Name Type Description namestring The logical interface name of the network get, e.g.
lanorwan.Returns:
Type Description Promise.<(null|LuCI.network.Protocol)> Returns a promise resolving to a Protocolsubclass instance describing the network ornullif the network did not exist. -
getNetworks(){Promise.<Array.<LuCI.network.Protocol>>}
-
Gets an array containing all known networks.
Returns:
Type Description Promise.<Array.<LuCI.network.Protocol>> Returns a promise resolving to a name-sorted array of Protocolsubclass instances describing all known networks. -
getProtocol(protoname, netname){null|LuCI.network.Protocol}
-
Instantiates the given
Protocolback-end, optionally using the given network name.Name Type Default Description protonamestring The protocol back-end to use, e.g.
staticordhcp.netnamestring __dummy__ optional The network name to use for the instantiated protocol. This should be usually set to one of the interfaces described in /etc/config/network but it is allowed to omit it, e.g. to query protocol capabilities without the need for an existing interface.
Returns:
Type Description null | LuCI.network.Protocol Returns the instantiated protocol back-end class or nullif the given protocol isn't known. -
getProtocols(){Array.<LuCI.network.Protocol>}
-
Obtains instances of all known
Protocolback-end classes.Returns:
Type Description Array.<LuCI.network.Protocol> Returns an array of protocol class instances. -
getSwitchTopologies(){Promise.<Object.<string, LuCI.network.SwitchTopology>>}
-
Returns the topologies of all swconfig switches found on the system.
Returns:
Type Description Promise.<Object.<string, LuCI.network.SwitchTopology>> Returns a promise resolving to an object containing the topologies of each switch. The object keys correspond to the name of the switches such as switch0, the values areSwitchTopologyobjects describing the layout. -
getWAN6Networks(){Promise.<Array.<LuCI.network.Protocol>>}
-
Get IPv6 wan networks.
This function looks up all networks having a default
::/0route and returns them as an array.Returns:
Type Description Promise.<Array.<LuCI.network.Protocol>> Returns a promise resolving to an array of Protocolsubclass instances describing the found IPv6 default route interfaces. -
getWANNetworks(){Promise.<Array.<LuCI.network.Protocol>>}
-
Get IPv4 wan networks.
This function looks up all networks having a default
0.0.0.0/0route and returns them as an array.Returns:
Type Description Promise.<Array.<LuCI.network.Protocol>> Returns a promise resolving to an array of Protocolsubclass instances describing the found default route interfaces. -
getWifiDevice(devname){Promise.<(null|LuCI.network.WifiDevice)>}
-
Get a
WifiDeviceinstance describing the given wireless radio.Name Type Description devnamestring The configuration name of the wireless radio to look up, e.g.
radio0for the first mac80211 phy on the system.Returns:
Type Description Promise.<(null|LuCI.network.WifiDevice)> Returns a promise resolving to the WifiDeviceinstance describing the underlying radio device ornullif the wireless radio could not be found. -
getWifiDevices(){Promise.<Array.<LuCI.network.WifiDevice>>}
-
Obtain a list of all configured radio devices.
Returns:
Type Description Promise.<Array.<LuCI.network.WifiDevice>> Returns a promise resolving to an array of WifiDeviceinstances describing the wireless radios configured in the system. The order of the array corresponds to the order of the radios in the configuration. -
getWifiNetwork(netname){Promise.<(null|LuCI.network.WifiNetwork)>}
-
Get a
WifiNetworkinstance describing the given wireless network.Name Type Description netnamestring The name of the wireless network to look up. This may be either an uci configuration section ID, a network ID in the form
radio#.network#or a Linux network device name likewlan0which is resolved to the corresponding configuration section throughubusruntime information.Returns:
Type Description Promise.<(null|LuCI.network.WifiNetwork)> Returns a promise resolving to the WifiNetworkinstance describing the wireless network ornullif the corresponding network could not be found. -
getWifiNetworks(){Promise.<Array.<LuCI.network.WifiNetwork>>}
-
Get an array of all
WifiNetworkinstances describing the wireless networks present on the system.Returns:
Type Description Promise.<Array.<LuCI.network.WifiNetwork>> Returns a promise resolving to an array of WifiNetworkinstances describing the wireless networks. The array will be empty if no networks are found. -
isIgnoredDevice(name){boolean}
-
Test if a given network device name is in the list of patterns for device names to ignore.
Ignored device names are usually Linux network devices which are spawned implicitly by kernel modules such as
tunl0orhwsim0and which are unsuitable for use in network configuration.Name Type Description namestring The device name to test.
Returns:
Type Description boolean Returns trueif the given name is in the ignore-pattern list, else returnsfalse. -
maskToPrefix(netmask, v6){null|number}
-
Converts the given netmask to a prefix size in bits.
Name Type Default Description netmaskstring The netmask to convert into a bits count.
v6boolean false optional Whether to parse the given netmask as IPv4 (
false) or IPv6 (true) address.Returns:
Type Description null | number Returns the number of prefix bits contained in the netmask or nullif the given netmask value was invalid. -
prefixToMask(bits, v6){null|string}
-
Converts the given prefix size in bits to a netmask.
Name Type Default Description bitsnumber The prefix size in bits.
v6boolean false optional Whether to convert the bits value into an IPv4 netmask (
false) or an IPv6 netmask (true).Returns:
Type Description null | string Returns a string containing the netmask corresponding to the bit count or nullwhen the given amount of bits exceeds the maximum possible value of32for IPv4 or128for IPv6. -
registerErrorCode(code, message){boolean}
-
Registers a new human readable translation string for a
Protocolerror code.Name Type Description codestring The
ubusprotocol error code to register a translation for, e.g.NO_DEVICE.messagestring The message to use as a translation for the given protocol error code.
Returns:
Type Description boolean Returns trueif the error code description has been added orfalseif either the arguments were invalid or if there already was a description for the given code. -
registerPatternVirtual(pat)
-
Registers a new regular expression pattern to recognize virtual interfaces.
Name Type Description patRegExp A
RegExpinstance to match a virtual interface name such as6in4-wanortun0. -
registerProtocol(protoname, methods){LuCI.network.Protocol}
-
Registers a new
Protocolsubclass with the given methods and returns the resulting subclass value.This function internally calls
Class.extend()on theNetwork.Protocolbase class.Name Type Description protonamestring The name of the new protocol to register.
methodsObject.<string, *> The member methods and values of the new
Protocolsubclass to be passed toClass.extend().Returns:
Type Description LuCI.network.Protocol Returns the new Protocolsubclass. -
renameNetwork(oldName, newName){Promise.<boolean>}
-
Rename the given network and its references to a new name.
Name Type Description oldNamestring The current name of the network.
newNamestring The name to rename the network to, must be in the format
[a-z-A-Z0-9_]+.Returns:
Type Description Promise.<boolean> Returns a promise resolving to either trueif the network was successfully renamed orfalseif the new name was invalid, if a network with the new name already exists or if the network to rename could not be found.
Type Definitions
-
LuCI.network.SwitchTopologyObject.<string, (Object|Array)>
-
Describes a swconfig switch topology by specifying the CPU connections and external port labels of a switch.
num- the internal switch port numberlabel- the label of the port, e.g.LAN 1orCPU (eth0)device- the connected Linux network device name (CPU ports only)tagged- a boolean indicating whether the port must be tagged to function (CPU ports only)
Properties:
Name Type Description netdevsObject.<number, string> The
netdevsproperty points to an object describing the CPU port connections of the switch. The numeric key of the enclosed object is the port number, the value contains the Linux network device name the port is hardwired to.portsArray.<Object.<string, (boolean|number|string)>> The
portsproperty points to an array describing the populated ports of the switch in the external label order. Each array item is an object containing the following keys: -
LuCI.network.WifiEncryptionObject.<string, (boolean|Array.<(number|string)>)>
-
An encryption entry describes active wireless encryption settings such as the used key management protocols, active ciphers and protocol versions.
Properties:
Name Type Argument Description enabledboolean Specifies whether any kind of encryption, such as
WEPorWPAis enabled. If set tofalse, then no encryption is active and the corresponding network is open.wepArray.<string> <optional>
When the
wepproperty exists, the network uses WEP encryption. In this case, the property is set to an array of active WEP modes which might be eitheropen,sharedor both.wpaArray.<number> <optional>
When the
wpaproperty exists, the network uses WPA security. In this case, the property is set to an array containing the WPA protocol versions used, e.g.[ 1, 2 ]for WPA/WPA2 mixed mode or[ 3 ]for WPA3-SAE.authenticationArray.<string> <optional>
The
authenticationproperty only applies to WPA encryption and is defined when thewpaproperty is set as well. It points to an array of active authentication suites used by the network, e.g.[ "psk" ]for a WPA(2)-PSK network or[ "psk", "sae" ]for mixed WPA2-PSK/WPA3-SAE encryption.ciphersArray.<string> <optional>
If either WEP or WPA encryption is active, then the
ciphersproperty will be set to an array describing the active encryption ciphers used by the network, e.g.[ "tkip", "ccmp" ]for a WPA/WPA2-PSK mixed network or[ "wep-40", "wep-104" ]for an WEP network. -
LuCI.network.WifiPeerEntryObject.<string, (boolean|number|string|LuCI.network.WifiRateEntry)>
-
A wireless peer entry describes the properties of a remote wireless peer associated with a local network.
LISTENOPN_SNTOPN_RCVDCNF_RCVDESTABHOLDINGBLOCKEDUNKNOWNACTIVE(no power save)LIGHT SLEEPDEEP SLEEPUNKNOWNACTIVE(no power save)LIGHT SLEEPDEEP SLEEPUNKNOWNACTIVE(no power save)LIGHT SLEEPDEEP SLEEPUNKNOWN
Properties:
Name Type Argument Description macstring The MAC address (BSSID).
signalnumber The received signal strength.
signal_avgnumber <optional>
The average signal strength if supported by the driver.
noisenumber <optional>
The current noise floor of the radio. May be
0or absent if not supported by the driver.inactivenumber The number of milliseconds the peer has been inactive, e.g. due to power-saving.
connected_timenumber The number of milliseconds the peer is associated to this network.
thrnumber <optional>
The estimated throughput of the peer, May be
0or absent if not supported by the driver.authorizedboolean Specifies whether the peer is authorized to associate to this network.
authenticatedboolean Specifies whether the peer completed authentication to this network.
preamblestring The preamble mode used by the peer. May be
longorshort.wmeboolean Specifies whether the peer supports WME/WMM capabilities.
mfpboolean Specifies whether management frame protection is active.
tdlsboolean Specifies whether TDLS is active.
mesh llidnumber <optional>
The mesh LLID, may be
0or absent if not applicable or supported by the driver.mesh plidnumber <optional>
The mesh PLID, may be
0or absent if not applicable or supported by the driver.mesh plinkstring <optional>
The mesh peer link state description, may be an empty string (
'') or absent if not applicable or supported by the driver.The following states are known:
mesh local PSnumber <optional>
The local power-save mode for the peer link, may be an empty string (
'') or absent if not applicable or supported by the driver.The following modes are known:
mesh peer PSnumber <optional>
The remote power-save mode for the peer link, may be an empty string (
'') or absent if not applicable or supported by the driver.The following modes are known:
mesh non-peer PSnumber <optional>
The power-save mode for all non-peer neighbours, may be an empty string (
'') or absent if not applicable or supported by the driver.The following modes are known:
rxLuCI.network.WifiRateEntry Describes the receiving wireless rate from the peer.
txLuCI.network.WifiRateEntry Describes the transmitting wireless rate to the peer.
-
LuCI.network.WifiRateEntryObject.<string, (boolean|number)>
-
A wireless rate entry describes the properties of a wireless transmission rate to or from a peer.
Properties:
Name Type Argument Description drop_miscnumber <optional>
The amount of received misc. packages that have been dropped, e.g. due to corruption or missing authentication. Only applicable to receiving rates.
packetsnumber The amount of packets that have been received or sent.
bytesnumber The amount of bytes that have been received or sent.
failednumber <optional>
The amount of failed transmission attempts. Only applicable to transmit rates.
retriesnumber <optional>
The amount of retried transmissions. Only applicable to transmit rates.
is_htboolean Specifies whether this rate is an HT (IEEE 802.11n) rate.
is_vhtboolean Specifies whether this rate is an VHT (IEEE 802.11ac) rate.
mhznumber The channel width in MHz used for the transmission.
ratenumber The bitrate in bit/s of the transmission.
mcsnumber <optional>
The MCS index of the used transmission rate. Only applicable to HT or VHT rates.
40mhznumber <optional>
Specifies whether the transmission rate used 40MHz wide channel. Only applicable to HT or VHT rates.
Note: this option exists for backwards compatibility only, and its use is discouraged. The
mhzfield should be used instead to determine the channel width.short_giboolean <optional>
Specifies whether a short guard interval is used for the transmission. Only applicable to HT or VHT rates.
nssnumber <optional>
Specifies the number of spatial streams used by the transmission. Only applicable to VHT rates.
heboolean <optional>
Specifies whether this rate is an HE (IEEE 802.11ax) rate.
he_ginumber <optional>
Specifies whether the guard interval used for the transmission. Only applicable to HE rates.
he_dcmnumber <optional>
Specifies whether dual concurrent modulation is used for the transmission. Only applicable to HE rates.
ehtboolean <optional>
Specifies whether this rate is an EHT (IEEE 802.11be) rate.
eht_ginumber <optional>
Specifies whether the guard interval is used for the transmission. Only applicable to EHT rates.
eht_dcmnumber <optional>
Specifies whether dual concurrent modulation is used for the transmission. Only applicable to EHT rates.
-
LuCI.network.WifiScanResultObject.<string, (number|string|LuCI.network.WifiEncryption)>
-
A wireless scan result object describes a neighbouring wireless network found in the vicinity.
Properties:
Name Type Description ssidstring The SSID / Mesh ID of the network.
bssidstring The BSSID if the network.
modestring The operation mode of the network (
Master,Ad-Hoc,Mesh Point).channelnumber The wireless channel of the network.
signalnumber The received signal strength of the network in dBm.
qualitynumber The numeric quality level of the signal, can be used in conjunction with
quality_maxto calculate a quality percentage.quality_maxnumber The maximum possible quality level of the signal, can be used in conjunction with
qualityto calculate a quality percentage.encryptionLuCI.network.WifiEncryption The encryption used by the wireless network.