static const struct driver_info eem_info = {
        .description =  "CDC EEM Device",
-       .flags =        FLAG_ETHER,
+       .flags =        FLAG_ETHER | FLAG_POINTTOPOINT,
        .bind =         eem_bind,
        .rx_fixup =     eem_rx_fixup,
        .tx_fixup =     eem_tx_fixup,
 
 
 static const struct driver_info        cdc_info = {
        .description =  "CDC Ethernet Device",
-       .flags =        FLAG_ETHER,
+       .flags =        FLAG_ETHER | FLAG_POINTTOPOINT,
        // .check_connect = cdc_check_connect,
        .bind =         usbnet_cdc_bind,
        .unbind =       usbnet_cdc_unbind,
 
 
 static const struct driver_info cdc_ncm_info = {
        .description = "CDC NCM",
-       .flags = FLAG_NO_SETINT | FLAG_MULTI_PACKET,
+       .flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT | FLAG_MULTI_PACKET,
        .bind = cdc_ncm_bind,
        .unbind = cdc_ncm_unbind,
        .check_connect = cdc_ncm_check_connect,
 
 
 static const struct driver_info        ali_m5632_info = {
        .description =  "ALi M5632",
+       .flags       = FLAG_POINTTOPOINT,
 };
 
 #endif
 
 static const struct driver_info        an2720_info = {
        .description =  "AnchorChips/Cypress 2720",
+       .flags       = FLAG_POINTTOPOINT,
        // no reset available!
        // no check_connect available!
 
 
 static const struct driver_info        belkin_info = {
        .description =  "Belkin, eTEK, or compatible",
+       .flags       = FLAG_POINTTOPOINT,
 };
 
 #endif /* CONFIG_USB_BELKIN */
 static const struct driver_info        epson2888_info = {
        .description =  "Epson USB Device",
        .check_connect = always_connected,
+       .flags = FLAG_POINTTOPOINT,
 
        .in = 4, .out = 3,
 };
 #define HAVE_HARDWARE
 static const struct driver_info kc2190_info = {
        .description =  "KC Technology KC-190",
+       .flags = FLAG_POINTTOPOINT,
 };
 #endif /* CONFIG_USB_KC2190 */
 
 static const struct driver_info        linuxdev_info = {
        .description =  "Linux Device",
        .check_connect = always_connected,
+       .flags = FLAG_POINTTOPOINT,
 };
 
 static const struct driver_info        yopy_info = {
        .description =  "Yopy",
        .check_connect = always_connected,
+       .flags = FLAG_POINTTOPOINT,
 };
 
 static const struct driver_info        blob_info = {
        .description =  "Boot Loader OBject",
        .check_connect = always_connected,
+       .flags = FLAG_POINTTOPOINT,
 };
 
 #endif /* CONFIG_USB_ARMLINUX */
 
 
 static const struct driver_info        genelink_info = {
        .description =  "Genesys GeneLink",
-       .flags =        FLAG_FRAMING_GL | FLAG_NO_SETINT,
+       .flags =        FLAG_POINTTOPOINT | FLAG_FRAMING_GL | FLAG_NO_SETINT,
        .bind =         genelink_bind,
        .rx_fixup =     genelink_rx_fixup,
        .tx_fixup =     genelink_tx_fixup,
 
 
 static const struct driver_info        net1080_info = {
        .description =  "NetChip TurboCONNECT",
-       .flags =        FLAG_FRAMING_NC,
+       .flags =        FLAG_POINTTOPOINT | FLAG_FRAMING_NC,
        .bind =         net1080_bind,
        .reset =        net1080_reset,
        .check_connect = net1080_check_connect,
 
 
 static const struct driver_info        prolific_info = {
        .description =  "Prolific PL-2301/PL-2302",
-       .flags =        FLAG_NO_SETINT,
+       .flags =        FLAG_POINTTOPOINT | FLAG_NO_SETINT,
                /* some PL-2302 versions seem to fail usb_set_interface() */
        .reset =        pl_reset,
 };
 
 
 static const struct driver_info        rndis_info = {
        .description =  "RNDIS device",
-       .flags =        FLAG_ETHER | FLAG_FRAMING_RN | FLAG_NO_SETINT,
+       .flags =        FLAG_ETHER | FLAG_POINTTOPOINT | FLAG_FRAMING_RN | FLAG_NO_SETINT,
        .bind =         rndis_bind,
        .unbind =       rndis_unbind,
        .status =       rndis_status,
 
                // else "eth%d" when there's reasonable doubt.  userspace
                // can rename the link if it knows better.
                if ((dev->driver_info->flags & FLAG_ETHER) != 0 &&
-                   (net->dev_addr [0] & 0x02) == 0)
+                   ((dev->driver_info->flags & FLAG_POINTTOPOINT) == 0 ||
+                    (net->dev_addr [0] & 0x02) == 0))
                        strcpy (net->name, "eth%d");
                /* WLAN devices should always be named "wlan%d" */
                if ((dev->driver_info->flags & FLAG_WLAN) != 0)
 
 
 static const struct driver_info        zaurus_sl5x00_info = {
        .description =  "Sharp Zaurus SL-5x00",
-       .flags =        FLAG_FRAMING_Z,
+       .flags =        FLAG_POINTTOPOINT | FLAG_FRAMING_Z,
        .check_connect = always_connected,
        .bind =         zaurus_bind,
        .unbind =       usbnet_cdc_unbind,
 
 static const struct driver_info        zaurus_pxa_info = {
        .description =  "Sharp Zaurus, PXA-2xx based",
-       .flags =        FLAG_FRAMING_Z,
+       .flags =        FLAG_POINTTOPOINT | FLAG_FRAMING_Z,
        .check_connect = always_connected,
        .bind =         zaurus_bind,
        .unbind =       usbnet_cdc_unbind,
 
 static const struct driver_info        olympus_mxl_info = {
        .description =  "Olympus R1000",
-       .flags =        FLAG_FRAMING_Z,
+       .flags =        FLAG_POINTTOPOINT | FLAG_FRAMING_Z,
        .check_connect = always_connected,
        .bind =         zaurus_bind,
        .unbind =       usbnet_cdc_unbind,
 
 static const struct driver_info        bogus_mdlm_info = {
        .description =  "pseudo-MDLM (BLAN) device",
-       .flags =        FLAG_FRAMING_Z,
+       .flags =        FLAG_POINTTOPOINT | FLAG_FRAMING_Z,
        .check_connect = always_connected,
        .tx_fixup =     zaurus_tx_fixup,
        .bind =         blan_mdlm_bind,
 
 
 #define FLAG_LINK_INTR 0x0800          /* updates link (carrier) status */
 
+#define FLAG_POINTTOPOINT 0x1000       /* possibly use "usb%d" names */
+
 /*
  * Indicates to usbnet, that USB driver accumulates multiple IP packets.
  * Affects statistic (counters) and short packet handling.