Huawei NCM devices and NDISDUP

Dan Williams dcbw at
Tue Jul 29 10:48:14 PDT 2014


So I've come across a couple Huawei devices recently that use the NCM or
ECM drivers, but aren't handled by the MM NDISDUP code.  They are
typically the "jungo" type.  One of them is the E303, the other is the
HP HS3110/HS3114.  The drivers have:

%NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_16
%VDFNCMDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_46

%ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_07
%ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_11
%VDFECMDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_37

(also included are some VID/PID of Icera and Balong devices locked via
interface numbers.  These same IDs are included in ew_juwwanecm.inf too)

%NCMDeviceDesc% = ew_juwwanncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_07
%NCMDeviceDesc% = ew_juwwanncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_16
%VDFNCMDesc% = ew_juwwanncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_46

%ECMDeviceDesc% = ew_juwwanecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_07
%ECMDeviceDesc% = ew_juwwanecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_11
%VDFECMDesc% = ew_juwwanecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_37

ECMDeviceDesc = "HUAWEI Mobile Connect - Network Adapter"
VDFECMDesc    = "Vodafone Mobile Broadband Network Adapter (Huawei)"
TDECMDeviceDesc = "HUAWEI Mobile CMCC Connect - Network Adapter"
NCMDeviceDesc = "HUAWEI Mobile Connect - Network Adapter"
VDFNCMDesc    = "Vodafone Mobile Broadband Network Adapter (Huawei)"
TDNCMDeviceDesc = "HUAWEI Mobile CMCC Connect - Network Adapter"

(also included are various Icera and Balong VID/PIDs locked via interface
numbers using ew_juwwanecm.ndi, these same IDs are included in ew_jucdcecm.inf

%qcwwan.DeviceDesc00%    = qcwwan.ndi, USB\VID_12d1&Subclass_01&Prot_07
%qcwwan.DeviceDesc01%    = qcwwan.ndi, USB\VID_12d1&Subclass_01&Prot_11
%qcwwan.VDF%    = qcwwan.ndi, USB\VID_12d1&Subclass_01&Prot_37

In the E303C case, we have a USB layout of:

VID/PID 12d1:150f
0/0: 255/2/22 (interrupt IN)
0/1: 255/2/22 (interrupt IN, bulk IN/OUT)  NCM?
1/0: 255/2/3  (bulk IN/OUT)
2/0: 255/2/2  (bulk IN/OUT)                AT PORT
3/0: 255/2/1  (interrupt IN, bulk IN/OUT)  MODEM
4: Mass Storage
5: Mass Storage

In Windows interface 0 would get assigned to the NCM driver, but this
gives us no indication of whether NDISDUP works on the interface or not.
Currently, ModemManager requires a whitelist of devices that work with
NDISDUP, or that the modem expose a network port *and* an AT-capable WDM
port.  Maybe that's not really true?

There's also the question of ^NDISCONN...  that seems to be supported on
a number of modems, and uses the same format as NDISDUP.  Anyone know if
that's an older command or a newer command or just different?  My E3276
supports both NDISCONN and NDISDUP, apparently.


More information about the ModemManager-devel mailing list