Skip to content

Commit 4d7e805

Browse files
author
ID Bot
committed
Script updating gh-pages from 66b77f3. [ci skip]
1 parent 758e2a2 commit 4d7e805

2 files changed

+171
-2
lines changed

draft-ietf-core-groupcomm-proxy.html

+73-2
Original file line numberDiff line numberDiff line change
@@ -1176,6 +1176,9 @@ <h2 id="name-copyright-notice">
11761176
</li>
11771177
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.1.2.2">
11781178
<p id="section-toc.1-1.5.2.1.2.2.1"><a href="#section-5.1.2" class="auto internal xref">5.1.2</a>.  <a href="#name-supporting-observe" class="internal xref">Supporting Observe</a></p>
1179+
</li>
1180+
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.1.2.3">
1181+
<p id="section-toc.1-1.5.2.1.2.3.1"><a href="#section-5.1.3" class="auto internal xref">5.1.3</a>.  <a href="#name-cancellation-of-ongoing-res" class="internal xref">Cancellation of Ongoing Response Forwarding</a></p>
11791182
</li>
11801183
</ul>
11811184
</li>
@@ -1187,6 +1190,9 @@ <h2 id="name-copyright-notice">
11871190
</li>
11881191
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.2.2.2">
11891192
<p id="section-toc.1-1.5.2.2.2.2.1"><a href="#section-5.2.2" class="auto internal xref">5.2.2</a>.  <a href="#name-supporting-observe-2" class="internal xref">Supporting Observe</a></p>
1193+
</li>
1194+
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.2.2.3">
1195+
<p id="section-toc.1-1.5.2.2.2.3.1"><a href="#section-5.2.3" class="auto internal xref">5.2.3</a>.  <a href="#name-cancellation-of-ongoing-resp" class="internal xref">Cancellation of Ongoing Response Forwarding</a></p>
11901196
</li>
11911197
</ul>
11921198
</li>
@@ -1280,6 +1286,9 @@ <h2 id="name-copyright-notice">
12801286
<ul class="compact toc ulBare ulEmpty">
12811287
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.8.2.1.2.1">
12821288
<p id="section-toc.1-1.8.2.1.2.1.1"><a href="#section-8.1.1" class="auto internal xref">8.1.1</a>.  <a href="#name-supporting-observe-6" class="internal xref">Supporting Observe</a></p>
1289+
</li>
1290+
<li class="compact toc ulBare ulEmpty" id="section-toc.1-1.8.2.1.2.2">
1291+
<p id="section-toc.1-1.8.2.1.2.2.1"><a href="#section-8.1.2" class="auto internal xref">8.1.2</a>.  <a href="#name-cancellation-of-ongoing-respo" class="internal xref">Cancellation of Ongoing Response Forwarding</a></p>
12831292
</li>
12841293
</ul>
12851294
</li>
@@ -1689,6 +1698,45 @@ <h4 id="name-supporting-observe">
16891698
<p id="section-5.1.2-2">Furthermore, the client especially follows what is specified in <span><a href="https://rfc-editor.org/rfc/rfc7641#section-5" class="relref">Section 5</a> of [<a href="#RFC7641" class="cite xref">RFC7641</a>]</span>, i.e., it registers its interest to be an observer with the proxy, as if it was communicating with the servers.<a href="#section-5.1.2-2" class="pilcrow"></a></p>
16901699
</section>
16911700
</div>
1701+
<div id="ssec-cancel-forwarding">
1702+
<section id="section-5.1.3">
1703+
<h4 id="name-cancellation-of-ongoing-res">
1704+
<a href="#section-5.1.3" class="section-number selfRef">5.1.3. </a><a href="#name-cancellation-of-ongoing-res" class="section-name selfRef">Cancellation of Ongoing Response Forwarding</a>
1705+
</h4>
1706+
<p id="section-5.1.3-1">After having sent the unicast request to the proxy but before timeout expiration, the client might become not interested in receiving further corresponding responses, i.e., from that point in time until T seconds have elapsed since the request was sent to the proxy.<a href="#section-5.1.3-1" class="pilcrow"></a></p>
1707+
<p id="section-5.1.3-2">In such a case the client <span class="bcp14">MAY</span> ask the proxy for an early stop of the ongoing response forwarding, i.e., to not forward to the client any further response received to the forwarded group request from the servers.<a href="#section-5.1.3-2" class="pilcrow"></a></p>
1708+
<p id="section-5.1.3-3">To this end, the client can rely on one of the following two approaches.<a href="#section-5.1.3-3" class="pilcrow"></a></p>
1709+
<ul class="normal">
1710+
<li class="normal" id="section-5.1.3-4.1">
1711+
<p id="section-5.1.3-4.1.1">The client acts like it would at timeout expiration (see <a href="#ssec-resp-proc-client-steps" class="auto internal xref">Section 5.5.1</a>), i.e., it simply frees up its local Token value associated with the original unicast request sent to the proxy.<a href="#section-5.1.3-4.1.1" class="pilcrow"></a></p>
1712+
<p id="section-5.1.3-4.1.2">
1713+
Consequently, further responses forwarded by the proxy would result in the client sending a CoAP Reset message (RST), which the proxy would interpret as a loss of interest from the client.<a href="#section-5.1.3-4.1.2" class="pilcrow"></a></p>
1714+
<p id="section-5.1.3-4.1.3">
1715+
While this approach would work when using CoAP over UDP between the client and the proxy, it might not be suitable in case a different transport is used instead.<a href="#section-5.1.3-4.1.3" class="pilcrow"></a></p>
1716+
</li>
1717+
<li class="normal" id="section-5.1.3-4.2">
1718+
<p id="section-5.1.3-4.2.1">The client sends to the proxy a new CoAP unicast request, namely Early Stop Request, such that:<a href="#section-5.1.3-4.2.1" class="pilcrow"></a></p>
1719+
<ul class="normal">
1720+
<li class="normal" id="section-5.1.3-4.2.2.1">
1721+
<p id="section-5.1.3-4.2.2.1.1">It <span class="bcp14">MUST</span> use the method GET.<a href="#section-5.1.3-4.2.2.1.1" class="pilcrow"></a></p>
1722+
</li>
1723+
<li class="normal" id="section-5.1.3-4.2.2.2">
1724+
<p id="section-5.1.3-4.2.2.2.1">It <span class="bcp14">MUST</span> use the same Token value of the original unicast request sent to the proxy. This explicitly relates the present Early Stop Request to the original unicast request.<a href="#section-5.1.3-4.2.2.2.1" class="pilcrow"></a></p>
1725+
</li>
1726+
<li class="normal" id="section-5.1.3-4.2.2.3">
1727+
<p id="section-5.1.3-4.2.2.3.1">It <span class="bcp14">MUST</span> include the Multicast-Timeout Option, specifying 0 as option value. This explicitly indicates the client's wish to stop receiving further responses to the original unicast request.<a href="#section-5.1.3-4.2.2.3.1" class="pilcrow"></a></p>
1728+
</li>
1729+
<li class="normal" id="section-5.1.3-4.2.2.4">
1730+
<p id="section-5.1.3-4.2.2.4.1">It <span class="bcp14">MUST NOT</span> include any of the following: the Proxy-Uri Option or the Proxy-Cri Option; the Proxy-Scheme Option or the Proxy-Scheme-Number Option, together with the Uri-* options. This explicitly indicates the proxy to not forward the Early Stop Request.<a href="#section-5.1.3-4.2.2.4.1" class="pilcrow"></a></p>
1731+
</li>
1732+
</ul>
1733+
<p id="section-5.1.3-4.2.3">
1734+
After sending the Early Stop Request, the client frees up its local Token value associated with the original unicast request sent to the proxy.<a href="#section-5.1.3-4.2.3" class="pilcrow"></a></p>
1735+
</li>
1736+
</ul>
1737+
<p id="section-5.1.3-5">Note that, irrespective of the approach used by the client, freeing up the Token value does not make it eligible for possible reuse yet (see <a href="#ssec-req-send-steps" class="auto internal xref">Section 5.1.1</a>).<a href="#section-5.1.3-5" class="pilcrow"></a></p>
1738+
</section>
1739+
</div>
16921740
</section>
16931741
</div>
16941742
<div id="ssec-req-proc-proxy">
@@ -1745,6 +1793,16 @@ <h4 id="name-supporting-observe-2">
17451793
<p id="section-5.2.2-2">When doing so, the proxy especially follows what is specified for the client in <span><a href="https://datatracker.ietf.org/doc/html/draft-ietf-core-groupcomm-bis-13#section-3.7" class="relref">Section 3.7</a> of [<a href="#I-D.ietf-core-groupcomm-bis" class="cite xref">I-D.ietf-core-groupcomm-bis</a>]</span>, by forwarding the group request to the servers over IP multicast as defined in <a href="#ssec-req-proc-proxy-steps" class="auto internal xref">Section 5.2.1</a> of this document.<a href="#section-5.2.2-2" class="pilcrow"></a></p>
17461794
</section>
17471795
</div>
1796+
<div id="ssec-cancel-forwarding-proxy">
1797+
<section id="section-5.2.3">
1798+
<h4 id="name-cancellation-of-ongoing-resp">
1799+
<a href="#section-5.2.3" class="section-number selfRef">5.2.3. </a><a href="#name-cancellation-of-ongoing-resp" class="section-name selfRef">Cancellation of Ongoing Response Forwarding</a>
1800+
</h4>
1801+
<p id="section-5.2.3-1">As defined in <a href="#ssec-cancel-forwarding" class="auto internal xref">Section 5.1.3</a>, the client might ask the proxy for an early stop of the ongoing response forwarding, i.e., to stop forwarding to the client any further responses received to the forwarded group request from the servers.<a href="#section-5.2.3-1" class="pilcrow"></a></p>
1802+
<p id="section-5.2.3-2">Consistently, the proxy stops forwarding such responses to the client, after receiving a CoAP Reset message (RST) in reply to one of such responses, or after receiving an Early Stop Request related to the ongoing response forwarding (i.e., using the same Token value of the original unicast request from the client).<a href="#section-5.2.3-2" class="pilcrow"></a></p>
1803+
<p id="section-5.2.3-3">After that, in case the proxy receives further responses to the forwarded group request from the servers, the proxy <span class="bcp14">MUST NOT</span> forward those responses to the client. In fact, the proxy can safely free up its local Token value associated with that group request, which results in discarding any further responses to the same group request received from then on from the servers.<a href="#section-5.2.3-3" class="pilcrow"></a></p>
1804+
</section>
1805+
</div>
17481806
</section>
17491807
</div>
17501808
<div id="ssec-req-resp-proc-server">
@@ -2410,6 +2468,16 @@ <h4 id="name-supporting-observe-6">
24102468
<p id="section-8.1.1-2">Any other proxy in the chain acts as a client and registers its own interest to observe the target resource with the next hop towards the origin servers, as per <span><a href="https://rfc-editor.org/rfc/rfc7641#section-5" class="relref">Section 5</a> of [<a href="#RFC7641" class="cite xref">RFC7641</a>]</span>.<a href="#section-8.1.1-2" class="pilcrow"></a></p>
24112469
</section>
24122470
</div>
2471+
<div id="ssec-cancel-forwarding-proxy-chain">
2472+
<section id="section-8.1.2">
2473+
<h4 id="name-cancellation-of-ongoing-respo">
2474+
<a href="#section-8.1.2" class="section-number selfRef">8.1.2. </a><a href="#name-cancellation-of-ongoing-respo" class="section-name selfRef">Cancellation of Ongoing Response Forwarding</a>
2475+
</h4>
2476+
<p id="section-8.1.2-1">Consistently with what is described in <a href="#ssec-cancel-forwarding-proxy" class="auto internal xref">Section 5.2.3</a>, a proxy might be asked by the (previous hop proxy closer to the) origin client for an early stop of the ongoing response forwarding.<a href="#section-8.1.2-1" class="pilcrow"></a></p>
2477+
<p id="section-8.1.2-2">That is, the proxy is asked to stop forwarding to the (previous hop proxy closer to the) origin client any further responses received to the forwarded group request from the (next hop proxy towards the) origin servers.<a href="#section-8.1.2-2" class="pilcrow"></a></p>
2478+
<p id="section-8.1.2-3">When this happens, the proxy proceeds as described in <a href="#ssec-cancel-forwarding-proxy" class="auto internal xref">Section 5.2.3</a>. Furthermore, if the proxy is not the last one in the chain, the proxy <span class="bcp14">MAY</span> send to the next hop proxy towards the origin servers an Early Stop Request (see <a href="#ssec-req-proc-proxy-steps" class="auto internal xref">Section 5.2.1</a>), with the same Token value of the group request that the proxy forwarded to the next hop proxy towards the origin servers.<a href="#section-8.1.2-3" class="pilcrow"></a></p>
2479+
</section>
2480+
</div>
24132481
</section>
24142482
</div>
24152483
<div id="sec-proxy-chain-response-processing">
@@ -3719,10 +3787,13 @@ <h3 id="name-version-03-to-04">
37193787
<p id="appendix-B.1-1.2.1">More precise semantics for the Reply-From Option.<a href="#appendix-B.1-1.2.1" class="pilcrow"></a></p>
37203788
</li>
37213789
<li class="normal" id="appendix-B.1-1.3">
3722-
<p id="appendix-B.1-1.3.1">Suggested value ranges for codepoints to register.<a href="#appendix-B.1-1.3.1" class="pilcrow"></a></p>
3790+
<p id="appendix-B.1-1.3.1">Defined early cancellation of ongoing response forwarding.<a href="#appendix-B.1-1.3.1" class="pilcrow"></a></p>
37233791
</li>
37243792
<li class="normal" id="appendix-B.1-1.4">
3725-
<p id="appendix-B.1-1.4.1">Clarifications and editorial improvements.<a href="#appendix-B.1-1.4.1" class="pilcrow"></a></p>
3793+
<p id="appendix-B.1-1.4.1">Suggested value ranges for codepoints to register.<a href="#appendix-B.1-1.4.1" class="pilcrow"></a></p>
3794+
</li>
3795+
<li class="normal" id="appendix-B.1-1.5">
3796+
<p id="appendix-B.1-1.5.1">Clarifications and editorial improvements.<a href="#appendix-B.1-1.5.1" class="pilcrow"></a></p>
37263797
</li>
37273798
</ul>
37283799
</section>

draft-ietf-core-groupcomm-proxy.txt

+98
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,11 @@ Table of Contents
7979
5.1. Request Sending at the Client
8080
5.1.1. Request Sending
8181
5.1.2. Supporting Observe
82+
5.1.3. Cancellation of Ongoing Response Forwarding
8283
5.2. Request Processing at the Proxy
8384
5.2.1. Request Processing
8485
5.2.2. Supporting Observe
86+
5.2.3. Cancellation of Ongoing Response Forwarding
8587
5.3. Request and Response Processing at the Server
8688
5.3.1. Request and Response Processing
8789
5.3.2. Supporting Observe
@@ -107,6 +109,7 @@ Table of Contents
107109
8. Chain of Proxies
108110
8.1. Request Processing at the Proxy
109111
8.1.1. Supporting Observe
112+
8.1.2. Cancellation of Ongoing Response Forwarding
110113
8.2. Response Processing at the Proxy
111114
8.2.1. Supporting Observe
112115
9. HTTP-to-CoAP Proxies
@@ -500,6 +503,61 @@ Table of Contents
500503
Section 5 of [RFC7641], i.e., it registers its interest to be an
501504
observer with the proxy, as if it was communicating with the servers.
502505

506+
5.1.3. Cancellation of Ongoing Response Forwarding
507+
508+
After having sent the unicast request to the proxy but before timeout
509+
expiration, the client might become not interested in receiving
510+
further corresponding responses, i.e., from that point in time until
511+
T seconds have elapsed since the request was sent to the proxy.
512+
513+
In such a case the client MAY ask the proxy for an early stop of the
514+
ongoing response forwarding, i.e., to not forward to the client any
515+
further response received to the forwarded group request from the
516+
servers.
517+
518+
To this end, the client can rely on one of the following two
519+
approaches.
520+
521+
* The client acts like it would at timeout expiration (see
522+
Section 5.5.1), i.e., it simply frees up its local Token value
523+
associated with the original unicast request sent to the proxy.
524+
525+
Consequently, further responses forwarded by the proxy would
526+
result in the client sending a CoAP Reset message (RST), which the
527+
proxy would interpret as a loss of interest from the client.
528+
529+
While this approach would work when using CoAP over UDP between
530+
the client and the proxy, it might not be suitable in case a
531+
different transport is used instead.
532+
533+
* The client sends to the proxy a new CoAP unicast request, namely
534+
Early Stop Request, such that:
535+
536+
- It MUST use the method GET.
537+
538+
- It MUST use the same Token value of the original unicast
539+
request sent to the proxy. This explicitly relates the present
540+
Early Stop Request to the original unicast request.
541+
542+
- It MUST include the Multicast-Timeout Option, specifying 0 as
543+
option value. This explicitly indicates the client's wish to
544+
stop receiving further responses to the original unicast
545+
request.
546+
547+
- It MUST NOT include any of the following: the Proxy-Uri Option
548+
or the Proxy-Cri Option; the Proxy-Scheme Option or the Proxy-
549+
Scheme-Number Option, together with the Uri-* options. This
550+
explicitly indicates the proxy to not forward the Early Stop
551+
Request.
552+
553+
After sending the Early Stop Request, the client frees up its
554+
local Token value associated with the original unicast request
555+
sent to the proxy.
556+
557+
Note that, irrespective of the approach used by the client, freeing
558+
up the Token value does not make it eligible for possible reuse yet
559+
(see Section 5.1.1).
560+
503561
5.2. Request Processing at the Proxy
504562

505563
This section defines the operations performed by the proxy, when
@@ -572,6 +630,26 @@ Table of Contents
572630
the group request to the servers over IP multicast as defined in
573631
Section 5.2.1 of this document.
574632

633+
5.2.3. Cancellation of Ongoing Response Forwarding
634+
635+
As defined in Section 5.1.3, the client might ask the proxy for an
636+
early stop of the ongoing response forwarding, i.e., to stop
637+
forwarding to the client any further responses received to the
638+
forwarded group request from the servers.
639+
640+
Consistently, the proxy stops forwarding such responses to the
641+
client, after receiving a CoAP Reset message (RST) in reply to one of
642+
such responses, or after receiving an Early Stop Request related to
643+
the ongoing response forwarding (i.e., using the same Token value of
644+
the original unicast request from the client).
645+
646+
After that, in case the proxy receives further responses to the
647+
forwarded group request from the servers, the proxy MUST NOT forward
648+
those responses to the client. In fact, the proxy can safely free up
649+
its local Token value associated with that group request, which
650+
results in discarding any further responses to the same group request
651+
received from then on from the servers.
652+
575653
5.3. Request and Response Processing at the Server
576654

577655
This section defines the operations performed by the server, when
@@ -1515,6 +1593,24 @@ Table of Contents
15151593
interest to observe the target resource with the next hop towards the
15161594
origin servers, as per Section 5 of [RFC7641].
15171595

1596+
8.1.2. Cancellation of Ongoing Response Forwarding
1597+
1598+
Consistently with what is described in Section 5.2.3, a proxy might
1599+
be asked by the (previous hop proxy closer to the) origin client for
1600+
an early stop of the ongoing response forwarding.
1601+
1602+
That is, the proxy is asked to stop forwarding to the (previous hop
1603+
proxy closer to the) origin client any further responses received to
1604+
the forwarded group request from the (next hop proxy towards the)
1605+
origin servers.
1606+
1607+
When this happens, the proxy proceeds as described in Section 5.2.3.
1608+
Furthermore, if the proxy is not the last one in the chain, the proxy
1609+
MAY send to the next hop proxy towards the origin servers an Early
1610+
Stop Request (see Section 5.2.1), with the same Token value of the
1611+
group request that the proxy forwarded to the next hop proxy towards
1612+
the origin servers.
1613+
15181614
8.2. Response Processing at the Proxy
15191615

15201616
Upon receiving a response matching with the group request before the
@@ -2839,6 +2935,8 @@ B.1. Version -03 to -04
28392935

28402936
* More precise semantics for the Reply-From Option.
28412937

2938+
* Defined early cancellation of ongoing response forwarding.
2939+
28422940
* Suggested value ranges for codepoints to register.
28432941

28442942
* Clarifications and editorial improvements.

0 commit comments

Comments
 (0)