NetworkManager in anaconda, first series of changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here is the first patch to bring NetworkManager in to anaconda. The goals
during this patch:

* Make minimal changes to the current code.
* Bring NetworkManager in and use it starting in stage 1.
* Do not make changes to the NetworkManager related packages as they are
  in Fedora, just use them as is and pull in whatever we need.
* Be able to perform IPv4 installs over HTTP and NFS.

In an effort to ease patch-reading pain, I have split the patches up in to
some sort of logical groupings:

    0001-misc.patch
        Changes to anaconda.spec and command-stubs

    0002-scripts.patch
        Changes to upd-instroot and mk-images*

    0003-loader.patch
        Mostly changes to net.c at the moment, but other
        files have some changes.

    0004-isys.patch
        Changes to isys.  iface.c has most of it.  The
        wireless bits are gone.  And I am still working
        on isys.c.

What you are going to find in these patches:

1) Lots of changes to upd-instroot and mk-images. NetworkManager means we also bring in dbus, hal, PolicyKit, functions, network-functions, and other support programs called by those programs or scripts. dhclient is in there, along with dhclient-script (which uses bash), and dhcp6c.
   It's a truckload of stuff.

1a) Had to bring in /usr/lib/gconv because NM converts dhcp options to
Unicode. After talking with Dan Williams (dcbw, NM upstream), NM has been modified to not perform that conversion. When the new version of
    NM shows up in rawhide, I can dump /usr/lib/gconv.

3) A new function called writeDisabledNetInfo() which writes out ifcfg
   files for every found interface so we disable them by default.

4) The new iface.c stuff in isys.  This code starts NetworkManager and
   introduces a new type called iface_t.  This is meant to replace all
   uses of networkDeviceConfig and pumpNetIntf and all of the other
   various structs that hold net info.  Yes, there are a lot of flags
   and copies of data right now, but cleanup is later.  The rest of the
iface code is to provide a single API inside anaconda to get information about an interface (or set information). I expect the iface_t struct
   to get smaller, as well as flags in loaderData to disappear.

5) No more pump or libdhcp.


What works (or, what I've tested locally):

* IPv4 network installs over HTTP (and I guess FTP)
* IPv4 network installs over NFS

I've tested using DHCP and static configuration method.  NetworkManager
currently lacks complete support for IPv6, but that's on my to do list.

I want to make sure kickstart isn't completely busted either.


What is obviously not working correctly yet (read: I already know about it):

* Network configuration information is not carried over to stage 2 yet.
When you are at the post-config step for the network interfaces, it won't
  reflect the current state.

* Any wireless installs.  The get_connection() function in loader2/net.c
provides a loop to attach this kind of stuff. When NM wants more info,
  we can prompt here and continue to wait for it to bring up the link.

* IPv6 installs.  NetworkManager is currently not quite there yet, but
that's ok because neither are Fedora users in general. I am working on
  NM to bring IPv6 support in to it, at least for Fedora.


What I'm doing next:

* Fix bugs.
* Start removing deprecated code. In particular, STEP_NETWORK, STEP_IFACE,
  and STEP_IP need reworking.  In net.c, all of the functions can be
  simplified.
* Removal of network parameters in loaderData.
* Communicate more with NetworkManager over D-Bus.
* Add code that can prompt for required parameters as needed when NM asks for them (e.g., wireless settings or passwords). This will require the D-Bus communication bits to be in place. This step will bring us wireless
  WPA and WEP installs, for example.
* More patches to NetworkManager to support IPv6.


Comments welcome.  Would like to commit this ASAP.

--
David Cantrell <dcantrell@xxxxxxxxxx>
Red Hat / Honolulu, HI

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list

[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux