signal

advertisement
681453830
1
Осипов В.С.
Описание программного интерфейса
между модулями MG и DETH
(версия №1 от 29.01.06)
1. Сигналы передачи пакетов
1.1.
Информация из MG в DETH
В модуль DETH из модуля MG передается IP-(или ARP-)пакет для выдачи в кадре
Ethernet. Информация передается в виде сигнала MADR_nt со следующими
параметрами:
-
DA (6 байт) - МАС-адрес назначения;
PR_VID (2 байта) – запрашиваемый приоритет передачи (PR) (3бита) и
идентификатор VLAN (VID) (12 бит);
-
Protocol (1 байт) – тип протокола: 0 – IP, 1 – ARP;
-
L (2 байта) – длина поля данных пользователя кадра Ethernet;
-
IP_packet – данные пользователя (IP- или ARP-пакет).
На рис.1 приведен формат параметров сигнала MADR_nt,
на рис.2 – формат параметра PR_VID.
Рис.1. Формат параметров сигнала MADR_nt
DA
PR_VID Protocol
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-(ARP-)пакета, поступившего в сигнале MADR_nt, должен использоваться формат
Ethernet-кадра, приведенный на рис.3,
где DA – MAC-адрес назначения,
SA – МАС-адрес источника - собственный МАС-адрес брикета шлюза,
TYPE – код типа протокола, равный 0x0800 для IP-пакета и
0x0806 для ARP-пакета, вложенного в Ethernet-кадр,
DATA - IP-пакет и, если требуется, октеты заполнения для обеспечения
минимальной длины поля DATA в 46 октетов,
FCS – контрольная сумма.
Рис. 3. Нетегированный кадр
DA
SA
TYPE=
0x0800
(0x0806)
DATA
FCS
6 байт
6 байт
2 байта
46-1500 байт
4 байта
Если значение параметра PR_VID не равно нулю, то для выдачи в сеть Ethernet
IP-(ARP-)пакета, поступившего в сигнале MADR_nt, должен использоваться формат
Ethernet-кадра с тэгом (см. п.3.5 стандарта IEEE Std 802.3), приведенный на рис.4.
681453830
2
Рис. 4. Тегированный кадр
1.2.
DA
SA
Tag Type=
0x8100
PR_VID
TYPE=
0x0800
(0x0806)
DATA
FCS
6 байт
6 байт
2 байта
2 байта
2 байта
42-1496 байт
4 байта
Информация из DETH в MG
В модуль MG из модуля DETH передается IP-(или ARP-)пакет, принятый в кадре
Ethernet. Информация передается в виде сигнала MADI_nt со следующими
параметрами:
-
PR_VID (2 байта) – приоритет передачи (PR) (3бита) и идентификатор VLAN
(VID) (12 бит). Если принятый кадр Ethernet не содержит тэга, то передается
нулевое значение PR_VID;
-
Protocol (1 байт) – тип протокола: 0 – IP, 1 – ARP;
-
L (2 байта) – длина поля данных пользователя кадра Ethernet;
-
MAC_data – данные пользователя (поле DATA Ethernet-кадра, состоящее из
IP-(ARP-)пакета и, если требуется, октетов заполнения для обеспечения
минимальной длины поля DATA в 46 октетов).
На рис.5 приведен формат параметров сигнала MADI_nt.
Рис.5. Формат параметров сигнала MADI_nt
PR_VID Protocol
1.3.
L
MAC_data
Описание сигналов MADR_nt и MADI_nt на языке SDL в модуле MG
Ниже приведено описание на языке SDL сигналов модуля MG - выходного сигнала
MADR_nt и входного сигнала MADI_nt.
Параметр DA имеет тип MAC, параметры PR_VID и L – тип integer,
параметр Protocol – тип octet.
Данные пользователя передаются в параметрах IP_packet и MAC_data начиная с первых
октетов и могут занимать не все поле параметра.
SIGNAL
MADR_nt (MAC, integer, octet, integer,IP_packet),
/* Передача IP- или ARP-пакета для выдачи в кадре Ethernet в IP-сеть.
Параметры: ( DA, PR_VID, тип протокола (0 - IP, 1 - ARP), 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;
681453830
3
/***
IP-пакет для отправки UDP-дейтаграмм и TCP-сегментов
***/
NEWTYPE IP_packet struct
header IP_header;
data IP_data;
ENDNEWTYPE;
/* Общее количество октетов в IP_packet – не более 576 (RFC 791, 3.1, "Total Length").
Определения IP_header и IP_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.
Сигнал оповещения о переполнении
При переполнении буфера временного хранения данных, поступающих в сигналах
MADR_nt и MADR (см. интерфейс I_DETH_MLLC), модулем DETH выдается сигнал
DRVFF (см. интерфейс I_DETH_MLLC).
2.2.
Сигнал MG_Start - используется функцией интеграции SDL-системы.
Ниже приведено описание сигнала на языке SDL.
SIGNAL
/* из MG в DETH */
MG_Start; /* Служебный сигнал, выдается при старте процесса */
3. Программная реализация интерфейса
Программная реализация интерфейса определяется Певзнером совместно с Лаптевым.
4. Форматы сигналов могут уточняться в ходе разработки ПО.
Download