openthread/tests
Abtin Keshavarzian 2ce3d3bf02
[mesh-forwarder] add delay-aware queue management (#7568)
This commit implements delay-aware queue management. When enabled the
device will monitor time-in-queue of messages in the direct tx queue
and if it is lager than specified thresholds it updates ECN flag
(if message indicates it is ECN-capable) and/or drop the message. This
mechanism is applied to IPv6 messages on the first device that sends
the message into Thread mesh and also on intermediate routers that are
forwarding the message (e.g., as a "mesh lowpan fragment" frame). On an
intermediate router when forwarding the fragments of a message, if any
fragment is dropped by the queue management policy, all subsequent
fragments will also be dropped.

In particular, this commit contains the following:

- Adds `DecompressEcn()` and `MarkCompressedEcn()` in `Lowpan` class
  to decompress or update the ECN field in a compressed IPHC header
  (unit test `test_lowpan` is also updated to test the new methods).
- Adds `UpdateEcnOrDrop()` which implements the main queue management
 logic. This method is used when preparing next direct tx message. It
 decides whether to keep the message as is, update ECN on it or drop
 it.
- Updates `EvictMessage()` to first apply the queue management rule
  to see if any message can be dropped before using the eviction
  logic based on message priority.
- Updates and reuses the `FragmentPriorityList` to track whether
  queue management dropped any of the fragments of same message so
  to also drop any subsequent ones.
- Updates `LogMessage()` to log when a message is dropped by
  queue-management or when ECN is marked on a message.
2022-07-08 13:02:53 -07:00
..
fuzz [settings] set sensitive keys in platform settings initialization (#7496) 2022-03-24 21:22:32 -07:00
scripts [mle] update number parent requests in an attach cycle (#7538) 2022-07-07 16:50:21 -07:00
toranj [mesh-forwarder] add delay-aware queue management (#7568) 2022-07-08 13:02:53 -07:00
unit [mesh-forwarder] add delay-aware queue management (#7568) 2022-07-08 13:02:53 -07:00
CMakeLists.txt [fuzz] add CMake support (#6147) 2021-02-08 11:28:05 -08:00
Makefile.am [script] simplify pretty (#4660) 2020-03-10 22:15:07 -07:00