Skip to content

3GPP interface: New 'PacketServiceState' property and 'SetPacketServiceState()' method

Until now we didn't expose any information in the DBus API related to CS vs PS domain registrations, but in some scenarios it's interesting and useful to know whether PS domain is already attached or not. And in the same way, it's also useful sometimes to be able to control whether we're attached in PS or not; e.g if we want a CS only connection setup and only attach to PS if manually requested.

The PacketServiceState property shows the current state of the packet domain service, and the new SetPacketServiceState() allows explicitly updating the state (i.e. attach or detach).

If the modem is connected and the packet service state is explicitly detached, the connection will obviously get disconnected. And if the modem is currently registered in a PS-only domain (e.g. LTE or 5G SA), it will be explicitly unregistered. We detect all these kind of things asynchronously via indications reported by the modem; there is no logic added in the daemon to say "we detach from PS so we flag ourselves as unregistered". This also means that we cannot assume that all these disconnect/unregister transitions happen before the SetPacketServiceState() method returns; they may happen after the method has successfully executed, it really depends on the underlying protocol implementation.

The PacketServiceState property is available for all AT/QMI/MBIM, and the SetPacketServiceState() method is implemented for AT and MBIM, but not yet for QMI (it should be done with SSSP)

Edited by Aleksander Morgado

Merge request reports