可选择的拨号方式有多种(ECM/RNDIS/OPTION/MBIM/RMNET/QCSERIAL/PPP/GOBINET...等),大致可分为路由和非路由,通过路由方式,Host网卡获取到的IP为广域网公有IP;通过非路由方式,Host获取的IP为局域网私有IP。其收发数据被分两路,一路是控制协议数据,一路是应用数据,应用数据是通过socket接口的网络协议数据包,不一样的是控制协议数据包。根据用户场景和需求使用不同的拨号方式。
Module<-USB->Host连接modinfo依赖关系:
ECM=>cdc_ether.ko: usbnet
./drivers/net/usb/Makefile:16:obj-$(CONFIG_USB_NET_CDCETHER) += cdc_ether.o
./drivers/net/usb/Makefile:29:obj-$(CONFIG_USB_USBNET) += usbnet.o
./drivers/net/Makfile:35 :obj-$(CONFIG_MII) += mii.o
RNDIS=>rndis_host.ko: cdc_ether,usbnet
./drivers/net/usb/Makefile:26:obj-$(CONFIG_USB_NET_RNDIS_HOST) += rndis_host.o
./drivers/net/usb/Makefile:16:obj-$(CONFIG_USB_NET_CDCETHER) += cdc_ether.o
./drivers/net/usb/Makefile:29:obj-$(CONFIG_USB_USBNET) += usbnet.o
./drivers/net/Makfile:35 :obj-$(CONFIG_MII) += mii.o
OPTION=>option.ko:usb_wwan
./drivers/usb/serial/Makefile:44:obj-$(CONFIG_USB_SERIAL_OPTION) += option.o
./drivers/usb/serial/Makefile:56:obj-$(CONFIG_USB_SERIAL_WWAN) += usb_wwan.o
./drivers/usb/serial/Makefile:7:obj-$(CONFIG_USB_SERIAL) += usbserial.o
MBIM=>cdc_mbim.ko:usbnet,cdc_ncm,cdc-wdm
./drivers/net/usb/Makefile:40:obj-$(CONFIG_USB_NET_CDC_MBIM) += cdc_mbim.o
./drivers/net/usb/Makefile:36:obj-$(CONFIG_USB_NET_CDC_NCM) += cdc_ncm.o
./drivers/usb/class/Makefile:8:obj-$(CONFIG_USB_WDM) += cdc-wdm.o
./drivers/net/usb/Makefile:29:obj-$(CONFIG_USB_USBNET) += usbnet.o
./drivers/net/Makfile:35 :obj-$(CONFIG_MII) += mii.o
RMNET=>qmi_wwan.ko:usbnet,cdc-wdm
./drivers/net/usb/Makefile:39:obj-$(CONFIG_USB_NET_QMI_WWAN) += qmi_wwan.o
./drivers/usb/class/Makefile:8:obj-$(CONFIG_USB_WDM) += cdc-wdm.o
./drivers/net/usb/Makefile:29:obj-$(CONFIG_USB_USBNET) += usbnet.o
./drivers/net/Makfile:35 :obj-$(CONFIG_MII) += mii.o
QCSERIAL=>qcserial.ko:usb_wwan=>usb_wwan.ko:usbserial
./drivers/usb/serial/Makefile:48:obj-$(CONFIG_USB_SERIAL_QUALCOMM) += qcserial.o
./drivers/usb/serial/Makefile:56:obj-$(CONFIG_USB_SERIAL_WWAN) += usb_wwan.o
PPP:
./drivers/net/ppp/Makefile:
obj-$(CONFIG_PPP) += ppp_generic.o
obj-$(CONFIG_PPP_ASYNC) += ppp_async.o
obj-$(CONFIG_PPP_BSDCOMP) += bsd_comp.o
obj-$(CONFIG_PPP_DEFLATE) += ppp_deflate.o
obj-$(CONFIG_PPP_MPPE) += ppp_mppe.o
obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o
obj-$(CONFIG_PPPOE) += pppox.o pppoe.o
obj-$(CONFIG_PPPOL2TP) += pppox.o
obj-$(CONFIG_PPTP) += pppox.o pptp.o