NetworkManager/src
Thomas Haller 2cc1813340 core: workaround configuring IPv6 routes with "src" (RTA_PREFSRC)
Kernel does not allow to add IPv6 routes with "src", as long as the
corresponding address is still tentative (related bug rh#1457196).

The workaround for this is cumbersome. First, when we fail to add such a
route with "pref_src", we guess that it happend due to this issue. In
that case, nm_ip6_config_commit() returns the list of routes that could
not be added for the moment (but hopefully can be added later).

We track this list in NMDevice, and keep trying to merge the routes
back into ip6_config. In order to not try indefinitely, keep track of a
timestamp when we tried to add this route for the first time.

Another uglyness is that pending tentative routes don't explicitly block
activation. In practice they may do, because for these routes we also have
an IPv6 address that is still doing DAD, so the IP configuration is
still pending due to that.

https://bugzilla.redhat.com/show_bug.cgi?id=1452684
2017-09-15 17:28:48 +02:00
..
devices core: workaround configuring IPv6 routes with "src" (RTA_PREFSRC) 2017-09-15 17:28:48 +02:00
dhcp dhcp: dhclient: remove the --timeout argument from the command line 2017-09-15 12:15:55 +02:00
dns core: support tracking default-route in NMIP4Config/NMIP6Config 2017-09-08 11:11:21 +02:00
dnsmasq all: use _nm_utils_ip4_*() utils functions 2017-09-05 18:44:04 +02:00
ndisc core: move setting NDisc addresses/routes to NMIP6Config 2017-08-24 10:48:03 +02:00
platform core: workaround configuring IPv6 routes with "src" (RTA_PREFSRC) 2017-09-15 17:28:48 +02:00
ppp core: ppp: use a different unit for each activation 2017-08-05 08:03:16 +02:00
settings ifnet: ensure an error is always returned when add fails 2017-09-07 15:09:15 +02:00
supplicant supplicant: don't allow scans to trigger a supplicant roaming decision 2017-08-11 12:35:01 -05:00
systemd systemd: merge branch systemd into master 2017-09-04 12:52:54 +02:00
tests core: adjust route equality for NMIP4Config/NMIP6Config to what kernel does 2017-09-13 08:17:31 +02:00
vpn core: workaround configuring IPv6 routes with "src" (RTA_PREFSRC) 2017-09-15 17:28:48 +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 core: don't enable setrlimit(RLIMIT_CORE) when running with address sanitizer 2017-05-24 13:56:12 +02:00
NetworkManagerUtils.c core: add nm_utils_connection_has_default_route() 2017-09-08 11:05:04 +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 device: fix taking over device after modifying external connection 2017-06-19 14:57:48 +02: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 checkpoint: better restore device managed state on rollback 2017-08-28 10:00:50 +02: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 config: add an API to disable connectivity check via internal config file. 2017-08-17 22:31:47 +02:00
nm-config-data.h config: add an API to disable connectivity check via internal config file. 2017-08-17 22:31:47 +02:00
nm-config.c config: write connectivity=true to internal state file 2017-08-21 12:18:13 +02:00
nm-config.h config: add an API to disable connectivity check via internal config file. 2017-08-17 22:31:47 +02:00
nm-connectivity.c config: add an API to disable connectivity check via internal config file. 2017-08-17 22:31:47 +02:00
nm-connectivity.h device: add default route penalty only if concheck is enabled 2017-05-04 11:07:40 +02:00
nm-core-utils.c all: use _nm_utils_ip4_*() utils functions 2017-09-05 18:44:04 +02:00
nm-core-utils.h core: add nm_utils_ip4_address_same_prefix() function 2017-09-13 08:17:31 +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-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: support tracking default-route in NMIP4Config/NMIP6Config 2017-09-08 11:11:21 +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 firewall: use CList to track pending_calls 2017-05-11 18:26:10 +02:00
nm-firewall-manager.h firewall: merge "started" signal and "available" property 2017-04-21 09:09:01 +02:00
nm-hostname-manager.c core,cli: replace wrong pattern for clearing GError 2017-06-27 09:42:28 +02:00
nm-hostname-manager.h hostname: cache hostname-manager's hostname property 2017-05-12 17:29:33 +02:00
nm-iface-helper.c core: workaround configuring IPv6 routes with "src" (RTA_PREFSRC) 2017-09-15 17:28:48 +02:00
nm-ip4-config.c core: workaround configuring IPv6 routes with "src" (RTA_PREFSRC) 2017-09-15 17:28:48 +02:00
nm-ip4-config.h core: track IPv4 device routes in NMIP4Config 2017-09-13 08:17:31 +02:00
nm-ip6-config.c core: workaround configuring IPv6 routes with "src" (RTA_PREFSRC) 2017-09-15 17:28:48 +02:00
nm-ip6-config.h core: workaround configuring IPv6 routes with "src" (RTA_PREFSRC) 2017-09-15 17:28:48 +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: add LOG3 macros 2017-06-08 21:50:23 +02:00
nm-manager.c core: don't require manageable device in unmanaged_to_disconnected() 2017-09-04 21:49:35 +02:00
nm-manager.h manager: add connectivity-check-{available,enabled} properties. 2017-08-17 22:31:47 +02:00
nm-netns.c core: rework handling of default-routes and drop NMDefaultRouteManager 2017-09-08 11:11:21 +02:00
nm-netns.h core: rework handling of default-routes and drop NMDefaultRouteManager 2017-09-08 11:11:21 +02:00
nm-pacrunner-manager.c core: support tracking default-route in NMIP4Config/NMIP6Config 2017-09-08 11:11:21 +02:00
nm-pacrunner-manager.h proxy: introduce call-id for clearing pacmanager configuration 2017-04-23 18:12:09 +02:00
nm-policy.c core: rework handling of default-routes and drop NMDefaultRouteManager 2017-09-08 11:11:21 +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-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 platform: add compare functions for routes with different compare semantics 2017-08-03 18:32:59 +02:00
nm-types.h core: rework handling of default-routes and drop NMDefaultRouteManager 2017-09-08 11:11:21 +02:00
org.freedesktop.NetworkManager.conf dbus: allow firewalld to communicate with NetworkManager 2017-04-21 13:38:21 +02:00