OMNeT++ IEEE 802.1Q 优先级

OMNeT++ IEEE 802.1Q priorities

我正在尝试使用支持 Ieee802.1q 标记的交换机创建网络。我检查了 inet 中的示例,但它们仅对制作我现在理解的 VLAN 有帮助。我的问题是在 inet 中创建的标准开关是否支持使用 Ieee8021qHeader 进行优先级排队,如果支持,有人可以帮助我吗?

没有直接支持基于该字段的优先级排队,但可以相对容易地完成:

检查 inet.queueing 包。那里有很多排队、调度等相关的东西。 (您也可以查看教程:https://inet.omnetpp.org/docs/tutorials/queueing/doc/index.html

您需要部署 inet.queueing.PacketQueue(请参阅 NED 文件中的文档)(或 DropTailQueue(如果您必须限制队列大小),这只是一个具有丢弃策略的 PacketQueue配置)

在 C++ 中实现 IPacketComparatorFunction class 以根据需要对数据包进行排序,然后将 class 配置为 PacketQueuecomparatorClass 参数.

EtherMac 当前配置为使用 EtherQueue 作为队列模块,这是一个 DropTailQueue 参数化的比较器,使用 [=19= 优先考虑以太网暂停帧](例如,参见如何创建比较器 class)。

一旦您根据 VLAN 标记实施了适当的比较器,您就可以将自己的比较器配置为队列的 comparatorClass 参数。