With the help of the Golioth.io team we have been trying to understand why CoAP observation is unreliable.
How does that PR solve the problem?
We need to generate different tokens per connection because the Golioth.io backend invalidates all observables sharing the same token even if they are from different DTLS sessions; so make the token 32 bits with a 16-bit connection-specific prefix (generated via os.urandom at connection time) and a 16-bit wrapping counter.
Implement the NSTART=1 constraint from the CoAP specification (i.e. only one request in flight at a time).
What problem is this PR solving?
With the help of the Golioth.io team we have been trying to understand why CoAP observation is unreliable.
How does that PR solve the problem?
os.urandom
at connection time) and a 16-bit wrapping counter.NSTART=1
constraint from the CoAP specification (i.e. only one request in flight at a time).