diff options
| author | Michael Biebl <biebl@debian.org> | 2020-06-28 18:58:14 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2020-06-28 18:58:14 +0200 |
| commit | a54ac63bbf9b2c71026ac9028a8ffaf186cf3c82 (patch) | |
| tree | 6a32883bd916c4096357b35298beff6db8bcd0b5 /TODO | |
| parent | 45e8e1149027529194982212c804c0468aa01d98 (diff) | |
New upstream version 1.25.90 upstream/1.25.90
Diffstat (limited to 'TODO')
| -rw-r--r-- | TODO | 81 |
1 files changed, 36 insertions, 45 deletions
diff --git a/TODO b/TODO index a8785bbc..e24ef78e 100644 --- a/TODO +++ b/TODO @@ -1,51 +1,42 @@ 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 -device is taken down while it still has connectivity. If the device is -taken down because its ethernet carrier was dropped, or because the WiFi -connection was terminated by the supplicant, this state is pointless and should -be skipped. But if the user requested a manual "disconnect", or NM is dropping -connections on exit, etc, then this state should be entered. In the future -this state should hook into a new dispatcher action in src/NetworkManagerUtils.c -to exectue dispatcher scripts during the disconnection, and to wait a limited -amount of time for each script to complete before allowing the device to -proceed to the NM_DEVICE_STATE_DISCONNECTED state, fully implementing pre-down. +* Use netlink API instead of ioctl based ethtool. + +NetworkManager uses ethtool API to set/obtain certain settings of network +devices. This is an ioctl based API and implmented in "src/platform/nm-platform-utils.c". +Recently, kernel got a netlink API for the same functionality +(https://www.kernel.org/doc/html/latest/networking/ethtool-netlink.html). +NetworkManager should use this API if present, and fallback to the old API +when running on older kernels. The benefit if this is that netlink provides +notifications when settings change. The ethtool command line tool +also implements this API, however it is under an incompatible license, +so better don't look and make sure not to use the code. + + +* Add 802-1x capability to nmtui. + +Add dialogs to nmtui for 802-1x. This will be useful for ethernet (with 802-1x +port authentication), enterprise Wi-Fi and MACSec. From the GUI and dialog design, +possibly get inspired by nm-connection-editor. + + +* Add Azure support to nm-cloud-setup. + +nm-cloud-setup currently only works for EC2 (and only for IPv4). Add support for Azure +cloud. See for example SUSE's cloud-netconfig which supports Azure +(https://github.com/SUSE-Enceladus/cloud-netconfig, +https://www.suse.com/c/multi-nic-cloud-netconfig-ec2-azure/). Note that cloud-netconfig +is under an incompatible license, so be careful not to reuse any code. But that would +anyway be almost impossible, because one is written in bash and the other in C. + + +* Improve our gitlab-ci integration. + +Currently our .gitlab-ci starts various base containers and first installs +the necessary dependencies. That takes time and consumes bandwidth, we should +instead use more suitable containers. We should instead use ci-templates from +https://gitlab.freedesktop.org/freedesktop/ci-templates. * Ethernet Network Auto-detection |