wds: add a separate --set-ip-family option Change the current ip-family option to set the IP Family Preference TLV in the Start Network command, and add a separate set-ip-family option for the Set IP Family command. This is done to match how the autoconnect and set-autoconnect options work. Older modems don't support the Set IP Family command, and they should use the IP Family Preference TLV. On the other hand, newer modems, e.g., from Huawei, don't respect that TLV, and require the use of the separate Set IP Family command. Signed-off-by: Matti Laakso <malaakso@elisanet.fi>
dms: add "Set FCC Authentication" request Many newer modems from Sierra Wireless includes a feature known as "FCC Authentication". The basic idea is that the radio is kept in low power mode until the driver has told the firmware that it is OK to switch it on. This is done with a vendor specific QMI DMS request with no input or output TLVs. The "Set FCC Authentication" request is required for any modem with the feature enabled. Which includes most newer Lenovo branded Sierra Wireless modems based on Qualcomm chipsets, like for example the EM7455. Sample session with an EM7455 in MBIM mode and the FCC Authentication feature enabled: $ umbim -d /dev/cdc-wdm0 -n radio hwradiostate: on swradiostate: off $ uqmi -m -d /dev/cdc-wdm0 --fcc-auth $ umbim -d /dev/cdc-wdm0 -t 2 radio hwradiostate: on swradiostate: on Signed-off-by: Bjørn Mork <bjorn@mork.no>
uqmi: add support for MBIM devices with QMI service Many Qualcomm based devices offer a QMI service when running in MBIM mode. This is useful for a number of requests which have no MBIM counterpart. This implementation is very basic, simply wrapping the QMI requests in an MBIM command. It is up to the user to make sure that the MBIM command sequence is valid, using a mix of umbim and uqmi requests. umbim must be used to send "OPEN" before uqmi can issue any MBIM requests. Example: 1. use umbim to open the session, using the '-n' option: $ umbim -d /dev/cdc-wdm0 -n caps devicetype: 0003 - remote cellularclass: 0001 voiceclass: 0001 - no-voice simclass: 0002 dataclass: 003C smscaps: 0003 controlcaps: 0001 maxsessions: 0008 deviceid: 0145820007xxxxx firmwareinfo: SWI9X30C_02.08.02.00 hardwareinfo: EM7455 2. use uqmi to send an MBIM request, using the '-m' option: $ uqmi -m -d /dev/cdc-wdm0 --get-serving-system { "registration": "registered", "plmn_mcc": 242, "plmn_mnc": 1, "plmn_description": "TELENOR", "roaming": false } 3. use umbim to close the open session, using the '-t X' option: $ umbim -d /dev/cdc-wdm0 -t 2 caps devicetype: 0003 - remote cellularclass: 0001 voiceclass: 0001 - no-voice simclass: 0002 dataclass: 003C smscaps: 0003 controlcaps: 0001 maxsessions: 0008 deviceid: 0145820007xxxxx firmwareinfo: SWI9X30C_02.08.02.00 hardwareinfo: EM7455 Signed-off-by: Bjørn Mork <bjorn@mork.no> Signed-off-by: Felix Fietkau <nbd@nbd.name> [cleanup, portability fixes]
build: Support for out of source builds added The scripts gen-{header,code,error-list}.pl were called with source-local paths what disallowed out of source builds. Updated CMakeLists.txt to call the scripts with ${CMAKE_SOURCE_DIR} prefix. Signed-off-by: Dmitri Bachtin <dbachtin@init-ka.de>
uqmi: search for ubox, blobmsg_json and json include paths CMake will search for include paths via FIND_PATH() of the following libraries: libubox, blobmsg_json and json. This allows to build uqmi when the dependencies are in non-standard locations by specifying respective _include_dir variables.