OSCOAP Interop 4 Recap

14-15th of July 2017, all day

Participants

Note takers

Francesca, Christian

Documentation

[1]: Test specification provided

[2]: OSCOAP version implemented

Summary

This 4th interop was carried on before the IETF99. Four implementors participated: Christian, Jim, Martin and Malisa, with implementations based on OSCOAP v-04 (see [2]).

The result is summarized in the table below:

round Client Server Result

1

Christian

Martin

 Passed

2

Malisa

Christian

 Passed

3

Martin

Christian

 Passed

4

Christian

Malisa

 Passed

5

Christian

Jim

 Passed

The set of tests was run in parallel between most implementations. The outcome of each test during the run was marked as successful (passed) or not (failed) if the outcome was the one expected according to the test specification [1]. Christian has also captured the traffic and shared it with us, to allow for a more extensive analysis of the results.

Test set 5 tests OSCOAP with Blockwise. Jim and Christian did not run Tests 1-15 since they were tested and passed during Interop 3. Also, it is worth noting that all tests marked as * in Interop 3 were run remotely between Interop 3 and Interop 4 and passed (3, 4, 5).

For test set 2 and 4, many tests were skipped because of features non implemented in the CoAP implementation used, but the OSCOAP processing passed, so the test is considered successful.

In short, this interop for OSCOAP was successful, with some implementations disagreements that provided good feedback and new input for the draft specification.

Details

notes:

Added one test: 15: ordinary CoAP request (without OSCOAP) to a resource that requires OSCOAP. Expects 4.01 Unauthorized response.

1. Client: Christian, Server: Martin

Note: Martin's server sometimes did not send the response back (on Martin's side it looked like it was sent but Christian Client did not receive it) * CoAP issues in the response.

2. Client: Malisa, Server: Christian

Test12: About the "empty ack": the server is sending the response piggy-backed, so the client has no reason to send an empty ack back.

3. Client: Martin, Server: Christian

4. Client: Christian, Server: Malisa

What we found that's not tested: CoAP implementations that do not store seen message IDs and the responses (but rather trust that every request is idempotent), like the one under Malisa's OSCOAP implementation, create replay protection errors when a regular CoAP retransmission (eg. due to a lost response) happens.

Another issue for the "basic CoAP plug tests" list is that tokens are not to be treated like integers, so leading zeros must not be stripped.

5. Client: Christian, Server: Jim

Feedback on Test Specifications and Issues