|
Bugzilla – Full Text Bug Listing |
| Summary: | The usage of tid in wifi and wave module shall be "if (tid > 7)" rather than "if (tid >= 7)" | ||
|---|---|---|---|
| Product: | ns-3 | Reporter: | Junling Bu <linlinjavaer> |
| Component: | wifi | Assignee: | sebastien.deronne |
| Status: | RESOLVED FIXED | ||
| Severity: | minor | CC: | ns-bugs |
| Priority: | P5 | ||
| Version: | ns-3-dev | ||
| Hardware: | PC | ||
| OS: | Linux | ||
Thanks for reporting, I will have a check. In which version have you noticed the issue? I confirm the bug still exists in ns-3-dev. It should indeed be greater than 7 and not equal and greater. Since it is an obvious fix, I will commit it asap, I do not think there is much comments to bring on this. fixed in changeset 11426:e2441f5f2c55 |
Hi, In adhoc-wifi-mac.cc, ap-wifi-mac.cc, sta-wifi-mac.cc of wifi moudle and ocb-wifi-mac.cc of wave moudule, there is a method called "Enqueue". Its implementation has a part about tid: // Fill in the QoS control field in the MAC header tid = QosUtilsGetTidForPacket (packet); // Any value greater than 7 is invalid and likely indicates that // the packet had no QoS tag, so we revert to zero, which'll // mean that AC_BE is used. if (tid >= 7) { tid = 0; } hdr.SetQosTid (tid); Here if tid is greater than 7, then tid will be assigned default valud 0. However I think we should use "if (tid > 7)" rather than "if (tid >= 7)". Because if tid from a packet is 7, the correspnding AcIndex is AC_VO. If tid is chaned to 0 by original code there, the correspnding AcIndex is AC_BE. So imaging that, there is a packet which is important and wants to use AC_VO MAC queue, but is wrongly inserted into AC_VO MAC queue :( I found this issue in the old ns-3 version, but seems still there in current devel version. I still use an old ns-3 version thus I have not created the patch. Hope the maintainer can review this issue and complete the patch. Thanks. Junling