Page tree
Skip to end of metadata
Go to start of metadata

iLink 3 introduces a new order entry protocol on CME Globex that provides the following:

  • Simple Binary Encoding (SBE) - optimized for low latency of encoding and decoding
  • FIX Performance (FIXP) protocol - supports simple session layer management; no session-level information (e.g. headers) required
  • Optimized order entry on the CME Globex platform for futures, options, and BrokerTec markets
  • Lean messages move administrative information out of order entry business message
  • Standard message size, fixed positions, and fixed length fields 
  • Consistent encoding method for market data and order entry
  • XML schema and templates for order entry as with MDP 3
  • Only Market Segment Gateway (MSGW) sessions will support iLink 3
  • All iLink 3 sessions are Cancel on Disconnect (CoD) mandatory.

Use this search bar to search topics within iLink 3 Binary Order Entry.

Contents

Revision History

 Expand
ServiceDateDescription
iLink39/28/2020

iLink 3 Binary Order Entry - Business Layer from CME Globex to Client System

added tag 5904-DelayDuration converted to tag 7552-DelayToTime

9/1/2020

iLink 3 Order Cancel Replace Request

  • Updated tag 1138-DisplayQty description to:
  • The quantity to be displayed. Required for Display Quantity.
  • Note: on orders, this value specifies  the qty to be displayed; on Execution Reports this value indicates the currently displayed quantity.

iLink 3 Binary Order Entry - BrokerTec Reject Codes

  • Updated tag 58-Text for error code 5102.
9/1/2020

iLink 3 Binary Order Entry - BrokerTec Reject Codes

corrected

Sent in response to New Order - Single (tag 35-MsgType=D)
in tag 103-OrdRejReason of the Execution Report - Reject (tag 35-MsgType=8, tag 39-OrdStatus=9)

to

Sent in response to New Order - Single (tag 35-MsgType=D)
in tag 103-OrdRejReason of the Execution Report - Reject (tag 35-MsgType=8, tag 39-OrdStatus=8)

8/19/2020

iLink 3 Quote Cancel








295NoQuoteEntriesgroupSize3Y
  • minValue=1
  • maxValue=10015

The number of quote entries for quote sets, instruments, product group, or cancel all.

298=1 → 1 to 10015

298=3 → 1

298=4 → 1

298=100 → 1 (for cancel by quote set a product group has to be specified here)

8/13/2020iLink 3 Order Cancel Reject - Added link to reject codes in tag 102-CxlRejReason description.
8/12/2020

Added:

iLink 3 Binary Order Entry - BrokerTec Reject Codes

8/10/2020

updated tag 1031-CustOrderHandlingInst enumerations and description in:

iLink 3 Party Details Definition Request Acknowledgment

iLink 3 Party Details List Report

iLink 3 Party Details Definition Request Acknowledgment

8/3/2020

iLink Order Entry - Business Layer

Messaging Changes for iLink 3

Tag 9717-CorrelationCIOrdID is replaced with new tag 2422-OrderRequestID deprecated

  • Tag 2422-OrderRequestID will be leveraged to tie back responses to requests
  • Tag 11-ClOrdID is to be used only as an entity identifier of an order in so that customers could provide their own order ID but not as a message identifier
    • Tag 11 value remains can remain the same through the life of an order

Summary of FIX Tag Changes from iLink 2.X to iLink 3

  • Removed tag 9717 row from both tables: inbound and outbound messages.
  • Added tag 9717 to the Delete row for both inbound and outbound tables.
7/16/2020

Updated tag 527-SecExecID description:

7/10/2020Negotiation Response - Added "Sent in number of days since Unix epoch." to tag 39022-SecretKeySecureIDExpiration description.
6/24/2020

iLink 3 Business Reject - Removed reject code "1 – Unknown PartyDetailsListReqID being referenced in business message"

Retransmit Request - Updated tag 39019 description.

5/15/2020

iLink 3 Order Mass Action Report

iLink 3 Execution Report - Status

for tag 60-TransactTime - UNDER DEVELOPMENT. Currently sent in microseconds.

5/14/2020iLink 3 Binary Order Entry - Session Layer - Added note after first paragraph under "Session Negotiation."
5/11/2020

iLink 3 Binary Order Entry - Business Layer

updated iLink 3 Party Details Definition Request Acknowledgment description

5/11/2020

iLink 3 Binary Order Entry - BrokerTec Markets

Supported Order Types & Qualifiers - updated table showing how to define order type and order qualifier

5/11/2020

From CME Globex to Client System

for all messages except those noted below updated tag 7552-DelayToTime description to: Represented as number of nanoseconds in UNIX epoch format (since Jan 1, 1970). Subtracting this number from Tag 60-TransactTime will represent original received time of delayed message.

for:

updated tag 7552-DelayToTime description to: Represented as number of nanoseconds in UNIX epoch format (since Jan 1, 1970). Subtracting this number from Tag 5979-RequestTime will represent original received time of delayed message.

4/30/2020

iLink 3 Binary Order Entry - BrokerTec Markets

updated tag 18, 5906, and 6881 descriptions

iLink 3 - Simple Binary Encoding

iLink 3 Business Reject

  • updated tag 45 description

iLink 3 Binary Order Entry - Business Layer

  • updated tag 45 note
  • updated Encoding Type Field verbiage: Please note that the encoding type is a reserved keyword represented as a hexadecimal digits in Little-Endian byte order.
4/16/2020iLink 3 Binary Order Entry - Session Layer: Sequence Gap Fill - Changed MsgCount from 9 to 10 in diagram.
4/15/2020

Updated iLink 3 Automated Port Closure section.

Updated Messaging Controls section.

4/3/2020

iLink 3 Binary Order Entry - Business Layer

tag 60 conversion added:

Note - the following application messages will continue to use tag 5979:

4/3/2020

iLink 3 Binary Order Entry - Message Specification

Global update to tag 5392-SenderID updated description and tag 1693-PartyDetailRole=118:

In FirmSoft and Global Command Center queries for order status and cancellations, this value must be exact, including preceding and following spaces (“ “).

3/24/2020

iLink 3 Binary Order Entry - BrokerTec Markets

New:

A new repeating group will be added to the following message types to support binary trade reporting:

  • ExecutionReportTradeOutright
  • ExecutionReportTradeSpread
  • ExecutionReportTradeSpreadLeg

Tag

Name

Req

Binary Type

Binary Length

Description

1795

NoOrderEvents

N

groupSize

3

Number of fills which comprise fill quantity

→1799

OrderEventPx

Y

PRICE9

8

Refers to the fill price; same as tag 31-LastPx

→1802

OrderEventText

N

String5

5

Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for BrokerTec EU bilateral trades

→1797

OrderEventExecID

Y

uInt32

4

This is a unique ID which ties together a specific fill between two orders; It will be unique per instrument per day

→1800

OrderEventQTY

Y

uInt32

4

Refers to the specific fill quantity between this order and the opposite order

→1796

OrderEventType

Y

OrderEventTye

1

The type of event affecting an order

·       4=Partially Filled

·       5=Filled

→1798

OrderEventReason

Y

uInt8

1

Action that caused the event to occur. 100=Binary Trade Reporting

A new repeating group will be added to the following message types to support Trade cancel and trade adjustments:

  • ExecutionReportTradeAddendumOutright 
  • ExecutionReportTradeAddendumSpread
  • ExecutionReportTradeAddendumSpreadLeg

Tag

Name

Req

Binary Type

Binary Length

Description

1795

NoOrderEvents

N

groupSize

3

Number of fills which comprise fill quantity

→1799

OrderEventPx

Y

PRICE9

8

Refers to the fill price; same as tag 31-LastPx

→1802

OrderEventText

N

String5

5

Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for BrokerTec EU bilateral trades

→1797

OrderEventExecID

Y

uInt32

4

This is a unique ID which ties together a specific fill between two orders; It will be unique per instrument per day

→1800

OrderEventQTY

Y

uInt32

4

Refers to the specific fill quantity between this order and the opposite order

→1796

OrderEventType

Y

TradeAddendum

1

The type of event affecting an order

·       4=Partially Filled

·       5=Filled

·       100=Trade Cancel

·       101=Trade Correction

→1798

OrderEventReason

Y

uInt8

1

Action that caused the event to occur. 100=Binary Trade Reporting

→6555

OriginalOrderEventExecID

N

uInt32NULL

4

Contains the previous tag 1797-OrderEventExecID value of the trade being adjusted or busted.

Will not be present on the following message types

·       ExecutionReportTradeOutright

·        ExecutionReportTradeSpread

·        ExecutionReportTradeSpreadLeg

3/24/2020

iLink 3 Execution Report - Trade Spread Leg

iLink 3 Execution Report - Trade Outright

iLink 3 Execution Report - Trade Spread

New

→1796

OrderEventType

OrderEventTye

1

Y

·       4=Partially Filled

·       5=Filled

The type of event affecting an order

remove tag →6555OriginalOrderEventExecID

3/20/2020Updated Order Entry Timeline and Mock Trading Schedule.
3/19/2020

iLink 3 - Simple Binary Encoding

iLink 3 has its own  max values for integer fields.  CME Globex limits the range of unsigned  integer to signed  integer because that is the maximum value supported by java long data type 64 bit integer.

3/19/2020

iLink 3 Execution Report - Status

Tag 432 is not a require tag for OSR ack

3/19/2020

iLink 3 Execution Report - Trade Spread

Tag 555 is not currently supported or listed in the trade spread execution report.

3/19/2020

iLink 3 Binary Order Entry - Business Layer

  • All iLink 3 tests except the iLink 3 Failover Tests –  Available Now
  • iLink 3 Failover Tests– Monday, March 23, 2020
3/19/2020

iLink 3 Mass Quote Acknowledgment

DelayToTime listed before NoQuoteEntries and the repeating group. 

3/19/2020

iLink 3 Binary Order Entry - Business Layer

Sequence number gap:

    1. For short format, we will receive Not Applied for a sequence number gap
    2. For long format message, we will receive:
  • Not Applied for Party Details Definition Request with a higher than expected sequence number
  • Business Reject with invalid PartyID for the new order with 380=1 and 45=null  

Invalid PartyDetails ID:

  1. For short format, we will Business Reject for the New Order with 380=1 and 45=null  
  2. For long format message, we will receive:
    • Business Reject for Party Details Definition Request with the  partyDetailID  not equal to 0
    • Business Reject for the new order as a result of the  rejected Party Details Definition Request with 380=1 and 45=null  
3/19/2020

iLink 3 Binary Order Entry - Business Layer

Add GT orders message conversion during the production iLink 2 and 3 parallel period

3/19/2020

SessionManagement

During the parallel period, any MSGW sessions configured for iLink 3 must

  • send iLink 3 messages if market segments are migrated to iLink 3,
  • send iLink 2 messages if market segments have not yet migrated to iLink 3
3/19/2020

Link 3 Binary Order Entry

A flag to indicate for each MSGW if it is enabled for iLink 3  will be added to the MSGW config.xml file.

3/19/2020

iLink 3 Binary Order Entry - Session Layer

Remove 'optional feature' from UUID & sequence number gap 

3/6/2020

iLink 3 Quote Cancel

tag 295-NoQuoteEntries update to Y for required

tag 296-NoQuoteSets - added, "Set the groupSize to 0 when not required."

3/6/2020

this change has been rolled back:

iLink 3 Execution Report - Trade Addendum Spread

Tag 40 is not required in trade addendum spread message

tag 40 is UNDER EVELOPMENT

3/5/2020

From CME Globex to Client System

Update tag 9765 description

3/5/2020

iLink 3 Execution Report - Trade Addendum Spread

Tag 40 is not required in trade addendum spread message

3/5/2020

iLink 3 Application Layer

Update tag 11 description

3/5/2020

iLink 3 Binary Order Entry - BrokerTec Markets#NewFIXTags

iLink 3 Execution Report - Trade Outright

Correct tag 5290 name and add new section  on Short Code validations 

Add link to workup and display quantity

Update tag 7191 description

3/5/2020

iLink 3 Binary Order Entry - Session Layer- FaultTolerance

As part of active-active fault tolerance on the backup connection no Negotiation is allowed period regardless of whatever UUID is being used in that message

3/5/2020

iLink 3 Execution Report - Elimination

iLink 3 Execution Report - Modify

iLink 3 Execution Report - Cancel

Update tag 14 description

3/5/2020

iLink 3 Application Layer

Update tag 9726 description

3/5/2020

From CME Globex to Client System

iLink 3 Execution Report - Trade Outright

iLink 3 Execution Report - Trade Spread

iLink 3 Execution Report - Trade Spread Leg

iLink 3 Execution Report - Trade Addendum Outright

iLink 3 Execution Report - Trade Addendum Spread

iLink 3 Execution Report - Trade Addendum Spread Leg

Update tag 75 and tag 432  descriptions

3/5/2020

Retransmit Request

Update tag 39018 description

3/5/2020

iLink 3 Binary Order Entry - Session Layer

iLink 3 does not support Finish Sending and Finish Receiving  messages

3/5/2020

iLink 3 Binary Order Entry - Business Layer

iLink 3 Party Details Definition Request

iLink 3 Party Details Definition Request Acknowledgment

iLink 3 Party Details List Report

Update PR 118 requirement and how it is meant to be populated

3/5/2020

iLink 3 Binary Order Entry - Business Layer#OrderTypeQualifiers

iLink 3 Application Layer

Remove FOK (59=4) for futures and options markets

2/20/2020Added On-Demand Messaging Scenarios
2/20/2020

NextSeqNo on backup connection must be set to zero.

iLink 3 Binary Order Entry - Session Layer

2/20/2020

Add note that tag 1031 is required for futures and options only

iLink 3 Party Details Definition Request

iLink 3 Party Details Definition Request Acknowledgment

iLink 3 Party Details List Report

2/20/2020

Update tag 1657=NoRequestiongIDs value:

min =0

max=1

iLink 3 Party Details List Request

2/20/2020

Party Detail Restriction

Update route-through restriction

iLink 3 Binary Order Entry - Business Layer#BusinessLayer-Restrictions

2/20/2020

Tag 39012 description:

Add Error code  '28' to Negotiation Reject.

Change error code from 26 to 27

Negotiation Reject

Establishment Reject

2/13/2020

Added to the Execution Acknowledgment message:

  • tag 5297– SendingTimeEpoch
  • tag 9537- LocationNew
  • tag 1028-ManualOrdIndicator
2/13/2020

New tag 5187-Reserved added to Mass Quote message.

2/6/2020

Tag 1505 description (global)

The unique identifier of the Party Details Definition Request Acknowledgment associated with this message; this is the value submitted on the inbound message.

For pre-registered messages:

  • Unique ID from Party Details Definition Request Acknowledgment message
  • PartyDetailsListRequestID≠0.

For on-demand messages:

  • If not registered beforehand through iLink then Party Details Definition Request Ack message will be sent along with the business message and will immediately precede it
  • PartyDetailsListRequestID=0.
2/6/2020

Add valid values to tag 7191 (global)

0 – Aggressive owner's fill included in workup

1 – Passive owner's fill included in workup

2 – Aggressive owner's fill excluded from workup

3 – Passive owner's fill excluded from workup

2/6/2020

iLink 3 Binary Order Entry - Business Layer

Added note:

Please note: PreviousUUID and PreviousSeqNo are not the last UUID and last SeqNo sent by the Client System to CME Globex.  They refer to the last UUID and last SeqNo sent by CME Globex to Client System.

2/6/2020

Tag 1362 description 

Add max number of fill reason to all iLink 3 trade messages

Specifies the number of fill reasons or allocations included in this Execution Report

Maximum number of fill reasons is 6

Note: The number of fill reason is always '1' for spread leg fills

2/6/2020

Not Applied - UUID

Update FIX type from uInt 32 to uInt 64

2/6/2020

iLink 3 Binary Order Entry

OESGW - SFTP Site Information 

The OESGW configuration information (i.e. market segments and IPs) will be added to the MSGW config file via an SFTP site (sftpng.cmegroup.com), accessed via a CME Globex network direct connection. This SFTP site contains the configuration files for all environments. The SFTP site is a secure site that requires a user name and password for access.

New Market Segment is defined for each OESGW  as follow:

<marketsegment id="12" label="Order Entry Service Gateway’">

<marketsegment id="14" label="BTEC US Order Entry Service Gateway’">  

<marketsegment id="16" label="BTEC EU Order Entry

2/6/2020

Add TradeAddendum to tag 1795 repeating group

A new repeating group will be added to the following message types to support binary trade reporting:

  •  ExecutionReportTradeOutright
  •  ExecutionReportTradeSpread
  •  ExecutionReportTradeSpreadLeg
  •  ExecutionReportTradeAddendumOutright 
  •  ExecutionReportTradeAddendumSpread
  •  ExecutionReportTradeAddendumSpreadLeg
2/6/2020

iLink 3 Binary Order Entry - Business Layer

Former:

For the New Order Cross: 

Pre-registered party information – Client registers party information in the Service Gateway in advance; in the New Order Cross message, the client identifies the party detail ID for each side in tag 1505-PartyDetailsListReqID.

New:

For unsolicited quote cancels:

CME Globex will return the Party Details Definition Request Acknowledgment message with tag 1505-PartyDetailsListRequestID=0 before every Quote Cancel Acknowledgment message (tag 35-MsgType = b, tag 297-QuoteStatu= 1,3,4,100

This is applied to unsolicited cancels from CME One (tag 378-ExecRestatementReason=105)

For the New Order Cross: 

Pre-registered party information – Client registers party information in the Service Gateway in advance; in the New Order Cross message, the client identifies the party detail ID for each side in tag 1505-PartyDetailsListReqID.

2/6/2020

iLink 3 Binary Order Entry - Business Layer

iLink 3 Party Details List Request

Message spec update for tag 1658 and tag 448

was:

          Each Party Details List RequestID will be unique per firm.

new:

          Each Party Details List RequestID will be unique per firm.   If a firm is hosted on more than one session, the same Party Details List Request ID can be used across all sessions.

  For Example: Executing Firm="123" is hosted both Session ID = "ABC" and  Session  ID = "XYZ".  PartyDetailsListRequestID = "1001", created by session ABC,  can be used on both sessions

current:

Restrictions

  • If a firm is hosted on more than one session, it cannot create duplicate Party Details List Request IDs on both sessions.
  • If a firm is hosted on a session that supports route-throughs, then it cannot create duplicate Party Details List Request IDs used by other firms that are part of that route-through session.

new:

Restrictions

  • If a firm is hosted on more than one session, it cannot create duplicate Party Details List Request IDs on both sessions.
  • If a firm is hosted on the session(s) that supports route-throughs, then it cannot create duplicate Party Details List Request IDs used by other firms that are part of that route-through session(s).

was:

Party Details List Request

The new Party Details List Request message (tag 35-MsgType=CF) is used to request all of the Party Details Definition information for a particular Firm ID.

  • Party Details List Request message should be sent only to the Service Gateway
  • Party Details List Request message can be used to request all Party Details Definitions for a firm or specific Party Details Definitions belonging to that firm 
  • Customers can submit a Party Details List Request message and receive the Party Details List Report message (tag 35-MsgType=CG) detailing active Party Detail Definitions.
  • The Party Details List Request message should be used in these circumstances:
    • To confirm submission of Party Details Definition messages sent earlier to the Service Gateway. This can be done:
      • Sunday at the beginning of the week before the start of trading but after Party Details Definition messages have been sent earlier in the day
      • Before the start of each trading session
      • After the close of each trading session
      • Anytime there is a need to confirm which Party Details Definitions have been registered with CME

new:

Party Details List Request

The new Party Details List Request message (tag 35-MsgType=CF) is used to request all of the Party Details Definition information for a particular Firm ID.

  • Party Details List Request message should be sent only to the Service Gateway
  • Party Details List Request message can be used to request all Party Details Definitions for a firm or specific Party Details Definitions belonging to that firm 
  • Customers can submit a Party Details List Request message and receive the Party Details List Report message (tag 35-MsgType=CG) detailing active Party Detail Definitions.
  • The Party Details List Request message should be used in these circumstances:
    • To confirm submission of Party Details Definition messages sent earlier to the Service Gateway. This can be done:
      • Sunday at the beginning of the week before the start of trading but after Party Details Definition messages have been sent earlier in the day
      • Before the start of each trading session
      • After the close of each trading session
      • Anytime there is a need to confirm which Party Details Definitions have been registered with CME
  • There are two types of the Party Details List request:
    1.  by Executing Firm - Request all Party Details for a single firm using tag 1657- NoRequestingPartyIDs repeating group
    2.  by PartyID - Request specific Party Details  using tag 453-NoPartyIDs repeating group

Note: Customers can submit a Party Details List Request message either by Executing Firm or PartyID.  Both types cannot be presented in the same Party Details List request message

2/6/2020

iLink 3 Quote Cancel Acknowledgment

Update NoQuoteEntries field on the Quote Cancel Ack from N = Not required to Y = Required.

2/6/2020

iLink 3 Mass Quote Acknowledgment

Mark these 2 codes with asterisk to indicate CME defined:

Tag 368-QuoteEntryRejectReason:

*89 - Order price is outside daily limit

*131 - Order price is outside bands

1/29/2020

Updated AutoCert+ availability dates

Autocert+ certification for futures and options.

Required for all client systems on MSGWs

Updated registration verbiage:

Customers are required to register in advance in order to participate in this mock trading session. The mock trading session script will be announced in future CME Globex Notices.  Client systems must be certified for iLink 3 session layer tests via Autocert+ prior to participate the iLink 3 mock trading sessions. 

iLink 3 Request for Quote tag 54-Side updated to N (not required)
  • Add new tag 7552-DelayToTime to the following messages and publish the change today, 1/29.    

7552

DelayToTime

uInt64NULL

8

N


Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a result of being out of order due to TCP retransmission (9553=1) or as a result of being queued behind a split message (9553=2)

Represented as number of nanoseconds in unix epoch format (since Jan 1, 1970)

Subtracting this number from FIFO time will represent original received time of delayed message

  • 522 - Execution Report – New Order
  • 531 - Execution Report - Modify
  • 534 - Execution Report - Cancel
  • 523 - Execution Report - Reject
  • 535 - Order Cancel Reject
  • 536 - Order Cancel Replace Reject
  • 558 - Order Mass Action Report
  • 545 - Mass Quote Acknowledgment
  • 547 - Quote Cancel Acknowledgment
  • 546 – Request for Quote Acknowledgment
  • Update tag 5904 description on all iLink 3 messages

5904

DelayDuration

uInt16NULL

2

N


Not currently being used

1/22/2020

Execution Report - Modify

Functional Spec

was:

Execution Report - Modify message is sent in response to Order Cancel Replace Request

  • Tag 2422-OrderRequestID  is used to tie back responses to requests

To make the exchange FIX compliant, now current state of the order will be represented by tag 39-OrderStatus and the specific type of event will be represented in tag 150-ExecType

  • Modification of unfilled order will be 39=0 and 150=5
  • Modification of partially filled order will be 39=1 and 150=5
  • Modification of order quantity at or below filled quantity will be 39=2 and 150=5 (previously was 39=4 and 150=4)
    • This modify ack will show that the order has been replaced but it is already fully filled and therefore no longer working:
    • Tag 38-OrderQty=Tag 14-CumQty
    • tag 151-LeavesQty=0 

Execution Report - Modify message does not contain these fields

  • Tag 6-AvgPx
  • Tag 20-TransType
  • Tag 41-OrigClOrdID

new:

Execution Report - Modify message is sent in response to Order Cancel Replace Request

  • Modification order will be represented by tag 39-OrderStatus = 5 and tag 150-ExecType 150=5
  • Tag 2422-OrderRequestID  is used to tie back responses to requests

Execution Report - Modify message does not contain these fields

  • Tag 6-AvgPx
  • Tag 20-TransType
  • Tag 41-OrigClOrdID
1/22/2020

Message Spec

tag 5906-ExecutionMode

global update

previous:

Applicable for US & EU Repos and TBAs.

new:

Applicable for US & EU Repos.


Functional Spec

Removed all references from:

iLink 3 Binary Order Entry - BrokerTec Markets

Message Spec

tag 5904-DelayDuration

Updated the message specification to say that the delay interval for messages penalized due to message splitting will be shown in milliseconds and not nanoseconds

impacted messages:

  • Execution Report New (35=8, 39=0)
  • Execution Report Reject (35=8, 39=8)
  • Execution Report Modify (35=8, 39=5)
  • Execution Report Cancel (35=8, 39=4)
  • Modify/Cancel Reject (35=9)
  • Mass Cancel Ack (35=BZ)
  • Mass Quote Ack/Nack (35=b)
  • Mass Quote Cancel Ack/Nack (35=b)
  • RFQ Ack/Nack (35=b)

Message Spec

tag 39001-UUID

added to existing description:

Client systems must use the same UUID for both primary and backup connections if using active-active fault tolerance to ensure that the sequence numbers will continue after a failover.

Functional Spec

iLink 3 Binary Order Entry - Session Layer

Previous:

The customer can choose to use the same UUID for both primary and backup FIXP sessions (this is the only exception to the general rule of thumb that the UUID be globally unique) and then the sequence streams would be contiguous after failure. The customer can also choose to maintain primary and backup FIXP sessions with different UUIDs with the caveat that the sequence streams will reset back to 1 after failure on the new primary.

New:

The customer must  use the same UUID for both primary and backup FIXP sessions (this is the only exception to the general rule of thumb that the UUID be globally unique) and then the sequence streams would be contiguous after failure.  

1/15/2020

updated tag 555-NoLegs description for iLink 3 Security Definition Request

UDS cannot exceed supported max number of legs.

  • UDS on options - 40 legs
  • Recursive UDS - no more than 40 instruments that make up the Recursive
  • UDS on futures - 40 legs

Will be set to 0 for REPO

  • An iLink Security Definition Request (tag 35-MsgType=c) is rejected as "'Too Many Legs for combo combo: <option/future leg count> Max: <max option/future leg>" due to tag 555 is more than 40
  • An iLink Security Definition Request (tag 35-MsgType=c) is rejected as "'Not Enough Legs: <leg count> Min: 2'" due to tag 555 is less than 2

1/15/2020

Added tag 6555-OriginalOrderEventID to:

iLink 3 Execution Report - Trade Addendum Spread Leg

iLink 3 Execution Report - Trade Addendum Spread

iLink 3 Execution Report - Trade Addendum Outright

1/6/2020

Added new section to iLink 3 Binary Order Entry - Business Layer:

Order Request Identifier

10/30/2019

Message Specification updates:

8/27/2019Added iLink 3 Message Header
7/30/2019Initial publication

Key Events and Dates

iLink 3.0 timeline

Testing and Certification

All client systems must complete the full certification before migrating to iLink 3 in production. All iLink 3 tests are now available in Autocert+.

Date

Milestone

August 26, 2019

New Release for futures and options

  • Subset of functionality
    • FIXP
      • Negotiate
      • Establish
      • Terminate
      • Retransmit Request
      • Sequence
      • Not Applied
    • Pre-registered administrative information 
      • PartyDetaisDefinitionRequest to the new Service Gateway
    • Business messages
      • NewOrderSingle
      • OrderCancelReplaceRequest
      • OrderCancelRequest
      • OrderStatusRequest
      • OrderMassStatusRequest
November 25, 2019

New Release for futures and options

  • All remaining functionality
    • On-demand administrative information 
      • PartyDetaisDefinitionRequest to MSGW 
      • PartyDetailsListRequest to the new Service Gateway
    • Business messages
      • MassQuote
      • QuoteCancel
      • OrderMassActionRequest
      • NewOrderCross
      • RequestForQuote
      • SecurityDefintionRequest
      • ExecutionReportTradeAddendum
Starting February 12, 2020

Autocert+ certification for futures and options.

  • All iLink 3 tests except the iLink 3 Failover Tests –  Available Now
  • iLink 3 Failover Tests – Monday, March 23, 2020

Required for all client systems on MSGWs

March 29, 2020 - May 17, 2020

Mock trading sessions

CME Request Center for self-service session migration

Production parallel for futures and options

Q4 2020iLink 2.X decommissioned on all MSGWs

iLink 3 Binary Order Entry Timeline

iLink 3 Binary Order Entry Timeline

Market Segment ID

Market Segment Description

Production Launch

76

NYMEX Metals, Softs and Alternative Markets Futures; COMEX Futures

Sunday, May 31, 2020

50
64

CME Interest Rate Options
CME Equity Futures – E-mini S&P

Sunday, June 21, 2020

52
54
58
60
70
72
84
88

CME FX Futures and Options II
CME and CBOT Equity Options
CBOT Interest Rate Options
CME, CBOT and MGEX Commodity Options
CME, CBOT and MGEX Commodity Futures
CBOT Commodity Futures II
CBOT Interest Rate Futures
CME FX Futures and Options

Sunday, July 12, 2020


56

68
74
78
80
82

NYMEX Emissions Options; NYMEX Energy, Metals, Softs and Alternative Market Options; COMEX Options; DME Options

CME Equity Futures II; CBOT Equity Futures
BMD Futures and Options; NYMEX SEF
NYMEX Emissions and Non-Crude Energy Futures
DME Futures; NYMEX Crude and Crude Refined Energy Futures
CME Interest Rate Futures

Sunday, July 26, 2020


A flag to indicate for each MSGW if it is enabled for iLink 3  will be added to the MSGW config.xml file.

Mock Trading Session

To support customer experience with the iLink 3 protocol in the CME Globex production environment, CME Group will offer customer mock trading sessions on:

  • Saturday, March 7, 2020 
  • Saturday, May 2, 2020
  • Saturday, May 16, 2020
  • Saturday, May 30, 2020
  • Saturday, June 20, 2020
  • Saturday, July 11, 2020 
  • Saturday, July 25, 2020

Customers are required to register in advance in order to participate in this mock trading session. The mock trading session script will be announced in future CME Globex Notices. Client systems must be certified for iLink 3 session layer tests via Autocert+ prior to participate the iLink 3 mock trading sessions.

Video Overview

For a video overview see the iLink 3 Order Entry module in the CME Globex 101 playlist.

CME Globex 101 video

iLink 3 Gateway Considerations

The iLink 3 launch will have the following considerations for Convenience Gateway (CGW), Market Segment Gateway (MSGW), and Drop Copy Gateway (DCGW) customers:


CGWMSGWDCGW
iLink 3
  • CGW sessions will not support iLink 3
  • Only iLink 3 will support access to BrokerTec and EBS markets
    • CGW customers must migrate to MSGW and iLink 3 to access the full component of CME Globex markets
  • Only MSGW sessions will support iLink 3
  • iLink 3 and iLink 2.X MSGW sessions will be available in parallel for 6 months
  • Drop Copy will support both iLink 3 and iLink 2.X source sessions
  • The encoded payload messages sent on Drop Copy with iLink 3 source sessions will be in ASCII format,  but will reflect the changes documented in the  Drop Copy Client Impact Assessment

If an iLink 2.X message is received on an iLink 3 session,  that given session will be terminated immediately.

Market Integrity Controls

Automated Port Closure

CME Globex will automatically terminate and close both the primary and backup ports for any iLink 3 session on the 5th invalid negotiate and establish attempts in 60 seconds.

Negotiate messages may be invalid due to:

  • Invalid or missing UUID
  • Invalid or missing HMAC Signature
  • Invalid or missing RequestTimestamp
  • Invalid or missing AccessKeyID
  • Invalid or missing Session
  • Invalid or missing Firm
  • Sending Negotiate message without waiting for NegotiationResonse/NegotiationReject from previous Negotiate message
  • Sending Negotiate message when session is already negotiated 
  • Sending Negotiate message when session is already established

Establish messages may be invalid due to:

  • Invalid or missing UUID
  • Invalid or missing HMAC Signature
  • Invalid or missing RequestTimestamp
  • Invalid or missing AccessKeyID
  • Invalid or missing Session
  • Invalid or missing Firm
  • Invalid or missing NextSeqNo
  • Sending Establish message without waiting for EstablishmentAck/EstablishmentReject from previous Establish message
  • Sending Establish message when session is already established 
  • Sending Establish message when session is not negotiated
  • Missing ApplicationSystemName
  • Missing TradingSystemVersion
  • Missing ApplicationSystemVendor
  • Invalid or missing KeepAliveInterval

Automated Port Closure can also be triggered by customers sending messages other than Negotiate and Establish when the session has not been successfully established.

When triggered, CME Globex will send a Terminate message with tag 39012-ErrorCoces = 8 (CMEAdministeredPortClosure: due to invalid number of Negotiate/Establish attempts being exceeded)

  • Sessions with active-active fault tolerance will receive the Terminate message on both the primary and backup instances.
  • Sessions without fault tolerance will only receive the Terminate on the primary instance, but both the primary and backup ports will be closed.

Primary and secondary clearing firm administrators must contact the Global Command Center directly to have a port re-opened.

Messaging Controls

Messaging Controls prevent violation of the maximum Transactions per Second (TPS) rule. Messaging Controls measure Transactions per Second (TPS) and are enforced at the iLink session level.

iLink 3 will have the same messaging controls as iLink 2.x except for the changes described below.

Application Messaging Controls

Module

Messaging Controls

Common

New Order (D)

Cancel-Replace (G)

Status Request (H)

Security Definition (c)

Mass Status Request (AF)

Quote Request (R)

New Order Cross (s)

Party Details Definition Request (CX)

Party Details List Request (CF)

Cancel

Cancel (F)

Mass Cancel (CA)

Mass Quote

Mass Quote (i)

Mass Quote Cancel (Z)

Administrative Message Controls

The thresholds are in place for the following Administrative message types:

    • Negotiate
    • Establish
    • Terminate
    • Sequence
    • Retransmit Request

Messaging Thresholds and Action Types

Messaging Thresholds

Action Type

Message Type

Error Code

Exceeding Reject Threshold

Reject subsequent messages until the TPS rate falls below the threshold.

Business Reject (tag 35-MsgType=j)

Tag 380-BusinessRejectReason=8

Exceeding Terminate Threshold

Terminate the offending iLink 3 session

Terminate

Tag 39012- ErrorCodes=9

Party Details Messages 

Party Details messages can be counted in Administrative or Application Messaging Controls depending on whether the messages are sent to MSGWs or OESGWs:

Messages

MSGWs

OESGW

PartyDetailsDefinitionRequest messages with PartyDetailsListRequestID≠0

Administrative Message Controls

Common Module

PartyDetailsDefinitionRequest messages with PartyDetailsListRequestID=0

Common Module

*Regardless of whether the PartyDetailsDefinitionRequest message is sent on-demand directly preceding each New Order-Single, Order Cancel Replace Request , Order Cancel Request, etc.

Administrative Message Controls

PartyDetailsListRequest

Administrative Message Controls

Common Module

Summary of Impacts

The following table summarizes the impacts for client systems developing to iLink 3 and outlines the differences from iLink 2.X to iLink 3.

Layer

Feature

iLink 2.X

iLink 3 

Presentation

Message encoding

Tag value ASCII encoding

Simple Binary Encoding

Session

Authentication, Recovery

FIX Transport (FIXT)

FIX Performance Session Layer (FIXP)

Application

Business logic

FIX semantics

Improved  FIX semantics

Transport

End-to-end delivery

TCP

TCP – No change

Network

Virtual Circuits, Routing

IP

IP – No change

System Architecture

The following diagrams provide an overview of the system architecture in support of the iLink 3 launch: 

Current State

This diagram depicts the current state of iLink order entry architecture.

For iLink 2.X:

  • CGW Session ID can exist on only one CGW
  • MSGW Session IDs are shared across multiple MSGWs. Customers utilize a single Session ID, password, and port across all MSGWs.

current architecture

Future State

This diagram shows the future state of iLink order entry architecture for the March - September 2020 time frame supporting iLink 2.X and iLink 3 messaging protocols.

For iLink 3:

  • CGW session will not support iLink 3 until the future phase.
  • Each client system connects and sends messages to its assigned MSGW session using the configured IP and port. The MSGW then routes the messages received to the appropriate Matching Engine.
    • During the production parallel (i.e. 6 months after the complete launch), MSGW sessions will support both iLink 2.X and iLink 3.

Future State Architecture

Final State

This diagram shows the final state of iLink order entry architecture following the complete migration to the iLink 3 messaging protocol in Q4 2020.

  • MSGW sessions will support only iLink 3.

End State Architecture

Order Entry Service Gateway (OESGW) - SFTP Site Information

The OESGW configuration information (i.e. market segments and IPs) will be added to the MSGW config file via an SFTP site (sftpng.cmegroup.com), accessed via a CME Globex network direct connection. This SFTP site contains the configuration files for all environments. The SFTP site is a secure site that requires a user name and password for access.

New Market Segment is defined for each OESGW  as follow:

<marketsegment id="12" label="Order Entry Service Gateway’">

<marketsegment id="14" label="BTEC US Order Entry Service Gateway’">  

<marketsegment id="16" label="BTEC EU Order Entry Service Gateway’">

Session Management

The following are applicable to customer self-service migration from iLink 2.X to iLink 3 through CME Request Center:

  • No new sessions required for futures and options markets
  • Customers with HMAC key administration can migrate sessions from iLink 2.X to iLink 3 on a session by session basis
    • New column added in Request Center to identify current protocol; i.e. iLink 2.x or iLink 3
    • New MSGW sessions created will default to iLink 2.X,  but have the option to be changed to iLink 3
  • Migration effected once a week on Sunday startup
    • Sessions cannot fall back to iLink 2.x mid-week
  • During the parallel period, any MSGW sessions configured for iLink 3 must
    • send iLink 2 messages if market segments have not yet migrated to iLink 3
  • All  MSGW sessions must be migrated to iLink 3 by the end of the parallel period

Contact Information

For technical development support, contact Certification Support for Electronic Trading (CSET).

For production requests, please contact the Global Command Center (GCC).

For all other inquiries, please contact Global Account Management (GAM).