Transaction ID Meaning and function
Markus Gothe
nietzsche at lysator.liu.se
Sat May 9 12:33:21 PDT 2015
FWIW I found out going from 1 and incrementing the TID is the best current generic practice. However it will, as I wrote before, sooner or later overflow AFAIU.
//M
Den 8 maj 2015 19:22 skrev Bjørn Mork <bjorn at mork.no>:
>
> Joe <joe.on.list at gmail.com> writes:
>
> > Hi all,
> >
> > I'd like some more info about Transaction IDs used in mbim-network
> > script as an argument of "--no-open" option of mbimcli.
> >
> > Could you explain me better why there's need specifying a "$TRID"
> > transaction id?
> > I think the answer likely will envolves some basics of MBIM
> > communication protocol...
>
> I'll recommend reading the spec if you are interested in the details.
> It's quite readable for a standard :-)
>
> The transaction ID is defined in section 9, "MBIM CONTROL MESSAGES", as
>
> MBIM control messages must be supported by an MBIM function. In the
> more detailed descriptions below, the messages include a TransactionId
> field. This is used to match sent messages with responses. With this
> mechanism, a host can send multiple MBIM messages to a function
> concurrently without concern for the ordering of responses. An MBIM
> function must maintain the TransactionId field when returning a
> response. For notifications, the TransactionId must be set to 0 by the
> function.
>
> and further refined in Table 9‐1, "MBIM_MESSAGE_HEADER":
>
> Specifies the MBIM message id value. This value is used to match
> host‐sent messages with function responses. This value must be unique
> among all outstanding transactions. For notifications, the
> TransactionId must be set to 0 by the function.
>
> So according to the spec you are really quite free to choose any ID you
> want, as long as it's
> a) different from 0
> b) different from all IDs you are currently waiting for the modem to
> answer
>
> But I'm sure there are vendors who have managed to screw this up, and
> have firmwares assuming some specific transaction ID sequence... Most
> likely whatever Windows uses. I haven't bothered to check that.
>
> Note that Errata-1 updated the spec without changing the revision number
> with, among other changes, a new section 6.5 "MBIM EXTENDED FUNCTIONAL
> DESCRIPTOR" defining... well, surprise, surprise, the "MBIM Extended
> Functional Descriptor". Which has a bMaxOutstandingCommandMessages
> field described as
>
> Max number of outstanding Command Messages the device can handle
> simultaneously. Shall be greater than 0.
>
> So an errata-1 MBIM device is allowed to limit the number of outstanding
> messages to 1, in which case the transaction ID becomes completely
> irrelevant. Which is more than a theoretical issue given that for
> example my Sierra Wireless EM7345 has this:
>
> CDC MBIM Extended:
> bcdMBIMExtendedVersion 1.00
> bMaxOutstandingCommandMessages 1
> wMTU 1428
>
> There are probably pre-errata-1 devices out there with a similar, but
> unknown, limit.
>
> > Anyway I've not found any documentation regarding... so if you
> > could give me few more details that would be really appreciated.
>
> The docs are here:
> http://www.usb.org/developers/docs/devclass_docs/MBIM10Errata1_073013.zip
>
> Bjørn
> _______________________________________________
> libmbim-devel mailing list
> libmbim-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libmbim-devel
More information about the libmbim-devel
mailing list