View Issue Details

IDProjectCategoryView StatusLast Update
000872910000-014: PubSubSpecpublic2023-06-20 14:51
ReporterZbynek Zahradnik Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version1.05.02 
Target Version1.05.03Fixed in Version1.05.03 RC1 
Summary0008729: How can UADP heartbeat messages be recognized?
Description

When the subscriber is receiving UADP messages from multiple groups and writers on the same connection, how can the subscriber recognize that the message is a heartbeat message - just from the message itself, without necessarily having access to the configuration?

The spec says "If the key frame is a heartbeat DataSetMessage, only the header is encoded but the following
structure shall not be encoded into the DataSetMessage.". I think it means the DataSetMessage Header. But, a generic UADP parser (such as Wireshark dissector) will just see a corrupted key frame, where the DataSetMessage Header is not followed by the Data Key Frame DataSetMessage data.

I could only find one place in the spec which could help distinguishing the heartbeat messages - "For heartbeat DataSetMessages the majorVersion and
minorVersion in the configurationVersion shall always be 0 in the configuration and in the DataSetMessages.".

However, these fields are not always present in the DataSetMessage Header. Maybe the spec is trying to say that in order for the parser to recognize the heartbeat messages, the ConfigurationVersionMajorVersion and ConfigurationVersionMinorVersion fields must be enabled in the message? And without them, the heartbeat messages are not possible? That would be OK, if that is the intent, I think it should be expressed more clearly in the spec.

TagsNo tags attached.
Commit Version
Fix Due Date

Relationships

related to 0008651 closedMatthias Damm Conflicting requirements for heartbeat message header 

Activities

Matthias Damm

2023-06-20 13:02

developer   ~0019557

7.2.3.5.5 Data Key Frame DataSetMessage
If the key frame is a heartbeat DataSetMessage, only the header is encoded but the following structure shall not be encoded into the DataSetMessage.
Added:
Generic Subscribers can detect heartbeat DataSetMessages if the DataSetMessage size equals the header size. If the DataSetMessage size is not part of the payload header, the DataSetMessage offset configuration is required on Subscriber side.

Jim Luth

2023-06-20 14:51

administrator   ~0019564

Agreed to changes edited in Virtual F2F.

Issue History

Date Modified Username Field Change
2023-03-14 16:16 Zbynek Zahradnik New Issue
2023-03-14 16:16 Zbynek Zahradnik Relationship added related to 0008651
2023-03-23 21:55 Jim Luth Assigned To => Matthias Damm
2023-03-23 21:55 Jim Luth Status new => assigned
2023-06-20 13:02 Matthias Damm Status assigned => resolved
2023-06-20 13:02 Matthias Damm Resolution open => fixed
2023-06-20 13:02 Matthias Damm Fixed in Version => 1.05.03 RC1
2023-06-20 13:02 Matthias Damm Note Added: 0019557
2023-06-20 14:51 Jim Luth Status resolved => closed
2023-06-20 14:51 Jim Luth Note Added: 0019564