Hi Dan, I think the Echo option should be workable for your case (and in fact would provide an example of a case where the "time-limited single-use cryptographic nonce" that I had asked about in my review of draft-ietf-core-echo-request-tag might be applicable).
I expect the URI-Query proposal would be functional as well, but perhaps require more complexity, especially when the number of round-trips in the EAP mechanism is not going to be known in advance. I don't think I quite understand the concerns with Location-Path and Location-Query (possibly because it's late in the day for me) and can't provide an answer for your question about that mechanism. -Ben On Tue, Mar 30, 2021 at 06:49:32PM +0200, Dan Garcia Carrillo wrote: > Hi ACE, > > Last Thursday we had a conversation with Christian regarding possible > optimizations on how to provide the requisite of the ordering guarantee > for EAP. > > This is currently achieved with an Option we define (SeqNum) to maintain > a sequence number. This number is initialized randomly by the Controller > and increased monotonically. This way the IoT device is able to know > which is the next expected message. > > In previous investigations, having into account that we are dealing with > a lock-step protocol, we consider using the MSG-ID. The fact that they > can be generated randomly was not a problem, since we considered that > the CoAP engine store the recent MSG-IDs to detect duplicates, and any > new message with an unregistered MSG-ID was considered the next expected > message. > > After our conversation with Christian, he pointed out that there may be > implementations which may not keep track of recent MSG-IDs, hence we may > need to rely on other mechanism to ensure the message sent is the one > expeted. > > To avoid defining a new option, we could use existing solutions to help > provide ordered delivery: > - URI-Query > - Location-Path and Location-Query > - Echo Option > > URI-Query: > We can use this as part of the request to specify accesing a resource > with a subsequent value that indicates the step we are currently in > (e.g., /b/x/n), 'b' -> bootstrapping service; 'x'-> resource for the > currenty bootstrapping state; 'n'-> the current exchange > > Location-Path and Location-Query: > In the response we would indicate the update on the current state and > what is expected from the client in the next message, by adding the > Location-Path and Location-Query Options. The problem is that currently > these options are specified with 2.01 response code, not 2.04 Changed > (the one we are using every time we update the bootstrapping state). > > Our question is, would be possible to have this confirmation in the > response? > > Echo Option: > Finally, another option proposed by Christian is to use the Echo Option, > starting in the first ACK from the server, to achieve the ordering > guarantee. The server would state a number that has to be replied in > another Echo Option in the next POST request from the server. > > > We feel that the mechamism finally chosen, that we are pursuing for the > need of the EAP requirements, could be used for any lock-step protocol > using CoAP as transport. > > This is what we understood, please Christian comment if there is > something to be clarified. > > > I think the option with the Echo Option we achieve a clean solution with > a similar approach as we propose with the SeqNum Option. > > Best Regards, > > Dan. > > > > [1] https://tools.ietf.org/html/draft-ietf-core-echo-request-tag-12 > > > > _______________________________________________ > Ace mailing list > [email protected] > https://www.ietf.org/mailman/listinfo/ace _______________________________________________ Ace mailing list [email protected] https://www.ietf.org/mailman/listinfo/ace
