NetworkManager 0.6.6 rc2

I’ve just rolled NetworkManager 0.6.6 rc2 (ie,  Grab hot, fresh, tasty tarballs tarballs tarballs.  Stuff you’ll like in 0.6.6:

  • A connection editor, available from the right-click menu of the GNOME applet
  • Handles weird SSIDs like “http://myhouse” nicely
  • Wired 802.1x support!
  • VPN connections terminate when you log out
  • Scanning is more responsive
  • Better handling of hidden SSIDs in conjunction with the ‘scan capability’ kernel patch
  • Many bug and leak fixes

Thanks go to many people, but more thanks go to Tambet Ingo than just about anybody else.  Barring major bugs, NetworkManager 0.6.6 will be released next week.

Now that 0.6.6 is almost wrapped up, we’ll keep rocking on 0.7, filling in the missing pieces and bringing seamless networking to the masses.

So much Just Works it hurts…

Which one is right for you?

There’s now an addition to the HAL specification identifying mobile broadband cards, and a hot new hal-info package (20080215) that contains the necessary .fdi file for most of the cards directly supported in Linux.  This specification helps NetworkManager and other tools identify that (a) the card is really a modem instead an unconnected serial port, and (b) whether it’s a GSM or a CDMA modem.  I also updated NetworkManager SVN to work with the new spec.  Plug it in, watch it work, be happy.

Hey VMware, SET_NETDEV_DEV wants a word with you

VMware workstation 6.0.2 build-59824 is apparently the latest available for download. VMware has a ‘vmxnet’ driver that is installed when you install the VMware Tools inside your VM.

It does not:

  • support HAL
  • support carrier detection

To get HAL to recognize the network device, you need to have the ‘device’ link in sysfs point to the hardware device of your card, ie /sys/class/net/eth0/device -> /sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0. This is accomplished simply by adding SET_NETDEV_DEV(<struct net_device *>, <struct device *>) to your driver. Almost all of the worthwhile in-kernel drivers do this already. vmxnet does not.

qemu’s ne2000 driver doesn’t support carrier detection either; but you can use a different qemu driver that emulates an rtl8139 card which does support carrier detection, and hence works nicely with NetworkManager. Both call SET_NETDEV_DEV().

I’ve submitted a VMware Support Request (#1104170215) for this issue, including a patch. We’ll see what happens.

[UPDATE]: I’ve been helpfully pointed to open-vm-tools by Philip. It has SET_NETDEV_DEV and carrier detection, but it doesn’t look like it easily supports mii-tool or ethtool with recent kernels (which use ethtool_ops). Carrier detection is pretty much useless if you can’t actually find out whether or not the driver supports it. So NetworkManager pokes the card with SIOCGMIIPHY + MII_BMSR or ETHTOOL_GLINK and if there aren’t any errors, assumes the card supports carrier detection.

I’ve got a patch for minimal ethtool support (at least for drvinfo and link reporting), but I have to (a) make a half-assed effort to make the patch compatible with kernels that don’t have ethtool_ops, and (b) sign and fax a copyright assignment to VMware before they’ll think about taking the patch.