Subject: [quicwg/base-drafts] No normative language for connection/stream operations (#3935)

From: Martin Thomson <[email-masked]>
Date: Tue, 21 Jul 2020 16:34:54 -0700

The strong requirements here were wrong.  What is necessary from these
sections is defining operations in QUIC that application protocols can
depend on being present.

Levying the requirement on implementations was incorrect.  As some
application protocols don&#39;t use certain QUIC features, it is not
necessary to require implementations to support features if they are not
general purpose.

This rephrases these requirements without normative language, instead
concentrating on what services the application protocol can depend on.
This translates into requirements on implementations, but only via the
application protocols they intend to support.

Closes #3838.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/3935

-- Commit Summary --

  * No normative language for connection/stream operations

-- File Changes --

    M draft-ietf-quic-transport.md (43)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/3935.patch
https://github.com/quicwg/base-drafts/pull/3935.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/3935

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 21 Jul 2020 16:45:27 -0700

@janaiyengar approved this pull request.

I like this! Just a couple of nits, but LGTM.

-There are certain operations that an application MUST be able to perform when
-interacting with QUIC streams.  This document does not specify an API, but
-any implementation of this version of QUIC MUST expose the ability to perform
-the operations described in this section on a QUIC stream.
+This document does not define an API for QUIC, but instead defines a set of
+functions on streams that application protocols can rely upon.  An application
+protocol can assume that an implementation of QUIC provides an interface that

```suggestion
protocol can assume that a general-purpose implementation of QUIC provides an interface that
```

-There are certain operations that an application MUST be able to perform when
-interacting with QUIC streams.  This document does not specify an API, but
-any implementation of this version of QUIC MUST expose the ability to perform
-the operations described in this section on a QUIC stream.
+This document does not define an API for QUIC, but instead defines a set of
+functions on streams that application protocols can rely upon.  An application
+protocol can assume that an implementation of QUIC provides an interface that
+includes the operations described in this section.  An implementation designed
+for use with a specific application protocol might provide those operations that

```suggestion
for use with a specific application protocol might provide only those operations that
```

-There are certain operations that an application MUST be able to perform when
-interacting with the QUIC transport.  This document does not specify an API, but
-any implementation of this version of QUIC MUST expose the ability to perform
-the operations described in this section on a QUIC connection.
+This document does not define an API for QUIC, but instead defines a set of
+functions for QUIC connections that application protocols can rely upon.  An
+application protocol can assume that an implementation of QUIC provides an

```suggestion
application protocol can assume that a general-purpose implementation of QUIC provides an
```

-There are certain operations that an application MUST be able to perform when
-interacting with the QUIC transport.  This document does not specify an API, but
-any implementation of this version of QUIC MUST expose the ability to perform
-the operations described in this section on a QUIC connection.
+This document does not define an API for QUIC, but instead defines a set of
+functions for QUIC connections that application protocols can rely upon.  An
+application protocol can assume that an implementation of QUIC provides an
+interface that includes the operations described in this section.  An
+implementation designed for use with a specific application protocol might
+provide those operations that are used by that protocol.

```suggestion
provide only those operations that are used by that protocol.
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/3935#pullrequestreview-452901640

---

From: ianswett <[email-masked]>
Date: Tue, 21 Jul 2020 17:20:45 -0700

@ianswett approved this pull request.

```suggestion
protocol can assume that a complete implementation of QUIC provides an interface that
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/3935#pullrequestreview-452913735

---

From: Martin Thomson <[email-masked]>
Date: Tue, 21 Jul 2020 17:51:58 -0700

@martinthomson commented on this pull request.

I decided not to do this explicitly.  I think that it is important that application protocols are able to assume these features are present.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/3935#discussion_r458470695

---

From: Martin Thomson <[email-masked]>
Date: Tue, 21 Jul 2020 17:52:42 -0700

@martinthomson pushed 1 commit.

d20c03003008831245d566d91e0ace58a22e169d  This will require wrapping :(

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3935/files/8a1cc17e9b0f20fc50d9186de073df1a66d7c526..d20c03003008831245d566d91e0ace58a22e169d

---

From: Martin Thomson <[email-masked]>
Date: Tue, 21 Jul 2020 17:53:29 -0700

04986a29157ca72651047eae0afe0c5946204bf9  wrap

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3935/files/d20c03003008831245d566d91e0ace58a22e169d..04986a29157ca72651047eae0afe0c5946204bf9

---

From: Marten Seemann <[email-masked]>
Date: Tue, 21 Jul 2020 18:53:26 -0700

@marten-seemann approved this pull request.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/3935#pullrequestreview-452941663

---

From: Mike Bishop <[email-masked]>
Date: Wed, 22 Jul 2020 06:45:15 -0700

@MikeBishop approved this pull request.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/3935#pullrequestreview-453331675

---

From: Jana Iyengar <[email-masked]>
Date: Wed, 22 Jul 2020 19:07:01 -0700

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/3935#pullrequestreview-453798414