summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* mbimcli,ms-basic-connect-extensions: fix double message unrefmasterAleksander Morgado2021-09-271-1/+0
|
* mbimcli,basic-connect: support 'context-type' in --connectAleksander Morgado2021-09-271-2/+10
|
* mbimcli,basic-connect: support 'compression' in --connectAleksander Morgado2021-09-271-3/+11
|
* mbimcli,basic-connect: avoid custom string to enums parsersAleksander Morgado2021-09-271-43/+3
| | | | Use the new generic string to enum processor instead.
* mbimcli,ms-basic-connect-extensions: avoid custom string to enums parsersAleksander Morgado2021-09-272-244/+20
| | | | Use the new generic string to enum processor instead.
* mbimcli: setup common helper to get enum values from stringsAleksander Morgado2021-09-273-20/+38
|
* mbimcli,basic-connect: auth, username and protocol validation only in legacy ↵Aleksander Morgado2021-09-271-10/+10
| | | | | | | | | input format This validation should not be applied when using key-value pairs, we should instead just pass whatever we received to the device, without any additional validation on top, as we do with other commands.
* mbimcli,basic-connect: minor coding style updatesAleksander Morgado2021-09-271-56/+26
| | | | | Simplify the parser method to receive the ConnectActivateProperties to be used as output.
* mbimcli,basic-connect: deprecate 'apn' key and prefer 'access-string'Aleksander Morgado2021-09-271-15/+21
| | | | | Let's try to have a consolidated naming for keys in different commands.
* mbimcli,ms-basic-connect-extensions: use key-value pairs for ↵Aleksander Morgado2021-09-271-102/+86
| | | | --ms-set-provisioned-contexts
* mbimcli,basic-connect: overwrite duplicated key-value pairsAleksander Morgado2021-09-271-23/+14
| | | | | | | Don't fail on some duplicated key-value pairs; just overwrite the old ones in all possible keys. This gives us a consistent behavior in all keys, instead of different behaviors depending on which is the key being processed.
* mbimcli: don't include possible enum values in the short command helpAleksander Morgado2021-09-271-1/+1
| | | | | | This may work for enums with just a couple of values, but there are enums with ton of different possible values, and we cannot document all those there.
* mbimcli,ms-basic-connect-extensions: minor coding style updatesAleksander Morgado2021-09-271-127/+69
|
* docs: add missing references to 'Provisioned Contexts v2' enum typesAleksander Morgado2021-09-271-0/+20
|
* ms-basic-connect-extensions: rename enum types in 'Provisioned Contexts v2'Aleksander Morgado2021-09-273-76/+76
| | | | | Let's avoid having the v2 suffix in the enum names, and also make sure the enum names follow the usual conventions in the library.
* ms-basic-connect-extensions: minor alignment fixes in JSONAleksander Morgado2021-09-252-25/+25
|
* ms-basic-connect-extensions: implement 'provisioned-context-v2'Som_SP2021-09-253-3/+729
| | | | | This CID is an extension for the MBIM_CID_MS_PROVISIONED_CONTEXT already defined in the MBIM specification revision 1.0.
* mbimcli,basic-connect: support MBIMEx v2.0 'Signal State'Aleksander Morgado2021-09-231-18/+88
|
* build-aux,codegen: include printable info for struct fields with public typeAleksander Morgado2021-09-231-14/+30
|
* build-aux,codegen: document public format type in struct fieldsAleksander Morgado2021-09-231-6/+21
| | | | | | | The struct fields that are known public formats are currently being defined as generic integers. We should keep that for now not to break API, but we can at least provide the public format type in the struct documentation.
* sms: fix public format for SMS CDMA languageAleksander Morgado2021-09-231-2/+2
|
* ms-basic-connect-v2: implement 'Signal State v2'Aleksander Morgado2021-09-231-1/+54
|
* build-aux,codegen: define new 'ms-struct-array' typeAleksander Morgado2021-09-233-6/+116
| | | | | | | | | | | | | | | | | | | | | | | | The new 'ms-struct-array' type is a complex type that has one single purpose for now: supporting the Signal State v2 message defined by Microsoft. This is NOT a generic array type. The array is defined as 2 uint32 values in the fixed buffer, one giving the offset to where the intermediate struct starts, and the next one with the full size of the whole intermediate struct (which we read but silently ignore). The intermediate struct has a first uint32 value with the amount of elements in the array, and then the array itself follows. The elements of the array are structs with fixed size. If the number of elements in the array is 0, the pointer to the intermediate struct will be 0x00000000. Microsoft, next time please use the standard way of defininig struct arrays in MBIM, i.e. by the means of using arrays of OL pairs (our 'ref-struct-array' type in libmbim).
* build-aux,codegen: fix error messages when 'struct-type' field missingAleksander Morgado2021-09-231-2/+2
|
* build-aux,codegen: separate methods to process different struct array typesAleksander Morgado2021-09-233-111/+160
| | | | | | | | | Instead of trying to build a single common method to parse or build struct array types, write separate methods, one for each type. E.g. before we had a single builder_append_{struct_type}_struct_array method used for both 'struct-array' and 'ref-struct-array' types. Now, we have a separate specific method for each.
* build-aux,codegen: add missing annotations in the input 'ref-struct-array' typesAleksander Morgado2021-09-221-1/+1
|
* libmbim-glib,message: fallback to printing v1 format if message undefined in v2Aleksander Morgado2021-09-211-2/+7
|
* mbim-codegen: report UNSUPPORTED error when printing unknown CIDAleksander Morgado2021-09-211-2/+2
| | | | | | | | | If we receive a request to print the contents of a message with a CID that is not supported in the library, return an UNSUPPORTED error. This will also allow us to fallback print as v1 the Basic Connect messages from v2 which we don't support yet, or those which don't have a counterpart in the v2 set.
* mbimcli,basic-connect: support MBIMEx v2.0 'Packet Service'Aleksander Morgado2021-09-211-12/+47
| | | | | The 'Packet Service' in the extended v2.0 version includes an additional 'Frequency Range' bitmask field.
* ms-basic-connect-v2: implement 'Packet Service'Som_SP2021-09-213-1/+65
| | | | | | | | This command is an extension for the existing MBIM_CID_PACKET_SERVICE defined in the MBIM specification revision 1.0. This extension adds a new member called FrequencyRange for the response structure and renamed the HighestAvailableDataClass member to CurrentDataClass to clarify its purpose.
* libmbim-glib,proxy: notify to new clients the current MBIMEx versionAleksander Morgado2021-09-211-2/+25
| | | | | | When a new client connects to the proxy and opens a session, send back the "Version" notification with the current MBIMEx version in use, so that every process is in sync.
* libmbim,device: receive from proxy MBIMEx version updatesAleksander Morgado2021-09-211-0/+23
| | | | | | When the MBIMEx version exchange is agreed between a different host process and the modem, the mbim-proxy will let us know what the agreed version is automatically.
* libmbim-glib,proxy: notify to all clients updates in the MBIMEx versionAleksander Morgado2021-09-214-10/+76
| | | | | | | If the proxy detects that one of the remote clients has performed a MBIMEx version agreement interaction with the device, notify about the new reported version to all clients, using a new 'Version' notification in the 'Proxy Control' service.
* libmbim-glib,proxy: monitor MBIMEx version exchange and track per deviceAleksander Morgado2021-09-211-0/+31
| | | | | | | The mbim-proxy will monitor the MBIMEx version exchanges that the remote clients do with the actual devices, and any time a successful exchange is detected, it will track the reported MBIMEx version as the one currently in use in the internal device instance.
* mbimcli,basic-connect: support MBIMEx v2.0 'Register State'Aleksander Morgado2021-09-211-19/+55
| | | | | The 'Register State' in the extended v2.0 version includes an additional 'Preferred Data Classes' bitmask field.
* mbimcli: allow requesting MBIMEx v2.0 support on device openAleksander Morgado2021-09-211-0/+7
|
* libmbim-glib,message: new method to get printable string with mbimex supportAleksander Morgado2021-09-213-31/+134
|
* ms-basic-connect-v2: new 'MS Basic Connect V2" service and 'Register State' ↵Aleksander Morgado2021-09-216-26/+120
| | | | | | | | | | | | message This service specifies new versions of the messages (API breaks) in the generic Basic Connect service, and therefore it reuses the same service UUID and message CID definitions as in the original Basic Connect service. Only the 'Register State' message support is implemented at this stage.
* mbim-codegen: no need to redefine service inside each commandAleksander Morgado2021-09-2019-74/+7
| | | | | | The database of messages is structured so that the first item in each file is the object defining the service, so we can therefore use that information to populate all the additional messages that would follow.
* libmbim-glib,enums: define 5G NSA/SA data classesAleksander Morgado2021-09-201-1/+5
| | | | As per the Microsoft MBIM Extensions.
* libmbim-glib,device: new methods to manage the MBIMEx versionAleksander Morgado2021-09-203-0/+105
| | | | | | | | | | | | | | | | | | | | The exchange of the MBIMEx version to use between host and device is exclusively done via the MBIM_DEVICE_OPEN_FLAGS_MS_MBIMEX_V2 flag in the mbim_device_open_full() request. Once this request finishes, the device instance will know which is the MBIMEx version agreed, and the user can gather this same information with the new version getter method. In addition to the version getter, a simple version checker method is also implemented, which allows users of the API to quickly check whether the agreed version is equal or greater than the given one, and this helps writing clear code doing the checks. A new setter method is also provided for the device object, which is supposed to be used when the user already knows which specific version has been agreed between host and device. The setter doesn't do any MBIM interaction with the real device, it just updates its internal records of which the current MBIMEx version is.
* libmbim-glib,device: new 'MS_MBIMEX_V2' open flagAleksander Morgado2021-09-202-7/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The Microsoft MBIM extensions for the Basic Connect service define API breaks in the MBIM messages. In order to properly use the correct API, the first interaction between host and device should define which is the version of the protocol extensions agreed to use between both. When the MBIM session is opened, the process managing the modem in the host will specify the maximum version it supports, and the modem will reply with the maximum version that both support. E.g.: * If the host does not run the initialization sequence, both assume v1.0 is the version to use (backwards compatibility). * If the host reports that it supports MBIMEx v2.0 but the modem does not support any version other than 1.0, it will return an error, and both assume v1.0 is the version to use. * If the host reports MBIMEx v2.0 and the modem also supports that version (may or may not support other newer ones as well), it will return MBIMEx v2.0 as supported and it will be the agreed version to use. * If the host reports MBIMEx v3.0, but the modem only supports v2.0, it will return MBIMEx v2.0 as supported and it will be the agreed version to use. Based on a patch written by: Som_SP <somashekhar.puttagangaiah@intel.com>.
* ci: add uninstall check in the release taskAleksander Morgado2021-09-131-0/+1
|
* ci: add tests without introspection supportAleksander Morgado2021-09-131-8/+35
|
* build: cleanup gitignore after meson portAleksander Morgado2021-09-131-79/+0
| | | | | | When using meson all builds are out of the source tree, so we can skip the need of ignoring specific files as we required when using autotools.
* libmbim-glib,mbimcli: remove execution bit from mode in source filesAleksander Morgado2021-09-132-0/+0
|
* build: Add explicit content files to documentationIñigo Martínez2021-09-131-0/+1
| | | | | | | Although not totally necessary due to its implementation, some files built by meson are included as content files. They have been explicitly added for the sake of correctness.
* build: Remove unnecessary MALLOC_PERTURB_ variable setIñigo Martínez2021-09-131-3/+0
| | | | | | | meson's test function already sets the `MALLOC_PERTURB_` environment variable[0], so there is no need to set it. [0] https://mesonbuild.com/Reference-manual.html#test
* build: Add version script linker flag when availableIñigo Martínez2021-09-131-1/+2
| | | | | | The version script linker flag is used even if it is not available. This has been changed to check first for its availability.
* build: Use install_dir instead of subdirIñigo Martínez2021-09-131-1/+1
| | | | | | | | `install_header` allows the use of the `subdir` parameter that points to the subdirectory in the `includedir` directory. However, to maintain consistency, this has been changed to use the `install_dir` parameter.