From Fedora Project Wiki



NetworkManager - 0.8

The NetworkManager Project was initiated in 2004 by Red Hat aiming to provide Linux users with a pleasant networking configuration experience.

NetworkManager is divided into 2 different components:

  • a service that manages and reports network changes;
  • a graphical desktop applet that allow users to manipulate network connections.

The graphical applet is available for GNOME, KDE and Xfce and follows the Systray Protocol from OpenDesktop.

The current NetworkManager Project upstream maintainer is Dan Williams (2005-2010).

Fedora 13; GNOME 2.30.0; nm-applet credits

For most users NetworkManager is mainly associated with nm-applet and KNetworkManager; being the last started by Novell in 2008 and is a part of the K Desktop Environment. The applets provide a user-friendly interface for configuring networking in Linux.

Currently NetworkManager supports the following:

  • Wired Ethernet Devices
  • Wireless Ethernet Devices
    • Unencrypted
    • WEP
    • WPA Personal and WPA Enterprise
  • Mobile Broadband Devices (GSM, CDMA, UMTS, etc)
  • Virtual Private Networks (OpenVPN, vpnc, openconnect, PTPP)
  • Dial-up (PPP) and xDSL (PPPoE)

NetworkManager in Fedora 13

Dan Williams, the maintainer of NetworkManager, has provided the community with a very elucidative post about NetworkManager 0.8, which he labels "the taste of a new generation". The original publication can be consulted here.

In addition to the information provided by Dan on his awesome post, we would like to highlight the new NetworkManager release 0.8.1, which ships in Fedora 13 "Goddard" and includes new features such as:

  • DHCPv6
  • Bluetooth DUN
  • Mobile Broadband Status

In Fedora 13 "Goddard", NetworkManager is installed by default, including the applets for the Desktop Environment installed (GNOME, KDE, Xfce).

NetworkManager - GNOME

Fedora 13 users with GNOME installed will have nm-applet available on gnome-panel. By default it will search available networks and can be easily configured, providing the Fedora 13 user an easy and fast way to configure networking on the fly; either by creating new connections or by editing existing connections. In addition it also provides information on other aspects, like the last time connections were used, signal strength, etc.

Fedora 13; GNOME 2.30.0; nm-applet network information.
Fedora 13; KDE 4.4.2; KNetworkManager network information.

NetworkManager - KDE

Just like its GNOME counterpart, KDE provides an applet interface for NetworkManager, known as KNetworkManager. This application development was started by Novell and provides an integrated QT-based experience with similar usage and configuration as its GNOME counterpart, nm-applet.

Network Configuration - Example (nm-applet)

GNOME users will find a small icon on gnome-panel (nw-applet), placing the cursor over it will allow the user to perform two tasks:

  • right click > opens a dialog box which allows to enable networking for several devices and edit configuration (amongst others);
  • left click > opens a networking status box that allows the user to connect to a configured network, create new networks and manage VPN connections.

Lets imagine that I would like to configure a new Wireless Connection to a network that requires user authentication through Dynamic WEP/PEAP/MSCHAP V2. Most wireless networks will be detected by NetworkManager (establishing that your hardware is supported and is enabled). To accomplish this, one of the possible methods would be:

  • Right Click nm-applet and seclect Edit Connections. The following box should appear on your screen:
nm-applet "Network Connections" screen; GNOME 2.30.0.
  • From here, select the Wireless tab, and the available wireless networks will be displayed. At this point select the network you want to edit and press Edit.
  • A new box will be displayed for the network connection that was selected in the previous point that should look like this:
nm-applet "Editing 'Connection Name'" screen; GNOME 2.30.0.
  • From this box the user can do the following:
    • Wireless tab: change SSID, Mode, Mac Address, BSSID and MTU. In most cases there is no need to change anything here. Remember to check Connect automatically for such feature.
    • Wireless Security tab: For this example, as explained before the user should select the following:
      • Security: Dynamic WEP (802.1x);
      • Authentification: Protected EAP (PEAP);
      • Anynimous Identity: We aren't going to use this one for our example;
      • CA Certificate: Leave blank (for this example);
      • PEAP Version: Select Automatic;
      • Inner Authentification: Select MSCHAPv2;
      • Username: Enter your username;
      • Password: Enter your password;
      • Look for the rest of the checkboxes and check them if applicable.
    • IPv4 Settings: Usually DHCP will do the trick, including on this example.
    • Press Apply.

At this stage NetworkManager will take a couple of seconds to log you into your network. Rock it.

Please be mindful that this is just an example of what could be a network. Wireless networks can use other methods for authentication, make sure you contact your system administrator or provider in order to get the proper credentials.

Also be mindful that I used GNOME's nm-applet for this example. Users with KDE have KNetworkManager instead of nm-applet which is very similiar and works in the same way.

Users having problems can seek help provided by Fedora Community volunteers on Freenode IRC Network on general channel: #Fedora. Be mindful that support on this IRC Channel is available only for some versions, usually the latest shipping version. An IRC chatting application is usually required for this. Some available are:

  • X-Chat - Distributed with Fedora (can be installed with: yum install chat).
  • Konversation - Popular with KDE users and installed by default with KDE.

Message to our Users

The Fedora Project is oriented to strive for leadership and not to follow. As many other community projects in the FOSS universe, it's success depends on it's growing number of contributors. Many people choose not to get involved, and we still thank them for placing their trust in Fedora Linux distribution. Much of the success of Fedora comes from the important bug reports that are submitted by our users, in this line of field, we would like to highlight this: Fedora hopes that all our users enjoy as much Fedora Linux as our contributors enjoy working for it to happen every 6 months, providing leading technology and a free open source operating system.

Keep feeding us with bug reports as our twisted monkeys will continue processing them!

On behalf of: Fedora Marketing Team and Fedora Community.

Interview with Dan Williams

On behalf of Fedora Marketing Team and in scope of the Feature Profiles for NetworkManager I had the privilege of interviewing Dan Williams, upstream maintainer for NetworkManager since 2005 and Red Hat Inc. employee. Dan had done a great work by inserting on the Fedora Project wiki countless information about NetworkManager, that's the main reason why the interview was focused more on the Developing Enviroment and Community than on NetworkManager features itself. This interview was short and accomplished by email, which was promptly answer by Dan. I would like to thank him for his time for allowing this to happen.

The interview will be posted un-edited and in full.

Interview

#1 - How would you characterize your involvement with Fedora and FOSS Communities?
Dan Williams: I've been working for Red Hat since 2003, originally on OpenOffice.org, but since 2005 as the upstream project maintainer for NetworkManager, ModemManager, and a few other things. I was also heavily involved in OLPC from 2005 - 2007, helping plan and implement core features of Sugar and OLPC wireless.

I act as an advocate for users by attending the various kernel wifi summits and being involved on Linux wireless mailing lists (hostap/wpa_supplicant, linux-wireless, etc). Through this capacity we've been able to move Linux wireless forward quite a bit versus 2004/2005.


#2 - From your scope of view, what are the barriers that potential developers face when they try to join FOSS Projects?
DW: Probably #1 is lack of upstream guidance; when a potential developer shows up, often upstream developers don't have a ton of time to help nurture that developer through some of the initial stages, because they have so much to do. It's a very fine line; you can spend 75% of your time helping new potential developers and then you don't hit your feature targets because you didn't spend enough time coding.

What helps that is documentation; if you put beginning documentation up somewhere then you can direct new developers to that instead of repeating over and over each time one shows up. Or, if there are other community members that can handle this duty while you concentrate on the tougher questions.

Filling that role (called "developer relations" in larger companies) is a great job for somebody who can't commit tons of time to the project, but who is still willing to periodically build the source (even if they don't fix core bugs) and answer emails.


#3 - What would be your personal advice for potential developers who would willing to help with NetworkManager?
DW: Keep asking questions; no question is too stupid or embarrassing to ask. Then, when you understand the solution to your question, tell us how to improve the documentation so other people benefit too. Since we've been involved in the project for a long time, we don't always know what the initial roadblocks are to building the source, understanding the architecture, etc.


#4 - In what fields would new developers get competencies (skill improvement) when developing for NetworkManager?
DW: How to use D-Bus, GObject, and PolicyKit, how the whole networking system interacts, how 3G modems are driven, netlink APIs, parsing system network configuration files, etc. It really depends on what part of the NM you're looking at since there are lots of things going on.


#5 - What would be your advice to normal users to contribute actively for FOSS in bug reporting? Could you profile the importance of such contributions?
DW: Learn how to provide good bug reports. I've tried to put up a page here describing what should be added to a good bug report for NetworkManager: http://live.gnome.org/NetworkManager/Debugging.

The #1 and #2 items missing from many bug reports is what package version of NM you've experienced the bug with, and what hardware you're using. As the Fedora project, we should work harder to automate the collection of this information like Ubuntu has done with Launchpad. This stuff should really be automatic, but for now we'll need users to do it for us.


#6 - Could your tell us some of the major achievements achieved in the last 6 months on NetworkManager development?
DW: We rolled out NetworkManager 0.8; I've written a blog post on it here: The Taste of a New Generation.

Note that Fedora 13 is shipping stabilized snapshots of NM 0.8.1 that include quite a bit more functionality than is listed in that post, like DHCPv6, Bluetooth DUN, and Mobile Broadband status.


#7 - What distribution/tools do you use for development of NetworkManager?
DW: I develop mainly on Fedora, though occasionally I do a build on Ubuntu when I need to dig into a problem there and the Ubuntu team hasn't been able to debug it further.

I use gnome-terminal with multiple tabs for workflow (usually have NetowrkManager's directory open in one tab, ModemManager's in another, and network-manager-applet's in a third), and GEdit for actual coding. No, I don't use emacs or vi, mainly because I started coding on Mac OS long ago and all the tools there are GUI development environments. GEdit does 95% of what most people really need from an editor, and I've never been a fan modal editors like emacs/vi probably because I used something else first.

The Fedora Foundations by Dan Williams

As a part of the interview with Dan, I've finalized asking him his personal interpretation of the Fedora Project Foundations (Freedom, Friends, Features and First).

  • Freedom: it's about Free Software; we don't make compromises. If it's not free, or it's patent encumbered, we don't ship it. You're completely free to redistribute, remix, and modify anything we ship.
  • Friends: both working on Fedora and using Fedora should be fun; we shouldn't discriminate or make users feel unwelcome. Our discussions should be civilized, avoid personal attacks, and simply get to the bottom of the issue. Obviously there will be disagreements, but these need to be settled nicely.
  • Features: we build new features through the community. We don't develop them behind closed doors, almost all of what we do is out there in git repositories and on wiki pages. We have lots of different users, and we try to add new features that help all these users out, not just one particular group.
  • First: we're cutting-edge; we drive new features into Fedora before most other distros get them, but we also try to ensure those features are stable enough for our users. This is hard to get right, but we seem to be doing it pretty well so far.


Fedora Project Foundations

Quote of the day

  • "It's been a great ride over the last 7 years." - Dan Williams, 14th April 2010.


Biography

File:Interviews DanWilliams Picture1.jpg
Dan Williams

Dan Williams is a Senior Software Engineer in the Red Hat Desktop Team. He joined Red Hat Inc. in 2003 to work on the OpenOffice Suit, due to his involvement on the Mac OS X port of OpenOffice. In 2004 he was asked by Havoc to "look at making networking not suck (because it really, really did" (Williams, 2010). This led Dan to start working on NetworkManager from whom he is the upstream maintainer since 2005.

Dan Williams was also part of the original Red Hat team working on the OLPC (One Laptop Per Child) along with:

  • John Palmieri;
  • Marco Pessenti-Gritti;
  • Chris Blizzard;
  • David Woodhouse;
  • Marcelo Tosati;
  • Seth Nickell;
  • Brian Clark;
  • et all.

"It's been a great ride over the last 7 years" - Dan Williams, 2010.


Links of Interest