Anaconda/Features/NetConfigForNM

= Refine Network Configuration Given NetworkManager as Default =

Summary
With NetworkManager as a Fedora X feature, we need to update the UI and backend code within anaconda to make sense for this.

Owner

 * Name: DavidCantrell

Current status

 * Targeted release: Fedora 10 (with at least IPv4 support)
 * Last updated: 2008-07-21
 * Percentage of completion: 25%

For Fedora 11, I plan to correct bugs and finalize the IPv6 support necessary for installation.

Detailed Description
Anaconda currently relies on the libdhcp (which, in turn, uses the libdhcp4client and libdhcp6client libraries) library for network device configuration. We discover the available devices in the system using udev and hal and then present a configuration interface for the user to collect configuration information. Once we have that information, we call libdhcp to bring up the device. The main problems with this are duplication of a lot of effort (other tools already do this) and the fact that we execute the DHCP and DHCPv6 clients via a library call, so the protocols are not followed correctly. Beyond that, we lack the capabilities for any new networking technologies that gain support in Fedora. Because we have our own configuration path, we cannot make use of those new tools.

Moving to NetworkManager in the installer will bring all of the current network interface management to the installer that the final system currently has.

Benefit to Fedora

 * Gain a more centralized network interface management tool for another part of the Fedora world (installation in this case).
 * Same tools used on the final system that are used during installation.
 * Possibility for other network interface installation scenarios (WPA wireless, mobile broadband, and so on).

Scope
anaconda:
 * Rework stage 1 network configuration to collect required information from the user and start NM.
 * Rework stage 2 network configuration interface to make more sense for a NM capable world.

NetworkManager:
 * Add IPv6 support and ifcfg-fedora plugin updates to support IPv6.

dhcpv6:
 * Allow NM to execute the dhcp6c client in the same manner as dhclient (might already work?).

Test Plan
Once NM is present in rawhide's anaconda environment, IPv4 support needs to be tested to ensure we have the same level of functionality that we currently have. IPv6 may not be complete for Fedora 10, but if it is, we should test that as well. By Fedora 11, IPv6 support should be done in NM.

To test a new capability gained by moving to NM, we should test WPA wireless network installations and ensure those work.

User Experience
Users should not notice a significant different with the way network configuration works during installation. Most of the changes are on the backend. Users will still be required to pick an interface to use and to fill in any required information such as WPA keys or static settings. For the stage 2 network configuration screen, users should notice a significantly simplified interface since we are relying on NetworkManager going forward.

Dependencies
None

Contingency Plan
Should NM integration in to anaconda completely fail, we can just ship what we currently have and shift the target release to Fedora 11.

Documentation
Might change documentation since some of the network configuration screens in anaconda may change.

Release Notes
Probably worth mentioning the new features we'll gain by moving to NetworkManager in anaconda.