FIX multi-hop routing like IP routing

Imported from previous forum

Hi all,

the specs are not very strict in the area of FIX routing. There are some 4 x 3 tags:

[OnBehalfOf|Sender|Target|DeliverTo][CompID|SubID|LocationID]

but no definition how routing beyound 3rd party routing would work.
According to some thread about four party routing answered by Scott Atwell, the usage of the above IDs may be subject to interpretation.

Let’s use this notation:

“(” OnBehalfOfIDs “)” SenderIDs “->” TargetIDs “(” DeliverToID “)”

where

*IDs := *CompID [ “.” *SubID [ “.” *LocationID ] ] ]

Example:

(A.x)B…l1->C(D.y.l2)

Basically, I see two different ways to route messages:

  1. hop-to-hop routing

    hop1: A->X©
    hop2: (A)X->C

    Here the IDs are shifted left.
    I cannot see how to progress beyound hop2 without supplying
    extra information.

  2. inter-net analogy

    hop1: A->X©
    hop2: (A)X->Y©
    hop3: (A)Y->Z©
    hop4: (A)Z->C

    Here the end-to-end address (A) and © stay the same.
    Instead of A->… or …->C we could write (A)A->… or
    …->C©
    As in the internet protocol, the (A) and © are the source
    and target addresses, while the X, Y, Z are the local addresses
    (e.g. MAC addresses in the case of the ethernet).
    For every hop, we need fixed routing tables saying:

    route to C via X
    route to C via Y
    etc.

IMHO, variant 2 is more flexible and easier to understand because it is based on the well-understood internet routing.

In addition, we could extend it further with analogies to dynamic routing, metrics, NAT etc.

What do you think? Is this kind of interpretation supported by the current FIX specs? Does it sound feasible?

Any comments are very appreciated.

Regards, Jörg