|
3 | 3 |
|
4 | 4 | #### General |
5 | 5 |
|
6 | | -The devices implement following topology: |
| 6 | +The devices implement following topology: |
7 | 7 |
|
8 | | - |
| 8 | +In default mode: |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +In test mode: |
| 13 | + |
| 14 | + |
9 | 15 |
|
10 | 16 | - **flpSyncSampler** publishes timeframe IDs at configurable rate (only for the *test mode*). |
11 | 17 | - **flpSenders** generate dummy data of configurable size and distribute it to the available epnReceivers. |
12 | 18 | - **epnReceivers** collect all sub-timeframes (according to number of FLPs), merge them and send further. |
13 | 19 | - flpSenders choose which epnReceiver to send a given sub-timeframe to based on its ID (`timeframeId % NumEPNs`), ensuring that sub-timeframes with the same ID arrive at the same epnReceiver (without need for additional synchronization). |
14 | | -- Upon collecting sub-timeframes from all flpSenders, epnReceivers send confirmation to the sampler with the timeframe ID to measure roundtrip time. |
| 20 | +- Upon collecting sub-timeframes from all flpSenders, epnReceivers send confirmation to the sampler with the timeframe ID to measure roundtrip time (only for the *test mode*). |
15 | 21 | - epnReceivers can also measure intervals between receiving from the same FLP (used to see the effect of traffic shaping). |
16 | 22 | - The devices can run in *test mode* (as described above) and *default mode* where flpSenders receive data instead of generating it (as used by the Alice HLT devices). |
17 | 23 | - Optional deployment and execution via DDS. |
18 | 24 |
|
19 | 25 | #### Device configuration |
20 | 26 |
|
21 | | -The devices are configured via command line options. Most of the command line options have default values. These default values are for running in the *default mode*. Running in *test mode* requires a few modifications. |
| 27 | +The devices are configured via command line options and their connection parameters via JSON file. Most of the command line options have default values. These default values are for running in the *default mode*. Running in *test mode* requires a few modifications. Refer to `startFLP2EPN-distributed.sh.in` and `flp2epn-prototype.json` for example configuration. |
22 | 28 |
|
23 | 29 | These are the required device options: |
24 | 30 |
|
25 | 31 | **flpSyncSampler** (only for the *test mode*) |
26 | 32 |
|
27 | 33 | - `--id arg` Device ID |
28 | | - - `--data-out-address arg` Data output address, e.g.: "tcp://localhost:5555" |
29 | | - - `--ack-in-address arg` Acknowledgement Input address, e.g.: "tcp://localhost:5556" |
| 34 | + - `--mq-config arg` JSON configuration file |
30 | 35 |
|
31 | 36 | **flpSender** |
32 | 37 |
|
33 | 38 | - `--id arg` Device ID |
| 39 | + - `--mq-config arg` JSON configuration file |
34 | 40 | - `--num-epns arg` Number of EPNs |
35 | | - - `--data-in-address arg` Data input address, e.g.: "tcp://localhost:5555" |
36 | | - - `--data-out-address arg` Data output address, e.g.: "tcp://localhost:5555" |
37 | | - - `--hb-in-address arg` Heartbeat input address, e.g.: "tcp://localhost:5555" |
38 | | - |
39 | | -Default overrides for *test mode*: |
40 | | - |
41 | | - - `--test-mode arg (=0)` "1" to run in test mode |
42 | | - - `--data-in-socket-type arg (=pull)` "sub" for test mode |
43 | | - - `--data-in-method arg (=bind)` "connect" for test mode |
44 | | - - `--data-in-address arg` In test mode, the signal from flpSyncSampler sends to this address (data is generated). |
| 41 | + - only for test mode: `--test-mode arg (=0)` "1" to run in test mode |
45 | 42 |
|
46 | 43 | **epnReceiver** |
47 | 44 |
|
48 | 45 | - `--id arg` Device ID |
| 46 | + - `--mq-config arg` JSON configuration file |
49 | 47 | - `--num-flps arg` Number of FLPs |
50 | | - - `--data-in-address arg` Data input address, e.g.: "tcp://localhost:5555" |
51 | | - - `--data-out-address arg` Output address, e.g.: "tcp://localhost:5555" |
52 | | - - `--hb-out-address arg` Heartbeat output address, e.g.: "tcp://localhost:5555" |
53 | | - |
54 | | -Default overrides for *test mode*: |
55 | | - |
56 | | - - `--data-out-socket-type arg (=push)` "pub" for test mode (pub will just discard the data because no receiver in test mode). |
57 | | - - `--ack-out-address arg` For test mode provide address of the flpSyncSampler. |
| 48 | + - only for test mode: `--test-mode arg (=0)` "1" to run in test mode |
58 | 49 |
|
59 | 50 | To list *all* available device options, run the executable with `--help`. |
60 | 51 |
|
61 | | -When running with DDS, configuration of addresses is also not required, because these are configured dynamically. |
62 | | - |
63 | | -Example for the *test mode* can be found in `run/startFLP2EPN-distributed.sh.in` for manual run, or `runO2Prototype/flp_epn_topology.xml` for DDS run. For *default mode* there is an example DDS topology in `../topologies/o2prototype_topology.xml`. |
64 | | - |
| 52 | +When running with DDS, configuration of addresses is also not required, because these are configured dynamically. Refer to `flp2epn-prototype-dds.json` and the DDS configuration files for an example. |
0 commit comments