tree 7f970bbcc31317193a10742f0d0fd55589c30f1a
parent 59f7a9aed641bbcce2f06f38e380c8b76b0bcf00
author Abtin Keshavarzian <abtink@google.com> 1628808446 -0700
committer GitHub <noreply@github.com> 1628808446 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJhFaT+CRBK7hj4Ov3rIwAAFQsIAHjcIOVXVjypThtvWLu5nJ/z
 R9i7ObOgBJ5gjxxcem8cn9zK/qM8gXcs2ReDZlX/hT6H3jEjGyMFhJEtsAgvDMP+
 MH8MnOioKhQT/1iU33gyvgY9I6NMBO3Tv2N9TnztN4T5pjKEqajpFK7mRrb1w+oQ
 y6pqFx7swBLKBw0TjDMhq8/XZjnOgvFstHkNygxefxpiUhBnEtEc1gSjrALj0lzg
 dozESEkfufmjeGUFtw/4eASG6ptdJPAI9l2JUTolFPcrKz3bw4DUz5kaVrSkb9Ko
 AmsruekrNRc8vRYf8uasyXLkIYbur7MRHv5TR0nBav4FOFqZFNcR149QiJ8Nn8c=
 =hA5h
 -----END PGP SIGNATURE-----
 

[utils] adding `HistoryTracker` module (#6807)

This commit adds History Tracker feature and its CLI support. This
feature records history of different events as the Thread network
operates (e.g., history of RX and TX IPv6 messages or network info
changes).

Recorded entries are timestamped. When the history list is read, the
timestamps are given as the entry age relative to the time the list
is being read. For example in CLI a timestamp can be shown as
`02:31:50.628 ago` indicating the entry was recorded 2 hours, 31 min,
50 sec, and 628 msec ago. Number of days is added for events that are
older than 24 hours, e.g., `31 days 03:00:23.931 ago`. Timestamps use
millisecond accuracy and are tacked up to 49 days. If an event is
older than 49 days, the entry is still tracked in the list but the
timestamp is shown as old or `more than 49 days ago`.

The `HistoryTracker` currently maintains 3 lists. The Network Info
history tracks changes to Device Role, Mode, RLOC16 and Partition ID.
The RX/TX history list records information about the received/sent
IPv6 messages:
- Message type (UDP, TCP, ICMP6 (and its subtype), etc.)
- Source and destination IPv6 addresses and port numbers
- IPv6 payload length
- The message checksum (for UDP, TCP, or ICMP6).
- Whether or not the link-layer security was used
- Message priority: low, norm, high, net (for control messages)
- Short address (RLOC16) of neighbor who send/received the msg
- Received Signal Strength (in dBm) for RX only
- Radio link info (15.4/TREL) on which msg was sent/received
  (useful when `OPENTHREAD_CONFIG_MULTI_RADIO` is enabled)

Config `HISTORY_TRACKER_EXCLUDE_THREAD_CONTROL_MESSAGES` can be used
to configure `HistoryTracker` to exclude Thread Control message
(e.g., MLE, TMF) from TX and RX history.

The number of entries recorded for each history list is configurable
through a set of OpenThread config options, e.g., number of entries
in Network Info history list is specified by OpenThread config option
`OPENTHREAD_CONFIG_HISTORY_TRACKER_NET_INFO_LIST_SIZE`. The
`HistoryTracker` will keep the most recent entries overwriting oldest
ones when the list gets full.

This commit also adds support for `HistoryTracker` in CLI. The CLI
commands provide two style for printing the history information: A
table format (more human-readable) and list style (better suited for
parsing by machine/code). `README_HISTORY.md` is added to document
the commands and the info provided by each history list entry.

This commit also adds `test_history_tracker.py` test-case which
covers the behavior of `HistoryTracker`.