Version 3: Fix problem found by Rafał relating to the handling of sequence numbers of messages being handled internally (loop-backs), which were being rejected by the Replay Protection List (please see patch 3/5). Version 2: Fix path construction code when first reading RPL from NVM An oversight led to losing our Replay Protection List with every re-boot. This patch-set makes a number of Replay Protect List modifications that culminate in adding rpl.c/h, which stores the latest iv_index/sequence values for each node that handles an incoming packet. The first 4 patches, does some maintenance required to handle RPL according the the Mesh Specification. Brian Gix (5): mesh: Relocate tree deletion to util.c/h mesh: Move Replay Protection to mesh/net.c mesh: Clean-up unneeded Sequence Number increments mesh: Apply Replay Protection to all incoming packets mesh: Add NVM storage of Replay Protection Makefile.mesh | 1 + mesh/appkey.c | 102 --------------- mesh/appkey.h | 3 - mesh/mesh-config-json.c | 20 +-- mesh/model.c | 16 +-- mesh/net.c | 128 ++++++++++++++++--- mesh/net.h | 3 + mesh/rpl.c | 277 ++++++++++++++++++++++++++++++++++++++++ mesh/rpl.h | 30 +++++ mesh/util.c | 25 ++++ mesh/util.h | 1 + 11 files changed, 456 insertions(+), 150 deletions(-) create mode 100644 mesh/rpl.c create mode 100644 mesh/rpl.h -- 2.21.1