GNOME 3 networking



A few days ago, when a NetworkManager 0.9 snapshot appeared in Fedoras
build system, I started to play around with the two works in progress
we have for network support.

The first is the gnome-shell network menu that Giovanni Campagna has
been working on in https://bugzilla.gnome.org/show_bug.cgi?id=621707,
the second is the network panel in gnome-control-center that Richard
has started.

Talking about the menu first:

First of all, having the network menu in gnome-shell optics and
behavior makes a _huge_ difference for the feeling of the system
status area. I cannot imagine going back to having old-style nm-applet
sitting between the shell menus.

In its current form [1][2][3], the menu does not match the designs [4]
very closely and it has some issues that could be avoided by following
the design more closely:
- Having the wired connection in a separate line below the heading
wastes unnecessary space and the italics don't look very nice
- The menu is much too wide
- The More section can easily expand the menu beyond the screen

Basic functionality works well:
- Activating wired or wireless connections
- Disconnecting wired or wireless connections
- Showing signal strength
- Starting the network panel

After some iterations of debugging and fixing, I haven't quite gotten
all functionality to work:
- Disconnecting wired connections does not update the status (ie the
wired connection stays selected, making re-connection impossible)
- I could not get VPN connections activated
- The 'Create...' and 'Other...' items bring up the same dialog.

For some functionality, such as 'Create...' and 'Other...' dialogs
[5], the code currently falls back to nm-applet (which gets activated
on the session bus). This is less than ideal, but IMO a perfectly
acceptable solution for 3.0.

Some things I haven't tested include:
- More exotic connection types (modems, wimax, etc)
- Are multiple devices (ie 2 network cards) handled well ?
- Do we indicate 'secure' connections somehow (eg a padlock icon) ?
- Does the menu update properly when network status is changed from
the outside, e.g via nmcli ?


Recommendations for the network menu for 3.0:
- Make VPN connections work
- Remove 'Disconnect' from the menu. It is a rarely useful feature,
adds confusing states, and does not work correctly right now.
- Change the Wired section to be one line per device (as in the
design); ie move the 'unplugged' text up in the same line and add a
on/off switch for the device like we have for wireless
- Drop 'Other...' and 'Create...' items from the menu. Again, rarely
used feature that we should make available from the network panel
- Limit the length of the 'More...' section to avoid overflowing the
screen (probably need to add some indicator that there's still more)
- Figure out what is making the menu so wide, and fix it
- Don't overlay the padlock icon in the panel, it doesn't work
- Merge it


 * * *


Switching to the control-center side of things, the network panel
appears less complete. Currently, it offers mainly a 'connection
details' view without much ability to configure or set up connections
[6][7][8][9]. The design for this panel [10] is trying to emphasize
devices over connections, which is not a great match for the
NetworkManager API and may explain some of the limitations.

Whats working:
- Killswitch ('Airplane mode')
- Viewing available wired or wireless connections
- Activating wired or wireless connections (there doesn't seem to be a
way to disconnect without activating a different connection)
- Entering proxy configuration

Whats not working/buggy:
- There's a non-functional lock button, and +/- buttons that don't do anything
- The connection status does not seem to get updated if it changes
while the panel is shown
- The terminology between the menu and the panel must be matched up. A
wired connection is 'unplugged', not 'disconnected'
- Switching to wireless is slow, since it seems to recrate the combo every time
- When disconnected, I see loopback stuff showing up, like ::1 and
127.0.0.1. I don't think we ever want to see that
- Disconnected wireless shows up as 0 Mb/s. It should show the speed
of the device (the top part of the panel is supposed to be unchanging
device information, not connection-specific)
- Connected wireless shows up as 54000 Mb/s. Which would be nice, but
is not true
- Duplicate filtering in the wireless connection combo does not work
- The proxy section resizes unfortunately, due to 'Secure HTTP Proxy'.
Just say HTTPS...

Functionality that is currently lacking:
- Deleting connections
- Creating new connections of any kind
- Setting up security, autoconnection, routing, IPv4/v6 or any other
connection configuration
- Importing/Exporting of vpn connections

Functionality that I haven't tested:
- Viewing broadband, vpn or dsl connections (Richard says he saw this
working a while ago)
- Multiple devices (Supposed to be working)
- I don't know if the proxy configuration is effective;
https://bugzilla.gnome.org/show_bug.cgi?id=644211 makes me think that
it might not

Richard has said that he will work on getting some more parts done
before this week is over, such as VPN. But even so, I don't think it
is realistic to consider the network panel as a full replacement for
nm-connection editor in 3.0. Even restricted to wired and wireless
connections, the functionality offered by the panel is insufficient.

Recommendations for the network panel for 3.0:
- Add VPN support (Richard is working on this now)
- Wire up or remove the lock button
- Fix the most egregious bugs listed above
- Make the [+] button bring up nm-connection-editor, to allow people
to add or edit connections. To make this more palatable, we can try to
add a 'create' mode to nm-connection-editor that skips the
tabs-with-lists view and instead brings up a dialog with a choice of
what kind of connection to edit.
- As I have learned, the list of 'devices' is actually supposed to
list not just devices, but also explicitly created connection, such as
an explicitly created wired connection that is not 'system eth0', or
all the VPN connections. The - button is supposed to let you remove
those connections, it will be grayed out for default connections like
'System eth0' obviously. If we don't get that done for 3.0, we can
just leave the - button disabled at all times.


[1] http://mclasen.fedorapeople.org/network/Screenshot-1.png
[2] http://mclasen.fedorapeople.org/network/Screenshot-2.png
[3] http://mclasen.fedorapeople.org/network/Screenshot-3.png
[4]
https://live.gnome.org/GnomeShell/Design/Guidelines/SystemStatus/Network?action=AttachFile&do=get&target=network-menu.png
[5] http://mclasen.fedorapeople.org/network/Screenshot-4.png
[6] http://mclasen.fedorapeople.org/network/Screenshot-5.png
[7] http://mclasen.fedorapeople.org/network/Screenshot-6.png
[8] http://mclasen.fedorapeople.org/network/Screenshot-7.png
[9] http://mclasen.fedorapeople.org/network/Screenshot-8.png
[10]
https://live.gnome.org/Design/SystemSettings/Network?action=AttachFile&do=get&target=NetworkSettings.svg


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]