// precondition: never called in_interrupt
 
+static struct device_type wlan_type = {
+       .name   = "wlan",
+};
+
+static struct device_type wwan_type = {
+       .name   = "wwan",
+};
+
 int
 usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
 {
        dev->maxpacket = usb_maxpacket (dev->udev, dev->out, 1);
 
        SET_NETDEV_DEV(net, &udev->dev);
+
+       if ((dev->driver_info->flags & FLAG_WLAN) != 0)
+               SET_NETDEV_DEVTYPE(net, &wlan_type);
+       if ((dev->driver_info->flags & FLAG_WWAN) != 0)
+               SET_NETDEV_DEVTYPE(net, &wwan_type);
+
        status = register_netdev (net);
        if (status)
                goto out3;