NM-SETTINGS-NMCLI(5) | Configuration | NM-SETTINGS-NMCLI(5) |
nm-settings-nmcli - Description of settings and properties of NetworkManager connection profiles for nmcli
NetworkManager is based on a concept of connection profiles, sometimes referred to as connections only. These connection profiles contain a network configuration. When NetworkManager activates a connection profile on a network device the configuration will be applied and an active network connection will be established. Users are free to create as many connection profiles as they see fit. Thus they are flexible in having various network configurations for different networking needs.
NetworkManager provides an API for configuring connection profiles, for activating them to configure the network, and inspecting the current network configuration. The command line tool nmcli is a client application to NetworkManager that uses this API. See nmcli(1) for details.
With commands like nmcli connection add, nmcli connection modify and nmcli connection show, connection profiles can be created, modified and inspected. A profile consists of properties. On D-Bus this follows the format as described by nm-settings-dbus(5), while this manual page describes the settings format how they are expected by nmcli.
The settings and properties shown in tables below list all available connection configuration options. However, note that not all settings are applicable to all connection types. nmcli connection editor has also a built-in describe command that can display description of particular settings and properties of this page.
The setting and property can be abbreviated provided they are unique. The list below also shows aliases that can be used unqualified instead of the full name. For example connection.interface-name and ifname refer to the same property.
General Connection Profile Settings.
Properties:
auth-retries
Currently, this only applies to 802-1x authentication.
Format: int32
autoconnect
Whether or not the connection should be automatically connected by NetworkManager when the resources for the connection are available. TRUE to automatically activate the connection, FALSE to require manual intervention to activate the connection.
Autoconnect happens when the circumstances are suitable. That means for example that the device is currently managed and not active. Autoconnect thus never replaces or competes with an already active profile.
Note that autoconnect is not implemented for VPN profiles. See "secondaries" as an alternative to automatically connect VPN profiles.
If multiple profiles are ready to autoconnect on the same device, the one with the better "connection.autoconnect-priority" is chosen. If the priorities are equal, then the most recently connected profile is activated. If the profiles were not connected earlier or their "connection.timestamp" is identical, the choice is undefined.
Depending on "connection.multi-connect", a profile can (auto)connect only once at a time or multiple times.
Format: boolean
autoconnect-priority
Format: int32
autoconnect-retries
Format: int32
autoconnect-slaves
Format: NMSettingConnectionAutoconnectSlaves (int32)
dns-over-tls
The permitted values are: "yes" (2) use DNSOverTls and disabled fallback, "opportunistic" (1) use DNSOverTls but allow fallback to unencrypted resolution, "no" (0) don't ever use DNSOverTls. If unspecified "default" depends on the plugin used. Systemd-resolved uses global setting.
This feature requires a plugin which supports DNSOverTls. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved.
Format: int32
gateway-ping-timeout
Format: uint32
id
A human readable unique identifier for the connection, like "Work Wi-Fi" or "T-Mobile 3G".
Format: string
interface-name
The name of the network interface this connection is bound to. If not set, then the connection can be attached to any interface of the appropriate type (subject to restrictions imposed by other settings).
For software devices this specifies the name of the created device.
For connection types where interface names cannot easily be made persistent (e.g. mobile broadband or USB Ethernet), this property should not be used. Setting this property restricts the interfaces a connection can be used with, and if interface names change or are reordered the connection may be applied to the wrong interface.
Format: string
lldp
Format: int32
llmnr
The permitted values are: "yes" (2) register hostname and resolving for the connection, "no" (0) disable LLMNR for the interface, "resolve" (1) do not register hostname but allow resolving of LLMNR host names If unspecified, "default" ultimately depends on the DNS plugin (which for systemd-resolved currently means "yes").
This feature requires a plugin which supports LLMNR. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved.
Format: int32
master
Interface name of the master device or UUID of the master connection.
Format: string
mdns
The permitted values are: "yes" (2) register hostname and resolving for the connection, "no" (0) disable mDNS for the interface, "resolve" (1) do not register hostname but allow resolving of mDNS host names and "default" (-1) to allow lookup of a global default in NetworkManager.conf. If unspecified, "default" ultimately depends on the DNS plugin (which for systemd-resolved currently means "no").
This feature requires a plugin which supports mDNS. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved.
Format: int32
metered
When updating this property on a currently activated connection, the change takes effect immediately.
Format: NMMetered (int32)
mptcp-flags
If "disabled" (0x1), MPTCP handling for the interface is disabled and no endpoints are registered.
The "enabled" (0x2) flag means that MPTCP handling is enabled. This flag can also be implied from the presence of other flags.
Even when enabled, MPTCP handling will by default still be disabled unless "/proc/sys/net/mptcp/enabled" sysctl is on. NetworkManager does not change the sysctl and this is up to the administrator or distribution. To configure endpoints even if the sysctl is disabled, "also-without-sysctl" (0x4) flag can be used. In that case, NetworkManager doesn't look at the sysctl and configures endpoints regardless.
Even when enabled, NetworkManager will only configure MPTCP endpoints for a certain address family, if there is a unicast default route (0.0.0.0/0 or ::/0) in the main routing table. The flag "also-without-default-route" (0x8) can override that.
When MPTCP handling is enabled then endpoints are configured with the specified address flags "signal" (0x10), "subflow" (0x20), "backup" (0x40), "fullmesh" (0x80). See ip-mptcp(8) manual for additional information about the flags.
If the flags are zero (0x0), the global connection default from NetworkManager.conf is honored. If still unspecified, the fallback is "enabled,subflow". Note that this means that MPTCP is by default done depending on the "/proc/sys/net/mptcp/enabled" sysctl.
NetworkManager does not change the MPTCP limits nor enable MPTCP via "/proc/sys/net/mptcp/enabled". That is a host configuration which the admin can change via sysctl and ip-mptcp.
Strict reverse path filtering (rp_filter) breaks many MPTCP use cases, so when MPTCP handling for IPv4 addresses on the interface is enabled, NetworkManager would loosen the strict reverse path filtering (1) to the loose setting (2).
Format: uint32
mud-url
The special value "none" is allowed to indicate that no MUD URL is used.
If the per-profile value is unspecified (the default), a global connection default gets consulted. If still unspecified, the ultimate default is "none".
Format: string
multi-connect
Format: int32
permissions
At this time only the "user" [type] is allowed. Any other values are ignored and reserved for future use. [id] is the username that this permission refers to, which may not contain the ":" character. Any [reserved] information present must be ignored and is reserved for future use. All of [type], [id], and [reserved] must be valid UTF-8.
Format: array of string
read-only
Format: boolean
secondaries
Format: array of string
slave-type
Setting name of the device type of this slave's master connection (eg, "bond"), or NULL if this connection is not a slave.
Format: string
stable-id
The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid].
Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The per-host key is the identity of your machine and stored in /var/lib/NetworkManager/secret_key. See NetworkManager(8) manual about the secret-key and the host identity.
The '$' character is treated special to perform dynamic substitutions at runtime. Currently, supported are "${CONNECTION}", "${DEVICE}", "${MAC}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds to the interface name of the device and "${MAC}" is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates.
If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.
Format: string
timestamp
NetworkManager updates the connection timestamp periodically when the connection is active to ensure that an active connection has the latest timestamp. The property is only meant for reading (changes to this property will not be preserved).
Format: uint64
type
Base type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, "802-3-ethernet" or "802-11-wireless" or "bluetooth", etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, "vpn" or "bridge", etc).
Format: string
uuid
The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664" (ie, contains only hexadecimal characters and "-").
Format: a valid RFC4122 universally unique identifier (UUID).
wait-activation-delay
The value 0 means no wait time. The default value is -1, which currently has the same meaning as no wait time.
Format: int32
wait-device-timeout
The value 0 means no wait time. The default value is -1, which currently has the same meaning as no wait time.
Format: int32
zone
When updating this property on a currently activated connection, the change takes effect immediately.
Format: string
6LoWPAN Settings.
Properties:
parent
If given, specifies the parent interface name or parent connection UUID from which this 6LowPAN interface should be created.
Format: string
IEEE 802.1x Authentication Settings.
Properties:
altsubject-matches
Format: array of string
anonymous-identity
Format: string
auth-timeout
Format: int32
ca-cert
Certificate data is specified using a "scheme"; three are currently supported: blob, path and pkcs#11 URL. When using the blob scheme this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended.
Note that enabling NMSetting8021x:system-ca-certs will override this setting to use the built-in path, if the built-in path is not a directory.
Format: byte array
ca-cert-password
Format: string
ca-cert-password-flags
Format: NMSettingSecretFlags (uint32)
ca-path
If NMSetting8021x:system-ca-certs is enabled and the built-in CA path is an existing directory, then this setting is ignored.
Format: string
client-cert
Certificate data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte.
Format: byte array
client-cert-password
Format: string
client-cert-password-flags
Format: NMSettingSecretFlags (uint32)
domain-match
Format: string
domain-suffix-match
Format: string
eap
Format: array of string
identity
Format: string
optional
Format: boolean
pac-file
Format: string
password
Format: string
password-flags
Format: NMSettingSecretFlags (uint32)
password-raw
Format: byte array
password-raw-flags
Format: NMSettingSecretFlags (uint32)
phase1-auth-flags
Format: uint32
phase1-fast-provisioning
Format: string
phase1-peaplabel
Format: string
phase1-peapver
Format: string
phase2-altsubject-matches
Format: array of string
phase2-auth
Format: string
phase2-autheap
Format: string
phase2-ca-cert
Certificate data is specified using a "scheme"; three are currently supported: blob, path and pkcs#11 URL. When using the blob scheme this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended.
Note that enabling NMSetting8021x:system-ca-certs will override this setting to use the built-in path, if the built-in path is not a directory.
Format: byte array
phase2-ca-cert-password
Format: string
phase2-ca-cert-password-flags
Format: NMSettingSecretFlags (uint32)
phase2-ca-path
If NMSetting8021x:system-ca-certs is enabled and the built-in CA path is an existing directory, then this setting is ignored.
Format: string
phase2-client-cert
Certificate data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string "file://" and ending with a terminating NUL byte. This property can be unset even if the EAP method supports CA certificates, but this allows man-in-the-middle attacks and is NOT recommended.
Format: byte array
phase2-client-cert-password
Format: string
phase2-client-cert-password-flags
Format: NMSettingSecretFlags (uint32)
phase2-domain-match
Format: string
phase2-domain-suffix-match
Format: string
phase2-private-key
Key data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the "phase2-private-key-password" property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte, and as with the blob scheme the "phase2-private-key-password" property must be set to the password used to decode the PKCS#12 private key and certificate.
Format: byte array
phase2-private-key-password
Format: string
phase2-private-key-password-flags
Format: NMSettingSecretFlags (uint32)
phase2-subject-match
This property is deprecated since version 1.2. Use "phase2-domain-suffix-match" instead.
Format: string
pin
Format: string
pin-flags
Format: NMSettingSecretFlags (uint32)
private-key
Key data is specified using a "scheme"; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the "private-key-password" property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string "file://" and ending with a terminating NUL byte, and as with the blob scheme the "private-key-password" property must be set to the password used to decode the PKCS#12 private key and certificate.
WARNING: "private-key" is not a "secret" property, and thus unencrypted private key data using the BLOB scheme may be readable by unprivileged users. Private keys should always be encrypted with a private key password to prevent unauthorized access to unencrypted private key data.
Format: byte array
private-key-password
Format: string
private-key-password-flags
Format: NMSettingSecretFlags (uint32)
subject-match
This property is deprecated since version 1.2. Use "phase2-domain-suffix-match" instead.
Format: string
system-ca-certs
Format: boolean
ADSL Settings.
Properties:
encapsulation
Encapsulation of ADSL connection. Can be "vcmux" or "llc".
Format: string
password
Password used to authenticate with the ADSL service.
Format: string
password-flags
Format: NMSettingSecretFlags (uint32)
protocol
ADSL connection protocol. Can be "pppoa", "pppoe" or "ipoatm".
Format: string
username
Username used to authenticate with the ADSL service.
Format: string
vci
Format: uint32
vpi
Format: uint32
Bluetooth Settings.
Properties:
bdaddr
The Bluetooth address of the device.
Format: byte array
type
Either "dun" for Dial-Up Networking connections or "panu" for Personal Area Networking connections to devices supporting the NAP profile.
Format: string
Bonding Settings.
Properties:
options
Format: dict of string to string
Bridging Settings.
Properties:
ageing-time
The Ethernet MAC address aging time, in seconds.
Format: uint32
forward-delay
The Spanning Tree Protocol (STP) forwarding delay, in seconds.
Format: uint32
group-address
The address must be a link-local address in standard Ethernet MAC address format, ie an address of the form 01:80:C2:00:00:0X, with X in [0, 4..F]. If not specified the default value is 01:80:C2:00:00:00.
Format: byte array
group-forward-mask
A mask of group addresses to forward. Usually, group addresses in the range from 01:80:C2:00:00:00 to 01:80:C2:00:00:0F are not forwarded according to standards. This property is a mask of 16 bits, each corresponding to a group address in that range that must be forwarded. The mask can't have bits 0, 1 or 2 set because they are used for STP, MAC pause frames and LACP.
Format: uint32
hello-time
The Spanning Tree Protocol (STP) hello time, in seconds.
Format: uint32
mac-address
If specified, the MAC address of bridge. When creating a new bridge, this MAC address will be set.
If this field is left unspecified, the "ethernet.cloned-mac-address" is referred instead to generate the initial MAC address. Note that setting "ethernet.cloned-mac-address" anyway overwrites the MAC address of the bridge later while activating the bridge.
This property is deprecated since version 1.12. Use the "cloned-mac-address" property instead.
Format: byte array
max-age
The Spanning Tree Protocol (STP) maximum message age, in seconds.
Format: uint32
multicast-hash-max
Format: uint32
multicast-last-member-count
Format: uint32
multicast-last-member-interval
Format: uint64
multicast-membership-interval
Format: uint64
multicast-querier
Format: boolean
multicast-querier-interval
Format: uint64
multicast-query-interval
Format: uint64
multicast-query-response-interval
Format: uint64
multicast-query-use-ifaddr
Format: boolean
multicast-router
Supported values are: 'auto', 'disabled', 'enabled' to which kernel assigns the numbers 1, 0, and 2, respectively. If not specified the default value is 'auto' (1).
Format: string
multicast-snooping
Controls whether IGMP snooping is enabled for this bridge. Note that if snooping was automatically disabled due to hash collisions, the system may refuse to enable the feature until the collisions are resolved.
Format: boolean
multicast-startup-query-count
Format: uint32
multicast-startup-query-interval
Format: uint64
priority
Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower values are "better"; the lowest priority bridge will be elected the root bridge.
Format: uint32
stp
Controls whether Spanning Tree Protocol (STP) is enabled for this bridge.
Format: boolean
vlan-default-pvid
Format: uint32
vlan-filtering
Format: boolean
vlan-protocol
Supported values are: '802.1Q', '802.1ad'. If not specified the default value is '802.1Q'.
Format: string
vlan-stats-enabled
Format: boolean
vlans
In nmcli the VLAN list can be specified with the following syntax:
$vid [pvid] [untagged] [, $vid [pvid] [untagged]]...
where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.
Format: array of vardict
Bridge Port Settings.
Properties:
hairpin-mode
Enables or disables "hairpin mode" for the port, which allows frames to be sent back out through the port the frame was received on.
Format: boolean
path-cost
The Spanning Tree Protocol (STP) port cost for destinations via this port.
Format: uint32
priority
The Spanning Tree Protocol (STP) priority of this bridge port.
Format: uint32
vlans
In nmcli the VLAN list can be specified with the following syntax:
$vid [pvid] [untagged] [, $vid [pvid] [untagged]]...
where $vid is either a single id between 1 and 4094 or a range, represented as a couple of ids separated by a dash.
Format: array of vardict
CDMA-based Mobile Broadband Settings.
Properties:
mtu
Format: uint32
number
Format: string
password
The password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here.
Format: string
password-flags
Format: NMSettingSecretFlags (uint32)
username
The username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.
Format: string
Data Center Bridging Settings.
Properties:
app-fcoe-flags
Format: NMSettingDcbFlags (uint32)
app-fcoe-mode
Since 1.34, NULL is the default and means "fabric". Before 1.34, NULL was rejected as invalid and the default was "fabric".
Format: string
app-fcoe-priority
Format: int32
app-fip-flags
Format: NMSettingDcbFlags (uint32)
app-fip-priority
Format: int32
app-iscsi-flags
Format: NMSettingDcbFlags (uint32)
app-iscsi-priority
Format: int32
priority-bandwidth
Format: array of uint32
priority-flow-control
Format: array of uint32
priority-flow-control-flags
Format: NMSettingDcbFlags (uint32)
priority-group-bandwidth
Format: array of uint32
priority-group-flags
Format: NMSettingDcbFlags (uint32)
priority-group-id
Format: array of uint32
priority-strict-bandwidth
Format: array of uint32
priority-traffic-class
Format: array of uint32
Ethtool Ethernet Settings.
Properties:
coalesce-adaptive-rx
coalesce-adaptive-tx
coalesce-pkt-rate-high
coalesce-pkt-rate-low
coalesce-rx-frames
coalesce-rx-frames-high
coalesce-rx-frames-irq
coalesce-rx-frames-low
coalesce-rx-usecs
coalesce-rx-usecs-high
coalesce-rx-usecs-irq
coalesce-rx-usecs-low
coalesce-sample-interval
coalesce-stats-block-usecs
coalesce-tx-frames
coalesce-tx-frames-high
coalesce-tx-frames-irq
coalesce-tx-frames-low
coalesce-tx-usecs
coalesce-tx-usecs-high
coalesce-tx-usecs-irq
coalesce-tx-usecs-low
feature-esp-hw-offload
feature-esp-tx-csum-hw-offload
feature-fcoe-mtu
feature-gro
feature-gso
feature-highdma
feature-hw-tc-offload
feature-l2-fwd-offload
feature-loopback
feature-lro
feature-macsec-hw-offload
feature-ntuple
feature-rx
feature-rx-all
feature-rx-fcs
feature-rx-gro-hw
feature-rx-gro-list
feature-rx-udp-gro-forwarding
feature-rx-udp_tunnel-port-offload
feature-rx-vlan-filter
feature-rx-vlan-stag-filter
feature-rx-vlan-stag-hw-parse
feature-rxhash
feature-rxvlan
feature-sg
feature-tls-hw-record
feature-tls-hw-rx-offload
feature-tls-hw-tx-offload
feature-tso
feature-tx
feature-tx-checksum-fcoe-crc
feature-tx-checksum-ip-generic
feature-tx-checksum-ipv4
feature-tx-checksum-ipv6
feature-tx-checksum-sctp
feature-tx-esp-segmentation
feature-tx-fcoe-segmentation
feature-tx-gre-csum-segmentation
feature-tx-gre-segmentation
feature-tx-gso-list
feature-tx-gso-partial
feature-tx-gso-robust
feature-tx-ipxip4-segmentation
feature-tx-ipxip6-segmentation
feature-tx-nocache-copy
feature-tx-scatter-gather
feature-tx-scatter-gather-fraglist
feature-tx-sctp-segmentation
feature-tx-tcp-ecn-segmentation
feature-tx-tcp-mangleid-segmentation
feature-tx-tcp-segmentation
feature-tx-tcp6-segmentation
feature-tx-tunnel-remcsum-segmentation
feature-tx-udp-segmentation
feature-tx-udp_tnl-csum-segmentation
feature-tx-udp_tnl-segmentation
feature-tx-vlan-stag-hw-insert
feature-txvlan
pause-autoneg
pause-rx
pause-tx
ring-rx
ring-rx-jumbo
ring-rx-mini
ring-tx
GSM-based Mobile Broadband Settings.
Properties:
apn
The GPRS Access Point Name specifying the APN used when establishing a data session with the GSM-based network. The APN often determines how the user will be billed for their network usage and whether the user has access to the Internet or just a provider-specific walled-garden, so it is important to use the correct APN for the user's mobile broadband plan. The APN may only be composed of the characters a-z, 0-9, ., and - per GSM 03.60 Section 14.9.
Format: string
auto-config
Format: boolean
device-id
Format: string
home-only
Format: boolean
mtu
Format: uint32
network-id
Format: string
number
This property is deprecated since version 1.16. User-provided values for this setting are no longer used.
Format: string
password
The password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here.
Format: string
password-flags
Format: NMSettingSecretFlags (uint32)
pin
Format: string
pin-flags
Format: NMSettingSecretFlags (uint32)
sim-id
Format: string
sim-operator-id
Format: string
username
The username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.
Format: string
Infiniband Settings.
Properties:
mac-address
If specified, this connection will only apply to the IPoIB device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).
Format: byte array
mtu
If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.
Format: uint32
p-key
The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key.
Format: int32
parent
The interface name of the parent device of this device. Normally NULL, but if the "p_key" property is set, then you must specify the base device by setting either this property or "mac-address".
Format: string
transport-mode
The IP-over-InfiniBand transport mode. Either "datagram" or "connected".
Format: string
IPv4 Settings.
Properties:
addresses
Array of IP addresses.
Format: a comma separated list of addresses
auto-route-ext-gw
For other connection types, adding such an automatic route is currently not supported and setting this to TRUE has no effect.
Format: NMTernary (int32)
dad-timeout
The property is currently implemented only for IPv4.
Format: int32
dhcp-client-id
The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links.
The special value "ipv6-duid" uses the DUID from "ipv6.dhcp-duid" property as an RFC4361-compliant client identifier. As IAID it uses "ipv4.dhcp-iaid" and falls back to "ipv6.dhcp-iaid" if unset.
The special value "duid" generates a RFC4361-compliant client identifier based on "ipv4.dhcp-iaid" and uses a DUID generated by hashing /etc/machine-id.
The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per-device key.
If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.
Format: string
dhcp-fqdn
Format: string
dhcp-hostname
Format: string
dhcp-hostname-flags
Currently, this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6.
When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.
Format: uint32
dhcp-iaid
For DHCPv4, the IAID is only used with "ipv4.dhcp-client-id" values "duid" and "ipv6-duid" to generate the client-id.
For DHCPv6, note that at the moment this property is only supported by the "internal" DHCPv6 plugin. The "dhclient" DHCPv6 plugin always derives the IAID from the MAC address.
The actually used DHCPv6 IAID for a currently activated interface is exposed in the lease information of the device.
Format: string
dhcp-reject-servers
For DHCPv4, each element must be an IPv4 address, optionally followed by a slash and a prefix length (e.g. "192.168.122.0/24").
This property is currently not implemented for DHCPv6.
Format: array of string
dhcp-send-hostname
Format: boolean
dhcp-timeout
Set to 2147483647 (MAXINT32) for infinity.
Format: int32
dhcp-vendor-class-identifier
Format: string
dns
For DoT (DNS over TLS), the SNI server name can be specified by appending "#example.com" to the IP address of the DNS server. This currently only has effect when using systemd-resolved.
Format: array of uint32
dns-options
NULL means that the options are unset and left at the default. In this case NetworkManager will use default options. This is distinct from an empty list of properties.
The currently supported options are "attempts", "debug", "edns0", "inet6", "ip6-bytestring", "ip6-dotint", "ndots", "no-check-names", "no-ip6-dotint", "no-reload", "no-tld-query", "rotate", "single-request", "single-request-reopen", "timeout", "trust-ad", "use-vc".
The "trust-ad" setting is only honored if the profile contributes name servers to resolv.conf, and if all contributing profiles have "trust-ad" enabled.
When using a caching DNS plugin (dnsmasq or systemd-resolved in NetworkManager.conf) then "edns0" and "trust-ad" are automatically added.
Format: array of string
dns-priority
The relative priority for DNS servers specified by this setting. A lower numerical value is better (higher priority).
Negative values have the special effect of excluding other configurations with a greater numerical priority value; so in presence of at least one negative priority, only DNS servers from connections with the lowest priority value will be used. To avoid all DNS leaks, set the priority of the profile that should be used to the most negative value of all active connections profiles.
Zero selects a globally configured default value. If the latter is missing or zero too, it defaults to 50 for VPNs (including WireGuard) and 100 for other connections.
Note that the priority is to order DNS settings for multiple active connections. It does not disambiguate multiple DNS servers within the same connection profile.
When multiple devices have configurations with the same priority, VPNs will be considered first, then devices with the best (lowest metric) default route and then all other devices.
When using dns=default, servers with higher priority will be on top of resolv.conf. To prioritize a given server over another one within the same connection, just specify them in the desired order. Note that commonly the resolver tries name servers in /etc/resolv.conf in the order listed, proceeding with the next server in the list on failure. See for example the "rotate" option of the dns-options setting. If there are any negative DNS priorities, then only name servers from the devices with that lowest priority will be considered.
When using a DNS resolver that supports Conditional Forwarding or Split DNS (with dns=dnsmasq or dns=systemd-resolved settings), each connection is used to query domains in its search list. The search domains determine which name servers to ask, and the DNS priority is used to prioritize name servers based on the domain. Queries for domains not present in any search list are routed through connections having the '~.' special wildcard domain, which is added automatically to connections with the default route (or can be added manually). When multiple connections specify the same domain, the one with the best priority (lowest numerical value) wins. If a sub domain is configured on another interface it will be accepted regardless the priority, unless parent domain on the other interface has a negative priority, which causes the sub domain to be shadowed. With Split DNS one can avoid undesired DNS leaks by properly configuring DNS priorities and the search domains, so that only name servers of the desired interface are configured.
Format: int32
dns-search
When using a DNS plugin that supports Conditional Forwarding or Split DNS, then the search domains specify which name servers to query. This makes the behavior different from running with plain /etc/resolv.conf. For more information see also the dns-priority setting.
When set on a profile that also enabled DHCP, the DNS search list received automatically (option 119 for DHCPv4 and option 24 for DHCPv6) gets merged with the manual list. This can be prevented by setting "ignore-auto-dns". Note that if no DNS searches are configured, the fallback will be derived from the domain from DHCP (option 15).
Format: array of string
gateway
The gateway associated with this configuration. This is only meaningful if "addresses" is also set.
Setting the gateway causes NetworkManager to configure a standard default route with the gateway as next hop. This is ignored if "never-default" is set. An alternative is to configure the default route explicitly with a manual route and /0 as prefix length.
Note that the gateway usually conflicts with routing that NetworkManager configures for WireGuard interfaces, so usually it should not be set in that case. See "ip4-auto-default-route".
Format: string
ignore-auto-dns
Format: boolean
ignore-auto-routes
Format: boolean
link-local
When set to "auto", the value is dependent on "ipv4.method". When set to "default", it honors the global connection default, before falling back to "auto". Note that if "ipv4.method" is "disabled", then link local addressing is always disabled too. The default is "default".
Format: int32
may-fail
Format: boolean
method
NMSettingIP4Config and NMSettingIP6Config both support "disabled", "auto", "manual", and "link-local". See the subclass-specific documentation for other values.
In general, for the "auto" method, properties such as "dns" and "routes" specify information that is added on to the information returned from automatic configuration. The "ignore-auto-routes" and "ignore-auto-dns" properties modify this behavior.
For methods that imply no upstream network, such as "shared" or "link-local", these properties must be empty.
For IPv4 method "shared", the IP subnet can be configured by adding one manual IPv4 address or otherwise 10.42.x.0/24 is chosen. Note that the shared method must be configured on the interface which shares the internet to a subnet, not on the uplink which is shared.
Format: string
never-default
Format: boolean
replace-local-rule
Format: NMTernary (int32)
required-timeout
This property is useful for example if both IPv4 and IPv6 are enabled and are allowed to fail. Normally the connection succeeds as soon as one of the two address families completes; by setting a required timeout for e.g. IPv4, one can ensure that even if IP6 succeeds earlier than IPv4, NetworkManager waits some time for IPv4 before the connection becomes active.
Note that if "may-fail" is FALSE for the same address family, this property has no effect as NetworkManager needs to wait for the full DHCP timeout.
A zero value means that no required timeout is present, -1 means the default value (either configuration ipvx.required-timeout override or zero).
Format: int32
route-metric
Format: int64
route-table
This affects all routes, including device-routes, IPv4LL, DHCP, SLAAC, default-routes and static routes. But note that static routes can individually overwrite the setting by explicitly specifying a non-zero routing table.
If the table setting is left at zero, it is eligible to be overwritten via global configuration. If the property is zero even after applying the global configuration value, policy routing is disabled for the address family of this connection.
Policy routing disabled means that NetworkManager will add all routes to the main table (except static routes that explicitly configure a different table). Additionally, NetworkManager will not delete any extraneous routes from tables except the main table. This is to preserve backward compatibility for users who manage routing tables outside of NetworkManager.
Format: uint32
routes
Various attributes are supported:
Note that in NetworkManager, currently all nexthops of a ECMP route must share the same "onlink" flag in order to be mergable.
For details see also `man ip-route`.
Format: a comma separated list of routes
routing-rules
Example: priority 5 from 192.167.4.0/24 table 45
Format: a comma separated list of routing rules
IPv6 Settings.
Properties:
addr-gen-mode
If the property is set to EUI64, the addresses will be generated using the interface tokens derived from hardware address. This makes the host part of the address to stay constant, making it possible to track host's presence when it changes networks. The address changes when the interface hardware is replaced.
The value of stable-privacy enables use of cryptographically secure hash of a secret host-specific key along with the connection's stable-id and the network address as specified by RFC7217. This makes it impossible to use the address track host's presence, and makes the address stable when the network interface hardware is replaced.
The special values "default" and "default-or-eui64" will fallback to the global connection default in as documented in NetworkManager.conf(5) manual. If the global default is not specified, the fallback value is "stable-privacy" or "eui64", respectively.
For libnm, the property defaults to "default" since 1.40. Previously it defaulted to "stable-privacy". On D-Bus, the absence of an addr-gen-mode setting equals "default". For keyfile plugin, the absence of the setting on disk means "default-or-eui64" so that the property doesn't change on upgrade from older versions.
Note that this setting is distinct from the Privacy Extensions as configured by "ip6-privacy" property and it does not affect the temporary addresses configured with this option.
Format: int32
addresses
Array of IP addresses.
Format: a comma separated list of addresses
auto-route-ext-gw
For other connection types, adding such an automatic route is currently not supported and setting this to TRUE has no effect.
Format: NMTernary (int32)
dhcp-duid
The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id.
The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk.
The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt").
When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.
Format: string
dhcp-hostname
Format: string
dhcp-hostname-flags
Currently, this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) and NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE (0x4). When no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is set, the DHCP FQDN option will contain no flag. Otherwise, if no FQDN flag is set and NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS (0x8) is not set, the standard FQDN flags are set in the request: NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1), NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2) for IPv4 and NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1) for IPv6.
When this property is set to the default value NM_DHCP_HOSTNAME_FLAG_NONE (0x0), a global default is looked up in NetworkManager configuration. If that value is unset or also NM_DHCP_HOSTNAME_FLAG_NONE (0x0), then the standard FQDN flags described above are sent in the DHCP requests.
Format: uint32
dhcp-iaid
For DHCPv4, the IAID is only used with "ipv4.dhcp-client-id" values "duid" and "ipv6-duid" to generate the client-id.
For DHCPv6, note that at the moment this property is only supported by the "internal" DHCPv6 plugin. The "dhclient" DHCPv6 plugin always derives the IAID from the MAC address.
The actually used DHCPv6 IAID for a currently activated interface is exposed in the lease information of the device.
Format: string
dhcp-send-hostname
Format: boolean
dhcp-timeout
Set to 2147483647 (MAXINT32) for infinity.
Format: int32
dns
For DoT (DNS over TLS), the SNI server name can be specified by appending "#example.com" to the IP address of the DNS server. This currently only has effect when using systemd-resolved.
Format: array of byte array
dns-options
NULL means that the options are unset and left at the default. In this case NetworkManager will use default options. This is distinct from an empty list of properties.
The currently supported options are "attempts", "debug", "edns0", "inet6", "ip6-bytestring", "ip6-dotint", "ndots", "no-check-names", "no-ip6-dotint", "no-reload", "no-tld-query", "rotate", "single-request", "single-request-reopen", "timeout", "trust-ad", "use-vc".
The "trust-ad" setting is only honored if the profile contributes name servers to resolv.conf, and if all contributing profiles have "trust-ad" enabled.
When using a caching DNS plugin (dnsmasq or systemd-resolved in NetworkManager.conf) then "edns0" and "trust-ad" are automatically added.
Format: array of string
dns-priority
The relative priority for DNS servers specified by this setting. A lower numerical value is better (higher priority).
Negative values have the special effect of excluding other configurations with a greater numerical priority value; so in presence of at least one negative priority, only DNS servers from connections with the lowest priority value will be used. To avoid all DNS leaks, set the priority of the profile that should be used to the most negative value of all active connections profiles.
Zero selects a globally configured default value. If the latter is missing or zero too, it defaults to 50 for VPNs (including WireGuard) and 100 for other connections.
Note that the priority is to order DNS settings for multiple active connections. It does not disambiguate multiple DNS servers within the same connection profile.
When multiple devices have configurations with the same priority, VPNs will be considered first, then devices with the best (lowest metric) default route and then all other devices.
When using dns=default, servers with higher priority will be on top of resolv.conf. To prioritize a given server over another one within the same connection, just specify them in the desired order. Note that commonly the resolver tries name servers in /etc/resolv.conf in the order listed, proceeding with the next server in the list on failure. See for example the "rotate" option of the dns-options setting. If there are any negative DNS priorities, then only name servers from the devices with that lowest priority will be considered.
When using a DNS resolver that supports Conditional Forwarding or Split DNS (with dns=dnsmasq or dns=systemd-resolved settings), each connection is used to query domains in its search list. The search domains determine which name servers to ask, and the DNS priority is used to prioritize name servers based on the domain. Queries for domains not present in any search list are routed through connections having the '~.' special wildcard domain, which is added automatically to connections with the default route (or can be added manually). When multiple connections specify the same domain, the one with the best priority (lowest numerical value) wins. If a sub domain is configured on another interface it will be accepted regardless the priority, unless parent domain on the other interface has a negative priority, which causes the sub domain to be shadowed. With Split DNS one can avoid undesired DNS leaks by properly configuring DNS priorities and the search domains, so that only name servers of the desired interface are configured.
Format: int32
dns-search
When using a DNS plugin that supports Conditional Forwarding or Split DNS, then the search domains specify which name servers to query. This makes the behavior different from running with plain /etc/resolv.conf. For more information see also the dns-priority setting.
When set on a profile that also enabled DHCP, the DNS search list received automatically (option 119 for DHCPv4 and option 24 for DHCPv6) gets merged with the manual list. This can be prevented by setting "ignore-auto-dns". Note that if no DNS searches are configured, the fallback will be derived from the domain from DHCP (option 15).
Format: array of string
gateway
The gateway associated with this configuration. This is only meaningful if "addresses" is also set.
Setting the gateway causes NetworkManager to configure a standard default route with the gateway as next hop. This is ignored if "never-default" is set. An alternative is to configure the default route explicitly with a manual route and /0 as prefix length.
Note that the gateway usually conflicts with routing that NetworkManager configures for WireGuard interfaces, so usually it should not be set in that case. See "ip4-auto-default-route".
Format: string
ignore-auto-dns
Format: boolean
ignore-auto-routes
Format: boolean
ip6-privacy
Having a per-connection setting set to "-1" (unknown) means fallback to global configuration "ipv6.ip6-privacy".
If also global configuration is unspecified or set to "-1", fallback to read "/proc/sys/net/ipv6/conf/default/use_tempaddr".
Note that this setting is distinct from the Stable Privacy addresses that can be enabled with the "addr-gen-mode" property's "stable-privacy" setting as another way of avoiding host tracking with IPv6 addresses.
Format: NMSettingIP6ConfigPrivacy (int32)
may-fail
Format: boolean
method
NMSettingIP4Config and NMSettingIP6Config both support "disabled", "auto", "manual", and "link-local". See the subclass-specific documentation for other values.
In general, for the "auto" method, properties such as "dns" and "routes" specify information that is added on to the information returned from automatic configuration. The "ignore-auto-routes" and "ignore-auto-dns" properties modify this behavior.
For methods that imply no upstream network, such as "shared" or "link-local", these properties must be empty.
For IPv4 method "shared", the IP subnet can be configured by adding one manual IPv4 address or otherwise 10.42.x.0/24 is chosen. Note that the shared method must be configured on the interface which shares the internet to a subnet, not on the uplink which is shared.
Format: string
mtu
Format: uint32
never-default
Format: boolean
ra-timeout
Set to 2147483647 (MAXINT32) for infinity.
Format: int32
replace-local-rule
Format: NMTernary (int32)
required-timeout
This property is useful for example if both IPv4 and IPv6 are enabled and are allowed to fail. Normally the connection succeeds as soon as one of the two address families completes; by setting a required timeout for e.g. IPv4, one can ensure that even if IP6 succeeds earlier than IPv4, NetworkManager waits some time for IPv4 before the connection becomes active.
Note that if "may-fail" is FALSE for the same address family, this property has no effect as NetworkManager needs to wait for the full DHCP timeout.
A zero value means that no required timeout is present, -1 means the default value (either configuration ipvx.required-timeout override or zero).
Format: int32
route-metric
Format: int64
route-table
This affects all routes, including device-routes, IPv4LL, DHCP, SLAAC, default-routes and static routes. But note that static routes can individually overwrite the setting by explicitly specifying a non-zero routing table.
If the table setting is left at zero, it is eligible to be overwritten via global configuration. If the property is zero even after applying the global configuration value, policy routing is disabled for the address family of this connection.
Policy routing disabled means that NetworkManager will add all routes to the main table (except static routes that explicitly configure a different table). Additionally, NetworkManager will not delete any extraneous routes from tables except the main table. This is to preserve backward compatibility for users who manage routing tables outside of NetworkManager.
Format: uint32
routes
Various attributes are supported:
For details see also `man ip-route`.
Format: a comma separated list of routes
routing-rules
Example: priority 5 from 1:2:3::5/128 table 45
Format: a comma separated list of routing rules
token
Format: string
IP Tunneling Settings.
Properties:
encapsulation-limit
Format: uint32
flags
Format: uint32
flow-label
Format: uint32
fwmark
Format: uint32
input-key
Format: string
local
The local endpoint of the tunnel; the value can be empty, otherwise it must contain an IPv4 or IPv6 address.
Format: string
mode
The tunneling mode, for example NM_IP_TUNNEL_MODE_IPIP (1) or NM_IP_TUNNEL_MODE_GRE (2).
Format: uint32
mtu
Format: uint32
output-key
Format: string
parent
If given, specifies the parent interface name or parent connection UUID the new device will be bound to so that tunneled packets will only be routed via that interface.
Format: string
path-mtu-discovery
Format: boolean
remote
The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 address.
Format: string
tos
Format: uint32
ttl
Format: uint32
MACSec Settings.
Properties:
encrypt
Whether the transmitted traffic must be encrypted.
Format: boolean
mka-cak
The pre-shared CAK (Connectivity Association Key) for MACsec Key Agreement. Must be a string of 32 hexadecimal characters.
Format: string
mka-cak-flags
Format: NMSettingSecretFlags (uint32)
mka-ckn
The pre-shared CKN (Connectivity-association Key Name) for MACsec Key Agreement. Must be a string of hexadecimal characters with a even length between 2 and 64.
Format: string
mode
Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key Agreement) is obtained.
Format: int32
parent
If given, specifies the parent interface name or parent connection UUID from which this MACSEC interface should be created. If this property is not specified, the connection must contain an "802-3-ethernet" setting with a "mac-address" property.
Format: string
port
The port component of the SCI (Secure Channel Identifier), between 1 and 65534.
Format: int32
send-sci
Format: boolean
validation
Format: int32
MAC VLAN Settings.
Properties:
mode
The macvlan mode, which specifies the communication mechanism between multiple macvlans on the same lower device.
Format: uint32
parent
If given, specifies the parent interface name or parent connection UUID from which this MAC-VLAN interface should be created. If this property is not specified, the connection must contain an "802-3-ethernet" setting with a "mac-address" property.
Format: string
promiscuous
Format: boolean
tap
Whether the interface should be a MACVTAP.
Format: boolean
Match settings.
Properties:
driver
See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the pattern.
Format: array of string
interface-name
An element can be prefixed with a pipe symbol (|) or an ampersand (&). The former means that the element is optional and the latter means that it is mandatory. If there are any optional elements, than the match evaluates to true if at least one of the optional element matches (logical OR). If there are any mandatory elements, then they all must match (logical AND). By default, an element is optional. This means that an element "foo" behaves the same as "|foo". An element can also be inverted with exclamation mark (!) between the pipe symbol (or the ampersand) and before the pattern. Note that "!foo" is a shortcut for the mandatory match "&!foo". Finally, a backslash can be used at the beginning of the element (after the optional special characters) to escape the start of the pattern. For example, "&\\!a" is an mandatory match for literally "!a".
Format: array of string
kernel-command-line
See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the match.
Format: array of string
path
For PCI devices the path has the form "pci-$domain:$bus:$device.$function", where each variable is an hexadecimal value; for example "pci-0000:0a:00.0".
The path of a device can be obtained with "udevadm info /sys/class/net/$dev | grep ID_PATH=" or by looking at the "path" property exported by NetworkManager ("nmcli -f general.path device show $dev").
Each element of the list is a shell wildcard pattern.
See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the pattern.
Format: array of string
Alias: olpc-mesh
OLPC Wireless Mesh Settings.
Properties:
channel
Channel on which the mesh network to join is located.
Format: uint32
dhcp-anycast-address
Anycast DHCP MAC address used when requesting an IP address via DHCP. The specific anycast address used determines which DHCP server class answers the request.
This is currently only implemented by dhclient DHCP plugin.
Format: byte array
ssid
SSID of the mesh network to join.
Format: byte array
OvsBridge Link Settings.
Properties:
datapath-type
Format: string
fail-mode
Format: string
mcast-snooping-enable
Format: boolean
rstp-enable
Format: boolean
stp-enable
Format: boolean
OvsDpdk Link Settings.
Properties:
devargs
Format: string
n-rxq
Format: uint32
n-rxq-desc
Format: uint32
n-txq-desc
Format: uint32
Open vSwitch Interface Settings.
Properties:
ofport-request
Format: uint32
type
Format: string
OvsPatch Link Settings.
Properties:
peer
Format: string
OvsPort Link Settings.
Properties:
bond-downdelay
Format: uint32
bond-mode
Format: string
bond-updelay
Format: uint32
lacp
Format: string
tag
Format: uint32
trunks
The property is valid only for ports with mode "trunk", "native-tagged", or "native-untagged port". If it is empty, the port trunks all VLANs.
Format: array of vardict
vlan-mode
Format: string
Point-to-Point Protocol Settings.
Properties:
baud
Format: uint32
crtscts
Format: boolean
lcp-echo-failure
Format: uint32
lcp-echo-interval
Format: uint32
mppe-stateful
Format: boolean
mru
Format: uint32
mtu
Format: uint32
no-vj-comp
Format: boolean
noauth
Format: boolean
nobsdcomp
Format: boolean
nodeflate
Format: boolean
refuse-chap
Format: boolean
refuse-eap
Format: boolean
refuse-mschap
Format: boolean
refuse-mschapv2
Format: boolean
refuse-pap
Format: boolean
require-mppe
Format: boolean
require-mppe-128
Format: boolean
PPP-over-Ethernet Settings.
Properties:
parent
If given, specifies the parent interface name on which this PPPoE connection should be created. If this property is not specified, the connection is activated on the interface specified in "interface-name" of NMSettingConnection.
Format: string
password
Password used to authenticate with the PPPoE service.
Format: string
password-flags
Format: NMSettingSecretFlags (uint32)
service
If specified, instruct PPPoE to only initiate sessions with access concentrators that provide the specified service. For most providers, this should be left blank. It is only required if there are multiple access concentrators or a specific service is known to be required.
Format: string
username
Username used to authenticate with the PPPoE service.
Format: string
WWW Proxy Settings.
Properties:
browser-only
Whether the proxy configuration is for browser only.
Format: boolean
method
Method for proxy configuration, Default is NM_SETTING_PROXY_METHOD_NONE (0)
Format: int32
pac-script
PAC script for the connection. This is an UTF-8 encoded javascript code that defines a FindProxyForURL() function.
Format: string
pac-url
PAC URL for obtaining PAC file.
Format: string
Serial Link Settings.
Properties:
baud
Format: uint32
bits
Format: uint32
parity
Format: NMSettingSerialParity (byte)
send-delay
Format: uint64
stopbits
Format: uint32
SR-IOV settings.
Properties:
autoprobe-drivers
If set to NM_TERNARY_TRUE (1), the kernel will try to bind VFs to a compatible driver and if this succeeds a new network interface will be instantiated for each VF.
If set to NM_TERNARY_FALSE (0), VFs will not be claimed and no network interfaces will be created for them.
When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_TRUE (1).
Format: NMTernary (int32)
total-vfs
Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface (also when it is zero) during activation and resets it upon deactivation. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection.
Format: uint32
vfs
Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF.
When represented as string a VF is in the form:
"INDEX [ATTR=VALUE[ ATTR=VALUE]...]".
for example:
"2 mac=00:11:22:33:44:55 spoof-check=true".
Multiple VFs can be specified using a comma as separator. Currently, the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans.
The "vlans" attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form
"ID[.PRIORITY[.PROTO]]".
PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.
Format: array of vardict
Linux Traffic Control Settings.
Properties:
qdiscs
Each qdisc can be specified by the following attributes:
handle HANDLE
parent HANDLE
root
KIND
Parameters for 'fq_codel':
limit U32
memory_limit U32
flows U32
target U32
interval U32
quantum U32
ecn BOOL
ce_threshold U32
Parameters for 'sfq':
divisor U32
limit U32
depth U32
perturb_period U32
quantum U32
flows U32
Parameters for 'tbf':
rate U64
burst U32
If your buffer is too small, packets may be dropped because more tokens arrive per timer tick than fit in your bucket. The minimum buffer size can be calculated by dividing the rate by HZ.
Token usage calculations are performed using a table which by default has a resolution of 8 packets. This resolution can be changed by specifying the cell size with the burst. For example, to specify a 6000 byte buffer with a 16 byte cell size, set a burst of 6000/16. You will probably never have to set this. Must be an integral power of 2.
limit U32
latency U32
Format: GPtrArray(NMTCQdisc)
tfilters
Each tfilters can be specified by the following attributes:
handle HANDLE
parent HANDLE
root
KIND
Actions for 'mirred':
egress bool
ingress bool
mirror bool
redirect bool
Action for 'simple':
sdata char[32]
Format: GPtrArray(NMTCTfilter)
Teaming Settings.
Properties:
config
The JSON configuration for the team network interface. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details.
Format: string
link-watchers
Format: array of vardict
mcast-rejoin-count
Format: int32
mcast-rejoin-interval
Format: int32
notify-peers-count
Format: int32
notify-peers-interval
Format: int32
runner
Format: string
runner-active
Format: boolean
runner-agg-select-policy
Format: string
runner-fast-rate
Format: boolean
runner-hwaddr-policy
Format: string
runner-min-ports
Format: int32
runner-sys-prio
Format: int32
runner-tx-balancer
Format: string
runner-tx-balancer-interval
Format: int32
runner-tx-hash
Format: array of string
Team Port Settings.
Properties:
config
The JSON configuration for the team port. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details.
Format: string
lacp-key
Format: int32
lacp-prio
Format: int32
link-watchers
Format: array of vardict
prio
Format: int32
queue-id
Format: int32
sticky
Format: boolean
Tunnel Settings.
Properties:
group
The group ID which will own the device. If set to NULL everyone will be able to use the device.
Format: string
mode
The operating mode of the virtual device. Allowed values are NM_SETTING_TUN_MODE_TUN (1) to create a layer 3 device and NM_SETTING_TUN_MODE_TAP (2) to create an Ethernet-like layer 2 one.
Format: uint32
multi-queue
If the property is set to TRUE, the interface will support multiple file descriptors (queues) to parallelize packet sending or receiving. Otherwise, the interface will only support a single queue.
Format: boolean
owner
The user ID which will own the device. If set to NULL everyone will be able to use the device.
Format: string
pi
If TRUE the interface will prepend a 4 byte header describing the physical interface to the packets.
Format: boolean
vnet-hdr
If TRUE the IFF_VNET_HDR the tunnel packets will include a virtio network header.
Format: boolean
VLAN Settings.
Properties:
egress-priority-map
For outgoing packets, a list of mappings from Linux SKB priorities to 802.1p priorities. The mapping is given in the format "from:to" where both "from" and "to" are unsigned integers, ie "7:3".
Format: array of string
flags
One or more flags which control the behavior and features of the VLAN interface. Flags include NM_VLAN_FLAG_REORDER_HEADERS (0x1) (reordering of output packet headers), NM_VLAN_FLAG_GVRP (0x2) (use of the GVRP protocol), and NM_VLAN_FLAG_LOOSE_BINDING (0x4) (loose binding of the interface to its master device's operating state). NM_VLAN_FLAG_MVRP (0x8) (use of the MVRP protocol).
The default value of this property is NM_VLAN_FLAG_REORDER_HEADERS, but it used to be 0. To preserve backward compatibility, the default-value in the D-Bus API continues to be 0 and a missing property on D-Bus is still considered as 0.
Format: NMVlanFlags (uint32)
id
The VLAN identifier that the interface created by this connection should be assigned. The valid range is from 0 to 4094, without the reserved id 4095.
Format: uint32
ingress-priority-map
For incoming packets, a list of mappings from 802.1p priorities to Linux SKB priorities. The mapping is given in the format "from:to" where both "from" and "to" are unsigned integers, ie "7:3".
Format: array of string
parent
If given, specifies the parent interface name or parent connection UUID from which this VLAN interface should be created. If this property is not specified, the connection must contain an "802-3-ethernet" setting with a "mac-address" property.
Format: string
protocol
Supported values are: '802.1Q', '802.1ad'. If not specified the default value is '802.1Q'.
Format: string
VPN Settings.
Properties:
data
Format: dict of string to string
persistent
Format: boolean
secrets
Format: dict of string to string
service-type
D-Bus service name of the VPN plugin that this setting uses to connect to its network. i.e. org.freedesktop.NetworkManager.vpnc for the vpnc plugin.
Format: string
timeout
Format: uint32
user-name
If the VPN connection requires a user name for authentication, that name should be provided here. If the connection is available to more than one user, and the VPN requires each user to supply a different name, then leave this property empty. If this property is empty, NetworkManager will automatically supply the username of the user which requested the VPN connection.
Format: string
VRF settings.
Properties:
table
The routing table for this VRF.
Format: uint32
VXLAN Settings.
Properties:
ageing
Format: uint32
destination-port
Specifies the UDP destination port to communicate to the remote VXLAN tunnel endpoint.
Format: uint32
id
Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to use.
Format: uint32
l2-miss
Format: boolean
l3-miss
Format: boolean
learning
Format: boolean
limit
Format: uint32
local
If given, specifies the source IP address to use in outgoing packets.
Format: string
parent
If given, specifies the parent interface name or parent connection UUID.
Format: string
proxy
Format: boolean
remote
Specifies the unicast destination IP address to use in outgoing packets when the destination link layer address is not known in the VXLAN device forwarding database, or the multicast IP address to join.
Format: string
rsc
Format: boolean
source-port-max
Specifies the maximum UDP source port to communicate to the remote VXLAN tunnel endpoint.
Format: uint32
source-port-min
Specifies the minimum UDP source port to communicate to the remote VXLAN tunnel endpoint.
Format: uint32
tos
Format: uint32
ttl
Format: uint32
Wi-Fi P2P Settings.
Properties:
peer
The P2P device that should be connected to. Currently, this is the only way to create or join a group.
Format: string
wfd-ies
Wi-Fi Display requires a protocol specific information element to be set in certain Wi-Fi frames. These can be specified here for the purpose of establishing a connection. This setting is only useful when implementing a Wi-Fi Display client.
Format: byte array
wps-method
There's little point in changing the default setting as NetworkManager will automatically determine the best method to use.
Format: uint32
WiMax Settings.
Properties:
mac-address
If specified, this connection will only apply to the WiMAX device whose MAC address matches. This property does not change the MAC address of the device (known as MAC spoofing).
This property is deprecated since version 1.2. WiMAX is no longer supported.
Format: byte array
network-name
Network Service Provider (NSP) name of the WiMAX network this connection should use.
This property is deprecated since version 1.2. WiMAX is no longer supported.
Format: string
Alias: ethernet
Wired Ethernet Settings.
Properties:
accept-all-mac-addresses
Format: NMTernary (int32)
auto-negotiate
Format: boolean
cloned-mac-address
If specified, request that the device use this MAC address instead. This is known as MAC cloning or spoofing.
Beside explicitly specifying a MAC address, the special values "preserve", "permanent", "random" and "stable" are supported. "preserve" means not to touch the MAC address on activation. "permanent" means to use the permanent hardware address if the device has one (otherwise this is treated as "preserve"). "random" creates a random MAC address on each connect. "stable" creates a hashed MAC address based on connection.stable-id and a machine dependent key.
If unspecified, the value can be overwritten via global defaults, see manual of NetworkManager.conf. If still unspecified, it defaults to "preserve" (older versions of NetworkManager may use a different default value).
On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated "cloned-mac-address".
Format: byte array
duplex
Format: string
generate-mac-address-mask
If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address.
If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the "random" or "stable" algorithm.
If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of "FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of "02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled globally-administered, burned-in MAC address.
If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00" will create a fully scrambled MAC address, randomly locally or globally administered.
Format: string
mac-address
If specified, this connection will only apply to the Ethernet device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).
Format: byte array
mac-address-blacklist
Format: array of string
mtu
If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.
Format: uint32
port
Format: string
s390-nettype
Format: string
s390-options
Currently, NetworkManager itself does nothing with this information. However, s390utils ships a udev rule which parses this information and applies it to the interface.
Format: dict of string to string
s390-subchannels
Format: array of string
speed
Format: uint32
wake-on-lan
Format: uint32
wake-on-lan-password
Format: string
WireGuard Settings.
Properties:
fwmark
Note that "ip4-auto-default-route" or "ip6-auto-default-route" enabled, implies to automatically choose a fwmark.
Format: uint32
ip4-auto-default-route
Note that for this automatism to work, you usually don't want to set ipv4.gateway, because that will result in a conflicting default route.
Leaving this at the default will enable this option automatically if ipv4.never-default is not set and there are any peers that use a default-route as allowed-ips. Since this automatism only makes sense if you also have a peer with an /0 allowed-ips, it is usually not necessary to enable this explicitly. However, you can disable it if you want to configure your own routing and rules.
Format: NMTernary (int32)
ip6-auto-default-route
Format: NMTernary (int32)
listen-port
Format: uint32
mtu
If zero a default MTU is used. Note that contrary to wg-quick's MTU setting, this does not take into account the current routes at the time of activation.
Format: uint32
peer-routes
Note that if the peer's AllowedIPs is "0.0.0.0/0" or "::/0" and the profile's ipv4.never-default or ipv6.never-default setting is enabled, the peer route for this peer won't be added automatically.
Format: boolean
private-key
Format: string
private-key-flags
Format: NMSettingSecretFlags (uint32)
Alias: wifi
Wi-Fi Settings.
Properties:
ap-isolation
If set to NM_TERNARY_TRUE (1), devices are not able to communicate with each other. This increases security because it protects devices against attacks from other clients in the network. At the same time, it prevents devices to access resources on the same wireless networks as file shares, printers, etc.
If set to NM_TERNARY_FALSE (0), devices can talk to each other.
When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_FALSE (0).
Format: NMTernary (int32)
band
Format: string
bssid
Locking a client profile to a certain BSSID will prevent roaming and also disable background scanning. That can be useful, if there is only one access point for the SSID.
Format: byte array
channel
Format: uint32
cloned-mac-address
If specified, request that the device use this MAC address instead. This is known as MAC cloning or spoofing.
Beside explicitly specifying a MAC address, the special values "preserve", "permanent", "random" and "stable" are supported. "preserve" means not to touch the MAC address on activation. "permanent" means to use the permanent hardware address of the device. "random" creates a random MAC address on each connect. "stable" creates a hashed MAC address based on connection.stable-id and a machine dependent key.
If unspecified, the value can be overwritten via global defaults, see manual of NetworkManager.conf. If still unspecified, it defaults to "preserve" (older versions of NetworkManager may use a different default value).
On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated "cloned-mac-address".
Format: byte array
generate-mac-address-mask
If the property is NULL, it is eligible to be overwritten by a default connection setting. If the value is still NULL or an empty string, the default is to create a locally-administered, unicast MAC address.
If the value contains one MAC address, this address is used as mask. The set bits of the mask are to be filled with the current MAC address of the device, while the unset bits are subject to randomization. Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address and only randomize the lower 3 bytes using the "random" or "stable" algorithm.
If the value contains one additional MAC address after the mask, this address is used instead of the current MAC address to fill the bits that shall not be randomized. For example, a value of "FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address to 68:F7:28, while the lower bits are randomized. A value of "02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled globally-administered, burned-in MAC address.
If the value contains more than one additional MAC addresses, one of them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00" will create a fully scrambled MAC address, randomly locally or globally administered.
Format: string
hidden
In infrastructure mode, various workarounds are used for a more reliable discovery of hidden networks, such as probe-scanning the SSID. However, these workarounds expose inherent insecurities with hidden SSID networks, and thus hidden SSID networks should be used with caution.
In AP mode, the created network does not broadcast its SSID.
Note that marking the network as hidden may be a privacy issue for you (in infrastructure mode) or client stations (in AP mode), as the explicit probe-scans are distinctly recognizable on the air.
Format: boolean
mac-address
If specified, this connection will only apply to the Wi-Fi device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).
Format: byte array
mac-address-blacklist
Format: array of string
mac-address-randomization
This property is deprecated since version 1.4. Use the "cloned-mac-address" property instead.
Format: uint32
mode
Wi-Fi network mode; one of "infrastructure", "mesh", "adhoc" or "ap". If blank, infrastructure is assumed.
Format: string
mtu
If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.
Format: uint32
powersave
Format: uint32
rate
Format: uint32
seen-bssids
Format: array of string
ssid
SSID of the Wi-Fi network. Must be specified.
Format: byte array
tx-power
Format: uint32
wake-on-wlan
Format: uint32
Alias: wifi-sec
Wi-Fi Security Settings.
Properties:
auth-alg
Format: string
fils
Format: int32
group
Format: array of string
key-mgmt
This property must be set for any Wi-Fi connection that uses security.
Format: string
leap-password
Format: string
leap-password-flags
Format: NMSettingSecretFlags (uint32)
leap-username
Format: string
pairwise
Format: array of string
pmf
Format: int32
proto
Format: array of string
psk
Format: string
psk-flags
Format: NMSettingSecretFlags (uint32)
wep-key-flags
Format: NMSettingSecretFlags (uint32)
wep-key-type
Format: NMWepKeyType (uint32)
wep-key0
Format: string
wep-key1
Format: string
wep-key2
Format: string
wep-key3
Format: string
wep-tx-keyidx
Format: uint32
wps-method
There's little point in changing the default setting as NetworkManager will automatically determine whether it's feasible to start WPS enrollment from the Access Point capabilities.
WPS can be disabled by setting this property to a value of 1.
Format: uint32
IEEE 802.15.4 (WPAN) MAC Settings.
Properties:
channel
IEEE 802.15.4 channel. A positive integer or -1, meaning "do not set, use whatever the device is already set to".
Format: int32
mac-address
If specified, this connection will only apply to the IEEE 802.15.4 (WPAN) MAC layer device whose permanent MAC address matches.
Format: string
page
IEEE 802.15.4 channel page. A positive integer or -1, meaning "do not set, use whatever the device is already set to".
Format: int32
pan-id
IEEE 802.15.4 Personal Area Network (PAN) identifier.
Format: uint32
short-address
Short IEEE 802.15.4 address to be used within a restricted environment.
Format: uint32
Bond Port Settings.
Properties:
queue-id
The queue ID of this bond port. The maximum value of queue ID is the number of TX queues currently active in device.
Format: uint32
Hostname settings.
Properties:
from-dhcp
When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).
Format: NMTernary (int32)
from-dns-lookup
When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).
Format: NMTernary (int32)
only-from-default
If set to NM_TERNARY_FALSE (0), the hostname can be set from this device even if it doesn't have the default route.
When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_FALSE (0).
Format: NMTernary (int32)
priority
If the value is zero, it can be overridden by a global value from NetworkManager configuration. If the property doesn't have a value in the global configuration, the value is assumed to be 100.
Negative values have the special effect of excluding other connections with a greater numerical priority value; so in presence of at least one negative priority, only connections with the lowest priority value will be used to determine the hostname.
Format: int32
Loopback Link Settings.
Properties:
mtu
If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames.
Format: uint32
Veth Settings.
Properties:
peer
This property specifies the peer interface name of the veth. This property is mandatory.
Format: string
Each password or secret property in a setting has an associated flags property that describes how to handle that secret. The flags property is a bitfield that contains zero or more of the following values logically OR-ed together.
/etc/NetworkManager/system-connections or distro plugin-specific location
nmcli(1), nmcli-examples(7), NetworkManager(8), nm-settings-dbus(5), nm-settings-keyfile(5), NetworkManager.conf(5)
NetworkManager 1.42.4 |