Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. NetworkManager Managing Networks Since the Summer of Aught Four Robert Love Claude Elwood Shannon Senior Engineer Linux Desktop Group rml at novell dot com
  2. 2. A Perfect Cover <ul><li>GNOME Users and Administrations </li></ul><ul><ul><li>A better, more secure network experience </li></ul></ul><ul><li>GNOME Developers </li></ul><ul><ul><li>API to control network interfaces, online/offline signals </li></ul></ul><ul><li>NetworkManager Hackers </li></ul><ul><ul><li>Join in! </li></ul></ul>
  3. 3. Feliz cumpleaños! <ul><li>On 24 June , NetworkManager turned 2 </li></ul><ul><li>Nearly 1000 commits </li></ul><ul><li>2 maintainers </li></ul><ul><li>50 commiters </li></ul><ul><li>4 VPN modules </li></ul><ul><li>7 supported distributions </li></ul><ul><li>35,000 lines of C code in daemon </li></ul><ul><li>14,000 lines of C in GNOME applet </li></ul><ul><li>8,000 lines of C++ in KDE applet </li></ul>
  4. 4. NetworkManager is All About Love <ul><li>NetworkManager brings people together </li></ul><ul><li>Two maintainers, one heart and soul </li></ul><ul><li>GNOME and KDE support </li></ul><ul><ul><li>interchangeable applets </li></ul></ul><ul><ul><li>shared daemon </li></ul></ul><ul><li>Converging distribution network infrastructures </li></ul><ul><ul><li>SUSE deeply integrates NetworkManager </li></ul></ul><ul><ul><li>Fedora and Ubuntu soon will </li></ul></ul><ul><ul><li>Gentoo, Slackware, others supported </li></ul></ul>
  5. 5. A Utopia for Networks <ul><li>Make networking Just Work </li></ul><ul><li>Networking as an appliance </li></ul><ul><li>Determine best connectivity option and make it happen </li></ul><ul><li>Wired networks </li></ul><ul><ul><li>carrier detect </li></ul></ul><ul><li>Wireless networks </li></ul><ul><ul><li>WEP, WPA Personal, WPA Enterprise </li></ul></ul><ul><li>Rudimentary PPP support </li></ul><ul><ul><li>ISDN, Modems, DSL </li></ul></ul>
  6. 6. The User Client <ul><li>The GNOME applet implements both UI and the user client </li></ul><ul><li>Stetic, beautiful, HIGtastic </li></ul><ul><li>Saves settings in Gconf, secrets in GNOME Keyring </li></ul><ul><li>Notifications via libnotify </li></ul>
  7. 7. Wireless Network Editors <ul><li>Tools to view and edit wireless networks </li></ul>
  8. 8. VPN Support <ul><li>Pluggable DBUS API for VPNs </li></ul><ul><ul><li>Think ISVs </li></ul></ul><ul><li>Current plugins: Cisco, PPTP, OpenVPN, and Nortel </li></ul><ul><li>Integrates into the NM stack </li></ul><ul><ul><li>VPN Editor and Wizard in the UI </li></ul></ul><ul><ul><li>One-click connect to VPN </li></ul></ul>
  9. 9. Design <ul><li>DBUS and HAL-based </li></ul><ul><li>No persistent knowledge of hardware </li></ul><ul><ul><li>NM receives all hardware information in real-time via HAL </li></ul></ul><ul><ul><li>Simultaneously handle multiple devices </li></ul></ul><ul><ul><li>Hotplug: Plug in wireless card and automatically setup & connect </li></ul></ul><ul><ul><li>No need to remember interface names or save configurations </li></ul></ul>
  10. 10. Architecture <ul><li>Two components: daemon and client </li></ul><ul><li>Daemon provides documented DBUS service </li></ul><ul><ul><li>Manages hardware & makes basic policy decisions </li></ul></ul><ul><ul><li>Runs as root </li></ul></ul><ul><ul><li>Client communicates with daemon and provides its own DBUS service </li></ul></ul><ul><ul><ul><li>Implements more complex policy </li></ul></ul></ul><ul><ul><ul><li>Provides per-user settings </li></ul></ul></ul><ul><ul><ul><li>List of trusted networks </li></ul></ul></ul><ul><ul><ul><li>Runs as user </li></ul></ul></ul>
  11. 11. Snag Control of DHCP and DNS <ul><li>Wrapped dhclient with DBUS interface, dhcdbd </li></ul><ul><ul><li>dhcdbdwhat? </li></ul></ul><ul><ul><li>DHClient DBus Daemon </li></ul></ul><ul><ul><li>DBUS-based control of DHCP client </li></ul></ul><ul><ul><li>signals in response to DHCP events </li></ul></ul><ul><li>Wrapped bind in DBUS </li></ul><ul><ul><li>Run as local caching name server </li></ul></ul><ul><ul><li>Better than glibc's resolver </li></ul></ul><ul><ul><li>Manage segmented name server setups, such as with VPNs </li></ul></ul><ul><ul><li>Optional (only RH ships, I think) </li></ul></ul>
  12. 12. NetworkManager API <ul><li>NetworkManager provides DBUS API for querying and controlling network interfaces </li></ul><ul><ul><li>libnm wraps with Gobject </li></ul></ul><ul><li>Interface for enumerating devices and wireless networks </li></ul><ul><li>Use to write new client (CLI?) or to augment other program </li></ul>
  13. 13. Online/Offline API <ul><li>DBUS Interface for determining if system is on or offline </li></ul><ul><ul><li>org.freedesktop.NetworkManager.state </li></ul></ul><ul><li>DBUS Signal for real-time notification of change in connectivity status </li></ul><ul><ul><li>org.freedesktop.NetworkManager.DeviceNowActive </li></ul></ul><ul><ul><li>org.freedesktop.orgNetworkManager.DeviceNoLongerActive </li></ul></ul><ul><ul><li>Evolution, Firefox, and Gaim </li></ul></ul><ul><li>NetworkManagerDispatcher system for running scripts and programs in response to connectivity change </li></ul><ul><ul><li>/etc/NetworkManager/dispatcher.d/* </li></ul></ul>
  14. 14. NetworkManager TODO <ul><li>FIX THE WIRELESS DRIVERS </li></ul><ul><li>Support multiple concurrent interfaces </li></ul><ul><ul><li>Multiple routes </li></ul></ul><ul><ul><li>Connection sharing </li></ul></ul><ul><li>NetworkManager Tile </li></ul><ul><ul><li>See JimmyK's talk on Tuesday </li></ul></ul><ul><li>Better PPP/Modem support </li></ul><ul><li>Add DBUS interface to wpa_supplicant </li></ul>
  15. 15. NetworkManager TODO, too <ul><li>Active Power management? </li></ul><ul><ul><li>See Pat's BOF on Thursday </li></ul></ul><ul><li>Nobody daemon / Policy Kit </li></ul><ul><ul><li>See DavidZ's talk on Wednesday </li></ul></ul><ul><li>System-wide configuration </li></ul><ul><ul><li>Store static configuration </li></ul></ul><ul><ul><li>System-wide trusted networks </li></ul></ul><ul><li>Profiles </li></ul><ul><li>GNOME Wireless Editor </li></ul><ul><ul><li>Under development </li></ul></ul><ul><li>CLI client </li></ul>
  16. 16. NetworkManager and GNOME <ul><li>nm-applet as part of GNOME Desktop release? </li></ul><ul><li>A daemon implementing the NetworkManager API as a dependency? </li></ul><ul><ul><li>Do not need to require NetworkManager proper, just the API </li></ul></ul><ul><ul><ul><li>As we do with HAL </li></ul></ul></ul><ul><li>Get more of the GNOME desktop using the NM API </li></ul>
  17. 17. Get Involved or Get Out <ul><li>Website: </li></ul><ul><li>TODO: </li></ul><ul><li>CVS: Module NetworkManager in </li></ul><ul><li>Mailing list: networkmanager-list at </li></ul><ul><li>Development branch is 0.7, stable branch is 0.6 </li></ul><ul><li>Happy Hacking! </li></ul>
  18. 18. NetworkManager Managing Networks Since the Summer of Aught Four Robert Love Claude Elwood Shannon Senior Engineer Linux Desktop Group rml at novell dot com
  19. 19. <ul><li>Unpublished Work of Novell, Inc. All Rights Reserved. </li></ul><ul><li>This work is an unpublished work and contains confidential, proprietary, and trade secret information of Novell, Inc. Access to this work is restricted to Novell employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of Novell, Inc. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. </li></ul><ul><li>General Disclaimer </li></ul><ul><li>This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. Novell, Inc., makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc., reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All Novell marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners. </li></ul>