VxWorks not processing HeartBeats

4 posts / 0 new
Last post
Last seen: 10 years 2 months ago
Joined: 08/28/2013
Posts: 66
VxWorks not processing HeartBeats


I am using Connext Micro Edition on an equipment (VxWorks @ and on Windows Seven in point to point connection.
To boot the equipment, the PC shall be in @, so i added it.

ipconfig gives:

Ethernet Local Area Connection :
Adresse IPv4. . . . . . . . . . . . . .: 10.208.xxxx
Adresse IPv4. . . . . . . . . . . . . .:

Equipment contains a Pub with initial_peers to
PC contains a Sub with intial_peers to
Both have   discovery_plugin_properties.accept_unknown_peers = DDS_BOOLEAN_FALSE and use UDP_InterfaceFactoryProperty with
udp_property->allow_interface,0) ="Local Area Connection";

So for me, it should allowed udp communication only between and

But application on is trying to communicate also with 10.208.xxxx and for Heartbeats only  to that @

Here are the logs:

detected new participant                                            <- found the participant with Subsciber on the Computer
DataWriter: send topic: DCPSParticipant
DataWriter: route topic: DCPSParticipant/1
UDP Sending to : 0x101A8C0                                  <- @ is Ok, target is
UDP wrote: 280 bytes to 7410/c0a80101.0.0.0

UDP Sending to : 0x72A4D00A

UDP wrote: -1 bytes to 7410/ad0xxxx.0.0.0          <- @ is the second one, not expected 

compatible reader                                                      <- found that reader was compatible

Processing HEARTBEAT, first(0,1) last(0,1)
UDP Sending to : 0x....D00A                              <--10.208.....

UDP wrote: -1 bytes to 7410/ad0xxxx.0.0.0
Error sending: Msg:errno = 0x33                              <-- (ENETUNREACH).

And it doesnt try on the expected @ i.e.

I am bit lost with all the logs displayed and doesn't understand why it isnt working.
If someone has a clue.

Best Regards,


Last seen: 10 years 2 months ago
Joined: 08/28/2013
Posts: 66

Is there a guide to understand better the logs ?

Last seen: 6 years 3 months ago
Joined: 01/17/2013
Posts: 22

Hi Rodolf,

By configuring your Windows "Local Area Connection" with two addresses (10.208.*.* and, and by setting udp_property->allow_interface to "Local Area Connection," your Windows Micro application will announce itself over discovery as being reachable over both 10.208.*.8 and  Thus, your VxWorks Micro application tries sending to both of those addresses, as shown in your logs ("UDP Sending to: 0x72AD00A" and "UDP Sending to: 0x101A8C0").  

If you want communication to your Windows Micro application to use only, additional configuration can be done to set the enabled transports for user traffic and meta (discovery) traffic to that interface: DDS_DomainParticipantQos.user_traffic.enabled_transports and DDS_DomainParticpantQos.discovery.enabled_transports.  These can be configured in the following way (note: example code is untested, and includes multicast peer and loopback addresses):

/* dp_qos is struct DDS_DomainParticipantQos */
/* Discovery enabled_transports*/
DDS_StringSeq_set_maximum(&dp_qos.discovery.enabled_transports, 3);
DDS_StringSeq_set_length(&dp_qos.discovery.enabled_transports, 3);

*DDS_StringSeq_get_reference(&dp_qos.discovery.enabled_transports, 0) = 
    DDS_String_dup("_udp://"); /* well-known multicast peer addr */ 

*DDS_StringSeq_get_reference(&dp_qos.discovery.enabled_transports, 1) = 
     DDS_String_dup("_udp://"); /* specific addr*/ 

*DDS_StringSeq_get_reference(&dp_qos.discovery.enabled_transports, 2) = 
     DDS_String_dup("_udp://");     /* loopback addr */

/* User enabled_transports*/
DDS_StringSeq_set_maximum(&dp_qos.user_traffic.enabled_transports, 3);
DDS_StringSeq_set_length(&dp_qos.user_traffic.enabled_transports, 3);

*DDS_StringSeq_get_reference(&dp_qos.user_traffic.enabled_transports, 0) = 
     DDS_String_dup("_udp://"); /* specific addr */ 

*DDS_StringSeq_get_reference(&dp_qos.user_traffic.enabled_transports, 1) = 
     DDS_String_dup("_udp://"); /* loopback */ 

*DDS_StringSeq_get_reference(&dp_qos.user_traffic.enabled_transports, 2) = 
     DDS_String_dup("_intra://");     /* intra-participant transport */

Finally, it is unexpected that the last "UDP wrote: -1 bytes to 7410/ad0xxxx.0.0.0" in your log, a couple lines after "Processing HEARTBEAT, first(0,1) last(0,1)," only sent to 10.208.*.*, and not, because the first line in your log showed the successful send to  Can you review your logs for other any other occurences of "UDP Sending to : 0x101A8C0"?  Both discovery and user traffic should be sent to that address.       



Edward Huang
Principal Software Engineer



Last seen: 10 years 2 months ago
Joined: 08/28/2013
Posts: 66

Hi Edward,

thanks for your answer. Sorry to reply so late.

With route print command, i see that IPs 192.168.* go through interface 10.208.*
So i correct that and know everything is ok with <->
Best Regards,