Conversation
27ee6a2 to
183369b
Compare
|
Now depends on #7468 for parent set calculation. |
a1f4890 to
a4777df
Compare
|
Should be feature complete now, so testers are welcome. I'm not going to implement metric containers in this PR and only support ETX as a metric. PR dependency graph might have gotten a bit messed up, but at least #6873 for the neighbor statistics and #7449 for a bit of additional ETX output should be enough. |
|
As a remark when people are going to test this. This PR relies heavily on ETX functionality of the netstats neighbor module. For this to work correctly, support from the radio is really a must. Only succes/noack reporting is not sufficient to really estimate the link quality. As far as I know only the mrf24j40 and the at86r233 support reading of transmission retries needed for accurate ETX estimation. For the mrf24j40 I have a patch ready contained in the chain of commits in this PR. I don't have access to an at86rf233, so I can't test any patch for transmission retries for that device. So for testing, I would either advise using mrf24j40's or write a patch for the at86rf233 and use that one. |
|
As of now, this PR would cause gnrc_rpl to depend on the netstats_neighbor module from #6873. Would it be better to make a gnrc_rpl_mrhof submodule such that the mrhof code (and dependencies) becomes optional? I can imagine lightweight nodes not wanting the extra memory required by the netstats_neighbor module. |
1cc900c to
09f00d0
Compare
|
Rebased and adjusted for current master |
This patch adds support for per neighbor statistics such as LQI/RSSI, tx count, failure count, rx count and ETX.
09f00d0 to
d18ca58
Compare
|
Rebased and uncrustified |
cgundogan
left a comment
There was a problem hiding this comment.
looks fine so far, will continue reviewing and testing.
| /** | ||
| * @brief Store this neighbor as next in the transmission queue. | ||
| * | ||
| * Set len to zero if a nop record is needed, for example if the |
| * @brief Update the next recorded neighbor with the provided numbers | ||
| * | ||
| * This only increments the statistics if the length of the l2-address of the retrieved record | ||
| * is non-zero. see also @ref netstats_nb_record. The numbers indicate the number of transmissions |
| (netif_hdr->flags & GNRC_NETIF_HDR_FLAGS_MULTICAST)) { | ||
| gnrc_netdev->dev->stats.tx_mcast_count++; | ||
| #ifdef MODULE_NETSTATS_NEIGHBOR | ||
| DEBUG("l2 stats: Destination is multicast or unicast, NULL recorded"); |
| (GNRC_NETIF_HDR_FLAGS_BROADCAST | GNRC_NETIF_HDR_FLAGS_MULTICAST)) { | ||
| gnrc_netdev->dev->stats.tx_mcast_count++; | ||
| #ifdef MODULE_NETSTATS_NEIGHBOR | ||
| DEBUG("l2 stats: Destination is multicast or unicast, NULL recorded"); |
|
|
||
| #define ENABLE_DEBUG (0) | ||
| #include "debug.h" | ||
| //static char addr_str[30]; |
|
@cgundogan Thanks for the (initial) review. I noticed that this PR was missing the "waiting for" tag. I've addressed your comments in #6873. |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions. |
This WIP is an initial work on mrhof (rfc 6719) for RPL.
Depends on #6873 (& co) for ETX statistics.
todo:
- [ ] metric containers