Транзит через каналы

GENERATE 3,1		;создание пакетов

MARK TIME			;замеряем момент поступления пакета в буфер перед первым каналом
*****ПЕРВЫЙ КАНАЛ********
QUEUE BUFER1		;буферизация пакета
SEIZE CHANAL1		;отправка в первый канал
DEPART BUFER1		;пакет достаётся из буфера 
ADVANCE X$TRANSMIT		;передача по каналу 1
RELEASE CHANAL1		;передача окончена
******ВТОРОЙ КАНАЛ******
QUEUE BUFER2		;буферизация пакета
SEIZE CHANAL2		;отправка во второй канал
DEPART BUFER2		;из буфера пакет достаём
ADVANCE X$TRANSMIT		;передача по каналу 2
RELEASE CHANAL2		;передача осуществлена


TEST LE MP$TIME,10,DESTROY	;проверяем превышение времени передачи
TERMINATE			;лимит не нарушен - пакет не уничтожается

DESTROY TEST G (N$DESTROY/N1),25,OTHER	;лимит превышен, значит проверяем в какой раз нарушен
        SAVEVALUE TRANSMIT,4		;если уже 25% пакетов уничтожено, то подключаются дополнительные ресуры
        TERMINATE			;удалить транзакт - уничтожить пакет
OTHER   SAVEVALUE TRANSMIT,2		;лимит превышен, но пакетов уничтожено меньше 25%
        TERMINATE			;удалить транзакт - уничтожить пакет

GENERATE (50#1000)			;время моделирования 50с пройдёт и будет создан транзакт
SAVEVALUE intDestroy,(N$DESTROY/AC1)		;для подсчёта частоты уничтожения пакетов
SAVEVALUE intInclude,((N$DESTROY-N$OTHER)/AC1)	;для подсчёта частоты превышения уровня 25% пакетов
TERMINATE 1			;для завершения моделирования


INITIAL X$TRANSMIT,2		;начальное время передачи 2мс сохраняем в ячейки TRANSMIT
start 1				;завершить моделирование, когда пройдёт 50 с

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *