-
Notifications
You must be signed in to change notification settings - Fork 111
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
Clarify STREAM Connection Details Functionality #573
Conversation
This PR clarifies STREAM functionality by tightening the language related to `ConnectionAssetDetails` and `ConnectionNewAddress` frames. Specifically: 1. `ConnectionNewAddress` is useful for a receiver that wants to change its ILP address or for a client that wants to become a receiver. Therefore: 1. A _client_ only emits a `ConnectionNewAddress` near the beginning of a Connection if it wants to receive. 1. A _receiver_ (i.e., a client or server playing that role) emits a `ConnectionNewAddress` frame if it needs to migrate the connection. 1. Info in `ConnectionAssetDetails` is typically only used by senders, and only when the sender needs to verify the amount received on a path. A _sender_ dooesn’t generally to emit this frame; only the reciever does. 1. A client should send a `ConnectionAssetDetails` whenever the sequence identifier is 0, and ignore duplicate frames on other sequences. If a receiver misses this frame, then the connection should be closed and restarted. Signed-off-by: sappenin <sappenin@gmail.com>
…rame-clarifications Signed-off-by: sappenin <sappenin@gmail.com> # Conflicts: # 0029-stream/0029-stream.md
Signed-off-by: sappenin <sappenin@gmail.com>
Signed-off-by: sappenin <sappenin@gmail.com>
* Bump draft numbers for SPSP and STREAM * Add appropriate `type` designators Signed-off-by: sappenin <sappenin@gmail.com>
…/stream-frame-clarifications Signed-off-by: sappenin <sappenin@gmail.com> # Conflicts: # 0029-stream/0029-stream.md
Signed-off-by: sappenin <sappenin@gmail.com>
…rame-clarifications Signed-off-by: sappenin <sappenin@gmail.com> # Conflicts: # 0029-stream/0029-stream.md
Signed-off-by: sappenin <sappenin@gmail.com>
I met with @kincaidoneil and @nhartner and we reached a rough consensus around how to clarify the verbiage in this RFC (i.e., what should be in this PR). Those PR changes have been made and this PR is ready to be reviewed. We also discovered that there is lack-of-consensus around one commonly-deployed STREAM topology. That is, in the case where the client is the sender, and is non-routable (i.e., "send only") how should the client expect to get a For now, here's what we agreed to:
**Question: How does a client-sender tell the receiver server to send it a No consensus. Some people think, “get it from a higher layer protocol” and some people think “get it from the receiver somehow by allowing the client to 'trigger' the frame somehow" -- implementations support both, and triggering a CAD is done by sending a CNA frame until you get back a CAD. Nobody really likes the current state of affairs, because the spec is silent which makes for ambiguity. We identified that if the future state of the world is, "STREAM should allow a client-sender to "request" a This probably deserves more community weigh-in, but for now all implementations use the CNA/CAD dance, which is OK in the short term. |
Co-authored-by: Kincaid O'Neil <kincaidoneil@users.noreply.github.com>
Co-authored-by: Kincaid O'Neil <kincaidoneil@users.noreply.github.com>
Co-authored-by: Kincaid O'Neil <kincaidoneil@users.noreply.github.com>
Co-authored-by: Kincaid O'Neil <kincaidoneil@users.noreply.github.com>
Signed-off-by: sappenin <sappenin@gmail.com>
Signed-off-by: sappenin <sappenin@gmail.com>
Signed-off-by: sappenin <sappenin@gmail.com>
Signed-off-by: sappenin <sappenin@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM -- just a few minor edits.
Co-authored-by: Kincaid O'Neil <kincaidoneil@users.noreply.github.com>
Co-authored-by: Kincaid O'Neil <kincaidoneil@users.noreply.github.com>
Co-authored-by: Kincaid O'Neil <kincaidoneil@users.noreply.github.com>
…rame-clarifications
This PR clarifies STREAM functionality by tightening the language related to
ConnectionAssetDetails
andConnectionNewAddress
frames.Specifically:
ConnectionNewAddress
is useful for a receiver that wants to change its ILP address or for a client that wants to become a receiver. Therefore:ConnectionNewAddress
Frame is optional, and can be sent at any time (e.g., a non-routable sender shouldn't send it unless it has other reasons to send it -- see below).ConnectionNewAddress
once it wants to enable the receiver to start sending to it (this generally happens near the beginning of a Connection, but doesn't have to).ConnectionNewAddress
frame if it needs to migrate the connection.ConnectionAssetDetails
is typically only used by senders, and only when the sender needs to verify the amount received on a path. Therefore, a sender doesn’t generally emit this frame (the receiver does).Signed-off-by: sappenin sappenin@gmail.com