4.22. Interoperability

4.22.1. [Major] RTPS Header Extension timestamp used incorrect clock

The RTPS Header Extension timestamp was populated with the internal_clock instead of the external_clock. This could lead to the timestamp being populated with an invalid value (from the perspective of the remote host), if the internal_clock was set to the monotonic value. Timestamps should be generated with the external_clock. The RTPS Header Extension timestamp is now populated with the external_clock.

For more information about clocks in Connext, see Configuring the Clock per DomainParticipant.

[RTI Issue ID CORE-16250]

4.22.2. [Major] TypeConsistencyEnforcement::ignore_member_names did not work in some cases

Setting TypeConsistencyEnforcement::ignore_member_names to true did not work in some cases. These are some examples of the scenarios that have been fixed:

  • Two mutable structures have a member with the same name but different ID and another member with the same name and ID:

@mutable
struct CORE16105Struct1 {
    long x1; //@ID 1
    long x5; //@ID 5
};
@mutable
struct CORE16105Struct2 {
    long x1; //@ID 2
    long x5; //@ID 5
};
DataWriter of type CORE16105Struct1 and DataReader of type CORE16105Struct2.
  • Two unions have different member names but the same extensibility, number of members, and discriminator values for the same types:

union CORE16105Union1 switch(unsigned long) {
    case 1:
        short x1;
    case 2:
        long x2;
    case 3:
        long x3;
};
union CORE16105Union2 switch(unsigned long) {
    case 1:
        short x2;
    case 2:
        long x1;
    case 3:
        long x3;
};
DataWriter of type CORE16105Union1 and DataReader of type CORE16105Union2.
  • Two arrays of arrays or two sequences of sequences have different member names but the same extensibility and dimensions (only XCDR was broken; XCDR2 was working):

@appendable
struct CORE16105Array20Uint32 {
    unsigned long x1[20];
};
@final
struct CORE16105Array10Array20Uint32 {
    CORE16105Array20Uint32 x1[10];
};
@appendable
struct CORE16105Array20Uint32Alt {
    unsigned long altx1[20];
};
@final
struct CORE16105Array10Array20Uint32Alt {
    CORE16105Array20Uint32Alt altx1[10];
};
DataWriter of type CORE16105Array10Array20Uint32 and DataReader of type CORE16105Array10Array20Uint32Alt.

[RTI Issue ID CORE-16105]