|
Agora
1.2.0
Agora project
|
Implementations of this class provide packet I/O for Agora using dpdk accelerations. More...
#include <packet_txrx_dpdk.h>


Public Member Functions | |
| PacketTxRxDpdk (Config *const cfg, size_t core_offset, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken **notify_producer_tokens, moodycamel::ProducerToken **tx_producer_tokens, Table< char > &rx_buffer, size_t packet_num_in_buffer, Table< size_t > &frame_start, char *tx_buffer) | |
| ~PacketTxRxDpdk () final | |
Public Member Functions inherited from PacketTxRx | |
| PacketTxRx (AgoraTxRx::TxRxTypes type, Config *const cfg, size_t core_offset, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken **notify_producer_tokens, moodycamel::ProducerToken **tx_producer_tokens, Table< char > &rx_buffer, size_t packet_num_in_buffer, Table< size_t > &frame_start, char *tx_buffer) | |
| virtual | ~PacketTxRx () |
| virtual bool | StartTxRx (Table< complex_float > &calib_dl_buffer, Table< complex_float > &calib_ul_buffer) |
| Start the network I/O threads. More... | |
| size_t | AntNumToWorkerId (size_t ant_num) const |
| Convert the antenna id to txrx worker id. More... | |
Private Member Functions | |
| void | DoTxRx (size_t tid) |
| bool | CreateWorker (size_t tid, size_t interface_count, size_t interface_offset, size_t *rx_frame_start, std::vector< RxPacket > &rx_memory, std::byte *const tx_memory) final |
Private Attributes | |
| uint32_t | bs_rru_addr_ |
| uint32_t | bs_server_addr_ |
| rte_mempool * | mbuf_pool_ |
| std::vector< std::vector< std::pair< uint16_t, uint16_t > > > | worker_dev_queue_assignment_ |
Additional Inherited Members | |
Protected Member Functions inherited from PacketTxRx | |
| bool | StopTxRx () |
| void | NotifyWorkers () |
| size_t | NumberTotalWorkers () const |
| size_t | NumberTotalInterfaces () const |
| const size_t & | InterfaceToWorker (size_t interface) const |
| size_t | NumChannels () const |
Protected Attributes inherited from PacketTxRx | |
| std::vector< std::unique_ptr< TxRxWorker > > | worker_threads_ |
| Config *const | cfg_ |
| const size_t | core_offset_ |
| moodycamel::ConcurrentQueue< EventData > * | event_notify_q_ |
| moodycamel::ConcurrentQueue< EventData > * | tx_pending_q_ |
| moodycamel::ProducerToken ** | notify_producer_tokens_ |
| moodycamel::ProducerToken ** | tx_producer_tokens_ |
| std::mutex | mutex_ |
| Owned by this class and shared with the workers. More... | |
| std::condition_variable | cond_ |
| std::atomic< bool > | proceed_ |
Implementations of this class provide packet I/O for Agora using dpdk accelerations.
| PacketTxRxDpdk::PacketTxRxDpdk | ( | Config *const | cfg, |
| size_t | core_offset, | ||
| moodycamel::ConcurrentQueue< EventData > * | event_notify_q, | ||
| moodycamel::ConcurrentQueue< EventData > * | tx_pending_q, | ||
| moodycamel::ProducerToken ** | notify_producer_tokens, | ||
| moodycamel::ProducerToken ** | tx_producer_tokens, | ||
| Table< char > & | rx_buffer, | ||
| size_t | packet_num_in_buffer, | ||
| Table< size_t > & | frame_start, | ||
| char * | tx_buffer | ||
| ) |

|
final |

|
finalprivatevirtual |
|
private |
|
private |
|
private |
|
private |
|
private |