681450279 Осипов В.С. Описание программного интерфейса между модулями DETH и IPCOM (версия №1 от 4.02.06) 1. Сигналы передачи пакетов 1.1. Информация из IPCOM в DETH В модуль DETH из модуля IPCOM передается IP-пакет для выдачи в кадре Ethernet. Информация передается в виде сигнала MADR_nt_sound со следующими параметрами: - DA (6 байт) - МАС-адрес назначения; PR_VID (2 байта) – запрашиваемый приоритет передачи (PR) (3бита) и идентификатор VLAN (VID) (12 бит); - L (2 байта) – длина поля данных пользователя кадра Ethernet; - IP_packet_sound – данные пользователя (IP-пакет со звуковыми данными). На рис.1 приведен формат параметров сигнала MADR_nt, на рис.2 – формат параметра PR_VID. Рис.1. Формат параметров сигнала MADR_nt_sound DA PR_VID L IP_packet Рис.2. Формат параметра PR_VID Биты 15 14 13 12 11 10 PR 9 8 7 0 6 5 4 3 2 1 0 VID Если значение параметра PR_VID равно нулю, то для выдачи в сеть Ethernet IP-пакета, поступившего в сигнале MADR_nt_sound, должен использоваться формат Ethernet-кадра, приведенный на рис.3, где DA – MAC-адрес назначения, SA – МАС-адрес источника - собственный МАС-адрес брикета шлюза, TYPE – код типа протокола, равный 0x0800 для IP-пакета, вложенного в Ethernet-кадр, DATA - IP-пакет и, если требуется, октеты заполнения для обеспечения минимальной длины поля DATA в 46 октетов, FCS – контрольная сумма. Рис. 3. Нетегированный кадр DA SA TYPE= 0x0800 DATA FCS 6 байт 6 байт 2 байта 46-1500 байт 4 байта Если значение параметра PR_VID не равно нулю, то для выдачи в сеть Ethernet IP-пакета, поступившего в сигнале MADR_nt_sound, должен использоваться формат Ethernet-кадра с тэгом (см. п.3.5 стандарта IEEE Std 802.3), приведенный на рис.4. Рис. 4. Тегированный кадр DA SA Tag Type= 0x8100 PR_VID TYPE= 0x0800 DATA FCS 6 байт 6 байт 2 байта 2 байта 2 байта 42-1496 байт 4 байта 681450279 1.2. 2 Информация из DETH в IPCOM В модуль IPCOM из модуля DETH передается IP-пакет, принятый в кадре Ethernet. Информация передается в виде сигнала MADI_nt со следующими параметрами: - PR_VID (2 байта) – приоритет передачи (PR) (3бита) и идентификатор VLAN (VID) (12 бит). Если принятый кадр Ethernet не содержит тэга, то передается нулевое значение PR_VID; - Protocol (1 байт) – тип протокола, равный 0 (IP); - L (2 байта) – длина поля данных пользователя кадра Ethernet; - MAC_data – данные пользователя (поле DATA Ethernet-кадра, состоящее из IP-пакета и, если требуется, октетов заполнения для обеспечения минимальной длины поля DATA в 46 октетов). На рис.5 приведен формат параметров сигнала MADI_nt. Рис.5. Формат параметров сигнала MADI_nt PR_VID Protocol 1.3. L MAC_data Описание сигналов MADR_nt_sound и MADI_nt на языке SDL в модуле MG Ниже приведено описание на языке SDL сигналов модуля MG - выходного сигнала MADR_nt_sound и входного сигнала MADI_nt. Параметр DA имеет тип MAC, параметры PR_VID и L – тип integer, параметр Protocol – тип octet. Данные пользователя передаются в параметрах IP_packet_sound и MAC_data начиная с первых октетов и могут занимать не все поле параметра. SIGNAL MADR_nt_sound (MAC, integer, integer,IP_packet_sound), /* Передача IP-пакета со звуковыми данными для выдачи в кадре Ethernet в IP-сеть. Параметры: ( DA, PR_VID, L, IP-пакет со звуковыми данными) */ MADI_nt (integer, octet, integer, MAC_data); /* Передача IP- или ARP-пакета, поступивщего в кадре Ethernet из IP-сети. Параметры: ( PR_VID, тип протокола (0 - IP, 1 - ARP), L, MAC_data ) */ NEWTYPE MAC /* MAC ADDRESS */ array(Index_m,octet) ENDNEWTYPE; SYNTYPE Index_m=integer constants 1:6 ENDSYNTYPE; /*** IP-пакет для отправки звуковых данных (RTP-пакетов) ***/ NEWTYPE IP_packet_sound struct IP_header IP_header; UDP_header UDP_header; RTP_header RTP_header; RTP_data RTP_data; ENDNEWTYPE; 681450279 3 /* Общее количество октетов в IP_packet_sound – не более 576 (RFC 791, 3.1, "Total Length"). Определения IP_header, UDP_header, RTP_header и RTP_data даны в пакете MG_declarations */ /*** Массив данных принятого Ethernet-кадра ***/ NEWTYPE MAC_data array (MAC_data_index,octet) ENDNEWTYPE; SYNTYPE MAC_data_index=integer constants 0:MAC_DATA_LEN -1 ENDSYNTYPE; /* Максимальный размер массива данных */ SYNONYM MAC_DATA_LEN Integer = 1500; 2. Служебные сигналы 2.1. Сигнал IPCOM_Start - используется функцией интеграции SDL-системы. Ниже приведено описание сигнала на языке SDL. SIGNAL /* из IPCOM в DETH */ IPCOM_Start; /* Служебный сигнал, выдается при старте процесса */ 3. Программная реализация интерфейса Программная реализация интерфейса определяется Певзнером совместно с Лаптевым. 4. Форматы сигналов могут уточняться в ходе разработки ПО.