From Fedora Project Wiki

Build & distributions

I would like to remove --with-distro. Currently only initscripts are need it and I would like to remove them and leave them up to distributions (if we can't have one mostly working initscript).

Interfaces

Ethernet bridges and bonds work in 'pavlix/next'. They should work in any combination with VLAN, which I didn't test (dcbw/danw might know more).

Interface management policy: monitored, lightly-managed, fully-managed

Default interface policy, overridden interface policy with matching.

Connections

Support temporary connections. Temporary connections could be made permanent (saved to disk), modified or reset to the permanent version (rollback). Access to write to both temporary and permanent connections and for copying infromation in both directions.

Could it be possible to limit the number of (default route) connections to one?

IP configuration

Manual configuration works but gateway still can't be specified separately.

IPv6 router advertisements are handled by the kernel. SLAAC and RA DNS options work. D HCPv6 works. The 'DHCP Only' method is both broken and useless, should be removed. Methods should be more consistent between IPv4 and IPv6.

Platform interaction

I want to have platform interaction in one place (NMPlatform class in 'pavlix/next'). Other module should not depend on NMNetlinkMonitor

Configuration simplification

Currently a configuration file for Ethernet looks like this:

[connection]
id=Ethernet
uuid=d880f3bb-8c51-4ca4-aef7-1954e022820f
type=802-3-ethernet

[802-3-ethernet]
mac-address=52:54:00:eb:e9:fb

I would like it to look more like this:

[connection]
type=ethernet

[ethernet]
mac-address=52:54:00:eb:e9:fb

CLI

I would like to have a reasonable CLI covering almost all of NetworkManager possibilities and providing useful output.

Modularization

Some features of NetworkManager can be disabled at build time, some can be disabled by not including a plugin and some can be disabled at runtime. By carefully choosing which features should fall into which category, it is possible to make basic NetworkManager more compact and thus more suitable for embedded use or even initramfs use.

The network daemon

NetworkManager should be able to replace itself with the --replace command-line option and use a configuration directory specified by --config-dir option.

Regression testing

I want to have a fake NMPlatform and fake DHCP plugin implementations that would be used for complex (non-integration) tests of NetworkManager's behavior. I would like to test the following things for the beginning:

  • Ethernet
  • Manual IPv4 and IPv6
  • Automatic IPv4 and IPv6
  • Bridges, bonds and VLANs
  • Connection assumption

The tests would be fully automatic and would not depend on virtualization or root access. They would prevent regressions in critical parts of NetworkManager. The basic set testsuite would also be very quick.

Keyfile documentation

I already had to set up lots of testing configurations. It's probably time to start writing manpages.