Eins中的WSM优先级在Veins的MAC层中实现

时间:2017-03-16 04:22:40

标签: omnet++ veins

我一次从应用程序层向静脉中的MAC_11p发送四条WSM消息。 WSM消息按照以下顺序在CCH信道上发送(优先级显示在括号中)。

wsm(3),wsm(3),wsm(1),wsm(2)

根据EDCA中的访问类别,3是最高优先级:

enum t_access_category
{
    AC_BK = 0,  // background
    AC_BE = 1,  // best effort
    AC_VI = 2,  // video
    AC_VO = 3   // voice
};

我期望首先将优先级为3(语音)的WSM发送到PHY_11p,但显然MAC_11p层按以下顺序发送消息:

wsm(1),wsm(3),wsm(3),wsm(2)

我在这里错过了什么吗?

我正在检查ECDA类中的'initiateTransmit'方法,显然该方法从队列到语音迭代队列。选择后台队列中的WSM消息进行传输,剩余的WSM消息将获得内部争用!

这是一个错误吗?

1 个答案:

答案 0 :(得分:2)

是的,这似乎是Veins 4.5中的一个错误。这种变化是在Veins 2.0-rc2和Veins 2.0之间引入的。

我已将提交https://github.com/sommer/veins/commit/d518253d推送到Veins的主分支。它首先使用优先级较高的队列来更改要解决的内部冲突的行为。