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
A
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