35 ENABLE_SOFTWARE_TPG=False,
37 NUMBER_OF_LINKS_PER_GROUP=1,
38 NUMBER_OF_DATA_PRODUCERS=1,
39 BASE_SOURCE_IP="10.73.139.",
40 DESTINATION_IP="10.73.139.17",
45 number_of_dlh = NUMBER_OF_GROUPS
56 for group
in range(NUMBER_OF_GROUPS):
59 for src
in range(NUMBER_OF_LINKS_PER_GROUP):
60 links.append(nrc.Link(id=lid, ip=BASE_SOURCE_IP+str(last_ip), rx_q=lid, lcore=group+1))
64 offset += NUMBER_OF_LINKS_PER_GROUP
65 rxcores.append(nrc.LCore(lcore_id=group+1, rx_qs=qlist))
67 modules += [DAQModule(name=
"nic_reader", plugin=
"DPDKReaderModule",
68 conf=nrc.Conf(eal_arg_list=EAL_ARGS,
69 dest_ip=DESTINATION_IP,
74 queues += [Queue(f
"nic_reader.output_{idx}",
75 f
"datahandler_{idx}.raw_input",
76 f
'{FRONTEND_TYPE}_link_{idx}', 100000)
77 for idx
in range(number_of_dlh)]
80 for i
in range(number_of_dlh):
82 if ENABLE_SOFTWARE_TPG:
83 queues += [Queue(f
"datahandler_{idx}.tp_out",f
"sw_tp_handler_{idx}.raw_input",f
"sw_tp_link_{idx}",100000 )]
85 modules += [DAQModule(name=f
"datahandler_{source_id}", plugin=
"RawDataHandler", conf=rconf.Conf(
86 readoutmodelconf=rconf.DataHandlingModelConf(
87 source_queue_timeout_ms=QUEUE_POP_WAIT_MS,
91 timesync_connection_name = f
"timesync_dlh_{source_id}",
92 timesync_topic_name =
"Timesync",
94 latencybufferconf=rconf.LatencyBufferConf(
95 latency_buffer_size=1000,
99 rawdataprocessorconf=rconf.RawDataProcessorConf(
102 enable_software_tpg=ENABLE_SOFTWARE_TPG,
103 error_counter_threshold=100,
104 error_reset_freq=10000,
106 requesthandlerconf=rconf.RequestHandlerConf(
107 latency_buffer_size=1000,
112 output_file=f
"output_{source_id}.out",
113 stream_buffer_size=8388608,
114 enable_raw_recording=
True,
116 ), extra_commands={
"record": rconf.RecordingParams(duration=10)})]
118 modules += [DAQModule(name=
"timesync_consumer", plugin=
"TimeSyncConsumer")]
119 modules += [DAQModule(name=
"fragment_consumer", plugin=
"FragmentConsumer")]
121 mgraph = ModuleGraph(modules, queues=queues)
123 for idx
in range(number_of_dlh):
124 mgraph.connect_modules(f
"datahandler_{idx}.timesync_output",
"timesync_consumer.input_queue",
"timesync_q")
125 mgraph.connect_modules(f
"datahandler_{idx}.fragment_queue",
"fragment_consumer.input_queue",
"data_fragments_q", 100)
126 mgraph.add_endpoint(f
"requests_{idx}", f
"datahandler_{idx}.request_input", Direction.IN)
127 mgraph.add_endpoint(f
"requests_{idx}",
None, Direction.OUT)
129 dpdk_app = App(modulegraph=mgraph, host=HOST, name=
"dpdk_reader")
generate_dpdk_reader_app(DRO_CONFIG=None, HOST='localhost', ENABLE_SOFTWARE_TPG=False, NUMBER_OF_GROUPS=4, NUMBER_OF_LINKS_PER_GROUP=1, NUMBER_OF_DATA_PRODUCERS=1, BASE_SOURCE_IP="10.73.139.", DESTINATION_IP="10.73.139.17", FRONTEND_TYPE='tde', EAL_ARGS='')