Bionic Buffalo Tech Note #108: DSM-CC Data Carousel and Module Identification
entirely.) Receiving an unexpected
moduleVersion
is considered an error, and cancels
the current operation.
These rules imply that, when a server updates a module with a new version, it should stop
sending the old version. Transmission of the old and new versions ought not to overlap. If
an implementation wants to send two versions simultaneously, it should use some other
mechanism (such as
moduleId
) rather than
moduleVersion
to distinguish between
the two versions.
moduleInfo
The
moduleInfo
may be used for any purpose needed by the implementation,
including module identification.
If a module's
moduleInfo
changes, then the
transactionId
must change, but the
moduleVersion
may remain the same. A server may change the
moduleInfo
and
leave the
moduleVersion
intact, without cancelling a download in progress. For
instance, an implementation might use the
moduleInfo
to show the time and date for
which a module is valid. If the date and time change, but the module contents do not, the
moduleInfo
could change without affecting the
moduleVersion
.
Content Subsets
A carousel server may send different
DownloadInfoIndication
messages, each referring to a
different subset of the carousel's modules. The client may select the appropriate subset (or subsets) by
inspection of the messages'
compatibilityDescriptor
and
privateData
values. All such
subsets should have the same
downloadId
value. The client uses
moduleId
values, which are
unique for a given
downloadId
value, to select applicable
DownloadDataBlock
s.
As the carousel cycles, it will send the
DownloadInfoIndication
messages repeatedly, just as it
does the
DownloadDataBlock
messages. The specification requires that the
transactionId
change for changing
DownloadInfoIndication
messages. Since, with subsets, each
DownloadInfoIndication
message is different from the previous ones (even when the carousel
content is unchanging), the client might be confronted with a new
transactionId
for each
message, if the specification were to be interpreted strictly.
Bionic Buffalo's
guatemala
and
honduras
download software interpret the rule more liberally to
allow reuse of
transactionId
values for each subset, when the contents of that subset have not
changed. Each subset will have a unique
transactionId
value, which will change when the subset
changes. For example, if the server is advertising three subsets, with
transactionId
values A, B,
and C, then it will send
DownloadInfoIndication
messages with
transactionId
values
A, B, C, A, B, C, A, B, C, ...
Page 4 of 5