Issue 11030: Change structure of (Nokey)DataFrag (dds-interop-ftf) Source: Real-Time Innovations (Mr. Kenneth Brophy, ken@rti.com ken.brophy@rti.com) Nature: Uncategorized Issue Severity: Summary: Source: Real-Time Innovations, Inc. (Ken Brophy, ken@rti.com) Summary: (NOKEY_)DATA_FRAG PSM submessage definition should be modified to place inlineQos AFTER fragmentation related parameters to simplify an implementation based on gather send. Resolution: Reposition the inlineQos field to be consistent with other messages, implementation simplicity, and higher performance. Revised Text: · Section 9.4.5.4, change 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |NOKEY_DATA_FRAG|X|X|X|X|X|X|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ to 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |NOKEY_DATA_FRAG|X|X|X|X|X|X|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ · Section 9.4.5.6, change 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATA_FRAG |X|X|X|X|X|H|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | | + + | KeyHashPrefix keyHashPrefix [only if H==1] | + + | | +---------------+---------------+---------------+---------------+ | KeyHashSuffix keyHashSuffix | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ to 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATA_FRAG |X|X|X|X|X|H|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | | + + | KeyHashPrefix keyHashPrefix [only if H==1] | + + | | +---------------+---------------+---------------+---------------+ | KeyHashSuffix keyHashSuffix | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ Resolution: see below Revised Text: · Section 9.4.5.4, change 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |NOKEY_DATA_FRAG|X|X|X|X|X|X|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ to 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |NOKEY_DATA_FRAG|X|X|X|X|X|X|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ · Section 9.4.5.6, change 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATA_FRAG |X|X|X|X|X|H|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | | + + | KeyHashPrefix keyHashPrefix [only if H==1] | + + | | +---------------+---------------+---------------+---------------+ | KeyHashSuffix keyHashSuffix | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ to 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATA_FRAG |X|X|X|X|X|H|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | | + + | KeyHashPrefix keyHashPrefix [only if H==1] | + + | | +---------------+---------------+---------------+---------------+ | KeyHashSuffix keyHashSuffix | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ Actions taken: May 23, 2007: received issue November 7, 2007: cloed issue Discussion: Resolution: Reposition the inlineQos field to be consistent with other messages, implementation simplicity, and higher performance. End of Annotations:===== sposition: OMG Issue No: 11030 Title: Change structure of (Nokey)DataFrag Source: Real-Time Innovations, Inc. (Ken Brophy, ken@rti.com) Summary: (NOKEY_)DATA_FRAG PSM submessage definition should be modified to place inlineQos AFTER fragmentation related parameters to simplify an implementation based on gather send. Resolution: Reposition the inlineQos field to be consistent with other messages, implementation simplicity, and higher performance. Revised Text: · Section 9.4.5.4, change 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |NOKEY_DATA_FRAG|X|X|X|X|X|X|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ to 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |NOKEY_DATA_FRAG|X|X|X|X|X|X|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ · Section 9.4.5.6, change 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATA_FRAG |X|X|X|X|X|H|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | | + + | KeyHashPrefix keyHashPrefix [only if H==1] | + + | | +---------------+---------------+---------------+---------------+ | KeyHashSuffix keyHashSuffix | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ to 0...2...........8...............16..............24..............32 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATA_FRAG |X|X|X|X|X|H|Q|E| octetsToNextHeader | +---------------+---------------+---------------+---------------+ | EntityId readerId | +---------------+---------------+---------------+---------------+ | EntityId writerId | +---------------+---------------+---------------+---------------+ | | + SequenceNumber writerSN + | | +---------------+---------------+---------------+---------------+ | | + + | KeyHashPrefix keyHashPrefix [only if H==1] | + + | | +---------------+---------------+---------------+---------------+ | KeyHashSuffix keyHashSuffix | +---------------+---------------+---------------+---------------+ | FragmentNumber fragmentStartingNum | +---------------+---------------+---------------+---------------+ | ushort fragmentsInSubmessage | ushort fragmentSize | +---------------+---------------+---------------+---------------+ | unsigned long sampleSize | +---------------+---------------+---------------+---------------+ | | ~ ParameterList inlineQos [only if Q==1] ~ | | +---------------+---------------+---------------+---------------+ | | ~ SerializedData serializedData ~ | | +---------------+---------------+---------------+---------------+ Disposition: