background image
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 AB,
and C, then it will send 
DownloadInfoIndication
 messages with 
transactionId
 values
ABCABCABC, ...
Page 4 of 5