WiFi Network Management
Created: 20/04/05 by MarkShuttleworth
This specification describes goals for WiFi networking in Ubuntu for the Breezy Badger release.
WiFi has established itself as the primary networking technology for mobile professionals. WiFi networks are in widespread use at the office and at home, as well as in many areas of temporary work such as coffee shops, hotels, airports and even on trains and planes. It's important that Ubuntu handle wifi networking efficiently, making it easy for people to connect to wifi networks for temporary or long-term connectivity.
Scope and Use Cases
WiFi networks might be used regularly for home or office connectivity, or people might connect briefly to a wifi network while they are traveling or visiting a new location. It's important that Ubuntu remember previous wifi networks and take advantage of them when given the opportunity. It's important that Ubuntu retain some sense of user preferences, when multiple networks are available, so that it will generally do the Right Thing.
Ubuntu should handle roaming, and the re-establishment of network connections after a period of ACPI sleep or a power down/startup cycle. The following use cases may be useful:
Thombi installs Ubuntu on a new laptop in the office. During installation Ubuntu detects an open WiFi network and attempts to connect to it. If successful, the installation verifies that it has Internet access and uses that connection to download updated packages and language packs for his system.
- Andreas has an Ubuntu laptop which connects via the wifi network in the office. He installs a wifi base station at home, connected to his broadband ADSL router, and connects to the internet at home via that network. Now, when he sleeps his laptop and wakes it in the office it automatically detects and uses that network, when he wakes it at home it automatically switches to the home wifi network, without any prompts or alerts.
- Jenni travels regularly via two airports. In each, there is a local wifi network. Since she has previously used these networks, they will automatically be detected and used if she powers up her laptop in either airport.
- William wants to be able to use his machine as an access point to allow his other computers to connect to the internet. He should be able to do this by selecting an option in the GUI tools.
This should be implemented as part of NetworkMagic. Most of these use cases actually collapse to "Correctly identify the network that I am attached to and behave appropriately". The wireless specific aspect of this functionality is effectively limited to
1. Identify available networks.
2. Prioritise available networks. Networks that have been previously used by the user should have higher priority.
3. If association is successful, pass on all known information to NetworkMagic to aid its discovery of network configuration.
4. Provide a list of available networks in order to allow users to override the automatic association.
5. Allow the user to provide a full set of configuration in order to allow connection to entirely hidden networks.
1. If the access point has been used before, use the WEP key that has been used with that access point.
2. If the SSID has been used before, use the WEP key that has been used with that SSID. If there are several, then cycle through them.
3. Prompt user for WEP key.
4. Give up.
1. If the access point has been used before, use the SSID that has been used with that access point.
2. Otherwise, cycle through the previously used SSIDs and attempt to associate.
3. Give up.
Network identification criteria (in order of preference)
1. Access point address
(A single network may have several access points. The same SSID may be used across several different networks. If a known AP is visible, then any other APs with the same SSID may be assumed to be known.)
Access point mode
If the card is capable of it, use master mode - otherwise set up in ad-hoc. If a wired network is present, bridge/NAT to it.
User Interface Requirements
1. Top level UI element providing signal strength
2. Drop down menu listing available networks (those broadcasting SSIDs, and those which aren't but are known APs)
3. Submenu (or window) providing previously used networks (combine with following?)
4. "Connect to other network" preference that allows for connection to new networks or choosing previously defined networks
On connecting to a network, the user should be prompted for a WEP key if necessary. The user should also be notified if association has failed.
A full list of known networks is required, along with the ability to assign priorities to them. The list of networks should be those that have been manually configured in some manner, those that are currently visible and the currently associated network.
Access point mode should be configured from gnome-network-preferences, not NetworkManager
(citizenDAK: Maybe my concerns below are misplaced? If so, please put instructive links here. Sorry, this firewall & routing stuff is complicated to me... and probably others too.)
- Because wireless networks are often NOT secure, always prompt user (1st time only) before joining a newly recognized WLAN?
- Don't auto-bridge (NAT) to wired-LAN without being told to...
- (I'm imagining scary circular bridging, when multiple Ubuntu clients walk into the area. Boy, our admin would just LOVE to configure THAT tangled set of firewall rules! EXAMPLE: wired LAN is inside firewall; WLAN is outside and clients use VPN to get access to inside resources; I DON'T want auto-bridging to bypass the firewall protection.)