NetworkRoaming

Differences between revisions 13 and 14
Revision 13 as of 2006-11-06 20:48:51
Size: 6820
Editor: 207
Comment: updates from drafting session
Revision 14 as of 2006-11-06 20:56:52
Size: 6975
Editor: s1-nat
Comment:
Deletions are marked like this. Additions are marked like this.
Line 25: Line 25:
 3. Bart should be able to run ifup / ifdown to manage his interfaces and other standard mechanisms (pre-up, post-down, etc) in previous Ubuntu releases.

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

Provide a better user experience when connecting/disconnecting to/from various dynamically configured networks. Must gracefully handle falling back to static configurations.

  • Add network-manager to default install.
  • Allow switching to static network assignments by adding hook to network-manager drop-down.
  • Allow switching to dynamic network assignements by adding hook to g-s-t's network-admin.
  • Allow activating/deactivating ifupdown interfaces in n-m, if code changes are minimal.

Rationale

For mobile users of Ubuntu, there is no easy default way to handle network roaming. While network-admin can allow for the configuration of both static and DHCP-controlled interfaces, wireless network selection is needed. While network-manager can be used for DHCP-controlled interfaces and wireless network selection, static network management is needed.

Use cases

  1. Brian travels between home, work, and conferences with his laptop. Each location has a wireless network available, but the available ESSIDs may not be known ahead of time. He wants a simple drop-down list of available wireless networks that he can connect to.
  2. Bryce takes his laptop with him on customer visits where he uses DHCP for his wired connections. However, when returning to the office, he needs to switch back to a static wired network assignment.
  3. Bart should be able to run ifup / ifdown to manage his interfaces and other standard mechanisms (pre-up, post-down, etc) in previous Ubuntu releases.

Scope

Changes will be made to:

  • network-manager code
  • network-admin code
  • ubuntu-desktop dependencies

Design

Currently in Ubuntu, network-manager totally ignores interfaces that have been modified in /etc/network/interfaces. To make n-m play nice with network-admin, the nm-applet drop-down will include a selection for "Switch to Static Configuration", at which point n-a is launched, and n-m is disabled. To switch back to a dynamic selection, an interface will need to be switched back to "DHCP" in n-a, at which point n-m will take over the interface again.

This is a stop-gap measure until upstream network-manager handles location-based static configurations. Pete Goodall will be communicating with Robert Love directly.

Implementation

Code

  • Add "Configure Network Manually" to left-click drop-down item in nm-applet, which launches network-admin.
  • Replace network-admin three-way icons with more obvious meanings for "disabled" "enabled" and "automatic configuration".
  • Add "Configure Automatically" button to network-admin to restore control to network-manager.
  • Use ifupdown to choose/control manually configured interfaces.
  • TODO: check strings/UI with mpt.

Data preservation and migration

Unresolved issues

  • DNS configuration clobbering

Areas of future discussion

  • Bad kernel drivers
    • functioning... at all
    • signal level reporting may not work
    • power saving
    • maintain "good" driver list?
  • Software kill switches...
  • suspend/resume bugs
  • pre-login networking needs (e.g. network authentication)
  • WPA support is weak
  • Icon display policy
    • Gnome says user should be able to select whether or not an icon is visible (for example, power-manager).
    • Having the icon visible by default is desirable for support, so that the user can quickly get to the "Connection Information" drop-down.
  • VPN plugins may be needed

BoF agenda and discussion

The wpasupplicant package brings basic roaming support, and is already in edgy. The wpa-roam support is limited to one interface, due to contraints of the ifupdown package.

Why using wpasupplicant as base for roaming? - It does already background scanning and selects the 'best' (as configured and prioritized) available network. It can be controlled from any client using a socket. For configuring new networks, the control interface can be used to add new neworks. The latest development version (which is in edgy as well) also introduces dbus bindings. Btw, NetworkManager relies on wpasupplicant as well for roaming AFAIUI.

For this spec, I'd suggest that a roaming policy daemon is designed, which integrates into wpasupplicant as 'action script'. wpasupplicant calls this action script each time a network is disconnected or connected. See wpa_cli(8) - parameter -a.

  • -- Reinhard Tartler

Comment

Instead of kludging back and forth between network-manager and network-admin, plus having a solution which relies on a working X11 session for networking to function (if you are in the wrong mode this could even effect wired access), how about the following:

  • wpasupplicant running as a daemon for each wireless interface (supported method of operation, no coding needed).
  • ifplugd managing connections / disconnections.
  • wpa_cli provides a very simple interface to wpasupplicant (lists available networks, connects to a network, saves the configuration).
  • The wpa_cli could be wrapped with a relatively small amount of effort, providing similar functionality to network-manager, plus being integrated with the normal network commands (I would be happy to write a python applet with some help or assist in writing this applet).
  • Continue to use the network-admin for locations (even better add a location swapper to the above wrapper).
  • Add resolvconf and a search field to the network-admin DNS configuration to allow search domains to work with DHCP (this is included with windows and OSX, and it's probably not just me that use it ;-).

This solution will also prevent a regression in advanced functionality, in order to use a simple / pretty interface (AFAIK, network-manager does not play well with others: resolvconf, guessnet, pre-up, post-up, etc.).

Finally do we want this use case: 3. Bill has a middling ability with Linux/Unix and has his laptop out on the road and something (himself or an update ;-), kill X and he wants to google for help but finds he can't connect to hot spots and has to ask someone on another OS.

Or this one: 3. Bill looses X, but thankfully his laptop connects to an open hotspot auto-magically, he finds a solution on google and is back in X 10 minutes later.

  • -- David Personette (dperson)

I don't have a WPA network to test with at the moment, but my understanding is that network-manager already handles WPA networks.


CategorySpec

NetworkRoaming (last edited 2010-02-19 07:04:04 by 174-21-210-157)