#include <txrx_worker_dpdk.h>
|
| TxRxWorkerDpdk ()=delete |
|
| TxRxWorkerDpdk (size_t core_offset, size_t tid, size_t interface_count, size_t interface_offset, Config *const config, size_t *rx_frame_start, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken &tx_producer, moodycamel::ProducerToken ¬ify_producer, std::vector< RxPacket > &rx_memory, std::byte *const tx_memory, std::mutex &sync_mutex, std::condition_variable &sync_cond, std::atomic< bool > &can_proceed, std::vector< std::pair< uint16_t, uint16_t >> dpdk_phy, rte_mempool *mbuf_pool) |
|
| ~TxRxWorkerDpdk () final |
|
void | DoTxRx () final |
|
void | Start () final |
|
void | Stop () final |
|
| TxRxWorker (size_t core_offset, size_t tid, size_t interface_count, size_t interface_offset, size_t channels_per_interface, Config *const config, size_t *rx_frame_start, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken &tx_producer, moodycamel::ProducerToken ¬ify_producer, std::vector< RxPacket > &rx_memory, std::byte *const tx_memory, std::mutex &sync_mutex, std::condition_variable &sync_cond, std::atomic< bool > &can_proceed) |
|
| TxRxWorker ()=delete |
|
virtual | ~TxRxWorker () |
|
size_t | Id () const |
|
bool | Started () const |
|
bool | Running () const |
|
◆ TxRxWorkerDpdk() [1/2]
TxRxWorkerDpdk::TxRxWorkerDpdk |
( |
| ) |
|
|
delete |
◆ TxRxWorkerDpdk() [2/2]
TxRxWorkerDpdk::TxRxWorkerDpdk |
( |
size_t |
core_offset, |
|
|
size_t |
tid, |
|
|
size_t |
interface_count, |
|
|
size_t |
interface_offset, |
|
|
Config *const |
config, |
|
|
size_t * |
rx_frame_start, |
|
|
moodycamel::ConcurrentQueue< EventData > * |
event_notify_q, |
|
|
moodycamel::ConcurrentQueue< EventData > * |
tx_pending_q, |
|
|
moodycamel::ProducerToken & |
tx_producer, |
|
|
moodycamel::ProducerToken & |
notify_producer, |
|
|
std::vector< RxPacket > & |
rx_memory, |
|
|
std::byte *const |
tx_memory, |
|
|
std::mutex & |
sync_mutex, |
|
|
std::condition_variable & |
sync_cond, |
|
|
std::atomic< bool > & |
can_proceed, |
|
|
std::vector< std::pair< uint16_t, uint16_t >> |
dpdk_phy, |
|
|
rte_mempool * |
mbuf_pool |
|
) |
| |
◆ ~TxRxWorkerDpdk()
TxRxWorkerDpdk::~TxRxWorkerDpdk |
( |
| ) |
|
|
final |
◆ DequeueSend()
size_t TxRxWorkerDpdk::DequeueSend |
( |
| ) |
|
|
private |
◆ DoTxRx()
void TxRxWorkerDpdk::DoTxRx |
( |
| ) |
|
|
finalvirtual |
◆ Filter()
bool TxRxWorkerDpdk::Filter |
( |
rte_mbuf * |
packet, |
|
|
uint16_t |
port_id, |
|
|
uint16_t |
queue_id |
|
) |
| |
|
private |
◆ RecvEnqueue()
std::vector< Packet * > TxRxWorkerDpdk::RecvEnqueue |
( |
uint16_t |
port_id, |
|
|
uint16_t |
queue_id |
|
) |
| |
|
private |
- Todo:
- Add support / detection of fragmented packets
◆ Start()
void TxRxWorkerDpdk::Start |
( |
| ) |
|
|
finalvirtual |
◆ Stop()
void TxRxWorkerDpdk::Stop |
( |
| ) |
|
|
finalvirtual |
◆ bs_rru_addr_
uint32_t TxRxWorkerDpdk::bs_rru_addr_ |
|
private |
◆ bs_server_addr_
uint32_t TxRxWorkerDpdk::bs_server_addr_ |
|
private |
◆ dest_mac_
std::vector<rte_ether_addr> TxRxWorkerDpdk::dest_mac_ |
|
private |
◆ dpdk_phy_port_queues_
const std::vector<std::pair<uint16_t, uint16_t> > TxRxWorkerDpdk::dpdk_phy_port_queues_ |
|
private |
◆ mbuf_pool_
rte_mempool* TxRxWorkerDpdk::mbuf_pool_ |
|
private |
◆ src_mac_
std::vector<rte_ether_addr> TxRxWorkerDpdk::src_mac_ |
|
private |
The documentation for this class was generated from the following files: