Skip to main content

Block-Wise Transfers in the Constrained Application Protocol (CoAP)
draft-ietf-core-block-21

Revision differences

Document history

Date Rev. By Action
2016-08-25
21 (System) RFC Editor state changed to AUTH48-DONE from AUTH48
2016-08-15
21 (System) RFC Editor state changed to AUTH48 from RFC-EDITOR
2016-08-01
21 (System) IANA Action state changed to RFC-Ed-Ack from Waiting on RFC Editor
2016-08-01
21 (System) RFC Editor state changed to RFC-EDITOR from IANA
2016-08-01
21 (System) IANA Action state changed to Waiting on RFC Editor from Waiting on Authors
2016-07-18
21 (System) RFC Editor state changed to IANA from EDIT
2016-07-14
21 Jean Mahoney Closed request for Last Call review by GENART with state 'No Response'
2016-07-11
21 (System) IANA Action state changed to Waiting on Authors
2016-07-11
21 (System) RFC Editor state changed to EDIT
2016-07-11
21 (System) IESG state changed to RFC Ed Queue from Approved-announcement sent
2016-07-11
21 (System) Announcement was received by RFC Editor
2016-07-11
21 Amy Vezza IESG state changed to Approved-announcement sent from IESG Evaluation::AD Followup
2016-07-11
21 Amy Vezza IESG has approved the document
2016-07-11
21 Amy Vezza Closed "Approve" ballot
2016-07-11
21 Amy Vezza Ballot approval text was generated
2016-07-09
21 Alexey Melnikov
[Ballot comment]
Remaining issues from my AD review: :

In 3.2:

  A stateless server that simply builds/updates the resource in place
  (statelessly) may …
[Ballot comment]
Remaining issues from my AD review: :

In 3.2:

  A stateless server that simply builds/updates the resource in place
  (statelessly) may indicate this by not setting the more bit in the
  response (Figure 8); in this case, the response codes are valid
  separately for each block being updated.

What is the behaviour of both the client and the server if PUT on a particular block fails? Is this clear enough in the document?
2016-07-09
21 Alexey Melnikov Ballot comment text updated for Alexey Melnikov
2016-07-08
21 (System) Sub state has been changed to AD Followup from Revised ID Needed
2016-07-08
21 Carsten Bormann New version available: draft-ietf-core-block-21.txt
2016-06-21
20 Alexey Melnikov I am still waiting for a reply to my last email in the thread that started with my AD review comments.
2016-05-14
20 Alexey Melnikov
[Ballot comment]
Remaining issues from my AD review: :

In 3.2:

  A stateless server that simply builds/updates the resource in place
  (statelessly) may …
[Ballot comment]
Remaining issues from my AD review: :

In 3.2:

  A stateless server that simply builds/updates the resource in place
  (statelessly) may indicate this by not setting the more bit in the
  response (Figure 8); in this case, the response codes are valid
  separately for each block being updated.

What is the behaviour of both the client and the server if PUT on a particular block fails? Is this clear enough in the document?

Other questions I have after reviewing the document. If I missed where they are answered, please point me out to existing text in the document or another RFC:

Is there a special error for block size mismatch between multiple requests? (Possibly no.)

As block2 is a critical option, how can a server know if a particular client supports this option?
2016-05-14
20 Alexey Melnikov Ballot comment text updated for Alexey Melnikov
2016-05-14
20 Alexey Melnikov
[Ballot comment]
Remaining issues from my AD review: :

2.10:
  A response with a Block1 Option in control usage
  with the M bit …
[Ballot comment]
Remaining issues from my AD review: :

2.10:
  A response with a Block1 Option in control usage
  with the M bit set invalidates cached responses for the target URI.

Can you explain the reason for this?

In 3.2:

  A stateless server that simply builds/updates the resource in place
  (statelessly) may indicate this by not setting the more bit in the
  response (Figure 8); in this case, the response codes are valid
  separately for each block being updated.

What is the behaviour of both the client and the server if PUT on a particular block fails? Is this clear enough in the document?

Other questions I have after reviewing the document. If I missed where they are answered, please point me out to existing text in the document or another RFC:

Is there a special error for block size mismatch between multiple requests?

As block2 is a critical option, how can a server know if a particular client supports this option?
2016-05-14
20 Alexey Melnikov Ballot comment text updated for Alexey Melnikov
2016-05-14
20 Mirja Kühlewind
[Ballot comment]
Thanks for adding new text at the beginning of the doc. This addresses my previous concern and makes it usage more clear from …
[Ballot comment]
Thanks for adding new text at the beginning of the doc. This addresses my previous concern and makes it usage more clear from my point of view. Sorry for my rather long delay!
2016-05-14
20 Mirja Kühlewind [Ballot Position Update] Position for Mirja Kühlewind has been changed to No Objection from Discuss
2016-05-12
20 Alexey Melnikov Revised ID is needed to address Mirja's DISCUSS and my review comments. Discussion of some of the finer points of my review is ongoing.
2016-05-12
20 Alexey Melnikov IESG state changed to IESG Evaluation::Revised I-D Needed from IESG Evaluation::AD Followup
2016-04-29
20 (System) Sub state has been changed to AD Followup from Revised ID Needed
2016-04-29
20 Carsten Bormann IANA Review state changed to Version Changed - Review Needed from IANA OK - Actions Needed
2016-04-29
20 Carsten Bormann New version available: draft-ietf-core-block-20.txt
2016-04-28
19 Tero Kivinen Closed request for Last Call review by SECDIR with state 'No Response'
2016-04-22
19 Alexey Melnikov Ballot approval text was generated
2016-04-22
19 Alexey Melnikov Ballot writeup was changed
2016-04-21
19 Cindy Morgan IESG state changed to IESG Evaluation::Revised I-D Needed from IESG Evaluation
2016-04-21
19 Ben Campbell
[Ballot comment]
I moved the following from a DISCUSS to a COMMENT, pending the next revision:

-- START:
This should be easy to clean up, …
[Ballot comment]
I moved the following from a DISCUSS to a COMMENT, pending the next revision:

-- START:
This should be easy to clean up, and it's entirely possible I am misreading something. But Section 3.4, 2nd and 3rd paragraph seem to be inconsistent in SHOULD vs MUST for block size.  I _think_ I'm reading the following:

1. If the client requests a specific block size, the server MUST use that size or a smaller one.

2. Any subsequent requests from the client MUST indicate the same size that the server used

3. But paragraph 3 then says all further requests SHOULD indicate the same size. But if they already MUST indicate the same size as in the initial response, then this  SHOULD seems non-constraining at best, and at worst in conflict with 1. (ignoring the last-block size issue for the moment.)

4. Then paragraph 3 goes on to say the server SHOULD use the block size indicated in the request or smaller. This seems to conflict with the MUST in 1.

5.  Then it again asserts that the client MUST indicate the same size in subsequent requests, conflicting with the SHOULD in 3., but agreeing with the MUST in 1.

-- END


Substantive:

- General: The draft dives into detail without giving much context until the examples. The reader is left to infer the forest from the trees. It would be very helpful (to me, at least) to add a high-level overview of operation early in the document, including definitions for "descriptive" vs " control" usages. (I know it's late in the process to ask for a whole new section, so I won't push the point.)

- The distinction between the option names Block1 and Block2 seems almost actively non-mnemonic. Is that intentional? (I won't push this point, either.)

- 3.4: Does the eTag apply to the "payload" or the whole "body"?

- 2.5, 2nd paragraph, last sentence:
Should I read this to mean that the reduction in block size is retroactive? That could use some elaboration. (I thought I read comments in the examples suggesting such a reduction would _not_ be retroactive).

- 7: Does "object security" apply to the "payload", or the "body"?
Can you describe or add a reference for the "usual considerations"?

Editorial:

- Abstract: That’s a really long abstract, and serves more as an introduction than an abstract. Please consider combining the first and last paragraph and leaving the rest to the introduction.

- 2.4, paragraph 5: a definition for "reassembler" would be helpful.

- Figures 5 and 6:
There's no discussion of either figure. Is that intentional?
2016-04-21
19 Ben Campbell [Ballot Position Update] Position for Ben Campbell has been changed to No Objection from Discuss
2016-04-21
19 Jari Arkko [Ballot comment]
No objection based on Jouni Korhonen's Gen-ART review. Thanks!
2016-04-21
19 Jari Arkko [Ballot Position Update] New position, No Objection, has been recorded for Jari Arkko
2016-04-21
19 Benoît Claise
[Ballot comment]
  CoAP is based on datagram transports such as UDP, which limit the
  maximum size of resource representations that can be transferred …
[Ballot comment]
  CoAP is based on datagram transports such as UDP, which limit the
  maximum size of resource representations that can be transferred
  without creating unreasonable levels of IP fragmentation.

CoAP is based on UDP, right? So isn't it?
NEW:
  CoAP is based on UDP datagrams, which limit the
  maximum size of resource representations that can be transferred
  without creating unreasonable levels of IP fragmentation.

And ...

OLD:
  Using fragmentation (either at the adaptation layer or at
  the IP layer) for the transport of larger representations would be
  possible up to the maximum size of the underlying datagram protocol
  (such as UDP),

NEW:
  Using fragmentation (either at the adaptation layer or at
  the IP layer) for the transport of larger representations would be
  possible up to the maximum size of the underlying datagram protocol
  (UDP),

Note that they might exist other instances.
2016-04-21
19 Benoît Claise Ballot comment text updated for Benoit Claise
2016-04-21
19 Benoît Claise
[Ballot comment]
  CoAP is based on datagram transports such as UDP, which limit the
  maximum size of resource representations that can be transferred …
[Ballot comment]
  CoAP is based on datagram transports such as UDP, which limit the
  maximum size of resource representations that can be transferred
  without creating unreasonable levels of IP fragmentation.

CoAP is based on UDP, right? So isn't it?
NEW:
  CoAP is based on UDP datagrams, which limit the
  maximum size of resource representations that can be transferred
  without creating unreasonable levels of IP fragmentation.

And ...

OLD:
  Using fragmentation (either at the adaptation layer or at
  the IP layer) for the transport of larger representations would be
  possible up to the maximum size of the underlying datagram protocol
  (such as UDP),

NEW:
  Using fragmentation (either at the adaptation layer or at
  the IP layer) for the transport of larger representations would be
  possible up to the maximum size of the underlying datagram protocol
  (UDP),

Note that they are maybe other instances.
2016-04-21
19 Benoît Claise [Ballot Position Update] New position, No Objection, has been recorded for Benoit Claise
2016-04-20
19 Mirja Kühlewind
[Ballot discuss]
This is only a minor point, requesting to spell out implicit assumptions explicitly. However, I think it's important to address this before publication. …
[Ballot discuss]
This is only a minor point, requesting to spell out implicit assumptions explicitly. However, I think it's important to address this before publication.

It is not clear in the main part of the doc that this extension to does not change the message transmission method as specified in RFC7252 (Stop-and-wait retransmission). With my initial ready I assumed that this extension would allow the sending of back-to-back messages. Only by looking at the examples, it got clear to me that this is not the case.

Further, this document does not say anything about reliability. Do block message need to be transmitted reliable (as Confirmable)? If not, this extension could still lead to back-to-back sending and then further guidance on congestion control would be needed.
2016-04-20
19 Mirja Kühlewind
[Ballot comment]
I agree with others that reduncy makes the doc harder to read, especially regarding SHOULDs and MUSTs. Would it be helpful to have …
[Ballot comment]
I agree with others that reduncy makes the doc harder to read, especially regarding SHOULDs and MUSTs. Would it be helpful to have all SHOULDs and MUST in one section and combine the Usage guidance with the examples?

Further, please also add a reference for ETag in section 2.4.
2016-04-20
19 Mirja Kühlewind [Ballot Position Update] New position, Discuss, has been recorded for Mirja Kühlewind
2016-04-19
19 Suresh Krishnan
[Ballot comment]
Is there a specific reason that the 4.08 response code is overloaded for use for two different kinds of issues?

a) Mismatching Content-Format …
[Ballot comment]
Is there a specific reason that the 4.08 response code is overloaded for use for two different kinds of issues?

a) Mismatching Content-Format options in different blocks
b)  not all previous blocks are available at the server at the time of processing the final block of an atomic operation

Section 7.1:

Have you thought about how this text can be made actionable, especially in the case of atomic PUT or POST requests without maintaining state? If so, it would be good to elaborate here.

"Wherever possible, servers should therefore minimize the opportunities to create state for untrusted sources, e.g. by using stateless approaches."
2016-04-19
19 Suresh Krishnan [Ballot Position Update] New position, No Objection, has been recorded for Suresh Krishnan
2016-04-19
19 Terry Manderson [Ballot Position Update] New position, No Objection, has been recorded for Terry Manderson
2016-04-19
19 Deborah Brungard [Ballot Position Update] New position, No Objection, has been recorded for Deborah Brungard
2016-04-19
19 Kathleen Moriarty [Ballot comment]
I agree with Stephen that the draft could read better if text duplication was reduced.
2016-04-19
19 Kathleen Moriarty [Ballot Position Update] New position, No Objection, has been recorded for Kathleen Moriarty
2016-04-19
19 Stephen Farrell
[Ballot comment]


The intro and early section 2 has quite a bit of argument
as to why this design is good or better than some …
[Ballot comment]


The intro and early section 2 has quite a bit of argument
as to why this design is good or better than some other.
For this reader, that's not really needed (I assume the WG
had those discussions). I think this is an example of a
recurring problem with the text here - with too many words,
clarity suffers. For example the Implementation note on p7
is, just by itself, the best and would be a sufficient
explanation of, the encoding, the description of which is
otherwise pretty opaque. There's also a good bit of
repetition that makes this a harder read in general. That's
all just IMO of course, and there may be history in the WG
that provides good cause for so many words to be needed.
All that said, I assume that it's too late to reduce the
size of this document, so no action is required unless the
authors/WG/chairs would themselves like to try remove
words.
2016-04-19
19 Stephen Farrell [Ballot Position Update] New position, No Objection, has been recorded for Stephen Farrell
2016-04-18
19 Jouni Korhonen Request for Telechat review by GENART Completed: Ready with Nits. Reviewer: Jouni Korhonen.
2016-04-18
19 Ben Campbell
[Ballot discuss]
This should be easy to clean up, and it's entirely possible I am misreading something. But Section 3.4, 2nd and 3rd paragraph seem …
[Ballot discuss]
This should be easy to clean up, and it's entirely possible I am misreading something. But Section 3.4, 2nd and 3rd paragraph seem to be inconsistent in SHOULD vs MUST for block size.  I _think_ I'm reading the following:

1. If the client requests a specific block size, the server MUST use that size or a smaller one.

2. Any subsequent requests from the client MUST indicate the same size that the server used

3. But paragraph 3 then says all further requests SHOULD indicate the same size. But if they already MUST indicate the same size as in the initial response, then this  SHOULD seems non-constraining at best, and at worst in conflict with 1. (ignoring the last-block size issue for the moment.)

4. Then paragraph 3 goes on to say the server SHOULD use the block size indicated in the request or smaller. This seems to conflict with the MUST in 1.

5.  Then it again asserts that the client MUST indicate the same size in subsequent requests, conflicting with the SHOULD in 3., but agreeing with the MUST in 1.
2016-04-18
19 Ben Campbell Ballot discuss text updated for Ben Campbell
2016-04-18
19 Ben Campbell
[Ballot discuss]
This should be easy to clean up, and it's entirely possible I am misreading something. But Section 3.4, 2nd and 3rd paragraph seem …
[Ballot discuss]
This should be easy to clean up, and it's entirely possible I am misreading something. But Section 3.4, 2nd and 3rd paragraph seem to be inconsistent in SHOULD vs MUST for block size.  I _think_ I'm reading the following:

1. If the client requests a specific block size, the server MUST use that size or a smaller one.
2. Any subsequent requests from the client MUST indicate the same size that the server used
3. But paragraph 3 then says all further requests SHOULD indicate the same size. But if they already MUST indicate the same size as in the initial response, then this  SHOULD seems non-constraining at best, and at worst in conflict with 1. (ignoring the last-block size issue for the moment.)
4. Then paragraph 3 goes on to say the server SHOULD use the block size indicated in the request or smaller. This seems to conflict with the MUST in 1.
5.  Then it again asserts that the client MUST indicate the same size in subsequent requests, conflicting with the SHOULD in 3., but agreeing with the MUST in 1.
2016-04-18
19 Ben Campbell Ballot discuss text updated for Ben Campbell
2016-04-18
19 Ben Campbell
[Ballot discuss]
This should be easy to clean up, and it's entirely possible I am misreading something. But Section 3.4, 2nd and 3rd paragraph seem …
[Ballot discuss]
This should be easy to clean up, and it's entirely possible I am misreading something. But Section 3.4, 2nd and 3rd paragraph seem to be inconsistent in SHOULD vs MUST for block size.  I _think_ I'm reading the following:

1. If the client requests a specific block size, the server MUST use that size or a smaller one.
2. Any subsequent requests from the client MUST indicate the same size that the server used
3. But paragraph 3 then says all further requests SHOULD indicate the same size. But if they already MUST indicate the same size as in the initial response, then this SHOULD seems non-constraining at best, and at worst in conflict with 1. (ignoring the last-block size issue for the moment.)
4. Then paragraph 3 goes on to say the server SHOULD use the block size indicated in the request or smaller. This seems to conflict with the MUST in 1.
5.  Then it again asserts that the client MUST indicate the same size in subsequent requests, conflicting with the SHOULD in 3., but agreeing with the MUST in 1.
2016-04-18
19 Ben Campbell
[Ballot comment]
Substantive:

- General: The draft dives into detail without giving much context until the examples. The reader is left to infer the forest …
[Ballot comment]
Substantive:

- General: The draft dives into detail without giving much context until the examples. The reader is left to infer the forest from the trees. It would be very helpful (to me, at least) to add a high-level overview of operation early in the document, including definitions for "descriptive" vs " control" usages. (I know it's late in the process to ask for a whole new section, so I won't push the point.)

- The distinction between the option names Block1 and Block2 seems almost actively non-mnemonic. Is that intentional? (I won't push this point, either.)

- 3.4: Does the eTag apply to the "payload" or the whole "body"?

- 2.5, 2nd paragraph, last sentence:
Should I read this to mean that the reduction in block size is retroactive? That could use some elaboration. (I thought I read comments in the examples suggesting such a reduction would _not_ be retroactive).

- 7: Does "object security" apply to the "payload", or the "body"?
Can you describe or add a reference for the "usual considerations"?

Editorial:

- Abstract: That’s a really long abstract, and serves more as an introduction than an abstract. Please consider combining the first and last paragraph and leaving the rest to the introduction.

- 2.4, paragraph 5: a definition for "reassembler" would be helpful.

- Figures 5 and 6:
There's no discussion of either figure. Is that intentional?
2016-04-18
19 Ben Campbell [Ballot Position Update] New position, Discuss, has been recorded for Ben Campbell
2016-04-18
19 Alissa Cooper [Ballot Position Update] New position, No Objection, has been recorded for Alissa Cooper
2016-04-18
19 Alvaro Retana [Ballot Position Update] New position, No Objection, has been recorded for Alvaro Retana
2016-04-17
19 Spencer Dawkins
[Ballot comment]
Please consider whether you need to say more about UDP usage for this extension than what the base CORE specification says - RFC …
[Ballot comment]
Please consider whether you need to say more about UDP usage for this extension than what the base CORE specification says - RFC 7252 has only one mention of RFC 5405, and that only points to guidance about reducing ACK_TIMEOUT below one second. I understand that the CoAP story includes "most of these nodes aren't capable of generating a lot of packets in a short timeframe", but does this extension make it easier to send multiple UDP packets back-to-back?

I'm reading this text,

  In most cases, all blocks being transferred for a body (except for
  the last one) will be of the same size. 

and then this text

      *  The block size implied by SZX MUST match the size of the
        payload in bytes, if the M bit is set.  (SZX does not govern
        the payload size if M is unset).  For Block2, if the request
        suggested a larger value of SZX, the next request MUST move SZX
        down to the size given in the response.  (The effect is that,
        if the server uses the smaller of (1) its preferred block size
        and (2) the block size requested, all blocks for a body use the
        same block size.)
       
and realizing that I'm confused about why all the blocks for a body might NOT use the same block size. Maybe this doesn't matter (because an implementation would need to be prepared for the case when all the blocks don't use the same block size)?

The examples were helpful to me. Thank you for doing that work.
2016-04-17
19 Spencer Dawkins [Ballot Position Update] New position, No Objection, has been recorded for Spencer Dawkins
2016-04-16
19 Joel Jaeggli [Ballot Position Update] New position, No Objection, has been recorded for Joel Jaeggli
2016-04-13
19 Jean Mahoney Request for Telechat review by GENART is assigned to Jouni Korhonen
2016-04-13
19 Jean Mahoney Request for Telechat review by GENART is assigned to Jouni Korhonen
2016-04-08
19 Alexey Melnikov [Ballot comment]
My AD review:
2016-04-08
19 Alexey Melnikov [Ballot Position Update] New position, Yes, has been recorded for Alexey Melnikov
2016-04-06
19 Amy Vezza Shepherding AD changed to Alexey Melnikov
2016-04-04
19 Carsten Bormann Added to session: IETF-95: core  Tue-1740
2016-03-29
19 (System) IANA Review state changed to IANA OK - Actions Needed from Version Changed - Review Needed
2016-03-21
19 Barry Leiba IESG state changed to IESG Evaluation from Waiting for AD Go-Ahead::AD Followup
2016-03-21
19 Barry Leiba Ballot has been issued
2016-03-21
19 Barry Leiba [Ballot Position Update] New position, Yes, has been recorded for Barry Leiba
2016-03-21
19 Barry Leiba Created "Approve" ballot
2016-03-21
19 Barry Leiba Placed on agenda for telechat - 2016-04-21
2016-03-21
19 Barry Leiba Changed consensus to Yes from Unknown
2016-03-21
19 Carsten Bormann IANA Review state changed to Version Changed - Review Needed from IANA OK - Actions Needed
2016-03-21
19 Carsten Bormann New version available: draft-ietf-core-block-19.txt
2015-12-07
18 Barry Leiba Remaining in "waiting" state pending responses to...
Ops-Dir review: http://www.ietf.org/mail-archive/web/ops-dir/current/msg01567.html
Unresolved last call comment: http://www.ietf.org/mail-archive/web/core/current/msg06693.html
2015-12-07
18 Barry Leiba IESG state changed to Waiting for AD Go-Ahead::AD Followup from Waiting for AD Go-Ahead
2015-12-04
18 Gunter Van de Velde Request for Last Call review by OPSDIR Completed: Ready. Reviewer: Qin Wu.
2015-12-04
18 (System) IESG state changed to Waiting for AD Go-Ahead from In Last Call
2015-12-02
18 (System) IANA Review state changed to IANA OK - Actions Needed from IANA - Review Needed
2015-12-02
18 Sabrina Tanamal
(Via drafts-lastcall-comment@iana.org): IESG/Authors/WG Chairs:

IANA has completed its review of draft-ietf-core-block-18.txt. If any part of this review is inaccurate, please let us know.

IANA …
(Via drafts-lastcall-comment@iana.org): IESG/Authors/WG Chairs:

IANA has completed its review of draft-ietf-core-block-18.txt. If any part of this review is inaccurate, please let us know.

IANA understands that, upon approval of this document, there are two actions which IANA must complete.

First, in the CoAP Option Numbers subregistry of the Constrained RESTful Environments (CoRE) Parameters registry located at:

http://www.iana.org/assignments/core-parameters/

three new option numbers are to be registered as follows:

Number: 23
Name: Block2
Reference: [ RFC-to-be ]

Number: 27
Name: Block1
Reference: [ RFC-to-be ]

Number: 28
Name: Size2
Reference: [ RFC-to-be ]

Second, in the CoAP Response Codes subregistry of the Constrained RESTful Environments (CoRE) Parameters registry also located at:

http://www.iana.org/assignments/core-parameters/

two new response codes are to be registered as follows:

Code: 2.31
Description: Continue
Reference: [ RFC-to-be ]

Code: 4.08
Description: Request Entity Incomplete
Reference: [ RFC-to-be ]

IANA understands that these two actions are the only ones required to be completed upon approval of this document.

Note:  The actions requested in this document will not be completed until the document has been approved for publication as an RFC. This message is only to confirm what actions will be performed. 

Thank you,

Sabrina Tanamal
IANA Specialist
ICANN
2015-11-29
18 Gunter Van de Velde Request for Last Call review by OPSDIR is assigned to Qin Wu
2015-11-29
18 Gunter Van de Velde Request for Last Call review by OPSDIR is assigned to Qin Wu
2015-11-26
18 Tero Kivinen Request for Last Call review by SECDIR is assigned to Jeffrey Hutzelman
2015-11-26
18 Tero Kivinen Request for Last Call review by SECDIR is assigned to Jeffrey Hutzelman
2015-11-23
18 Jean Mahoney Request for Last Call review by GENART is assigned to Suresh Krishnan
2015-11-23
18 Jean Mahoney Request for Last Call review by GENART is assigned to Suresh Krishnan
2015-11-20
18 Amy Vezza IANA Review state changed to IANA - Review Needed
2015-11-20
18 Amy Vezza
The following Last Call announcement was sent out:

From: The IESG
To: "IETF-Announce"
CC: draft-ietf-core-block@ietf.org, kovatsch@inf.ethz.ch, core-chairs@ietf.org, core@ietf.org, barryleiba@gmail.com
Reply-To: ietf@ietf.org …
The following Last Call announcement was sent out:

From: The IESG
To: "IETF-Announce"
CC: draft-ietf-core-block@ietf.org, kovatsch@inf.ethz.ch, core-chairs@ietf.org, core@ietf.org, barryleiba@gmail.com
Reply-To: ietf@ietf.org
Sender:
Subject: Last Call:  (Block-wise transfers in CoAP) to Proposed Standard


The IESG has received a request from the Constrained RESTful Environments
WG (core) to consider the following document:
- 'Block-wise transfers in CoAP'
  as Proposed Standard

The IESG plans to make a decision in the next few weeks, and solicits
final comments on this action. Please send substantive comments to the
ietf@ietf.org mailing lists by 2015-12-04. Exceptionally, comments may be
sent to iesg@ietf.org instead. In either case, please retain the
beginning of the Subject line to allow automated sorting.

Abstract


  CoAP is a RESTful transfer protocol for constrained nodes and
  networks.  Basic CoAP messages work well for the small payloads we
  expect from temperature sensors, light switches, and similar
  building-automation devices.  Occasionally, however, applications
  will need to transfer larger payloads -- for instance, for firmware
  updates.  With HTTP, TCP does the grunt work of slicing large
  payloads up into multiple packets and ensuring that they all arrive
  and are handled in the right order.

  CoAP is based on datagram transports such as UDP or DTLS, which
  limits the maximum size of resource representations that can be
  transferred without too much fragmentation.  Although UDP supports
  larger payloads through IP fragmentation, it is limited to 64 KiB
  and, more importantly, doesn't really work well for constrained
  applications and networks.

  Instead of relying on IP fragmentation, this specification extends
  basic CoAP with a pair of "Block" options, for transferring multiple
  blocks of information from a resource representation in multiple
  request-response pairs.  In many important cases, the Block options
  enable a server to be truly stateless: the server can handle each
  block transfer separately, with no need for a connection setup or
  other server-side memory of previous block transfers.

  In summary, the Block options provide a minimal way to transfer
  larger representations in a block-wise fashion.




The file can be obtained via
https://datatracker.ietf.org/doc/draft-ietf-core-block/

IESG discussion can be tracked via
https://datatracker.ietf.org/doc/draft-ietf-core-block/ballot/


No IPR declarations have been submitted directly on this I-D.


2015-11-20
18 Amy Vezza IESG state changed to In Last Call from Last Call Requested
2015-11-20
18 Amy Vezza Last call announcement was generated
2015-11-20
18 Barry Leiba Last call was requested
2015-11-20
18 Barry Leiba IESG state changed to Last Call Requested from AD Evaluation
2015-11-02
18 Barry Leiba Ballot writeup was changed
2015-11-02
18 Barry Leiba
1. Summary

This specification extends the CoAP protocol (RFC 7252) with a pair of
"Block" options to enable the transport of large payloads …
1. Summary

This specification extends the CoAP protocol (RFC 7252) with a pair of
"Block" options to enable the transport of large payloads through
multiple request-response pairs. In constrained environments, these
blockwise transfers have an advantage over fragmentation at lower layers
(e.g., IP), since the server can be truly stateless with no need for a
connection setup or other server-side memory of previous block
transfers. The specification is intended for standards-track, as it is a
widely implemented extension of a standards-track protocol.

Matthias Kovatsch is the document shepherd.
Barry Leiba is the responsible Area Director.

2. Review and Consensus

The specification was developed along with the base CoAP specification
and received significant review by active WG members and implementers.
There were two major discussions while finding concensus: One concerned
an interoperability issue that occured in early test events was tracked
down to the interaction between the Block options and the Token. The
issue was fixed in version -08 and editorial clarification added in -16.
The other discussion circled around the possible combinations of the
Block1 and Block2 options as well as the combination of Block2 and
Observe. The proposal for server-side "Initiative," where the server is
responsible for managing the transfer of Block2 messages after a
block-wise request (Block1) or a notification (Observe), was dropped in
favor of normal client-driven transfers with a clear definition of the
message sequence. Version -13 added the corresponding text and
sufficient examples for implementers.

Several implementations of this final version have completed an
interoperability test event with a very good score. Further implementer
feedback also was positive.

3. Intellectual Property

There is no IPR disclosure referencing this document.  The authors have
indicated recently that they are not aware of patent claims relating to
this document.

4. Other Points

This document references draft-ietf-core-observe, which is currently in
the RFC Editor queue. The intention is to define the combination of the
Block and Observe options solely in this document,
draft-ietf-core-block.

There is currently a discussion in the WG to use one of the reserved
values in the Block option to provide an optimized mechanism for
reliable, stream-based transports such as TCP. This change will have no
impact on datagram-based transports, which is the target of this
document.
2015-11-02
18 Barry Leiba IESG state changed to AD Evaluation from Publication Requested
2015-11-02
18 Carsten Bormann
1. Summary

This specification extends the CoAP protocol (RFC 7252) with a pair of "Block" options to enable the transport of large payloads …
1. Summary

This specification extends the CoAP protocol (RFC 7252) with a pair of "Block" options to enable the transport of large payloads through multiple request-response pairs. In constrained environments, these blockwise transfers have an advantage over fragmentation at lower layers (e.g., IP), since the server can be truly stateless with no need for a connection setup or other server-side memory of previous block transfers. The specification is intended for standards-track, as it is a widely implemented extension of a standards-track protocol.

Matthias Kovatsch is the document shepherd.
Barry Leiba is the responsible Area Director.

2. Review and Consensus

The specification was developed along with the base CoAP specification and received significant review by active WG members and implementers. There were two major discussions while finding concensus: One concerned an interoperability issue that occured in early test events was tracked down to the interaction between the Block options and the Token. The issue was fixed in version -08 and editorial clarification added in -16. The other discussion circled around the possible combinations of the Block1 and Block2 options as well as the combination of Block2 and Observe. The proposal for server-side "Initiative," where the server is responsible for managing the transfer of Block2 messages after a block-wise request (Block1) or a notification (Observe), was dropped in favor of normal client-driven transfers with a clear definition of the message sequence. Version -13 added the corresponding text and sufficient examples for implementers.

Several implementations of this final version have completed an interoperability test event with a very good score. Further implementer feedback also was positive.

3. Intellectual Property

There is no IPR disclosure referencing this document.  The authors have indicated recently that they are not aware of patent claims relating to
this document.

4. Other Points

This document references draft-ietf-core-observe, which is currently in the RFC Editor queue. The intention is to define the combination of the Block and Observe options solely in this document, draft-ietf-core-block.

There is currently a discussion in the WG to use one of the reserved values in the Block option to provide an optimized mechanism for reliable, stream-based transports such as TCP. This change will have no impact on datagram-based transports, which is the target of this document.
2015-11-02
18 Carsten Bormann IETF WG state changed to Submitted to IESG for Publication from Waiting for WG Chair Go-Ahead
2015-11-02
18 Carsten Bormann IESG state changed to Publication Requested from AD is watching
2015-11-02
18 Barry Leiba IESG state changed to AD is watching from Dead
2015-11-02
18 Carsten Bormann IETF WG state changed to Waiting for WG Chair Go-Ahead from Submitted to IESG for Publication
2015-10-14
18 (System) Notify list changed from core-chairs@ietf.org, draft-ietf-core-block@ietf.org, "Matthias Kovatsch"  to (None)
2015-09-14
18 Andrew McGregor Shepherd write-up complete.
2015-09-14
18 Andrew McGregor IETF WG state changed to Submitted to IESG for Publication from WG Consensus: Waiting for Write-Up
2015-09-14
18 Carsten Bormann New version available: draft-ietf-core-block-18.txt
2015-09-10
17 (System) Document has expired
2015-09-10
17 (System) IESG state changed to Dead from AD is watching
2015-09-06
17 Matthias Kovatsch
1. Summary

This specification extends the CoAP protocol (RFC 7252) with a pair of "Block" options to enable the transport of large payloads …
1. Summary

This specification extends the CoAP protocol (RFC 7252) with a pair of "Block" options to enable the transport of large payloads through multiple request-response pairs. In constrained environments, these blockwise transfers have an advantage over fragmentation at lower layers (e.g., IP), since the server can be truly stateless with no need for a connection setup or other server-side memory of previous block transfers. The specification is intended for standards-track, as it is a widely implemented extension of a standards-track protocol.

Matthias Kovatsch is the document shepherd.
Barry Leiba is the responsible Area Director.

2. Review and Consensus

The specification was developed along with the base CoAP specification and received significant review by active WG members and implementers. There were two major discussions while finding concensus: One concerned an interoperability issue that occured in early test events was tracked down to the interaction between the Block options and the Token. The issue was fixed in version -08 and editorial clarification added in -16. The other discussion circled around the possible combinations of the Block1 and Block2 options as well as the combination of Block2 and Observe. The proposal for server-side "Initiative," where the server is responsible for managing the transfer of Block2 messages after a block-wise request (Block1) or a notification (Observe), was dropped in favor of normal client-driven transfers with a clear definition of the message sequence. Version -13 added the corresponding text and sufficient examples for implementers.

Several implementations of this final version have completed an interoperability test event with a very good score. Further implementer feedback also was positive.

3. Intellectual Property

There is no IPR disclosure referencing this document.  The authors have indicated recently that they are not aware of patent claims relating to
this document.

4. Other Points

This document references draft-ietf-core-observe, which is currently in the RFC Editor queue. The intention is to define the combination of the Block and Observe options solely in this document, draft-ietf-core-block.

There is currently a discussion in the WG to use one of the reserved values in the Block option to provide an optimized mechanism for reliable, stream-based transports such as TCP. This change will have no impact on datagram-based transports, which is the target of this document.
2015-09-05
17 Matthias Kovatsch
1. Summary

This specification extends the CoAP protocol (RFC 7252) with a pair of "Block" options to enable the transport of large payloads …
1. Summary

This specification extends the CoAP protocol (RFC 7252) with a pair of "Block" options to enable the transport of large payloads through multiple request-response pairs. In constrained environments, these blockwise transfers have an advantage over fragmentation at lower layers (e.g., IP), since the server can be truly stateless with no need for a connection setup or other server-side memory of previous block transfers. The specification is intended for standards-track, as it is a widely implemented extension of a standards-track protocol.

Matthias Kovatsch is the document shepherd.
Barry Leiba is the responsible Area Director.

2. Review and Consensus

The specification was developed along with the base CoAP specification and received significant review by active WG members and implementers. There were two major discussions while finding concensus: One concerned an interoperability issue that occured in early test events was tracked down to the interaction between the Block options and the Token. The issue was fixed in version -08 and editorial clarification added in -16. The other discussion circled around the possible combinations of the Block1 and Block2 options as well as the combination of Block2 and Observe. The proposal for server-side "Initiative," where the server is responsible for managing the transfer of Block2 messages after a block-wise request (Block1) or a notification (Observe), was dropped in favor of normal client-driven transfers with a clear definition of the message sequence. Version -13 added the corresponding text and sufficient examples for implementers.

Several implementations of this final version have completed an interoperability test event with a very good score. Further implementer feedback also was positive.

3. Intellectual Property

There is no IPR disclosure referencing this document.  The authors have indicated recently that they are not aware of patent claims relating to
this document.

4. Other Points

This document references draft-ietf-core-observe, which is currently in the RFC Editor queue.
2015-07-01
17 Andrew McGregor Notification list changed to core-chairs@ietf.org, draft-ietf-core-block@ietf.org, "Matthias Kovatsch" <kovatsch@inf.ethz.ch> from core-chairs@ietf.org, draft-ietf-core-block@ietf.org
2015-07-01
17 Andrew McGregor Document shepherd changed to Matthias Kovatsch
2015-03-09
17 Carsten Bormann New version available: draft-ietf-core-block-17.txt
2015-02-05
16 Andrew McGregor Tag Other - see Comment Log cleared.
2015-02-05
16 Andrew McGregor IETF WG state changed to WG Consensus: Waiting for Write-Up from In WG Last Call
2015-01-04
16 Andrew McGregor This document is being last-called again because some new text was omitted from -15.
2015-01-04
16 Andrew McGregor Tag Other - see Comment Log set.
2014-10-27
16 Carsten Bormann New version available: draft-ietf-core-block-16.txt
2014-07-23
15 Barry Leiba IESG state changed to AD is watching from Dead
2014-07-04
15 Andrew McGregor Tag Approved in minutes cleared.
2014-07-04
15 Andrew McGregor IETF WG state changed to In WG Last Call from WG Document
2014-07-04
15 Carsten Bormann New version available: draft-ietf-core-block-15.txt
2014-04-24
14 (System) Document has expired
2014-04-24
14 (System) IESG state changed to Dead from AD is watching
2013-10-21
14 Carsten Bormann New version available: draft-ietf-core-block-14.txt
2013-10-20
13 Carsten Bormann New version available: draft-ietf-core-block-13.txt
2013-06-27
12 Carsten Bormann New version available: draft-ietf-core-block-12.txt
2013-03-30
11 Carsten Bormann New version available: draft-ietf-core-block-11.txt
2012-10-21
10 Carsten Bormann New version available: draft-ietf-core-block-10.txt
2012-08-14
09 Carsten Bormann New version available: draft-ietf-core-block-09.txt
2012-07-05
08 Barry Leiba Responsible AD changed to Barry Leiba from Peter Saint-Andre
2012-07-05
08 Barry Leiba Intended Status changed to Proposed Standard from None
2012-02-15
08 (System) Ballot writeup text was added
2012-02-15
08 (System) Last call text was added
2012-02-15
08 (System) Ballot approval text was added
2012-02-15
08 (System) New version available: draft-ietf-core-block-08.txt
2012-01-27
07 (System) New version available: draft-ietf-core-block-07.txt
2012-01-21
06 (System) New version available: draft-ietf-core-block-06.txt
2012-01-12
05 (System) New version available: draft-ietf-core-block-05.txt
2012-01-12
08 (System) Document has expired
2012-01-12
08 (System) State changed to Dead from AD is watching.
2011-07-11
04 (System) New version available: draft-ietf-core-block-04.txt
2011-05-03
03 (System) New version available: draft-ietf-core-block-03.txt
2011-03-14
02 (System) New version available: draft-ietf-core-block-02.txt
2011-02-07
08 Cindy Morgan Approval announcement text regenerated
2011-01-25
01 (System) New version available: draft-ietf-core-block-01.txt
2010-11-02
08 Peter Saint-Andre Draft Added by Peter Saint-Andre in state AD is watching
2010-10-18
00 (System) New version available: draft-ietf-core-block-00.txt