DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dpdklibs_gen Namespace Reference

Functions

 cli (config, json_dir, debug)
 

Variables

 console = Console()
 
 default_load_path
 
 CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])
 
 show_default
 
 True
 
 standalone_mode
 

Function Documentation

◆ cli()

dpdklibs_gen.cli ( config,
json_dir,
debug )

Definition at line 28 of file dpdklibs_gen.py.

28def cli(config, json_dir, debug):
29
30 if exists(json_dir):
31 raise RuntimeError(f"Directory {json_dir} already exists")
32
33 config_data = config[0]
34 config_file = config[1]
35
36 # Get our config objects
37 moo.otypes.load_types('dpdklibs/confgen.jsonnet')
38 import dunedaq.dpdklibs.confgen as confgen
39 moo.otypes.load_types('daqconf/confgen.jsonnet')
40 import dunedaq.daqconf.confgen as daqconfgen
41
42 boot = daqconfgen.boot(**config_data.boot)
43 dpdklibs = confgen.dpdklibs(**config_data.dpdklibs)
44
45 # Validate options
46 if dpdklibs.only_sender and dpdklibs.only_reader:
47 raise RuntimeError('Both options only_sender and only_reader can not be specified at the same time')
48
49 if dpdklibs.sender_boards % dpdklibs.sender_cores:
50 raise RuntimeError(f'sender_boards has to be divisible by sender_cores ({dpdklibs.sender_boards} is not divisible by {dpdklibs.sender_cores}')
51
52 enable_sender, enable_receiver = True, True
53 if dpdklibs.only_sender:
54 enable_receiver = False
55 if dpdklibs.only_reader:
56 enable_sender = False
57
58 console.log('Loading dpdklibs config generator')
59 from dpdklibs import sender_confgen
60 from dpdklibs import reader_confgen
61
62 the_system = System()
63
64 # add app
65 if enable_sender:
66 the_system.apps["dpdk-sender"] = sender_confgen.generate_dpdk_sender_app(
67 HOST=dpdklibs.host_sender,
68 NUMBER_OF_CORES=dpdklibs.sender_cores,
69 NUMBER_OF_IPS_PER_CORE=dpdklibs.sender_boards // dpdklibs.sender_cores,
70 TIME_TICK_DIFFERENCE=dpdklibs.sender_time_tick_difference,
71 )
72 if enable_receiver:
73 the_system.apps["dpdk-reader"] = reader_confgen.generate_dpdk_reader_app(
74 HOST=dpdklibs.host_reader,
75 EAL_ARGS=dpdklibs.eal_args,
76 )
77
78 # Arrange per-app command data into the format used by util.write_json_files()
79 app_command_datas = {
80 name : make_app_command_data(the_system, app, name)
81 for name,app in the_system.apps.items()
82 }
83
84 # Make boot.json config
85 from daqconf.core.conf_utils import make_system_command_datas, write_json_files
86
87 system_command_datas = make_system_command_datas(
88 boot,
89 the_system,
90 verbose=False
91 )
92
93 write_json_files(app_command_datas, system_command_datas, json_dir, verbose=True)
94
95 console.log(f"dpdklibs app config generated in {json_dir}")
96
97 write_metadata_file(json_dir, "dpdklibs_confgen", config_file)
98

Variable Documentation

◆ console

dpdklibs_gen.console = Console()

Definition at line 13 of file dpdklibs_gen.py.

◆ CONTEXT_SETTINGS

dpdklibs_gen.CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])

Definition at line 23 of file dpdklibs_gen.py.

◆ default_load_path

dpdklibs_gen.default_load_path

Definition at line 18 of file dpdklibs_gen.py.

◆ show_default

dpdklibs_gen.show_default

Definition at line 101 of file dpdklibs_gen.py.

◆ standalone_mode

dpdklibs_gen.standalone_mode

Definition at line 101 of file dpdklibs_gen.py.

◆ True

dpdklibs_gen.True

Definition at line 101 of file dpdklibs_gen.py.