DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
dpdklibs
include
dpdklibs
EALSetup.hpp
Go to the documentation of this file.
1
8
#ifndef DPDKLIBS_INCLUDE_DPDKLIBS_EALSETUP_HPP_
9
#define DPDKLIBS_INCLUDE_DPDKLIBS_EALSETUP_HPP_
10
11
#include "
logging/Logging.hpp
"
12
13
#include <boost/program_options/parsers.hpp>
14
15
#include <rte_eal.h>
16
#include <rte_ethdev.h>
17
18
namespace
dunedaq
{
19
namespace
dpdklibs
{
20
namespace
ealutils
{
21
22
#define NUM_MBUFS 8191
23
#define MBUF_CACHE_SIZE 250
24
25
static
volatile
uint8_t
dpdk_quit_signal
;
26
27
std::string
28
get_mac_addr_str
(
const
rte_ether_addr& addr);
29
30
// Modifies Ethernet device configuration to multi-queue RSS with offload
31
void
32
iface_conf_rss_mode
(
struct
rte_eth_conf& iface_conf,
bool
mode =
false
,
bool
offload =
false
);
33
34
// Enables RX in promiscuous mode for the Ethernet device.
35
int
36
iface_promiscuous_mode
(std::uint16_t iface,
bool
mode =
false
);
37
38
int
39
iface_init
(uint16_t iface,
40
uint16_t rx_rings,
41
uint16_t tx_rings,
42
uint16_t rx_ring_size,
43
uint16_t tx_ring_size,
44
std::map<
int
, std::unique_ptr<rte_mempool>>& mbuf_pool,
45
bool
with_reset =
false
,
46
bool
with_mq_rss =
false
,
47
bool
check_link_status =
false
);
48
49
std::unique_ptr<rte_mempool>
50
get_mempool
(
const
std::string& pool_name,
51
int
num_mbufs =
NUM_MBUFS
,
52
int
mbuf_cache_size =
MBUF_CACHE_SIZE
,
53
int
data_room_size = 9800,
54
int
socket_id = 0);
55
56
std::vector<const char*>
57
construct_eal_argv
(
const
std::vector<std::string>& std_argv);
58
59
void
60
init_eal
(
int
argc,
const
char
* argv[]);
61
62
void
63
init_eal
(
const
std::vector<std::string>& args);
64
65
int
66
get_available_ifaces
();
67
68
int
69
wait_for_lcores
();
70
71
void
72
finish_eal
();
73
74
}
// namespace ealutils
75
}
// namespace dpdklibs
76
}
// namespace dunedaq
77
78
#endif
// DPDKLIBS_INCLUDE_DPDKLIBS_EALSETUP_HPP_
MBUF_CACHE_SIZE
#define MBUF_CACHE_SIZE
Definition
DPDKDefinitions.hpp:19
NUM_MBUFS
#define NUM_MBUFS
Definition
DPDKDefinitions.hpp:18
Logging.hpp
dunedaq::dpdklibs::ealutils
Definition
EALSetup.hpp:20
dunedaq::dpdklibs::ealutils::get_mempool
std::unique_ptr< rte_mempool > get_mempool(const std::string &pool_name, int num_mbufs=NUM_MBUFS, int mbuf_cache_size=MBUF_CACHE_SIZE, int data_room_size=9800, int socket_id=0)
Definition
EALSetup.cpp:263
dunedaq::dpdklibs::ealutils::get_available_ifaces
int get_available_ifaces()
Definition
EALSetup.cpp:317
dunedaq::dpdklibs::ealutils::construct_eal_argv
std::vector< const char * > construct_eal_argv(const std::vector< std::string > &std_argv)
Definition
EALSetup.cpp:279
dunedaq::dpdklibs::ealutils::finish_eal
void finish_eal()
Definition
EALSetup.cpp:340
dunedaq::dpdklibs::ealutils::wait_for_lcores
int wait_for_lcores()
Definition
EALSetup.cpp:327
dunedaq::dpdklibs::ealutils::init_eal
void init_eal(int argc, const char *argv[])
Definition
EALSetup.cpp:289
dunedaq::dpdklibs::ealutils::dpdk_quit_signal
static volatile uint8_t dpdk_quit_signal
Definition
EALSetup.hpp:25
dunedaq::dpdklibs::ealutils::iface_conf_rss_mode
void iface_conf_rss_mode(struct rte_eth_conf &iface_conf, bool mode=false, bool offload=false)
Definition
EALSetup.cpp:62
dunedaq::dpdklibs::ealutils::iface_promiscuous_mode
int iface_promiscuous_mode(std::uint16_t iface, bool mode=false)
Definition
EALSetup.cpp:76
dunedaq::dpdklibs::ealutils::get_mac_addr_str
std::string get_mac_addr_str(const rte_ether_addr &addr)
Definition
EALSetup.cpp:51
dunedaq::dpdklibs::ealutils::iface_init
int iface_init(uint16_t iface, uint16_t rx_rings, uint16_t tx_rings, uint16_t rx_ring_size, uint16_t tx_ring_size, std::map< int, std::unique_ptr< rte_mempool > > &mbuf_pool, bool with_reset=false, bool with_mq_rss=false, bool check_link_status=false)
Definition
EALSetup.cpp:95
dunedaq::dpdklibs
Definition
ARP.hpp:16
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
Generated on
for DUNE-DAQ by
1.18.0