NetworkManager/src
Thomas Haller 27b2477cb7 device: assume matching connections during first start
Since commit 2d1b85f (th/assume-vs-unmanaged-bgo746440), we clearly
distinguish between two modes when encountering devices with external
IP configuration:
 a) external devices. For those devices we generate a volatile in-memory
   connection and pretend it's active. However, the device must not be
   touched by NetworkManager in any way.
 b) assume, seamless take over. Mostly for restart of NetworkManager,
   we activate a connection gracefully without going through an down-up
   cycle. After the device reaches activated state, the device is
   considered fully managed. For this only an existing, non volatile
   connection can be used.

Before 'th/assume-vs-unmanaged-bgo746440', the behaviors were not
clearly separated.

Since then, we only choose to assume a connection (b) when the state
file indicates a matching connection. Now, extend this to also assume
connections when:

  - during first-start (not after a restart) when there is no
    state file yet.
  - and, if we have an existing, non volatile, connection which
    matches the device's configuration.

This patch lets NetworkManager assume connection also on first start.
That is for example useful when handing over network configuration from
initrd.

This only applies to existing, permanent, matching(!) connections, so it is a
good guess that the user wants NM to take over this interface. This brings us
closer to the previous behavior before 'th/assume-vs-unmanaged-bgo746440'.

https://bugzilla.redhat.com/show_bug.cgi?id=1439220
2017-04-20 14:20:04 +02:00
..
devices config: remove unused NMConfig self argument from nm_config_device_state_*() API 2017-04-20 14:19:56 +02:00
dhcp dhcp: dhclient: remove fqdn.encoded for dhclient -6 conf 2017-04-05 16:21:51 +02:00
dns logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
dnsmasq dnsmasq: use ipv4.dns and ipv4.dns-search with ipv4.method=shared 2017-03-03 13:51:05 +01:00
ndisc ndisc: log the device context 2017-03-24 12:42:09 +01:00
platform platform: detect SR-IOV support and allow changing the number of VFs 2017-04-18 22:47:32 +02:00
ppp ppp: allow disabling IPv4 too 2017-04-18 09:40:31 +02:00
settings ifcfg: don't complain if 8021x secrets are empty 2017-04-10 10:33:24 +02:00
supplicant supplicant: fix detection of PMF support 2017-04-19 10:36:21 +02:00
systemd systemd: merge branch systemd into master 2017-04-04 12:20:51 +02:00
tests config: add first_start paramter to NMConfig to detect restart 2017-04-20 14:19:56 +02:00
vpn device: don't use platform singleton getter in device subclasses 2017-04-18 15:49:14 +02:00
main-utils.c config: add first_start paramter to NMConfig to detect restart 2017-04-20 14:19:56 +02:00
main-utils.h all: cleanup includes in header files 2016-08-17 19:51:17 +02:00
main.c config: add first_start paramter to NMConfig to detect restart 2017-04-20 14:19:56 +02:00
NetworkManagerUtils.c src: only compare network parts of routes in nm_utils_match_connection() 2017-04-15 00:35:25 +02:00
NetworkManagerUtils.h manager: simplify searching assumed connection 2017-03-16 18:27:33 +01:00
nm-act-request.c active-connection: emit a StateChanged signal on state changes 2017-03-17 10:21:19 +01:00
nm-act-request.h core: add activation-type property to active-connection 2017-03-16 18:27:33 +01:00
nm-active-connection.c active-connection: log the connection context 2017-03-24 12:42:09 +01:00
nm-active-connection.h active-connection: emit a StateChanged signal on state changes 2017-03-17 10:21:19 +01:00
nm-audit-manager.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-audit-manager.h audit: add @args to device logging functions 2017-03-06 10:29:37 +01:00
nm-auth-manager.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-auth-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-auth-subject.c all: use "unsigned long" instead of "long unsigned" 2017-03-14 11:23:46 +01:00
nm-auth-subject.h auth: embed private data NMAuthSubjectPrivate in NMAuthSubject struct 2016-05-12 10:24:36 +02:00
nm-auth-utils.c auth-utils: fix possibly uninitialized variables 2017-04-07 11:52:16 -05:00
nm-auth-utils.h all: move NM_AUTH_PERMISSION_* defines to "nm-common-macros.h" header 2016-06-01 19:06:35 +02:00
nm-bus-manager.c core: introduce default logging macros 2016-10-14 15:57:43 +02:00
nm-bus-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-checkpoint-manager.c build: don't add subdirectories to include search path but require qualified include 2016-11-21 14:26:37 +01:00
nm-checkpoint-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-checkpoint.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-checkpoint.h checkpoint: introduce new flags to better restore previous state 2016-10-24 09:57:18 +02:00
nm-config-data.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-config-data.h core: allow setting SR-IOV num_vfs 2017-04-18 23:10:36 +02:00
nm-config.c config: add first_start paramter to NMConfig to detect restart 2017-04-20 14:19:56 +02:00
nm-config.h config: add first_start paramter to NMConfig to detect restart 2017-04-20 14:19:56 +02:00
nm-connectivity.c core: make connectivity checking per-device 2017-03-28 15:26:47 +02:00
nm-connectivity.h core: make connectivity checking per-device 2017-03-28 15:26:47 +02:00
nm-core-utils.c tests/general: allow error margin on comparing floats 2017-03-28 13:52:27 +02:00
nm-core-utils.h shared: move NM_UTILS_LOOKUP() macro shared utils 2017-04-05 16:53:06 +02:00
nm-dcb.c build: don't add subdirectories to include search path but require qualified include 2016-11-21 14:26:37 +01:00
nm-dcb.h all: cleanup includes in header files 2016-08-17 19:51:17 +02:00
nm-default-route-manager.c core: enable "log-with-ptr" by default for platform and route-manager 2017-04-18 15:49:14 +02:00
nm-default-route-manager.h device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-dhcp4-config.c exported-object: use NM_EXPORT_PATH_NUMBERED() macro 2017-01-03 15:40:17 +01:00
nm-dhcp4-config.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-dhcp6-config.c exported-object: use NM_EXPORT_PATH_NUMBERED() macro 2017-01-03 15:40:17 +01:00
nm-dhcp6-config.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-dispatcher.c core: make connectivity checking per-device 2017-03-28 15:26:47 +02:00
nm-dispatcher.h core/dispatcher: pass act-request to device dispatcher calls 2017-03-16 18:27:33 +01:00
nm-exported-object.c all: use "unsigned long" instead of "long unsigned" 2017-03-14 11:23:46 +01:00
nm-exported-object.h exported-object: add "path" GObject property to have notify signal 2017-01-25 13:12:08 +01:00
nm-firewall-manager.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-firewall-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-iface-helper.c device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-ip4-config.c device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-ip4-config.h device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-ip6-config.c device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-ip6-config.h device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-logging.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-logging.h logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-manager.c device: assume matching connections during first start 2017-04-20 14:20:04 +02:00
nm-manager.h core: add activation-type property to active-connection 2017-03-16 18:27:33 +01:00
nm-multi-index.c all: modify line separator comments to be 80 chars wide 2016-10-03 12:01:15 +02:00
nm-multi-index.h all: cleanup includes in header files 2016-08-17 19:51:17 +02:00
nm-netns.c device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-netns.h core: add NMNetns to bundle platform and route managers 2017-04-18 15:49:14 +02:00
nm-pacrunner-manager.c pacrunner: remove failed and pending items from configuration list 2017-04-07 15:15:27 +02:00
nm-pacrunner-manager.h pacrunner: rework processing of configuration entries 2017-04-06 08:57:35 +02:00
nm-policy.c device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-policy.h policy: add support to configurable hostname mode 2017-03-24 15:18:09 +01:00
nm-proxy-config.c proxy: reorder parts in nm-proxy-config.c and nm-pacrunner-manager.c 2016-10-04 11:58:32 +02:00
nm-proxy-config.h proxy: remove unnecessary APIs 2016-10-04 11:44:44 +02:00
nm-rfkill-manager.c udev: drop libgudev in favor of libudev 2017-03-22 12:41:06 +01:00
nm-rfkill-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-route-manager.c core: enable "log-with-ptr" by default for platform and route-manager 2017-04-18 15:49:14 +02:00
nm-route-manager.h device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-session-monitor.c session: make systemd-logind and elogind conflicting build options 2017-02-24 13:06:13 +01:00
nm-session-monitor.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-sleep-monitor.c session: make systemd-logind and elogind conflicting build options 2017-02-24 13:06:13 +01:00
nm-sleep-monitor.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-test-utils-core.h all: use "unsigned long" instead of "long unsigned" 2017-03-14 11:23:46 +01:00
nm-types.h core: add NMNetns to bundle platform and route managers 2017-04-18 15:49:14 +02:00
org.freedesktop.NetworkManager.conf dns: use DBus to make dnsmasq nameserver changes 2016-04-21 15:32:07 +02:00