This pull request contains a newly written version of the dsLink with a new architecture.
In this new version, rather than creating a tree of fake nodes, the link localizes the RIDs, CIDs and paths of the requests and passes them on.
Rather than creating a new resource for each node, a new resource is created for each RID (including RID 0) and used to pass updates for that RID. The resources are closed once the RID is discarded.
This architecture is designed to simplify data transmission, minimize corner cases and improve performance. It should eliminate "ghost nodes" which appear when local tree goes out of sync with the remote tree in the old link, as well as allow for simple tuning of COAP usage in future versions by altering the number of COAP resources, changing QOS levels in COAP, improving lost message handling, batching DSA messages and modifying COAP executor parameters.
This pull request contains a newly written version of the dsLink with a new architecture.
In this new version, rather than creating a tree of fake nodes, the link localizes the RIDs, CIDs and paths of the requests and passes them on.
Rather than creating a new resource for each node, a new resource is created for each RID (including RID 0) and used to pass updates for that RID. The resources are closed once the RID is discarded.
This architecture is designed to simplify data transmission, minimize corner cases and improve performance. It should eliminate "ghost nodes" which appear when local tree goes out of sync with the remote tree in the old link, as well as allow for simple tuning of COAP usage in future versions by altering the number of COAP resources, changing QOS levels in COAP, improving lost message handling, batching DSA messages and modifying COAP executor parameters.