Subject: [core] observation on strict tolerance and Max-Age

From: "Peter A. Bigot" <[email-masked]>
Date: Mon, 07 Oct 2013 13:01:49 -0500

In my email about observe I noted the SHOULD obligation in coap-18 
section 5.10.5:

    The value is intended to be current at the time of transmission.
    Servers that provide resources with strict tolerances on the value of
    Max-Age SHOULD update the value before each retransmission.  (See
    also Section 5.7.1.)

In scanning the list archives I see only one discussion that touched on 
this (Spencer Dawkins' comments on 15 May 2013), where there was a 
statement made about an expectation that CoAP servers be aware of the 
nature of the resources they were serving, with an implication that most 
resources are not subject to the SHOULD because they don't require such 
tolerances.

As I read it, when a message does contain a representation of a resource 
with "strict tolerances" the origin server must update (and potentially 
add, if the first transmission was defaulted) the Max-Age option value 
in two cases: (1) on each re-transmission of an unacknowledged 
confirmable response under BEBO, and (2) on re-transmission of a 
piggy-backed response due to duplicated receipt of a request per 4.5.

Further, while it may be reasonable to expect that a server knows which 
of its resources have strict tolerances, it is less reasonable to expect 
this of a proxy.  5.7.1 merely mentions they must update Max-Age for the 
response; absent some way to communicate the strictness of the cached 
resource representation to the proxy, there's a case to be made that 
proxies must do this sort of update on all retransmissions of that response.

Peter