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
23
#define NUM_MBUFS 8191
24
#define MBUF_CACHE_SIZE 250
25
26
static
volatile
uint8_t
dpdk_quit_signal
;
27
28
std::string
get_mac_addr_str
(
const
rte_ether_addr& addr);
29
30
// Modifies Ethernet device configuration to multi-queue RSS with offload
31
void
iface_conf_rss_mode
(
struct
rte_eth_conf& iface_conf,
bool
mode =
false
,
bool
offload =
false
);
32
33
// Enables RX in promiscuous mode for the Ethernet device.
34
int
iface_promiscuous_mode
(std::uint16_t iface,
bool
mode =
false
);
35
36
int
iface_init
(uint16_t iface, uint16_t rx_rings, uint16_t tx_rings,
37
uint16_t rx_ring_size, uint16_t tx_ring_size,
38
std::map<
int
, std::unique_ptr<rte_mempool>>& mbuf_pool,
39
bool
with_reset=
false
,
bool
with_mq_rss=
false
,
bool
check_link_status=
false
);
40
41
std::unique_ptr<rte_mempool>
get_mempool
(
const
std::string& pool_name,
42
int
num_mbufs=
NUM_MBUFS
,
int
mbuf_cache_size=
MBUF_CACHE_SIZE
,
43
int
data_room_size=9800,
int
socket_id=0);
44
45
std::vector<const char*>
construct_eal_argv
(
const
std::vector<std::string> &std_argv);
46
47
void
init_eal
(
int
argc,
const
char
* argv[]);
48
49
void
init_eal
(
const
std::vector<std::string>& args );
50
51
int
get_available_ifaces
();
52
53
int
wait_for_lcores
();
54
55
void
finish_eal
();
56
57
58
}
// namespace ealutils
59
}
// namespace dpdklibs
60
}
// namespace dunedaq
61
62
#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:260
dunedaq::dpdklibs::ealutils::get_available_ifaces
int get_available_ifaces()
Definition
EALSetup.cpp:318
dunedaq::dpdklibs::ealutils::construct_eal_argv
std::vector< const char * > construct_eal_argv(const std::vector< std::string > &std_argv)
Definition
EALSetup.cpp:281
dunedaq::dpdklibs::ealutils::finish_eal
void finish_eal()
Definition
EALSetup.cpp:337
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:292
dunedaq::dpdklibs::ealutils::dpdk_quit_signal
static volatile uint8_t dpdk_quit_signal
Definition
EALSetup.hpp:26
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:60
dunedaq::dpdklibs::ealutils::iface_promiscuous_mode
int iface_promiscuous_mode(std::uint16_t iface, bool mode=false)
Definition
EALSetup.cpp:74
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
Including Qt Headers.
Definition
module.cpp:16
Generated on
for DUNE-DAQ by
1.17.0