Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move Transport Properties text and close #373 #381

Merged
merged 3 commits into from Dec 17, 2019
Merged

Conversation

philsbln
Copy link
Contributor

closes #373

* Connection: A Connection object represents one or more active transport protocol instances that can send and/or receive Messages between local and remote systems. It holds state pertaining to the underlying transport protocol instances and any ongoing data transfers. This represents, for example, an active connection in a connection-oriented protocol such as TCP, or a fully-specified 5-tuple for a connectionless protocol such as UDP. It can also represent a pool of transport protocol instance, e.g., a set of TCP and QUIC connections to equivalent endpoints, or a stream of a multi-streaming transport protocol instance.

* Listener: A Listener object accepts incoming transport protocol connections from remote systems and generates corresponding Connection objects. It is created from a Preconnection object that specifies the type of incoming connections it will accept.

### Transport Properties
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please have these be a sub-section of the Pre-Establishment. This should not be a top-level phase of the connection.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was my first idea too, but it did not work out: In Pre-Establishment, we have a detailed description (two lengthy bullet points out of five) how selection and connection properties work in detail. All ways of rewriting Pre-Establishment to fit the high-level concept of Transport Properties there look awkward to me.

We moved that one around a lot just to avoid do making it an API Concept - but it is.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see my other comment. I think these still belong with Preconnection, as the text indicates.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The concept of Transport Properties spans all connection objects – not only the Preconnection – and therefore I would prefer not to put them in the Preconnection.
Nevertheless, they are most often used on the Preconnection and the Selection Properties work only on this one.

Copy link
Contributor

@britram britram left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, this rearrangement is not great, but I don't like any of the alternatives either.

@tfpauly
Copy link
Contributor

tfpauly commented Nov 26, 2019

I propose this diff instead—just indent Transport Properties where it is, as a sub-part of Preconnection:

-* Transport Properties: Transport Properties can be specified as part of a Preconnection to allow the application to configure the Transport System and express their requirements, prohibitions, and preferences. There are three kinds of Transport Properties: 
+  * Transport Properties: Transport Properties can be specified as part of a Preconnection to allow the application to configure the Transport System and express their requirements, prohibitions, and preferences. There are three kinds of Transport Properties: 
 
-  * Selection Properties ({{preestablishment}})
-  * Connection Properties ({{preestablishment}})
-  * and Message Properties ({{datatransfer}}); note that Message Properties can also be specified during data transfer to affect specific Messages.
+    * Selection Properties ({{preestablishment}})
+    * Connection Properties ({{preestablishment}})
+    * and Message Properties ({{datatransfer}}); note that Message Properties can also be specified during data transfer to affect specific Messages.

@philsbln
Copy link
Contributor Author

Tried that… looks strange:

4.1.1.  Connection Objects

   o  Preconnection: A Preconnection object is a representation of a
      potential connection.  It has state that describes parameters of a
      Connection that might exist in the future: the Local Endpoint from
      which that Connection will be established, the Remote Endpoint
      (Section 4.1.2) to which it will connect, and Selection Properties
      (Section 4.1.2) that influence the paths and protocols a
      Connection will use.  A Preconnection can be fully specified such
      that it represents a single possible Connection, or it can be
      partially specified such that it represents a family of possible
      Connections.  The Local Endpoint (Section 4.1.2) MUST be specified
      if the Preconnection is used to Listen for incoming connections.
      The Local Endpoint is OPTIONAL if it is used to Initiate
      connections.  The Remote Endpoint MUST be specified in the
      Preconnection that is used to Initiate connections.  The Remote
      Endpoint is OPTIONAL if it is used to Listen for incoming
      connections.  The Local Endpoint and the Remote Endpoint MUST both
      be specified if a peer-to-peer Rendezvous is to occur based on the
      Preconnection.

      *  Transport Properties can be specified to allow the application
         to configure the Transport System and express their




Pauly, et al.             Expires May 29, 2020                 [Page 14]

Internet-Draft              TAPS Architecture              November 2019


         requirements, prohibitions, and preferences.  There are three
         kinds of Transport Properties:

         +  Selection Properties (Section 4.1.2) that can only be
            specified as part of a Preconnection.

         +  Connection Properties (Section 4.1.2) that may be changed on
            the Connection.

         +  and Message Properties (Section 4.1.4) that can also be
            specified during data transfer to affect specific Messages.

@britram
Copy link
Contributor

britram commented Nov 26, 2019

eh... it looks a little odd but it is technically more correct.

@abrunstrom
Copy link
Contributor

So the whole point of this text is to introduce the term Transport Properties I think. Otherwise we could have just removed it as the three kinds are described in detail in later sections. Perhaps we can just insert this as running text at the end of the Preconnection description instead to make it look less awkward. Something like:

Selection Properties (Section 4.1.2) can only be specified as part of a Preconnection. Connection Properties (Section 4.1.2) may also be specified as part of a Preconnection, but may also be changed on the Connection. Together with Message Properties (Section 4.1.4), which can also be specified during data transfer to affect specific Messages, they are the three kinds of Transport Properties that an application can specify to configure the Transport System and express its requirements, prohibitions, and preferences.

@philsbln
Copy link
Contributor Author

I double-checked with the interface: there. transport properties are also an object that is passed to the preconnection and that can retrieved from a connection.
Therefore, I made it a Connection Object and slightly rephrased the text.

Does this work better?

@abrunstrom
Copy link
Contributor

This is very similar to where we started I think, so did not help much for me unfortunately. I still do not think it fits as a Connection Object on the same level as the rest. What did you think about my suggestion to introduce it in running text as part of the description of the Preconnection?

@philsbln
Copy link
Contributor Author

@abrunstrom I thought about your suggestion, but my problem with that is that Transport Properties are actually:

  1. An actual Object in the API
  2. Also used for introspecting and manipulating Connections

Therefore, putting them into the Preconnection seems wrong to me.

draft-ietf-taps-arch.md Outdated Show resolved Hide resolved
draft-ietf-taps-arch.md Outdated Show resolved Hide resolved
@philsbln philsbln merged commit a542da8 into master Dec 17, 2019
@britram britram deleted the philsbln/close-373 branch September 11, 2020 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Transport Properties are not Connection Objects
4 participants