Agora
1.2.0
Agora project
|
The MAC thread that runs alongside the PHY processing at the Agora server or client. More...
#include <mac_thread_client.h>
Public Member Functions | |
MacThreadClient (Config *const cfg, size_t core_offset, PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > &decoded_buffer, Table< int8_t > *ul_bits_buffer, Table< int8_t > *ul_bits_buffer_status, moodycamel::ConcurrentQueue< EventData > *rx_queue, moodycamel::ConcurrentQueue< EventData > *tx_queue, const std::string &log_filename="") | |
~MacThreadClient () | |
void | RunEventLoop () |
Static Public Attributes | |
static constexpr char | kDefaultLogFilename [] = "data/mac_log_client" |
static constexpr size_t | kMaxPktsPerUE = 64 |
static constexpr size_t | kSNRWindowSize = 100 |
Private Member Functions | |
void | ProcessRxFromPhy () |
void | ProcessCodeblocksFromPhy (EventData event) |
void | ProcessSnrReportFromPhy (EventData event) |
void | ProcessControlInformation () |
void | ProcessUdpPacketsFromApps (RBIndicator ri) |
void | ProcessUdpPacketsFromAppsClient (const char *payload, RBIndicator ri) |
The MAC thread that runs alongside the PHY processing at the Agora server or client.
This thread receives UDP data packets from remote apps and forwards them to Agora. It receives decoded symbols from Agora and forwards UDP data packets to applications.
MacThreadClient::MacThreadClient | ( | Config *const | cfg, |
size_t | core_offset, | ||
PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > & | decoded_buffer, | ||
Table< int8_t > * | ul_bits_buffer, | ||
Table< int8_t > * | ul_bits_buffer_status, | ||
moodycamel::ConcurrentQueue< EventData > * | rx_queue, | ||
moodycamel::ConcurrentQueue< EventData > * | tx_queue, | ||
const std::string & | log_filename = "" |
||
) |
MacThreadClient::~MacThreadClient | ( | ) |
|
private |
Spot to be optimized #1
Spot to be optimized #2 – left shift data over to remove padding
|
private |
|
private |
|
private |
|
private |
|
private |
void MacThreadClient::RunEventLoop | ( | ) |
|
private |
struct { ... } MacThreadClient::client_ |
|
private |
|
private |
std::vector<std::vector<size_t> > MacThreadClient::data_size_ |
|
private |
|
private |
std::array<std::vector<std::byte>, kMaxUEs> MacThreadClient::frame_data_ |
|
private |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
private |
|
private |
|
private |
std::array<size_t, kMaxUEs> MacThreadClient::n_filled_in_frame_ |
|
private |
|
private |
|
private |
|
private |
struct { ... } MacThreadClient::server_ |
std::array<std::queue<float>, kMaxUEs> MacThreadClient::snr_ |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Table<int8_t>* MacThreadClient::ul_bits_buffer_ |
std::array<size_t, kMaxUEs> MacThreadClient::ul_bits_buffer_id_ |
Table<int8_t>* MacThreadClient::ul_bits_buffer_status_ |