NetworkRoaming

Revision 3 as of 2006-11-05 21:04:37

Clear message

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.

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.

Scope

Changes will be made to:

  • network-manager code
  • network-admin strings? ("DHCP" -> "Dynamic Control")

  • 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

Data preservation and migration

Unresolved issues

  • Bad kernel drivers
    • functioning... at all
    • signal level reporting may not work
    • power saving
    • maintain "good" driver list?
  • Software kill switches...
  • DNS configuration clobbering
  • 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 plugin 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


CategorySpec