Unconfigured DDS considered harmful to Networks

@tomoyafujita responded to my feature request suggesting there be a discussion around vendor-agnostic general configuration. I requested a way to vendor-agnostic configure max participants as easy as you can configure the network adapter and multicast via ROS_LOCALHOST_ONLY

My Q is how far can we take “vendor-agnostic general configuration” before some of the variables conflict with each other (configuring localhost and max participants are thankfully orthogonal) and things get more complicated.

So I guess my Qs for a discussion would be

  • How far can we generalize DDS settings in a vendor agnostic way?
  • What should the format for ^ be (e.g. environment variables? a vendor agnostic xml file? either/both?)
  • How do we handle conflicting settings (e.g. just pass them onto the vendor and let them deal with it? or have some logic at this agnostic level to detect if LOCALHOST_ONLY and a multicast tweak are both used)?
  • How do the vendor-agnostic settings apply to non-DDS middlewares?
  • What should documentation look like for (1) abstracted DDS settings, (2) DDS vendor specific settings, and (3) non DDS vendor settings?