Networking

Differences between revisions 20 and 21
Revision 20 as of 2010-06-23 16:33:42
Size: 14982
Editor: eth0
Comment: + testing instructions
Revision 21 as of 2010-07-22 10:04:41
Size: 14974
Editor: 193
Comment: no remembering mobile PINs for Maverick
Deletions are marked like this. Additions are marked like this.
Line 53: Line 53:
Settings that need to be in the window: Settings to expose:
Line 55: Line 55:
  * PIN for SIM card
   * may prompt each time or optionally remember it (but no remembering for Maverick)
   * 4-8 digits [3GPP TS 11.11 V8.14.0 (2007-06), 9.3 Definitions and coding]
   * the hardware may tell Ofono that a PIN isn't necessary
Line 60: Line 64:
  * PIN for SIM card
   * may prompt each time or optionally remember it (like wi-fi password)
   * 4-8 digits [3GPP TS 11.11 V8.14.0 (2007-06), 9.3 Definitions and coding]
   * the hardware may tell Ofono that a PIN isn't necessary

This is an incomplete and in-progress specification for Ubuntu’s networking features, beginning with the networking settings in Ubuntu Netbook Edition 10.10.

Simple case:

Pathological case:

network-menu-simple-sabdfl.jpg

network-menu-complex-sabdfl.jpg

Ubuntu will integrate Connection Manager (a.k.a. ConnMan), with a human interface — a settings window and a network menu — designed to cover networking in general, including network setup, proxy, and firewall settings.

This specification is currently written with NetworkManager in mind, and will need changing and expanding.

For instructions on testing the new implementation, see ConnMan.

Roadmap

Use case

Maverick alpha 2

Maverick alpha 3

Maverick Feature Freeze

N

User sets up wi-fi connection while installing Ubuntu

User sets up Ethernet connection in Ubuntu session

yes

User sets up wi-fi connection

yes

User sets up mobile broadband connection

yes

User sets up Bluetooth connection to network

yes

User sets up VPN

no

User prioritizes connections (e.g. default route)

yes

User starts up computer on a plane, keeping wi-fi and Bluetooth turned off

Settings map

http://pad.ubuntu-uk.org/ubuntu-network-settings

Wi-fi connection

  • Network (SSID)
    • usually chosen from a list
    • manually entered for a hidden network
    • we can detect how many hidden networks are available
  • Authentication method: None / WEP Open Key / WEP Shared Key / WPA / WPA2
    • correctly auto-detected ~98% of the time (maybe hide it by default)
  • password
    • WEP key
      • ? need to manually specify hexadecimal or Ascii
    • WPA key
      • minimum of 8 characters
      • ? <=63 characters is Ascii

      • ? 64 is hexadecimal
    • optionally show the password in plaintext
  • feedback on connection process
    • with WEP, you have to wait for a long timeout to tell that the password was wrong
    • with other security types, you can tell immediately
  • what happens when there's a connection error?
    • you enter the wrong password

Settings to expose:

  • mobile broadband
    • PIN for SIM card
      • may prompt each time or optionally remember it (but no remembering for Maverick)
      • 4-8 digits [3GPP TS 11.11 V8.14.0 (2007-06), 9.3 Definitions and coding]
      • the hardware may tell Ofono that a PIN isn't necessary
    • APN (access point name)
      • e.g. "INTERNET", "bam.entelpcs.cl"
      • hook into an existing database of APNs by country->provider

      • also allow manual typing
      • maximum of 100 characters [3GPP TS 23.003 V9.2.0, 9.1 Structure of APN]
  • Bluetooth
    • shouldn't need to enter anything after pairing Bluetooth device
    • from iPhone, is triggered from the phone, then appears in Mac OS X as a wired connection
    • connection type: PAN/DUN (usually automatic, occasionally wrong)
      • PAN (Personal Area Networking) [some phones, e.g. iPhones]
      • DUN (dial-up networking) [other phones] - not yet implemented
    • manual settings
      • IP address, DHCP, DNS (usually automatic)
  • Wi-Fi
    • Removing stored wi-fi networks
  • Any combination of these can be used simultaneously
    • One is the "main connection" (default route)
      • sends and receives your Internet traffic ("You're connected to the Internet using this connection")
      • affects your IP address
      • shown in the menu title
      • drag and drop -- top one in a list is the default route?
      • Do we want to convey it inside the menu too?
    • others are only for local network
  • DNS
    • usually the same regardless of connection
    • often automatic, from DHCP lease
    • sometimes automatic from PPP

Rationale

People will usually open this menu when something is wrong with their Internet connection. The menu should let you see at a glance whether you are connected to the network, and if so how; switch quickily between likely connection methods; and access to more detailed network information and settings.

Artwork requirements

  • mobile signal strength icons (0%, 25%, 50%, 75%, 100%)
  • wireless strength icons (off, 0%, 25%, 50%, 75%, 100%)
  • wired connection icon
  • computer-to-computer network icon
  • padlock icon for encrypted networks

The menu should consist of multiple sections. Any two adjacent sections should have a separator between them.

In the network menu, a toggle item uses a switch with ON and OFF values. Choosing the menu item changes the value of the toggle and closes the menu as normal.

Title

The title of the menu should consist of an icon:

  • if there is an active mobile broadband connection, the mobile broadband icon for the current signal strength;
  • otherwise, if there is an active wireless connection, the wi-fi icon for the current signal strength;
  • otherwise, the wired connection icon.

Wired section

wired.jpg

If the computer has any Ethernet cards, the menu should begin with a wired section. This section should consist of a toggle item for each wireless card, where toggling the item controls both whether it is powered on and being used.

In the usual case where there is only one Ethernet card, its label should be simply “Wired Connection”. In the rare case where there is more than one Ethernet card, the label for each should be “Wired Connection N”, where N = the kernel ID for the card, e.g. “Wired Connection eth1”. If there is no link (e.g. the cable is unplugged), the item should be disabled but not hidden.

We may need to distinguish between {power off, power on but not connected, connected}.

Wireless section

wireless-sabdfl.jpg

If the computer has any wireless cards, the wired section (if any) should be followed by a wireless section.

For each wireless card, there should be:

  • A toggle item for powering the card on and off. In the usual case where there is only one wireless card, this item’s label should be simply “Wireless”. In the rare case where there is more than one wireless card, it should be “Wireless N”, where N = the kernel ID for the card, e.g. “Wireless wl0”.

  • If the card is powered on, up to five items representing known wireless networks, sorted alphabetically:
    • up to one item representing the network this card is connected to (or currently trying to connect to), if any;
    • up to three items representing the strongest currently-detected networks that you have previously connected to on this computer;
    • the remainder representing the strongest other broadcast networks currently detected.
  • An “Other Network…” item that opens the “Connect to Wireless Network” dialog. If the card does not currently detect any broadcast networks, the name of the item should instead be “Hidden Network…”. If more broadcast networks have been detected than are shown in the menu, the item text should end with a count of all detected networks in brackets, e.g. “Other Network… (11 detected)”.

The item for any wireless network should consist of:

  • a checkmark if the card is connected to (or currently trying to connect to) this network;
  • an icon indicating signal strength, at the leading end;
  • the name of the network;
  • a computer icon representing a computer-to-computer network, if appropriate;
  • a padlock icon representing an encrypted network, if applicable, at the trailing end.

Selecting the item for a wireless network that is currently connected should disconnect from that network.

Mobile section

mobile-sabdfl.jpg

If any mobile devices are connected, or if the computer has any Bluetooth cards turned on, the next section should be for mobile connections. (We deliberately exclude from this menu the interface for turning Bluetooth as a whole on or off.)

The section should begin with a “Mobile Setup…” item that opens the “Mobile Setup” window.

Following this, if a mobile device is connected or a Bluetooth modem is connected and configured, and any mobile connections have previously been configured, these connections should be listed as checkmark items. Toggling an item should connect or disconnect.

VPN section

vpn-sabdfl.jpg

The section should begin with a “VPN Setup…” item that opens the Network Settings window to the VPN section.

Following this, if any VPNs have been configured, these VPNs should be listed as toggle items. Toggling an item should connect or disconnect.

Remainder

remainder.jpg

The final section of the menu should consist of “Create/Share Connection…” and “Network Settings…” items, which open the “Create/Share Connection” window and the “Network Settings” window respectively.

“Connect to Wireless Network” dialog

So that the “Other Network” submenu can be removed without adding a new dialog, the existing “Connect to Hidden Wireless Network” dialog should be generalized to allow easy connection to a non-hidden network too.

wireless-connect-old.pngwireless-connect-new.jpg

The “Network name” combo box should default to being empty; its menu should contain all the detected networks. Below the combo box should be a count of the detected networks, equalling non-hidden networks plus hidden APs.

“Mobile Setup” window

So that you can easily connect to the Internet using a Bluetooth phone that you may not have paired yet, the “New Mobile Broadband Connection” window should be altered to provide easy access to pairing.

...

“Create/Share Connection” window

So you can easily share your connection regardless of whether it is wired, wireless, or mobile, there should be a single “Create/Share Connection” window.

create-share-window.jpg

“Network Settings” window

p6-cropped.jpg

Gnome implementation

So that people can use the standard nm-applet when indicator-applet is not running, this will be implemented as a separate applet.

KDE implementation

Future work

  • Following the general principle that people open this menu for the purpose of fixing something wrong with their network connection, we should include, in the menu, items for turning off background tasks (such as Ubuntu One file syncing, or torrent seeding) that are consuming lots of bandwidth.

Unresolved issues

  • How to turn the menu on or off.
  • We need a thorough test suite for which wireless networks are shown in the menu.
  • How to show the connection/disconnection process.
    • Showing it with the icon (like in the old connection manager) should do the job imho?
  • We should have a single “Flight Mode” that turns off wireless, Bluetooth, and 3G.
  • When showing networks in the menu, prioritize open networks.
  • Compare with OpenSolaris equivalent: http://hub.opensolaris.org/bin/view/Project%20nwam/Phase1

  • How is shown that Wired connection is ready (cable plugged in, DHCP settings received) compared to case that cable isn't plugged in or DHCP hasn't answered? Should the ON/OFF switch reflect the state or is it only for user controlling the power of that device? The question also applies to 3G.
  • How to handle network updates while menu is open? In some cases networks might change a lot.
  • What about usb connections (e.g. USB tethering with a cellphone or USB ethernet modems? They show up as "wired connections" or "generated ethernet connections" atm, what they might not be.

Networking (last edited 2016-07-17 14:48:38 by mpt)