This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Repeated tid in received message does not throw out message but causes repeated app layer call

I am working on developing an application where the app layer tries to throw out messages if the message parameters are not valid.  One the parameters to validate is a TID which uses the TID validation from the model_common.c . I found a weird interaction. If a message is a retransmission with the same TID from the same source node instead of throwing the message out as a repeated transaction, the message is sent to the model layer multiple times until after the TID_VALIDATION_INTERVAL_US has expired.  Then it treats it as a new transmission.  The log below is from a test with the generic on_off example from the mesh 3.2 sdk.  The only modification I made was to model_common.c to add the LOG statements in lines 142 and 147.

What is causing this repeated calls of the model layer? How do I prevent this from happening?  Is there a function to abort the process or is it a setting somewhere?