ZettaScale Knowledge Base ZettaScale Knowledge Base

  • Home
  • DDS Products
    • DDS Overview and Concepts
    • OpenSplice DDS
      • OpenSplice DDS
        • OpenSplice FAQ
        • Why OpenSplice DDS?
        • Installation
          • OpenSplice Licensing FAQ
        • Best Practice and Possible Errors
        • API and IDL
        • Configuration
        • Networking
          • DDSI
          • RT Networking
        • Durability Service
        • DDS Security
        • Logging
        • Databases and DBMS
        • Release Notes
      • OpenSplice Tools
        • Overview
        • OpenSplice Launcher
        • OpenSplice Tuner
        • OpenSplice Tester
        • Record and Replay Manager
        • MMStat
    • Cyclone DDS
  • Zenoh
  • Contact Support
Home / DDSI, DDS, OpenSplice DDS, Networking / DDSI configuration without multicast using unicast peers

DDSI configuration without multicast using unicast peers

When not using multicast, you must define your set of ‘peers’ as automatic discovery relies on multicast.

So the ‘ddsi2’ section in the configuration should look like this;

   <DDSI2Service name="ddsi2">
      <General>
         <NetworkInterfaceAddress>AUTO</NetworkInterfaceAddress>
         <AllowMulticast>false</AllowMulticast>
         <EnableMulticastLoopback>false</EnableMulticastLoopback>
         <CoexistWithNativeNetworking>false</CoexistWithNativeNetworking>
      </General>
      <Compatibility>
         <StandardsConformance>lax</StandardsConformance>
      </Compatibility>
      <Discovery>
         <Peers>
            <Peer Address="name_or_address_of_machine1"/>
            <Peer Address="name_or_address_of_machine2"/>
            <Peer Address="name_or_address_of_machine3"/>
         </Peers>
      </Discovery>
   </DDSI2Service>

If you run multiple applications ‘per machine’ you may need to additionally specify port-numbers. For example a standard address would be 10.5.150.254 but you can additionally add the port number like this 10.5.150.254:6001. 

Note: Please ensure the ports are not blocked by any VPN/firewall.

TCP Option

You might want to try using TCP rather than UDP, configuration then looks something like this:

    <DDSI2Service name="ddsi2">
        <General>
            <NetworkInterfaceAddress>AUTO</NetworkInterfaceAddress>
            <AllowMulticast>false</AllowMulticast>
            <EnableMulticastLoopback>false</EnableMulticastLoopback>
            <CoexistWithNativeNetworking>false</CoexistWithNativeNetworking>
        </General>
        <Compatibility>
            <StandardsConformance>lax</StandardsConformance>
        </Compatibility>
        <TCP>
            <Enable>true</Enable>
            <Port>6002</Port>
        </TCP>
        <Discovery>
            <Peers>
                <Peer Address="10.5.150.254:6001"/>
                <Peer Address="10.5.150.254:6002"/>
                <Peer Address="10.5.150.254:6003"/>
            </Peers>
        </Discovery>
    </DDSI2Service>

Note that above this is a setup for 3 applications that run on the same 10.5.150.254 machine. If you run each application on a different machine, you could use the same port-number on each machine (so the port-specification in the TCP-section would be always the same e.g. 6001) in which case you could re-use the same configuration for each node.

IP range

You cannot specify an IP range. Each peer needs to be defined individually however if you include the machine address you are deploying on as well then you can use the same config-file on every machine in the system.

Related

DDSIDDSOpenSplice DDSNetworking
twitter logo linkedin logo
News and Events
Copyright © 2022 ZettaScale Technology Ltd. All Rights Reserved