rfc9770v6.txt   rfc9770.txt 
skipping to change at line 2771 skipping to change at line 2771
C.1. Full Query with Observe C.1. Full Query with Observe
Figure 10 shows an interaction example of a CoAP observation and a Figure 10 shows an interaction example of a CoAP observation and a
full query of the TRL. full query of the TRL.
In this example, the AS does not support the "Cursor" extension. In this example, the AS does not support the "Cursor" extension.
Hence, the 'cursor' parameter is not included in the payload of the Hence, the 'cursor' parameter is not included in the payload of the
responses to a full query request. responses to a full query request.
RS AS RS AS
| | | |
| Registration: POST | | Registration: POST |
+--------------------------------------------------->| +------------------------------------------------------>|
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.01 Created | | 2.01 Created |
| Payload: { | | Payload: { |
| / ... / | | / ... / |
| "trl_path" : "/revoke/trl", | | "trl_path": "/revoke/trl", |
| "trl_hash" : "sha-256", | | "trl_hash": "sha-256", |
| "max_n" : 10 | | "max_n": 10 |
| } | | } |
| | | |
| GET coap://as.example.com/revoke/trl/ | | GET coap://as.example.com/revoke/trl/ |
| Observe: 0 | | Observe: 0 |
+--------------------------------------------------->| +------------------------------------------------------>|
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 42 | | Observe: 42 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [] | | / full_set / 0: [] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access tokens t1 and t2 issued | | (Access tokens t1 and t2 issued |
| and successfully submitted to RS) | | and successfully submitted to RS) |
| | | |
| ... | | ... |
| | | |
| (Access token t1 is revoked) | | (Access token t1 is revoked) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 53 | | Observe: 53 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t1)] | | / full_set / 0: [bstr.h(t1)] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 is revoked) | | (Access token t2 is revoked) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 64 | | Observe: 64 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t1), bstr.h(t2)] | | / full_set / 0: [bstr.h(t1), bstr.h(t2)] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t1 expires) | | (Access token t1 expires) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 75 | | Observe: 75 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t2)] | | / full_set / 0: [bstr.h(t2)] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 expires) | | (Access token t2 expires) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 86 | | Observe: 86 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [] | | / full_set / 0: [] |
| } | | } |
| | | |
Figure 10: Interaction for Full Query with Observe Figure 10: Interaction for Full Query with Observe
C.2. Diff Query with Observe C.2. Diff Query with Observe
Figure 11 shows an interaction example of a CoAP observation and a Figure 11 shows an interaction example of a CoAP observation and a
diff query of the TRL. diff query of the TRL.
The RS indicates N = 3 as the value of the 'diff' query parameter, The RS indicates N = 3 as the value of the 'diff' query parameter,
i.e., as the maximum number of diff entries to be included in a i.e., as the maximum number of diff entries to be included in a
response from the AS. response from the AS.
In this example, the AS does not support the "Cursor" extension. In this example, the AS does not support the "Cursor" extension.
Hence, the 'cursor' parameter and the 'more' parameter are not Hence, the 'cursor' parameter and the 'more' parameter are not
included in the payload of the responses to a diff query request. included in the payload of the responses to a diff query request.
RS AS RS AS
| | | |
| Registration: POST | | Registration: POST |
+--------------------------------------------------->| +------------------------------------------------------>|
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.01 Created | | 2.01 Created |
| Payload: { | | Payload: { |
| / ... / | | / ... / |
| "trl_path" : "/revoke/trl", | | "trl_path": "/revoke/trl", |
| "trl_hash" : "sha-256", | | "trl_hash": "sha-256", |
| "max_n" : 10 | | "max_n": 10 |
| } | | } |
| | | |
| GET coap://as.example.com/revoke/trl?diff=3 | | GET coap://as.example.com/revoke/trl?diff=3 |
| Observe: 0 | | Observe: 0 |
+--------------------------------------------------->| +------------------------------------------------------>|
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 42 | | Observe: 42 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [] | | / diff_set / 1: [] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access tokens t1 and t2 issued | | (Access tokens t1 and t2 issued |
| and successfully submitted to RS) | | and successfully submitted to RS) |
| | | |
| ... | | ... |
| | | |
| (Access token t1 is revoked) | | (Access token t1 is revoked) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 53 | | Observe: 53 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [], [bstr.h(t1)] ] | | [ [], [bstr.h(t1)] ] |
| ] | | ] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 is revoked) | | (Access token t2 is revoked) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 64 | | Observe: 64 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [], [bstr.h(t2)] ], | | [ [], [bstr.h(t2)] ], |
| [ [], [bstr.h(t1)] ] | | [ [], [bstr.h(t1)] ] |
| ] | | ] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t1 expires) | | (Access token t1 expires) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 75 | | Observe: 75 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [bstr.h(t1)], [] ], | | [ [bstr.h(t1)], [] ], |
| [ [], [bstr.h(t2)] ], | | [ [], [bstr.h(t2)] ], |
| [ [], [bstr.h(t1)] ] | | [ [], [bstr.h(t1)] ] |
| ] | | ] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 expires) | | (Access token t2 expires) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 86 | | Observe: 86 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [bstr.h(t2)], [] ], | | [ [bstr.h(t2)], [] ], |
| [ [bstr.h(t1)], [] ], | | [ [bstr.h(t1)], [] ], |
| [ [], [bstr.h(t2)] ] | | [ [], [bstr.h(t2)] ] |
| ] | | ] |
| } | | } |
| | | |
Figure 11: Interaction for Diff Query with Observe Figure 11: Interaction for Diff Query with Observe
C.3. Full Query with Observe and Diff Query C.3. Full Query with Observe and Diff Query
Figure 12 shows an interaction example of a CoAP observation and a Figure 12 shows an interaction example of a CoAP observation and a
full query of the TRL. full query of the TRL.
The example also shows one of the notifications from the AS getting The example also shows one of the notifications from the AS getting
lost in transmission; thus, that notification does not reach the RS. lost in transmission; thus, that notification does not reach the RS.
skipping to change at line 2982 skipping to change at line 2982
The RS indicates N = 8 as the value of the 'diff' query parameter, The RS indicates N = 8 as the value of the 'diff' query parameter,
i.e., as the maximum number of diff entries to be included in a i.e., as the maximum number of diff entries to be included in a
response from the AS. response from the AS.
In this example, the AS does not support the "Cursor" extension. In this example, the AS does not support the "Cursor" extension.
Hence, the 'cursor' parameter is not included in the payload of the Hence, the 'cursor' parameter is not included in the payload of the
responses to a full query request. Also, the 'cursor' parameter and responses to a full query request. Also, the 'cursor' parameter and
the 'more' parameter are not included in the payload of the responses the 'more' parameter are not included in the payload of the responses
to a diff query request. to a diff query request.
RS AS RS AS
| | | |
| Registration: POST | | Registration: POST |
+--------------------------------------------------->| +------------------------------------------------------>|
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.01 Created | | 2.01 Created |
| Payload: { | | Payload: { |
| / ... / | | / ... / |
| "trl_path" : "/revoke/trl", | | "trl_path": "/revoke/trl", |
| "trl_hash" : "sha-256", | | "trl_hash": "sha-256", |
| "max_n" : 10 | | "max_n": 10 |
| } | | } |
| | | |
| GET coap://as.example.com/revoke/trl/ | | GET coap://as.example.com/revoke/trl/ |
| Observe: 0 | | Observe: 0 |
+--------------------------------------------------->| +------------------------------------------------------>|
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 42 | | Observe: 42 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [] | | / full_set / 0: [] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access tokens t1 and t2 issued | | (Access tokens t1 and t2 issued |
| and successfully submitted to RS) | | and successfully submitted to RS) |
| | | |
| ... | | ... |
| | | |
| (Access token t1 is revoked) | | (Access token t1 is revoked) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 53 | | Observe: 53 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t1)] | | / full_set / 0: [bstr.h(t1)] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 is revoked) | | (Access token t2 is revoked) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 64 | | Observe: 64 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t1), bstr.h(t2)] | | / full_set / 0: [bstr.h(t1), bstr.h(t2)] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t1 expires) | | (Access token t1 expires) |
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 75 | | Observe: 75 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t2)] | | / full_set / 0: [bstr.h(t2)] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 expires) | | (Access token t2 expires) |
| | | |
| Lost X <------------------------------------------+ | Lost X <---------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 86 | | Observe: 86 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [] | | / full_set / 0: [] |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Enough time has passed since | | (Enough time has passed since |
| the latest received notification) | | the latest received notification) |
| | | |
| | | |
| GET coap://as.example.com/revoke/trl?diff=8 | | GET coap://as.example.com/revoke/trl?diff=8 |
+--------------------------------------------------->| +------------------------------------------------------>|
| | | |
|<---------------------------------------------------+ |<------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [bstr.h(t2)], [] ], | | [ [bstr.h(t2)], [] ], |
| [ [bstr.h(t1)], [] ], | | [ [bstr.h(t1)], [] ], |
| [ [], [bstr.h(t2)] ], | | [ [], [bstr.h(t2)] ], |
| [ [], [bstr.h(t1)] ] | | [ [], [bstr.h(t1)] ] |
| ] | | ] |
| } | | } |
| | | |
Figure 12: Interaction for Full Query with Observe and Diff Query Figure 12: Interaction for Full Query with Observe and Diff Query
C.4. Diff Query with Observe and "Cursor" Extension C.4. Diff Query with Observe and "Cursor" Extension
In this example, the AS supports the "Cursor" extension. Hence, the In this example, the AS supports the "Cursor" extension. Hence, the
CBOR map conveyed as payload of the registration response CBOR map conveyed as payload of the registration response
additionally includes a "max_diff_batch" parameter. This specifies additionally includes a "max_diff_batch" parameter. This specifies
the value of MAX_DIFF_BATCH, i.e., the maximum number of diff entries the value of MAX_DIFF_BATCH, i.e., the maximum number of diff entries
that can be included in a response to a diff query request from this that can be included in a response to a diff query request from this
skipping to change at line 3111 skipping to change at line 3111
If the RS has not received a notification from the AS for a waiting If the RS has not received a notification from the AS for a waiting
time defined by the application, the RS sends a GET request with no time defined by the application, the RS sends a GET request with no
Observe Option to the AS, asking the AS to perform a diff query of Observe Option to the AS, asking the AS to perform a diff query of
the TRL. the TRL.
This is followed up by a further diff query request that includes the This is followed up by a further diff query request that includes the
'cursor' query parameter. Note that the payload of the corresponding 'cursor' query parameter. Note that the payload of the corresponding
response differs from the payload of the response to the previous response differs from the payload of the response to the previous
diff query request. diff query request.
RS AS RS AS
| | | |
| Registration: POST | | Registration: POST |
+------------------------------------------------------->| +---------------------------------------------------------->|
| | | |
|<-------------------------------------------------------+ |<----------------------------------------------------------+
| 2.01 Created | | 2.01 Created |
| Payload: { | | Payload: { |
| / ... / | | / ... / |
| "trl_path" : "/revoke/trl", | | "trl_path": "/revoke/trl", |
| "trl_hash" : "sha-256", | | "trl_hash": "sha-256", |
| "max_n" : 10, | | "max_n": 10, |
| "max_diff_batch" : 5 | | "max_diff_batch": 5 |
| } | | } |
| | | |
| GET coap://as.example.com/revoke/trl?diff=3 | | GET coap://as.example.com/revoke/trl?diff=3 |
| Observe: 0 | | Observe: 0 |
+------------------------------------------------------->| +---------------------------------------------------------->|
| | | |
|<-------------------------------------------------------+ |<----------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 42 | | Observe: 42 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [], | | / diff_set / 1: [], |
| / cursor / 2: null, | | / cursor / 2: null, |
| / more / 3: false | | / more / 3: false |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access tokens t1 and t2 issued | | (Access tokens t1 and t2 issued |
| and successfully submitted to RS) | | and successfully submitted to RS) |
| | | |
| ... | | ... |
| | | |
| (Access token t1 is revoked) | | (Access token t1 is revoked) |
| | | |
|<-------------------------------------------------------+ |<----------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 53 | | Observe: 53 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [], [bstr.h(t1)] ] | | [ [], [bstr.h(t1)] ] |
| ], | | ], |
| / cursor / 2: 0, | | / cursor / 2: 0, |
| / more / 3: false | | / more / 3: false |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 is revoked) | | (Access token t2 is revoked) |
| | | |
|<-------------------------------------------------------+ |<----------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 64 | | Observe: 64 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [], [bstr.h(t2)] ], | | [ [], [bstr.h(t2)] ], |
| [ [], [bstr.h(t1)] ] | | [ [], [bstr.h(t1)] ] |
| ], | | ], |
| / cursor / 2: 1, | | / cursor / 2: 1, |
| / more / 3: false | | / more / 3: false |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t1 expires) | | (Access token t1 expires) |
| | | |
|<-------------------------------------------------------+ |<----------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 75 | | Observe: 75 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [bstr.h(t1)], [] ], | | [ [bstr.h(t1)], [] ], |
| [ [], [bstr.h(t2)] ], | | [ [], [bstr.h(t2)] ], |
| [ [], [bstr.h(t1)] ] | | [ [], [bstr.h(t1)] ] |
| ], | | ], |
| / cursor / 2: 2, | | / cursor / 2: 2, |
| / more / 3: false | | / more / 3: false |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 expires) | | (Access token t2 expires) |
| | | |
|<-------------------------------------------------------+ |<----------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 86 | | Observe: 86 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [bstr.h(t2)], [] ], | | [ [bstr.h(t2)], [] ], |
| [ [bstr.h(t1)], [] ], | | [ [bstr.h(t1)], [] ], |
| [ [], [bstr.h(t2)] ] | | [ [], [bstr.h(t2)] ] |
| ], | | ], |
| / cursor / 2: 3, | | / cursor / 2: 3, |
| / more / 3: false | | / more / 3: false |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Enough time has passed since | | (Enough time has passed since |
| the latest received notification) | | the latest received notification) |
| | | |
| | | |
| GET coap://as.example.com/revoke/trl?diff=3 | | GET coap://as.example.com/revoke/trl?diff=3 |
+------------------------------------------------------->| +---------------------------------------------------------->|
| | | |
|<-------------------------------------------------------+ |<----------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [bstr.h(t2)], [] ], | | [ [bstr.h(t2)], [] ], |
| [ [bstr.h(t1)], [] ], | | [ [bstr.h(t1)], [] ], |
| [ [], [bstr.h(t2)] ] | | [ [], [bstr.h(t2)] ] |
| ], | | ], |
| / cursor / 2: 3, | | / cursor / 2: 3, |
| / more / 3: false | | / more / 3: false |
| } | | } |
| | | |
| GET coap://as.example.com/revoke/trl?diff=3&cursor=3 | | GET coap://as.example.com/revoke/trl?diff=3&cursor=3 |
+------------------------------------------------------->| +---------------------------------------------------------->|
| | | |
|<-------------------------------------------------------+ |<----------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [], | | / diff_set / 1: [], |
| / cursor / 2: 3, | | / cursor / 2: 3, |
| / more / 3: false | | / more / 3: false |
| } | | } |
| | | |
Figure 13: Interaction for Diff Query with Observe and "Cursor" Figure 13: Interaction for Diff Query with Observe and "Cursor"
Extension Extension
C.5. Full Query with Observe and Diff Query with "Cursor" Extension C.5. Full Query with Observe and Diff Query with "Cursor" Extension
In this example, the AS supports the "Cursor" extension. Hence, the In this example, the AS supports the "Cursor" extension. Hence, the
CBOR map conveyed as payload of the registration response CBOR map conveyed as payload of the registration response
additionally includes a "max_diff_batch" parameter. This specifies additionally includes a "max_diff_batch" parameter. This specifies
the value of MAX_DIFF_BATCH, i.e., the maximum number of diff entries the value of MAX_DIFF_BATCH, i.e., the maximum number of diff entries
skipping to change at line 3294 skipping to change at line 3294
update collection by setting the 'more' parameter of the response to update collection by setting the 'more' parameter of the response to
true. Also, the 'cursor' parameter of the response is set to 7, true. Also, the 'cursor' parameter of the response is set to 7,
i.e., to the 'index' value of the most recent series item included in i.e., to the 'index' value of the most recent series item included in
the response. the response.
After that, the RS follows up with a further diff query request After that, the RS follows up with a further diff query request
including the 'cursor' query parameter with a value of 7 in order to including the 'cursor' query parameter with a value of 7 in order to
retrieve the next and last batch of series items from the update retrieve the next and last batch of series items from the update
collection. collection.
RS AS RS AS
| | | |
| Registration: POST | | Registration: POST |
+-------------------------------------------------------------->| +----------------------------------------------------------------->|
| | | |
|<--------------------------------------------------------------+ |<-----------------------------------------------------------------+
| 2.01 Created | | 2.01 Created |
| Payload: { | | Payload: { |
| / ... / | | / ... / |
| "trl_path" : "/revoke/trl",| | "trl_path": "/revoke/trl", |
| "trl_hash" : "sha-256", | | "trl_hash": "sha-256", |
| "max_n" : 10, | | "max_n": 10, |
| "max_diff_batch" : 5 | | "max_diff_batch": 5 |
| } | | } |
| | | |
| GET coap://as.example.com/revoke/trl/ | | GET coap://as.example.com/revoke/trl/ |
| Observe: 0 | | Observe: 0 |
+-------------------------------------------------------------->| +----------------------------------------------------------------->|
| | | |
|<--------------------------------------------------------------+ |<-----------------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 42 | | Observe: 42 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [], | | / full_set / 0: [], |
| / cursor / 2: null | | / cursor / 2: null |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access tokens t1, t2, t3 issued | | (Access tokens t1, t2, t3 issued |
| and successfully submitted to RS) | | and successfully submitted to RS) |
| | | |
| ... | | ... |
| | | |
| (Access tokens t4, t5, t6 issued | | (Access tokens t4, t5, t6 issued |
| and successfully submitted to RS) | | and successfully submitted to RS) |
| | | |
| ... | | ... |
| | | |
| (Access token t1 is revoked) | | (Access token t1 is revoked) |
| | | |
|<--------------------------------------------------------------+ |<-----------------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 53 | | Observe: 53 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t1)], | | / full_set / 0: [bstr.h(t1)], |
| / cursor /2: 0 | | / cursor / 2: 0 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 is revoked) | | (Access token t2 is revoked) |
| | | |
|<--------------------------------------------------------------+ |<-----------------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 64 | | Observe: 64 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t1), bstr.h(t2)], | | / full_set / 0: [bstr.h(t1), bstr.h(t2)], |
| / cursor / 2: 1 | | / cursor / 2: 1 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t1 expires) | | (Access token t1 expires) |
| | | |
|<--------------------------------------------------------------+ |<-----------------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 75 | | Observe: 75 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t2)], | | / full_set / 0: [bstr.h(t2)], |
| / cursor / 2: 2 | | / cursor / 2: 2 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t2 expires) | | (Access token t2 expires) |
| | | |
| Lost X <-----------------------------------------------------+ | Lost X <--------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 86 | | Observe: 86 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [], | | / full_set / 0: [], |
| / cursor / 2: 3 | | / cursor / 2: 3 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t3 is revoked) | | (Access token t3 is revoked) |
| | | |
| Lost X <-----------------------------------------------------+ | Lost X <--------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 88 | | Observe: 88 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t3)], | | / full_set / 0: [bstr.h(t3)], |
| / cursor / 2: 4 | | / cursor / 2: 4 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t4 is revoked) | | (Access token t4 is revoked) |
| | | |
| Lost X <-----------------------------------------------------+ | Lost X <--------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 89 | | Observe: 89 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t3), bstr.h(t4)], | | / full_set / 0: [bstr.h(t3), bstr.h(t4)], |
| / cursor / 2: 5 | | / cursor / 2: 5 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t3 expires) | | (Access token t3 expires) |
| | | |
| Lost X <-----------------------------------------------------+ | Lost X <--------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 90 | | Observe: 90 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t4)], | | / full_set / 0: [bstr.h(t4)], |
| / cursor / 2: 6 | | / cursor / 2: 6 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t4 expires) | | (Access token t4 expires) |
| | | |
| Lost X <-----------------------------------------------------+ | Lost X <--------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 91 | | Observe: 91 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [], | | / full_set / 0: [], |
| / cursor / 2: 7 | | / cursor / 2: 7 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access tokens t5 and t6 are revoked) | | (Access tokens t5 and t6 are revoked) |
| | | |
| Lost X <-----------------------------------------------------+ | Lost X <--------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 92 | | Observe: 92 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| /full_set / 0: [bstr.h(t5), bstr.h(t6)], | | / full_set / 0: [bstr.h(t5), bstr.h(t6)], |
| / cursor / 2: 8 | | / cursor / 2: 8 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t5 expires) | | (Access token t5 expires) |
| | | |
| Lost X <-----------------------------------------------------+ | Lost X <--------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 93 | | Observe: 93 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [bstr.h(t6)], | | / full_set / 0: [bstr.h(t6)], |
| / cursor / 2: 9 | | / cursor / 2: 9 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Access token t6 expires) | | (Access token t6 expires) |
| | | |
| Lost X <-----------------------------------------------------+ | Lost X <--------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Observe: 94 | | Observe: 94 |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / full_set / 0: [], | | / full_set / 0: [], |
| / cursor / 2: 10 | | / cursor / 2: 10 |
| } | | } |
| | | |
| ... | | ... |
| | | |
| (Enough time has passed since | | (Enough time has passed since |
| the latest received notification) | | the latest received notification) |
| | | |
| | | |
| GET coap://as.example.com/revoke/trl?diff=8&cursor=2 | | GET coap://as.example.com/revoke/trl?diff=8&cursor=2 |
+-------------------------------------------------------------->| +----------------------------------------------------------------->|
| | | |
|<--------------------------------------------------------------+ |<-----------------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Content-Format:262(application/ace-trl+cbor)| | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [bstr.h(t4)], [] ], | | [ [bstr.h(t4)], [] ], |
| [ [bstr.h(t3)], [] ], | | [ [bstr.h(t3)], [] ], |
| [ [], [bstr.h(t4)] ], | | [ [], [bstr.h(t4)] ], |
| [ [], [bstr.h(t3)] ], | | [ [], [bstr.h(t3)] ], |
| [ [bstr.h(t2)], [] ] | | [ [bstr.h(t2)], [] ] |
| ], | | ], |
| / cursor / 2: 7, | | / cursor / 2: 7, |
| / more / 3: true | | / more / 3: true |
| } | | } |
| | | |
| GET coap://as.example.com/revoke/trl?diff=8&cursor=7 | | GET coap://as.example.com/revoke/trl?diff=8&cursor=7 |
+-------------------------------------------------------------->| +----------------------------------------------------------------->|
| | | |
|<--------------------------------------------------------------+ |<-----------------------------------------------------------------+
| 2.05 Content | | 2.05 Content |
| Content-Format:262(application/ace-trl+cbor) | | Content-Format: 262 (application/ace-trl+cbor) |
| Payload: { | | Payload: { |
| / diff_set / 1: [ | | / diff_set / 1: [ |
| [ [bstr.h(t6)], [] ], | | [ [bstr.h(t6)], [] ], |
| [ [bstr.h(t5)], [] ], | | [ [bstr.h(t5)], [] ], |
| [ [], [bstr.h(t5), bstr.h(t6)] ] | | [ [], [bstr.h(t5), bstr.h(t6)] ] |
| ], | | ], |
| / cursor / 2: 10, | | / cursor / 2: 10, |
| / more / 3: false | | / more / 3: false |
| } | | } |
| | | |
Figure 14: Interaction for Full Query with Observe and Diff Query Figure 14: Interaction for Full Query with Observe and Diff Query
with "Cursor" Extension with "Cursor" Extension
Acknowledgments Acknowledgments
Ludwig Seitz contributed as a coauthor of initial versions of this Ludwig Seitz contributed as a coauthor of initial versions of this
document. document.
The authors sincerely thank Christian Amsüss, Carsten Bormann, Deb The authors sincerely thank Christian Amsüss, Carsten Bormann, Deb
 End of changes. 5 change blocks. 
629 lines changed or deleted 629 lines changed or added

This html diff was produced by rfcdiff 1.48.