diff options
author | Thomas Haller <thaller@redhat.com> | 2020-06-03 18:47:10 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-06-03 20:03:34 +0200 |
commit | e171ae5f7a08062bbb41c0127487e6770926e447 (patch) | |
tree | 084dd71bb2d4997cd442e67d5e2f0530795be764 | |
parent | 462877084f2ccd5ce365d022b08783ba75e8924c (diff) | |
download | NetworkManager-e171ae5f7a08062bbb41c0127487e6770926e447.tar.gz |
TODO: drop completed item "Internet Connectivity Detection Enhancements"
This is mostly done. What is not done is to delay the ACTIVATED state
until the connectivty check passed. Delaying that might be problematic
and should only be done as opt-in. Unclear whether that would ever be useful
though.
-rw-r--r-- | TODO | 33 |
1 files changed, 0 insertions, 33 deletions
@@ -1,39 +1,6 @@ So you're interested in hacking on NetworkManager? Here's some cool stuff you could do... -* Internet Connectivity Detection Enhancements - -Current connectivity checking is global, while what we really want is to check -connectivity per-interface and update the global state based on the composite -of each device's state. Unfortunately that requires two things: - -1) latest libsoup and glib for using libsoup connection state signals, which - allow us to set socket options before the actual connection is made; here - we'd bind the socket to the specific IP address of the interface we're - using, and possibly set SO_BINDTODEVICE as well -2) setting /proc/sys/net/ipv4/conf/<iface>/rp_filter to "2" which tells the - kernel to route the incoming and outgoing packet properly even though the - interface may not have the necessary routes - -The first is the largest obstacle, but ideally we implement this and enable it -when we have the required glib and libsoup versions available. One other -complication is that this checking should be done during the -NM_DEVICE_STATE_IP_CHECK phase (along with other operations like Wi-Fi hotspot -auto-login) while the current checks are done globally in nm-manager.c, so -keeping both code paths might be complex. - -But ideally, once the device has successfully gotten an IPv4 or IPv6 address, it -should enter the state NM_DEVICE_STATE_IP_CHECK, where a connectivity check is -started. After the check returns, the device would set a property in -NMDevicePrivate to indicate whether Internet access was successful or not, and -advance to the NM_DEVICE_STATE_ACTIVATED state. - -The NMManager object, when determining the overall NM_STATE_* state in the -nm_manager_update_state() function, would query this property and set -NM_STATE_CONNECTED_LOCAL, NM_STATE_CONNECTED_SITE, or NM_STATE_CONNECTED_GLOBAL -based on it and the device's state. - - * Implement NM_DEVICE_STATE_DISCONNECTING To allow for "pre-down" scenarios, this state should be implemented before a |