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?