background image
Bionic Buffalo Tech Note #108: DSM-CC Data Carousel and Module Identification
The 
downloadId
 is not to be used for multiplexing: it is improper for two different
carousels to operate on the same channel, with only the 
downloadId
 to distinguish
between them. This implies that there must be only one carousel on any one channel.
The specification is silent regarding what constitutes a “single instance” of a scenario in
progress. New versions of the modules may be sent without changing the 
downloadId
,
and the specification does not specifically require that adding or removing modules will
require the 
downloadId
 to be changed. In other words, the contents of the carousel may
change completely, yet the same 
downloadId
 may continue to be used. This does not
preclude an implementation from adopting stricter conditions regarding 
downloadId
uniqueness. 
compatibilityDescriptor
The 
compatibilityDescriptor
 is used to indicate that the specified or requested
modules are applicable to a specific hardware or software configuration. It has a defined
format, described in the specification. A client may use the value of the
compatibilityDescriptor
 to notify the server of the type of content the client
needs, or to select from among several different content sets.
privateData
The  
privateData
 are used to convey any information required by the implementation.
One use is the same as that of the 
compatibilityDescriptor
, but without the
constraints of that variable's defined syntax and semantics.
moduleId
moduleId
 uniquely identifies a module for a given 
downloadId
. The specification
anticipates that a module may change (be updated), while its 
moduleId
 remains
constant.
moduleVersion
The 
moduleVersion
 is used to enforce module coherency by detecting changes in
module content. 
A client may detect a change in 
moduleVersion
 when the content list in a
DownloadInfoIndication
 message changes (which, in turn, triggers a change in
transactionId
.) However, the network may not guarantee that messages are
delivered in their original order, and the client may alse detect a version change when the
moduleVersion
 in a 
DownloadDataBlock
 doesn't match the expected value. (This
would occur if the new 
DownloadDataBlock
 messages were received before the
relevant 
DownloadInfoIndication
 message, or if the latter message were lost
Page 3 of 5