When to allocate client IDs

Bjørn Mork bjorn at mork.no
Tue Mar 27 00:47:28 PDT 2012


Bjørn Mork <bjorn at mork.no> writes:
> ttuttle <ttuttle at chromium.org> wrote:
>
>>Okay, I will modify libqmi to allocate client IDs on first use, and
>>keep them around until we disconnect from the device.  Does that seem
>>reasonable?
>
> That sounds perfect to me.

Eh, another issue you want to be aware of just occurred to me: There is
at least one use case which *requires* more then one client ID per
subsystem.  The procedure for bringing up a dual stack connection is
(simplified - the profile in use must be preconfigyured to do
PDP-IPV4V6):

 id_v4 = get QMI_WDS client ID
 QMI_WDS_SET_CLIENT_IP_FAMILY_PREF(id_v4, 4)
 handle_v4 = QMI_WDS_START_NETWORK_INTERFACE(id_v4)

 id_v6 = get QMI_WDS client ID
 QMI_WDS_SET_CLIENT_IP_FAMILY_PREF(id_v4, 6)
 handle_v6 = QMI_WDS_START_NETWORK_INTERFACE(id_v6)

You will have to keep both client IDs and handles while the connection
is active, and they will both receive notifications relating to their
connection.  E.g. each of them will get a QMI_WDS_PKT_SRVC_STATUS with
the appropriate IP family TLV if the connection drops.

The procedure above comes from Dan's sniffing on the UML290 Windows
driver: http://permalink.gmane.org/gmane.linux.usb.general/58640
I've tried a few variants to see if it can be siplified, but that is the
only way I've been able to establish a dual stack connection.



Bjørn


More information about the libqmi-devel mailing list