ГОСТ Р 59804—2021
Настоящий стандарт предусматривает использование дескриптора compatibilityDescriptor по
прямой ссылке от сообщения DownloadServerlnitiate к сообщениям Downloadlnfolndication.
Дескриптор compatibilityDescriptor сообщения DSI находится в поле Grouplnfolndication и
groupCompatibility (). Все сообщения DownloadDataBlock и Downloadlnfolndication внутри супер
группы (в случае двухуровневой карусели данных) или группы (в случае одноуровневой карусели дан
ных) имеют одинаковые идентификаторы загрузки. Это означает, что группы могут совместно использо
вать модули, потому что все modulejd уникальны в границах применения download_id.
Каждое управляющее сообщение содержит уникальный идентификатор сообщения transaction_
id. Идентификаторы transaction_id и modulejd допускается использовать для выделения данных из
карусели данных на основе ниже приведенной семантики.
Двухуровневая карусель:
- для сообщений DownloadServerlnitiate два младших байта идентификатора транзакции долж
ны находиться в диапазоне значений от 0x0000 до 0x0001;
- для сообщений Downloadlnfolndication два младших байта идентификатора транзакции долж
ны находиться в диапазоне значений от 0x0002 до OxFFFF.
В случае одноуровневой карусели в сообщениях Downloadlnfolndication два младших байта
идентификатора транзакции должны находиться в диапазоне значений от 0x0000 до 0x0001.
8.1.2 Параметры сообщения DownloadServerlnitiate
Сообщение DownloadServerlnitiate используется для создания супергруппы при перечисленной
ниже семантике карусели данных:
serverjd (20 байт) должно содержать значение OxFF;
compatibleDescriptor () должно содержать поле compatibilityDescriptorLength, в котором долж
но быть установлено значение 0x0000;
privatedatalength определяет длину в байтах структуры Grouplnfolndication;
privateDataByte должно передавать структуру Grouplnfolndication
с синтаксисом полей, определенным в таблице 20.
Таблица 20 — Структура Grouplnfolndication
СинтаксисКоличество байтов
Grouplnfolndication () {
}
NumberOfGroups
2
for (i=0; i< numberOfGroups;
i++) {
Groupld
4
GroupSize
4
GroupCompatibility ()
GroupInfoLength
2
for
(i=0;
i<N; I++) {
groupInfoByte
1
}
for (i=0; i< privateDataLength;
i++) {
PrivateDataLength
2
privateDataByte
1
}
}
Семантика структуры Grouplnfolndication должна быть следующей:
numberOfGroups — содержит количество групп, описанных в цикле, следующем за этим полем;
groupld — содержит значение поля transactions сообщения Downloadlnfolndication, описыва
ющего группу;
groupSize — содержит значение общего размера в байтах всех модулей в группе;
21