Specify multicast network in boot.txt...
or better way???
i.e. for request_based_dataflow_example
#1 Updated by John Freeman about 2 years ago
Right now the way the multicast network is specified in the boot.txt file can be done by setting the following two parameters (values taken from the protoDUNE cluster):
request_port: 3002 request_address: "220.127.116.11"
...where DAQInterface will then overwrite any values keyed by "request_port" and/or "request_address" in the FHiCL document used to initialize the boardreader with the values specified in the boot file. I know you've mentioned that you'd like a one line approach; are you thinking like
or something else? Just let me know what the requirements are.
#2 Updated by Eric Flumerfelt about 2 years ago
What we're interested in setting here is the address of the network on the interface we want multicast requests to use...
For example, mu2edaq01 has two interfaces, a public and a private. The public interface is running a firewall and is not connected to the other nodes in the test stand, so it shouldn't be used for sending multicast messages. The default output address of 0.0.0.0 will choose the default gateway, which is the public interface.
The "multicast_interface_ip" parameter of RequestSender (SharedMemoryEventManager) and RequestReceiver (CommandableFragmentGenerator) should be set to specify the interface used for sending/receiving multicast messages. The IP should simply be in the network associated with that address (the code checks that (interface IP & Netmask) == (address & netmask)), and can/should be set the same for every artdaq process (to ensure that the correct network is always used).
#3 Updated by John Freeman about 2 years ago
The main reason the boot file allows users to override certain parameters like the multicast host and address is so that it's possible to use the same FHiCL configuration in multiple partitions without collisions occurring. Most parameters should be set in the FHiCL configuration, since the fewer the number of overridden parameters, the more a given configuration describes about the run and the less potential there is for confusion. Unless I'm misunderstanding, if multicast_interface_ip is the address of the private network then this is something which would be common across all partitions, right?
#4 Updated by Eric Flumerfelt about 2 years ago
That is true, and a very good point.
The issue here is that the generic configurations in simple_test_config break down here, as we don't know what might be an appropriate address to use on any given host. I agree that it might be better to do this elsewhere, like in just_do_it.sh itself...
#5 Updated by John Freeman about 2 years ago
- Status changed from New to Resolved
Resolved in light of the argument that in general we don't want it to be DAQInterface's job to override the FHiCL parameters in a configuration's FHiCL documents, since this undermines the extent to which a labeled configuration actually defines how the artdaq processes are configured.