FIXP Use Cases
These use cases contain sample values for illustration purposes only.
Contents
- 1 Initialization
- 2 Binding
- 3 UnBinding
- 3.1 Ungraceful Termination (Time Out)
- 3.2 Ungraceful Termination (sequence message received with lower sequence number)
- 3.3 Ungraceful Termination (establish received with lower sequence number)
- 3.4 Graceful Termination
- 3.5 Hard Disconnect
- 3.6 Transferring
- 3.6.1 Sequence
- 3.6.2 Sequence (higher sequence number)
- 3.6.3 Sequence (lower sequence number)
- 3.6.4 Sequence (heartbeat)
- 3.6.5 Retransmission Request
- 3.6.6 Retransmission (Concurrent)
- 3.6.7 Retransmission (Interleaving)
- 3.6.8 Retransmission Reject (Invalid FromSeqNo)
- 3.6.9 Retransmission Reject (OutOfRange)
- 3.6.10 Retransmission Reject (Invalid UUID)
- 3.6.11 Retransmission Reject (Request Limit Exceeded)
- 3.6.12 Retransmission Gap Fill
- 4 COD Scenarios
- 4.1 Salient Points
- 5 UUID Scenarios
Initialization
Session Negotiation
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Client Flow | Server Flow | HMAC Signature |
|---|---|---|---|---|---|---|---|
Negotiate |
| 456 | T1 | -- | Idempotent | -- | 123 |
| NegotiationResponse | 456 | -- | T1 | -- | Recoverable | -- |
Session Negotiation (Rejects) Bad HMAC Signature
For example – Valid HMAC Signature is 123 but Negotiate message is sent with HMAC Signature as 456 then it will be rejected.
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Client Flow | Code | HMAC Signature |
|---|---|---|---|---|---|---|---|
Negotiate |
| 789 | T1 | -- | Idempotent |
| 456 |
| NegotiationReject | 789 | -- | T1 | -- | HMACNotAuthenticated | -- |
Session negotiation (rejects) Invalid UUID
For example – PreviousUUID=456 and Negotiate is received with UUID=123 therefore since this is less than the previous UUID it will be rejected.
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Client Flow | Code | HMAC Signature |
|---|---|---|---|---|---|---|---|
Negotiate |
| 123 | T1 | -- | Idempotent | -- | 123 |
| NegotiationReject | 123 | -- | T1 | -- | InvalidUUID | -- |
NegotiationResponse or Reject Not Received
For example – the Negotiate message is neither accepted nor rejected and two times the KeepAliveInterval has lapsed then a new Negotiate message should be sent.
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Client Flow | Server Flow | HMAC Signature |
|---|---|---|---|---|---|---|---|
Negotiate |
| 123 | T1 | -- | Recoverable | -- | 123 |
<Two times the KeepAliveInterval has lapsed without any response> | |||||||
Negotiate |
| 123 | T3 | -- | Recoverable | -- | 123 |
<Recommended KeepAliveInterval for CME to customer is 30 seconds> | |||||||
Binding
Establishment
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Client Flow | Keep Alive Interval | Next Seq No | Server Flow | HMAC Signature |
|---|---|---|---|---|---|---|---|---|---|
Negotiate |
| 123 | T1 | -- | Idempotent | -- | -- | -- | 456 |
| NegotiationResponse | 123 | -- | T1 | -- | -- | -- | Recoverable | -- |
Establish |
| 123 | T2 | -- | -- | 10 | 1 | -- | 789 |
| EstablishmentAck | 123 | -- | T2 | -- | 30 (CME Interval) | 1 | -- | -- |
Termination (Unnegotiated)
For example – Trying to send an Establish message without first Negotiating the session will result in Termination.
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Code | Keep Alive Interval |
|---|---|---|---|---|---|---|
Establish |
| 123 | T2 | -- | -- | 10 |
| Terminate | 123 | -- | T2 | Unnegotiated | -- |
Termination (Already Established)
For example – Trying to send an Establish message when the session itself is already Negotiated and Established will result in Termination.
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Code | Keep Alive Interval |
|---|---|---|---|---|---|---|
Negotiate |
| 123 | T1 | -- | -- | -- |
| Negotiation Response | 123 | -- | T1 | -- | -- |
Establish |
| 123 | T2 | -- | -- | 10 |
| EstablishmentAck | 123 | -- | T2 | -- | 30 (CME Interval) |
Establish |
| 123 | T3 | -- | -- | 10 |
| Terminate | 123 | -- | T3 | AlreadyEstablished | -- |
Establishment Rejects (Double Establish)
For example – if a particular Session has sent an Establish message and without waiting for either EstablishmentAck or EstablishmentReject it sends another Establish then it will be Terminated.
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Code | Keep Alive Interval |
|---|---|---|---|---|---|---|
Negotiate |
| 123 | T1 | -- | -- | -- |
| NegotiationResponse | 123 | -- | T1 | -- | -- |
Establish |
| 123 | T2 | -- | -- | 10 |
Establish |
| 123 | T3 | -- | -- | 10 |
| Terminate | 123 | -- | T3 | EstablishInProgress | -- |
Establishment Rejects (Bad HMAC Signature)
For example – valid HMAC Signature is 123 but Establishment message is sent with HMAC Signature as 456 then it will be rejected.
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Code | HMAC Signature |
|---|---|---|---|---|---|---|
Negotiate |
| 789 | T1 | -- | -- | 012 |
| NegotiationResponse | 789 | -- | T1 | -- | -- |
Establish |
| 789 | T2 | -- | -- | 456 |
| EstablishmentReject | 789 | -- | T2 | HMACNotAuthenticated | -- |
EstablishmentAck or Reject Not Received
For example – the Establish message is neither accepted nor rejected and two times the KeepAliveInterval has lapsed then a new Establish message is to be sent.
Message Received | Message Sent | UUID | Timestamp | Request Timestamp | Client Flow | Server Flow | Credentials | Keep Alive Interval |
|---|---|---|---|---|---|---|---|---|
Negotiate |
| 123 |
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.