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

Sequence formation Establish vs EstablishmentAck #74

Open
danjmarques opened this issue Jan 30, 2020 · 2 comments
Open

Sequence formation Establish vs EstablishmentAck #74

danjmarques opened this issue Jan 30, 2020 · 2 comments
Labels
documentation Version 1.1 FIXP version 1.1 standard

Comments

@danjmarques
Copy link

danjmarques commented Jan 30, 2020

Section 7.3.1.1 states that

"The Sequence, Context, EstablishmentAck and Retransmission messages are sequence forming. They turn the message flow into a sequenced mode since they have the next implicit sequence number."

The Establish message is not on that list. Is that omission deliberate? If it is, then the client (with a recoverable flow) would need to send a Sequence after sending the Establish message, but before sending the first application message.

In 7.3.1, it says that

"Over TCP – a Client could (emphasis mine) send a Sequence message at the very beginning of the session upon establishment. The counterparty would not use it initially as it is provided in the EstablishmentAck message."

First, is that sentence correct in referring to the EstablishmentAck message, or should it refer to the Establish message?

Second, assuming that sentence was about the Establish message, if the Sequence message isn't required, then the Establish message must have been sequence forming.

Please clarify.

@donmendelson
Copy link
Member

Establishment and EstablishAck have optional NextSeqNo but only for a recoverable flow.

I think the sentence in 7.3.1 was intended to be explanatory rather than normative. In my opinion, it is confusing and should be removed in future versions.

@danjmarques
Copy link
Author

danjmarques commented Jan 31, 2020

Is the Establish has a NextSeqNo "sequence forming" as per 7.3.1.1? If it were, this would mean that the counter party could send RetransmitRequest immediately after sending EstablishmentAck. Otherwise, it would need to wait for a Sequence.

This actually appears to be the case, as 4.3.1 states

The server should evaluate NextSeqNo to determine whether it missed any messages after re-establishment of a recoverable flow. If so, it may immediately send a RetransmitRequest after sending EstablishAck.

so I think that the sentence in 7.3.1.1 should be re-written to something like (modifications in bold)

The Sequence, Context, Establish, EstablishmentAck and Retransmission messages are sequence forming (the Establish and EstablishmentAck only if a NextSeqNo is present). They turn the message flow into a sequenced mode since they have the next implicit sequence number."

@donmendelson donmendelson added the Version 1.1 FIXP version 1.1 standard label Apr 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Version 1.1 FIXP version 1.1 standard
Projects
None yet
Development

No branches or pull requests

2 participants