need help group/segment decoding

Imported from previous forum

[ original email was from Darshan Khedekar - darshan.khedekar.ext@deutsche-boerse.com ]
Reply
FAST spec section 6.2.6 says

“A group field instruction associates a name and presence attribute with a group of instructions. If any instruction of the group needs to allocate a bit in a presence map, the group is represented as a segment in the transfer encoding.” and further “The main purpose of the group field instruction is to enable a single bit in the presence map to indicate the presence of a whole group of fields”

Hence a group CAN have its own presence map. i.e a 2nd or embedded PMAP so to say.

Eurex templates do not use this yet. Eurex uses groups to indicate that a group of fields to collectively mark a group of fields as present or absent.
In this tempalte either the single leg contract descriptor or the strategy descriptor occurs for the instance of the message.

  • Darshan

Hi everyone,

I have some questions on the PMAP bit regarding some of the group fields. If the group field is optional, then PMAP bit is always needed or it still depends on the fields inside the group. For instance (taken from EUREX templates):

  <group name="contractDescription" presence="optional">
     <uInt32 name="cntrId"/>
  </group>

Does the above group field require a PMAP bit or not? I am quite confused with the concept of having group with just one field though.

Thanks
Loc

Thanks Darshan. So in this case:

  <group name="strategyDescription" presence="optional">
     <string name="prodId"/>
     <string name="stratType"/>
     <decimal name="undrPrc"/>
     <sequence name="strategyLegs">
        <length name="noOfLegs"/>
        <uInt32 name="stratCntrId"/>
        <string name="stratBuySellCode"/>
        <uInt32 name="stratLegVol"/>
     </sequence>
  </group>

even none of the fields inside this group requires a PMAP bit, we still need 1 PMAP bit to tell whether this whole group of fields present or absent, just 1 bit, am i right?

Thanks again,
Loc

Reply FAST spec section 6.2.6 says

“A group field instruction associates a name and presence attribute with
a group of instructions. If any instruction of the group needs to
allocate a bit in a presence map, the group is represented as a segment
in the transfer encoding.” and further “The main purpose of the group
field instruction is to enable a single bit in the presence map to
indicate the presence of a whole group of fields”

Hence a group CAN have its own presence map. i.e a 2nd or embedded PMAP
so to say.

Eurex templates do not use this yet. Eurex uses groups to indicate that
a group of fields to collectively mark a group of fields as present or
absent. In this tempalte either the single leg contract descriptor or
the strategy descriptor occurs for the instance of the message.

  • Darshan

Hi everyone,

I have some questions on the PMAP bit regarding some of the group
fields. If the group field is optional, then PMAP bit is always needed
or it still depends on the fields inside the group. For instance (taken
from EUREX templates):

  <group name="contractDescription" presence="optional"> <uInt32
  name="cntrId"/> </group>

Does the above group field require a PMAP bit or not? I am quite
confused with the concept of having group with just one field though.

Thanks Loc

[ original email was from Darshan Khedekar - darshan.khedekar.ext@deutsche-boerse.com ]
Hi Loc,

Yes, in the group if optional does occupy a PMAP bit in the message segment PMAP.

None of the group fields require a PMAP bit.
Eurex interface spec also mentions the exact PMAP bit for the fields/groups.

  • Darshan

Thanks Darshan. So in this case:

  <group name="strategyDescription" presence="optional"> <string
  name="prodId"/> <string name="stratType"/> <decimal
  name="undrPrc"/> <sequence name="strategyLegs"> <length
  name="noOfLegs"/> <uInt32 name="stratCntrId"/> <string
  name="stratBuySellCode"/> <uInt32 name="stratLegVol"/>
  </sequence> </group>

even none of the fields inside this group requires a PMAP bit, we still
need 1 PMAP bit to tell whether this whole group of fields present or
absent, just 1 bit, am i right?

Thanks again, Loc

Reply FAST spec section 6.2.6 says

“A group field instruction associates a name and presence attribute
with a group of instructions. If any instruction of the group needs to
allocate a bit in a presence map, the group is represented as a
segment in the transfer encoding.” and further “The main purpose of
the group field instruction is to enable a single bit in the presence
map to indicate the presence of a whole group of fields”

Hence a group CAN have its own presence map. i.e a 2nd or embedded
PMAP so to say.

Eurex templates do not use this yet. Eurex uses groups to indicate
that a group of fields to collectively mark a group of fields as
present or absent. In this tempalte either the single leg contract
descriptor or the strategy descriptor occurs for the instance of the
message.

  • Darshan

Hi everyone,

I have some questions on the PMAP bit regarding some of the group
fields. If the group field is optional, then PMAP bit is always needed
or it still depends on the fields inside the group. For instance
(taken from EUREX templates):

  <group name="contractDescription" presence="optional"> <uInt32
  name="cntrId"/> </group>

Does the above group field require a PMAP bit or not? I am quite
confused with the concept of having group with just one field though.

Thanks Loc

Hi Darshan,

If at least one of the field inside the group requires a PMAP bit and PMAP bit for the optional group is on, does it mean we will see a PMAP for the group in the data stream next, followed by the data for the fields inside the group? I know it’s not in Eurex case here but I just want make sure my decoder handles group correctly.

Thanks again,
Loc

Hi Loc,

Yes, in the group if optional does occupy a PMAP bit in the message
segment PMAP.

None of the group fields require a PMAP bit. Eurex interface spec also
mentions the exact PMAP bit for the fields/groups.

  • Darshan

Thanks Darshan. So in this case:

  <group name="strategyDescription" presence="optional"> <string
  name="prodId"/> <string name="stratType"/> <decimal
  name="undrPrc"/> <sequence name="strategyLegs"> <length
  name="noOfLegs"/> <uInt32 name="stratCntrId"/> <string
  name="stratBuySellCode"/> <uInt32 name="stratLegVol"/>
  </sequence> </group>

even none of the fields inside this group requires a PMAP bit, we
still need 1 PMAP bit to tell whether this whole group of fields
present or absent, just 1 bit, am i right?

Thanks again, Loc

Reply FAST spec section 6.2.6 says

“A group field instruction associates a name and presence attribute
with a group of instructions. If any instruction of the group needs
to allocate a bit in a presence map, the group is represented as a
segment in the transfer encoding.” and further “The main purpose of
the group field instruction is to enable a single bit in the
presence map to indicate the presence of a whole group of fields”

Hence a group CAN have its own presence map. i.e a 2nd or embedded
PMAP so to say.

Eurex templates do not use this yet. Eurex uses groups to indicate
that a group of fields to collectively mark a group of fields as
present or absent. In this tempalte either the single leg contract
descriptor or the strategy descriptor occurs for the instance of the
message.

  • Darshan

Hi everyone,

I have some questions on the PMAP bit regarding some of the group
fields. If the group field is optional, then PMAP bit is always
needed or it still depends on the fields inside the group. For
instance (taken from EUREX templates):

  <group name="contractDescription" presence="optional"> <uInt32
  name="cntrId"/> </group>

Does the above group field require a PMAP bit or not? I am quite
confused with the concept of having group with just one field
though.

Thanks Loc

[ original email was from Darshan Khedekar - darshan.khedekar.ext@deutsche-boerse.com ]
Hi Loc,

FAST 1.x.1 spec:

Section 6.2.6 - Page 12 -
“If any instruction of the group needs to allocate a bit in a presence map, the group is represented as a segment in the transfer encoding.”

Thus, if at least one field in the group requires a PMAP bit it must follow the syntax of a Segment.

Section 10 - Page 20 -
message ::= segment segment ::= PresenceMap TemplateIdentifier? (field | segment)*

A segment has a PMAP, TID (optional) followed by fields.

Your understanding is correct.

  • Darshan

Hi Darshan,

If at least one of the field inside the group requires a PMAP bit and
PMAP bit for the optional group is on, does it mean we will see a PMAP
for the group in the data stream next, followed by the data for the
fields inside the group? I know it’s not in Eurex case here but I just
want make sure my decoder handles group correctly.

Thanks again, Loc

Hi Loc,

Yes, in the group if optional does occupy a PMAP bit in the message
segment PMAP.

None of the group fields require a PMAP bit. Eurex interface spec also
mentions the exact PMAP bit for the fields/groups.

  • Darshan

Thanks Darshan. So in this case:

  <group name="strategyDescription" presence="optional"> <string
  name="prodId"/> <string name="stratType"/> <decimal
  name="undrPrc"/> <sequence name="strategyLegs"> <length
  name="noOfLegs"/> <uInt32 name="stratCntrId"/> <string
  name="stratBuySellCode"/> <uInt32 name="stratLegVol"/>
  </sequence> </group>

even none of the fields inside this group requires a PMAP bit, we
still need 1 PMAP bit to tell whether this whole group of fields
present or absent, just 1 bit, am i right?

Thanks again, Loc

Reply FAST spec section 6.2.6 says

“A group field instruction associates a name and presence
attribute with a group of instructions. If any instruction of the
group needs to allocate a bit in a presence map, the group is
represented as a segment in the transfer encoding.” and further
“The main purpose of the group field instruction is to enable a
single bit in the presence map to indicate the presence of a whole
group of fields”

Hence a group CAN have its own presence map. i.e a 2nd or embedded
PMAP so to say.

Eurex templates do not use this yet. Eurex uses groups to indicate
that a group of fields to collectively mark a group of fields as
present or absent. In this tempalte either the single leg contract
descriptor or the strategy descriptor occurs for the instance of
the message.

  • Darshan

Hi everyone,

I have some questions on the PMAP bit regarding some of the group
fields. If the group field is optional, then PMAP bit is always
needed or it still depends on the fields inside the group. For
instance (taken from EUREX templates):

  <group name="contractDescription" presence="optional">
  <uInt32 name="cntrId"/> </group>

Does the above group field require a PMAP bit or not? I am quite
confused with the concept of having group with just one field
though.

Thanks Loc