Set preferred NIC which is used for DDS if several NICS are available

2 posts / 0 new
Last post
Offline
Last seen: 3 years 7 months ago
Joined: 02/26/2015
Posts: 6
Set preferred NIC which is used for DDS if several NICS are available

Hi,

I have a data transpot problem with a Win7 x64 PC (A) which has 6 single NICs. One is connected to a switch which offers connection to all other DDS participants (B, C, ...) and five are connected to a non DDS Switch. B, C, ... only have two NICs and have any Problem to find each other and to send and receive data.

When I start Datareaders and Datawriters on A by using DDS 5.1.0 with the Profile "Baseline.5.0.0" from "BuiltinQosLib" with QoSReliable and QoSTransientLocal only the first three NICs of the PC are listed as default  and metatraffic unicast locators.

I had read before that only the first four connecions will be used by DDS per default. Can this be increased by Environment vriable? Changing the Code would mean a great effort and high risk that unforeseen other problems could appear. I would pefer  a solution wich affects only this special machine.

One way to solve this issue is to deactivate three non DDS NICs, starting the Programm and then reactivating all NICs. But of course its not a usable solution. I aready changed the DDS link to another NIC but this solutin worked only until the next reboot. How can I influence the priorisation for the NICs which are used for DDS? Changing the order of the NICs in the advanced settings of the Windows Networkadapater Configuration did not solve the problem. It appears to be random after every reboot.

I hope anyone has an Idea except defining a new Qos Profile which predicts explicit IPs for discovery and communication because QoS shall/must be the same for all 11 machines in our network.

Thanks in advance

Sönke 

Organization:
Gerardo Pardo's picture
Offline
Last seen: 1 month 2 weeks ago
Joined: 06/02/2010
Posts: 589

Hello Sönke,

I am afraid the current limit for the maximum number of IP addresses that can be propagated via RTI DDS discovery is 4. We do have a planned feature to increase this number but this is not available as of yet.

Instead of de-activating some of the NICs which would affect other applications running on the same machine, you can configure this via QoS. There are transport-specific properties configurable in the QoS that control/restrict the interfaces DDS uses.  This is explained in these two posts:

Note that you can use Environment Variables within your QoS configuration XML file such as MY_DENY_INTERFACES shown in the XML snippet below:

    <element>
         <name>dds.transport.UDPv4.builtin.parent.deny_interfaces</name>
         <value>$(MY_DENY_INTERFACES)</value>
    </element> 

This way you could ultimately configure the allowed/denied sets of interfaces using environment variables.

Gerardo