OMNeT ++ IEEE 802.1Q приоритеты - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь создать сеть с коммутатором, который поддерживает теги Ieee802.1q. Я проверил примеры в inet, но они были полезны только в отношении создания VLAN, которые я теперь понимаю. У меня вопрос: поддерживает ли стандартный переключатель, созданный в inet, приоритетную очередь с Ieee8021qHeader и, если да, может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 24 марта 2020

Нет прямой поддержки приоритетной очереди, основанной на этом поле, но это можно сделать относительно легко:

Проверьте пакет inet.queueing. Существует множество очередей, расписаний и т. Д. c. связанные вещи там. (вы также можете проверить учебник: https://inet.omnetpp.org/docs/tutorials/queueing/doc/index.html)

Вам необходимо развернуть inet.queueing.PacketQueue (см. документы в файле NED) (или DropTailQueue (если у вас есть ограничить размер очереди) (это просто PacketQueue с настроенной стратегией отбрасывания)

Реализация класса IPacketComparatorFunction в C ++ для упорядочивания ваших пакетов по мере необходимости, а затем настройте этот класс в качестве параметра comparatorClass PacketQueue.

В настоящее время EtherMac настроен на использование EtherQueue в качестве модуля очереди, который DropTailQueue параметризован с помощью компаратора, который отдает приоритет rnet кадрам PAUSE с использованием inet::EthernetFrameComparator (см., Например, как создать класс компаратора).

Как только вы реализуете правильный компаратор на основе тегов VLAN, вы можете просто настроить свой собственный компаратор в качестве параметра comparatorClass в очереди.

...