Class (GI Class)

NM-1.0NMSettingIPConfigAbstract

Hierarchy (View Summary)

Index

Constructors

Properties

Accessors

Accessors - Inherited from NM.Setting

Methods

Methods - Inherited from NM.Setting

Constructors

Properties

Compile-time signal type information.

This instance property is generated only for TypeScript type checking. It is not defined at runtime and should not be accessed in JS code.

Accessors

  • get auto_route_ext_gw(): NM.Ternary

    VPN connections will default to add the route automatically unless this setting is set to false.

    For other connection types, adding such an automatic route is currently not supported and setting this to true has no effect.

    Returns NM.Ternary

    1.42

  • set auto_route_ext_gw(val: NM.Ternary): void

    Parameters

    Returns void

  • get autoRouteExtGw(): NM.Ternary

    VPN connections will default to add the route automatically unless this setting is set to false.

    For other connection types, adding such an automatic route is currently not supported and setting this to true has no effect.

    Returns NM.Ternary

    1.42

  • set autoRouteExtGw(val: NM.Ternary): void

    Parameters

    Returns void

  • get dad_timeout(): number

    Maximum timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. The property is currently implemented only for IPv4.

    A zero value means that no duplicate address detection is performed, -1 means the default value (either the value configured globally in NetworkManger.conf or 200ms). A value greater than zero is a timeout in milliseconds. Note that the time intervals are subject to randomization as per RFC 5227 and so the actual duration can be between half and the full time specified in this property.

    Returns number

    1.2

  • set dad_timeout(val: number): void

    Parameters

    • val: number

    Returns void

  • get dadTimeout(): number

    Maximum timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. The property is currently implemented only for IPv4.

    A zero value means that no duplicate address detection is performed, -1 means the default value (either the value configured globally in NetworkManger.conf or 200ms). A value greater than zero is a timeout in milliseconds. Note that the time intervals are subject to randomization as per RFC 5227 and so the actual duration can be between half and the full time specified in this property.

    Returns number

    1.2

  • set dadTimeout(val: number): void

    Parameters

    • val: number

    Returns void

  • get dhcp_dscp(): string

    Specifies the value for the DSCP field (traffic class) of the IP header. When empty, the global default value is used; if no global default is specified, it is assumed to be "CS0". Allowed values are: "CS0", "CS4" and "CS6".

    The property is currently valid only for IPv4, and it is supported only by the "internal" DHCP plugin.

    Returns string

    1.46

  • set dhcp_dscp(val: string): void

    Parameters

    • val: string

    Returns void

  • get dhcp_iaid(): string

    A string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The string can be a 32-bit number (either decimal, hexadecimal or as colon separated hexadecimal numbers). Alternatively it can be set to the special values "mac", "perm-mac", "ifname" or "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname".

    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.

    Returns string

    1.22

  • set dhcp_iaid(val: string): void

    Parameters

    • val: string

    Returns void

  • get dhcp_reject_servers(): string[]

    Array of servers from which DHCP offers must be rejected. This property is useful to avoid getting a lease from misconfigured or rogue 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.

    Returns string[]

    1.28

  • set dhcp_reject_servers(val: string[]): void

    Parameters

    • val: string[]

    Returns void

  • get dhcp_send_hostname(): boolean

    If true, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the NM.SettingIPConfig.dhcp_hostname property is null and this property is true, the current persistent hostname of the computer is sent.

    Returns boolean

  • set dhcp_send_hostname(val: boolean): void

    Parameters

    • val: boolean

    Returns void

  • get dhcp_timeout(): number

    A timeout for a DHCP transaction in seconds. If zero (the default), a globally configured default is used. If still unspecified, a device specific timeout is used (usually 45 seconds).

    Set to 2147483647 (MAXINT32) for infinity.

    Returns number

  • set dhcp_timeout(val: number): void

    Parameters

    • val: number

    Returns void

  • get dhcpDscp(): string

    Specifies the value for the DSCP field (traffic class) of the IP header. When empty, the global default value is used; if no global default is specified, it is assumed to be "CS0". Allowed values are: "CS0", "CS4" and "CS6".

    The property is currently valid only for IPv4, and it is supported only by the "internal" DHCP plugin.

    Returns string

    1.46

  • set dhcpDscp(val: string): void

    Parameters

    • val: string

    Returns void

  • get dhcpIaid(): string

    A string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The string can be a 32-bit number (either decimal, hexadecimal or as colon separated hexadecimal numbers). Alternatively it can be set to the special values "mac", "perm-mac", "ifname" or "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the current (or permanent) MAC address are used as IAID. When set to "ifname", the IAID is computed by hashing the interface name. The special value "stable" can be used to generate an IAID based on the stable-id (see connection.stable-id), a per-host key and the interface name. When the property is unset, the value from global configuration is used; if no global default is set then the IAID is assumed to be "ifname".

    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.

    Returns string

    1.22

  • set dhcpIaid(val: string): void

    Parameters

    • val: string

    Returns void

  • get dhcpRejectServers(): string[]

    Array of servers from which DHCP offers must be rejected. This property is useful to avoid getting a lease from misconfigured or rogue 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.

    Returns string[]

    1.28

  • set dhcpRejectServers(val: string[]): void

    Parameters

    • val: string[]

    Returns void

  • get dhcpSendHostname(): boolean

    If true, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the NM.SettingIPConfig.dhcp_hostname property is null and this property is true, the current persistent hostname of the computer is sent.

    Returns boolean

  • set dhcpSendHostname(val: boolean): void

    Parameters

    • val: boolean

    Returns void

  • get dhcpTimeout(): number

    A timeout for a DHCP transaction in seconds. If zero (the default), a globally configured default is used. If still unspecified, a device specific timeout is used (usually 45 seconds).

    Set to 2147483647 (MAXINT32) for infinity.

    Returns number

  • set dhcpTimeout(val: number): void

    Parameters

    • val: number

    Returns void

  • get dns(): string[]

    Array of IP addresses of DNS servers.

    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.

    Returns string[]

  • set dns(val: string[]): void

    Parameters

    • val: string[]

    Returns void

  • get dns_options(): string[]

    Array of DNS options to be added to resolv.conf.

    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 following options are directly added to resolv.conf: "attempts", "debug", "edns0", "inet6", "ip6-bytestring", "ip6-dotint", "ndots", "no-aaaa", "no-check-names", "no-ip6-dotint", "no-reload", "no-tld-query", "rotate", "single-request", "single-request-reopen", "timeout", "trust-ad", "use-vc". See the resolv.conf(5) man page for a detailed description of these options.

    In addition, NetworkManager supports the special options "_no-add-edns0" and "_no-add-trust-ad". They are not added to resolv.conf, and can be used to prevent the automatic addition of options "edns0" and "trust-ad" when using caching DNS plugins (see below).

    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, unless "_no-add-edns0" and "_no-add-trust-ad" are present.

    Returns string[]

    1.2

  • set dns_options(val: string[]): void

    Parameters

    • val: string[]

    Returns void

  • get dns_priority(): number

    DNS servers 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.

    Returns number

    1.4

  • set dns_priority(val: number): void

    Parameters

    • val: number

    Returns void

  • List of DNS search domains. Domains starting with a tilde ('~') are considered 'routing' domains and are used only to decide the interface over which a query must be forwarded; they are not used to complete unqualified host names.

    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).

    Returns string[]

  • set dns_search(val: string[]): void

    Parameters

    • val: string[]

    Returns void

  • get dnsOptions(): string[]

    Array of DNS options to be added to resolv.conf.

    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 following options are directly added to resolv.conf: "attempts", "debug", "edns0", "inet6", "ip6-bytestring", "ip6-dotint", "ndots", "no-aaaa", "no-check-names", "no-ip6-dotint", "no-reload", "no-tld-query", "rotate", "single-request", "single-request-reopen", "timeout", "trust-ad", "use-vc". See the resolv.conf(5) man page for a detailed description of these options.

    In addition, NetworkManager supports the special options "_no-add-edns0" and "_no-add-trust-ad". They are not added to resolv.conf, and can be used to prevent the automatic addition of options "edns0" and "trust-ad" when using caching DNS plugins (see below).

    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, unless "_no-add-edns0" and "_no-add-trust-ad" are present.

    Returns string[]

    1.2

  • set dnsOptions(val: string[]): void

    Parameters

    • val: string[]

    Returns void

  • get dnsPriority(): number

    DNS servers 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.

    Returns number

    1.4

  • set dnsPriority(val: number): void

    Parameters

    • val: number

    Returns void

  • get dnsSearch(): string[]

    List of DNS search domains. Domains starting with a tilde ('~') are considered 'routing' domains and are used only to decide the interface over which a query must be forwarded; they are not used to complete unqualified host names.

    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).

    Returns string[]

  • set dnsSearch(val: string[]): void

    Parameters

    • val: string[]

    Returns void

  • get gateway(): string

    The gateway associated with this configuration. This is only meaningful if NM.SettingIPConfig.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 NM.SettingIPConfig.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 NM.SettingWireGuard.ip4_auto_default_route.

    Returns string

  • set gateway(val: string): void

    Parameters

    • val: string

    Returns void

  • get may_fail(): boolean

    If true, allow overall network configuration to proceed even if the configuration specified by this property times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv6-only networks, setting this property to true on the NM.SettingIP4Config allows the overall network configuration to succeed if IPv4 configuration fails but IPv6 configuration completes successfully.

    Returns boolean

  • set may_fail(val: boolean): void

    Parameters

    • val: boolean

    Returns void

  • get mayFail(): boolean

    If true, allow overall network configuration to proceed even if the configuration specified by this property times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv6-only networks, setting this property to true on the NM.SettingIP4Config allows the overall network configuration to succeed if IPv4 configuration fails but IPv6 configuration completes successfully.

    Returns boolean

  • set mayFail(val: boolean): void

    Parameters

    • val: boolean

    Returns void

  • get method(): string

    IP configuration method.

    NM.SettingIP4Config and NM.SettingIP6Config 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 NM.SettingIPConfig.dns and NM.SettingIPConfig.routes specify information that is added on to the information returned from automatic configuration. The NM.SettingIPConfig.ignore_auto_routes and NM.SettingIPConfig.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.

    Returns string

  • set method(val: string): void

    Parameters

    • val: string

    Returns void

  • get never_default(): boolean

    If true, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.

    Returns boolean

  • set never_default(val: boolean): void

    Parameters

    • val: boolean

    Returns void

  • get neverDefault(): boolean

    If true, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager.

    Returns boolean

  • set neverDefault(val: boolean): void

    Parameters

    • val: boolean

    Returns void

  • get required_timeout(): number

    The minimum time interval in milliseconds for which dynamic IP configuration should be tried before the connection succeeds.

    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 NM.SettingIPConfig.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).

    Returns number

    1.34

  • set required_timeout(val: number): void

    Parameters

    • val: number

    Returns void

  • get requiredTimeout(): number

    The minimum time interval in milliseconds for which dynamic IP configuration should be tried before the connection succeeds.

    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 NM.SettingIPConfig.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).

    Returns number

    1.34

  • set requiredTimeout(val: number): void

    Parameters

    • val: number

    Returns void

  • get route_metric(): number

    The default metric for routes that don't explicitly specify a metric. The default value -1 means that the metric is chosen automatically based on the device type. The metric applies to dynamic routes, manual (static) routes that don't have an explicit metric setting, address prefix routes, and the default route. Note that for IPv6, the kernel accepts zero (0) but coerces it to 1024 (user default). Hence, setting this property to zero effectively mean setting it to 1024. For IPv4, zero is a regular value for the metric.

    Returns number

  • set route_metric(val: number): void

    Parameters

    • val: number

    Returns void

  • get route_table(): number

    Enable policy routing (source routing) and set the routing table used when adding routes.

    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.

    Returns number

    1.10

  • set route_table(val: number): void

    Parameters

    • val: number

    Returns void

  • get routeMetric(): number

    The default metric for routes that don't explicitly specify a metric. The default value -1 means that the metric is chosen automatically based on the device type. The metric applies to dynamic routes, manual (static) routes that don't have an explicit metric setting, address prefix routes, and the default route. Note that for IPv6, the kernel accepts zero (0) but coerces it to 1024 (user default). Hence, setting this property to zero effectively mean setting it to 1024. For IPv4, zero is a regular value for the metric.

    Returns number

  • set routeMetric(val: number): void

    Parameters

    • val: number

    Returns void

  • get routeTable(): number

    Enable policy routing (source routing) and set the routing table used when adding routes.

    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.

    Returns number

    1.10

  • set routeTable(val: number): void

    Parameters

    • val: number

    Returns void

Accessors - Inherited from NM.Setting

  • get name(): string

    The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example "ppp" or "802-11-wireless" or "802-3-ethernet".

    Returns string

Methods

  • Adds a new IP address and associated information to the setting. The given address is duplicated internally and is not changed by this function.

    Parameters

    Returns boolean

    true if the address was added; false if the address was already known.

  • Adds a new DHCP reject server to the setting.

    Parameters

    • server: string

      the DHCP reject server to add

    Returns void

  • Adds a new DNS server to the setting.

    Parameters

    • dns: string

      the IP address of the DNS server to add

    Returns boolean

    true if the DNS server was added; false if the server was already known Before 1.42, setting dns to an invalid string was treated as user-error. Now, also invalid DNS values can be set, but will be rejected later during nm_connection_verify().

  • Adds a new DNS option to the setting.

    Parameters

    • dns_option: string

      the DNS option to add

    Returns boolean

    true if the DNS option was added; false otherwise

  • Adds a new DNS search domain to the setting.

    Parameters

    • dns_search: string

      the search domain to add

    Returns boolean

    true if the DNS search domain was added; false if the search domain was already known

  • Appends a new route and associated information to the setting. The given route is duplicated internally and is not changed by this function. If an identical route (considering attributes as well) already exists, the route is not added and the function returns false.

    Note that before 1.10, this function would not consider route attributes and not add a route that has an existing route with same dest/prefix,next_hop,metric parameters.

    Parameters

    Returns boolean

    true if the route was added; false if the route was already known.

  • Appends a new routing-rule and associated information to the setting. The given routing rules gets sealed and the reference count is incremented. The function does not check whether an identical rule already exists and always appends the rule to the end of the list.

    Parameters

    Returns void

  • Removes all configured DHCP reject servers.

    Returns void

  • Removes all configured DNS options.

    Parameters

    • is_set: boolean

      the dns-options can be either empty or unset (default). Specify how to clear the options.

    Returns void

  • Returns string[]

    A null terminated array of DHCP reject servers. Even if no reject servers are configured, this always returns a non null value.

  • Returns the value contained in the NM.SettingIPConfig.dhcp_send_hostname property.

    Returns boolean

    true if NetworkManager should send the machine hostname to the DHCP server when requesting addresses to allow the server to automatically update DNS information for this machine.

  • Parameters

    • idx: number

      index number of the DNS server to return

    Returns string

    the IP address of the DNS server at index idx

  • Since 1.46, access at index "len" is allowed and returns NULL.

    Parameters

    • idx: number

      index number of the DNS option

    Returns string

    the DNS option at index idx

  • Since 1.46, access at index "len" is allowed and returns NULL.

    Parameters

    • idx: number

      index number of the DNS search domain to return

    Returns string

    the DNS search domain at index idx

  • Returns string

    the IP address of the gateway associated with this configuration, or null.

  • Returns the value contained in the NM.SettingIPConfig.may_fail property.

    Returns boolean

    true if this connection doesn't require this type of IP addressing to complete for the connection to succeed.

  • Returns number

    the number of configured DNS search domains

  • NMSettingIPConfig can have a list of dns-options. If the list is empty, there are two similar (but differentiated) states. Either the options are explicitly set to have no values, or the options are left undefined. The latter means to use a default configuration, while the former explicitly means "no-options".

    Returns boolean

    whether DNS options are initialized or left unset (the default).

  • Removes the address at index idx.

    Parameters

    • idx: number

      index number of the address to remove

    Returns void

  • Removes the address address.

    Parameters

    Returns boolean

    true if the address was found and removed; false if it was not.

  • Removes the DHCP reject server at index idx.

    Parameters

    • idx: number

      index number of the DHCP reject server

    Returns void

  • Removes the DNS server at index idx.

    Parameters

    • idx: number

      index number of the DNS server to remove

    Returns void

  • Removes the DNS server dns.

    Parameters

    • dns: string

      the DNS server to remove

    Returns boolean

    true if the DNS server was found and removed; false if it was not. Before 1.42, setting dns to an invalid string was treated as user-error.

  • Removes the DNS option at index idx.

    Parameters

    • idx: number

      index number of the DNS option

    Returns void

  • Removes the DNS option dns_option.

    Parameters

    • dns_option: string

      the DNS option to remove

    Returns boolean

    true if the DNS option was found and removed; false if it was not.

  • Removes the DNS search domain at index idx.

    Parameters

    • idx: number

      index number of the DNS search domain

    Returns void

  • Removes the DNS search domain dns_search.

    Parameters

    • dns_search: string

      the search domain to remove

    Returns boolean

    true if the DNS search domain was found and removed; false if it was not.

  • Removes the route at index idx.

    Parameters

    • idx: number

      index number of the route

    Returns void

  • Removes the first matching route that matches route. Note that before 1.10, this function would only compare dest/prefix,next_hop,metric and ignore route attributes. Now, route must match exactly.

    Parameters

    Returns boolean

    true if the route was found and removed; false if it was not.

  • Removes the routing_rule at index idx.

    Parameters

    • idx: number

      index number of the routing_rule

    Returns void

Methods - Inherited from NM.Setting

  • Creates a binding between source_property on source and target_property on target.

    Whenever the source_property is changed the target_property is updated using the same value. For instance:

      g_object_bind_property (action, "active", widget, "sensitive", 0);
    

    Will result in the "sensitive" property of the widget GObject.Object instance to be updated with the same value of the "active" property of the action GObject.Object instance.

    If flags contains GObject.BindingFlags.BIDIRECTIONAL then the binding will be mutual: if target_property on target changes then the source_property on source will be updated as well.

    The binding will automatically be removed when either the source or the target instances are finalized. To remove the binding without affecting the source and the target you can just call g_object_unref() on the returned GObject.Binding instance.

    Removing the binding by calling g_object_unref() on it must only be done if the binding, source and target are only used from a single thread and it is clear that both source and target outlive the binding. Especially it is not safe to rely on this if the binding, source or target can be finalized from different threads. Keep another reference to the binding and use g_binding_unbind() instead to be on the safe side.

    A GObject.Object can have multiple bindings.

    Parameters

    Returns GObject.Binding

    the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.

  • Complete version of g_object_bind_property().

    Creates a binding between source_property on source and target_property on target, allowing you to set the transformation functions to be used by the binding.

    If flags contains GObject.BindingFlags.BIDIRECTIONAL then the binding will be mutual: if target_property on target changes then the source_property on source will be updated as well. The transform_from function is only used in case of bidirectional bindings, otherwise it will be ignored

    The binding will automatically be removed when either the source or the target instances are finalized. This will release the reference that is being held on the GObject.Binding instance; if you want to hold on to the GObject.Binding instance, you will need to hold a reference to it.

    To remove the binding, call g_binding_unbind().

    A GObject.Object can have multiple bindings.

    The same user_data parameter will be used for both transform_to and transform_from transformation functions; the notify function will be called once, when the binding is removed. If you need different data for each transformation function, please use g_object_bind_property_with_closures() instead.

    Parameters

    • source_property: string

      the property on source to bind

    • target: GObject.Object

      the target GObject.Object

    • target_property: string

      the property on target to bind

    • flags: GObject.BindingFlags

      flags to pass to GObject.Binding

    • Optionaltransform_to: BindingTransformFunc

      the transformation function from the source to the target, or null to use the default

    • Optionaltransform_from: BindingTransformFunc

      the transformation function from the target to the source, or null to use the default

    • Optionalnotify: DestroyNotify

      a function to call when disposing the binding, to free resources used by the transformation functions, or null if not required

    Returns GObject.Binding

    the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.

  • Creates a binding between source_property on source and target_property on target, allowing you to set the transformation functions to be used by the binding.

    This function is the language bindings friendly version of g_object_bind_property_full(), using GClosures instead of function pointers.

    Parameters

    Returns GObject.Binding

    the GObject.Binding instance representing the binding between the two GObject.Object instances. The binding is released whenever the GObject.Binding reference count reaches zero.

  • Compares two NM.Setting objects for similarity, with comparison behavior modified by a set of flags. See the documentation for NM.SettingCompareFlags for a description of each flag's behavior. If the settings differ, the keys of each setting that differ from the other are added to results, mapped to one or more NM.SettingDiffResult values.

    Parameters

    • b: NM.Setting

      a second NM.Setting to compare with the first

    • flags: NM.SettingCompareFlags

      compare flags, e.g. NM.SettingCompareFlags.EXACT

    • invert_results: boolean

      this parameter is used internally by libnm and should be set to false. If true inverts the meaning of the NM.SettingDiffResult.

    • results: GLib.HashTable<string, number> | { [key: string]: any }

      if the settings differ, on return a hash table mapping the differing keys to one or more %NMSettingDiffResult values OR-ed together. If the settings do not differ, any hash table passed in is unmodified. If no hash table is passed in and the settings differ, a new one is created and returned.

    Returns [boolean, GLib.HashTable<string, number>]

    true if the settings contain the same values, false if they do not

  • Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.

    Parameters

    • id: number

      Handler ID of the handler to be disconnected

    Returns void

  • This function is intended for GObject.Object implementations to re-enforce a [floating][floating-ref] object reference. Doing this is seldom required: all GInitiallyUnowneds are created with a floating reference which usually just needs to be sunken by calling g_object_ref_sink().

    Returns void

  • Increases the freeze count on object. If the freeze count is non-zero, the emission of "notify" signals on object is stopped. The signals are queued until the freeze count is decreased to zero. Duplicate notifications are squashed so that at most one GObject.Object::notify signal is emitted for each property modified while the object is frozen.

    This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.

    Returns void

  • Gets a named field from the objects table of associations (see g_object_set_data()).

    Parameters

    • key: string

      name of the key for that association

    Returns any

    the data if found, or null if no such data exists.

  • Gets a property of an object.

    The value can be:

    • an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
    • a GObject.Value initialized with the expected type of the property
    • a GObject.Value initialized with a type to which the expected type of the property can be transformed

    In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.

    Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.

    Parameters

    • property_name: string

      The name of the property to get

    • value: any

      Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type

    Returns any

  • Gets n_properties properties for an object. Obtained properties will be set to values. All properties must be valid. Warnings will be emitted and undefined behaviour may result if invalid properties are passed in.

    Parameters

    • names: string[]

      the names of each property to get

    • values: any[]

      the values of each property to get

    Returns void

  • Emits a "notify" signal for the property property_name on object.

    When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.

    Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.

    Parameters

    • property_name: string

      the name of a property installed on the class of object.

    Returns void

  • Emits a "notify" signal for the property specified by pspec on object.

    This function omits the property name lookup, hence it is faster than g_object_notify().

    One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:

      typedef enum
    {
    PROP_FOO = 1,
    PROP_LAST
    } MyObjectProperty;

    static GParamSpec *properties[PROP_LAST];

    static void
    my_object_class_init (MyObjectClass *klass)
    {
    properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
    0, 100,
    50,
    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
    g_object_class_install_property (gobject_class,
    PROP_FOO,
    properties[PROP_FOO]);
    }

    and then notify a change on the "foo" property with:

      g_object_notify_by_pspec (self, properties[PROP_FOO]);
    

    Parameters

    Returns void

  • Gives the name of all set options.

    Returns string[]

    A null terminated array of key names. If no names are present, this returns null. The returned array and the names are owned by %NMSetting and might be invalidated by the next operation.

  • Parameters

    • opt_name: string

      the option to get

    Returns [boolean, boolean]

    true if opt_name is set to a boolean variant.

  • Parameters

    • opt_name: string

      the option to get

    Returns [boolean, number]

    true if opt_name is set to a uint32 variant.

  • If variant is null, this clears the option if it is set. Otherwise, variant is set as the option. If variant is a floating reference, it will be consumed.

    Note that not all setting types support options. It is a bug setting a variant to a setting that doesn't support it. Currently, only NM.SettingEthtool supports it.

    Parameters

    • opt_name: string

      the option name to set

    • Optionalvariant: GLib.Variant<any>

      the variant to set.

    Returns void

  • Like nm_setting_option_set() to set a boolean GVariant.

    Parameters

    • opt_name: string
    • value: boolean

      the value to set.

    Returns void

  • Like nm_setting_option_set() to set a uint32 GVariant.

    Parameters

    • opt_name: string
    • value: number

      the value to set.

    Returns void

  • Increases the reference count of object.

    Since GLib 2.56, if GLIB_VERSION_MAX_ALLOWED is 2.56 or greater, the type of object will be propagated to the return type (using the GCC typeof() extension), so any casting the caller needs to do on the return type must be explicit.

    Returns GObject.Object

    the same object

  • Increase the reference count of object, and possibly remove the [floating][floating-ref] reference, if object has a floating reference.

    In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.

    Since GLib 2.56, the type of object will be propagated to the return type under the same conditions as for g_object_ref().

    Returns GObject.Object

    object

  • Releases all references to other objects. This can be used to break reference cycles.

    This function should only be called from object system implementations.

    Returns void

  • Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.

    Parameters

    • properties: { [key: string]: any }

      Object containing the properties to set

    Returns void

  • Each object carries around a table of associations from strings to pointers. This function lets you set an association.

    If the object already had an association with that name, the old association will be destroyed.

    Internally, the key is converted to a GLib.Quark using g_quark_from_string(). This means a copy of key is kept permanently (even after object has been finalized) — so it is recommended to only use a small, bounded set of values for key in your program, to avoid the GLib.Quark storage growing unbounded.

    Parameters

    • key: string

      name of the key

    • Optionaldata: any

      data to associate with that key

    Returns void

  • Sets a property on an object.

    Parameters

    • property_name: string

      The name of the property to set

    • value: any

      The value to set the property to

    Returns void

  • Remove a specified datum from the object's data associations, without invoking the association's destroy handler.

    Parameters

    • key: string

      name of the key

    Returns any

    the data if found, or null if no such data exists.

  • This function gets back user data pointers stored via g_object_set_qdata() and removes the data from object without invoking its destroy() function (if any was set). Usually, calling this function is only required to update user data pointers with a destroy notifier, for example:

    void
    object_add_to_user_list (GObject *object,
    const gchar *new_string)
    {
    // the quark, naming the object data
    GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
    // retrieve the old string list
    GList *list = g_object_steal_qdata (object, quark_string_list);

    // prepend new string
    list = g_list_prepend (list, g_strdup (new_string));
    // this changed 'list', so we need to set it again
    g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
    }
    static void
    free_string_list (gpointer data)
    {
    GList *node, *list = data;

    for (node = list; node; node = node->next)
    g_free (node->data);
    g_list_free (list);
    }

    Using g_object_get_qdata() in the above example, instead of g_object_steal_qdata() would have left the destroy function set, and thus the partial string list would have been freed upon g_object_set_qdata_full().

    Parameters

    • quark: number

      A GLib.Quark, naming the user data pointer

    Returns any

    The user data pointer set, or null

  • Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.

    Parameters

    • detailedName: string

      Name of the signal to stop emission of

    Returns void

  • Reverts the effect of a previous call to g_object_freeze_notify(). The freeze count is decreased on object and when it reaches zero, queued "notify" signals are emitted.

    Duplicate notifications for each property are squashed so that at most one GObject.Object::notify signal is emitted for each property, in the reverse order in which they have been queued.

    It is an error to call this function when the freeze count is zero.

    Returns void

  • Convert the setting (including secrets!) into a string. For debugging purposes ONLY, should NOT be used for serialization of the setting, or machine-parsed in any way. The output format is not guaranteed to be stable and may change at any time.

    Returns string

    an allocated string containing a textual representation of the setting's properties and values, which the caller should free with g_free()

  • Decreases the reference count of object. When its reference count drops to 0, the object is finalized (i.e. its memory is freed).

    If the pointer to the GObject.Object may be reused in future (for example, if it is an instance variable of another object), it is recommended to clear the pointer to null rather than retain a dangling pointer to a potentially invalid GObject.Object instance. Use g_clear_object() for this.

    Returns void

  • Validates the setting. Each setting's properties have allowed values, and some are dependent on other values (hence the need for connection). The returned GLib.Error contains information about which property of the setting failed validation, and in what way that property failed validation.

    Parameters

    • Optionalconnection: NM.Connection

      the NM.Connection that setting came from, or null if setting is being verified in isolation.

    Returns boolean

    true if the setting is valid, false if it is not

  • Verifies the secrets in the setting. The returned GLib.Error contains information about which secret of the setting failed validation, and in what way that secret failed validation. The secret validation is done separately from main setting validation, because in some cases connection failure is not desired just for the secrets.

    Parameters

    • Optionalconnection: NM.Connection

      the NM.Connection that setting came from, or null if setting is being verified in isolation.

    Returns boolean

    true if the setting secrets are valid, false if they are not

  • the constructed function is called by g_object_new() as the final step of the object creation process. At the point of the call, all construction properties have been set on the object. The purpose of this call is to allow for object initialisation steps that can only be performed after construction properties have been set. constructed implementors should chain up to the constructed call of their parent class to allow it to complete its initialisation.

    Returns void

  • the dispose function is supposed to drop all references to other objects, but keep the instance otherwise intact, so that client method invocations still work. It may be run multiple times (due to reference loops). Before returning, dispose should chain up to the dispose method of the parent class.

    Returns void

  • Emits a "notify" signal for the property property_name on object.

    When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.

    Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.

    Parameters

    Returns void

  • the generic setter for all properties of this type. Should be overridden for every type with properties. If implementations of set_property don't emit property change notification explicitly, this will be done implicitly by the type system. However, if the notify signal is emitted explicitly, the type system will not emit it a second time.

    Parameters

    Returns void

  • This function essentially limits the life time of the closure to the life time of the object. That is, when the object is finalized, the closure is invalidated by calling g_closure_invalidate() on it, in order to prevent invocations of the closure with a finalized (nonexisting) object. Also, g_object_ref() and g_object_unref() are added as marshal guards to the closure, to ensure that an extra reference count is held on object during invocation of the closure. Usually, this function will be called on closures that use this object as closure data.

    Parameters

    Returns void

  • Get the type of the enum that defines the values that the property accepts. It is only useful for properties configured to accept values from certain enum type, otherwise it will return G_TYPE_INVALID. Note that flags (children of G_TYPE_FLAGS) are also considered enums.

    Note that the GObject property might be implemented as an integer, actually, and not as enum. Find out what underlying type is used, checking the GObject.ParamSpec, before setting the GObject property.

    Parameters

    • setting_type: GType

      the GType of the NMSetting instance

    • property_name: string

      the name of the property

    Returns GType

  • Add a property to an interface; this is only useful for interfaces that are added to GObject-derived types. Adding a property to an interface forces all objects classes with that interface to have a compatible property. The compatible property could be a newly created GObject.ParamSpec, but normally g_object_class_override_property() will be used so that the object class only needs to provide an implementation and inherits the property description, default value, bounds, and so forth from the interface property.

    This function is meant to be called from the interface's default vtable initialization function (the class_init member of GObject.TypeInfo.) It must not be called after after class_init has been called for any object types implementing this interface.

    If pspec is a floating reference, it will be consumed.

    Parameters

    Returns void

  • Parameters

    • property_id: number

      the new property ID

    • name: string

      the name of a property registered in a parent class or in an interface of this class.

    Returns void

Interfaces

ConstructorProps
SignalSignatures