我将从应用程序层一次发送四条WSM消息到静脉中的MAC_11p. 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消息将获得内部争用!
这是一个错误吗?
最佳答案 是的,这似乎是Veins 4.5中的一个错误.这种变化是在Veins 2.0-rc2和Veins 2.0之间引入的.
我已经将https://github.com/sommer/veins/commit/d518253d提交到了Veins的主分支.它首先使用优先级较高的队列来更改要解决的内部冲突的行为.