#include <agora.h>
|
bool | CheckFrameComplete (size_t frame_id) |
|
void | CheckIncrementScheduleFrame (size_t frame_id, ScheduleProcessingFlags completed) |
|
size_t | FetchEvent (std::vector< EventData > &events_list, bool is_turn_to_dequeue_from_io) |
|
void | InitializeQueues () |
|
void | InitializeCounters () |
|
void | InitializeThreads () |
|
void | FreeQueues () |
|
void | SaveDecodeDataToFile (int frame_id) |
|
void | SaveTxDataToFile (int frame_id) |
|
void | HandleEventFft (size_t tag) |
|
void | UpdateRxCounters (size_t frame_id, size_t symbol_id) |
|
void | UpdateRanConfig (RanConfig rc) |
| Update Agora's RAN config parameters. More...
|
|
void | ScheduleSubcarriers (EventType event_type, size_t frame_id, size_t symbol_id) |
|
void | ScheduleAntennas (EventType event_type, size_t frame_id, size_t symbol_id) |
|
void | ScheduleAntennasTX (size_t frame_id, size_t symbol_id) |
|
void | ScheduleDownlinkProcessing (size_t frame_id) |
|
void | ScheduleCodeblocks (EventType event_type, Direction dir, size_t frame_id, size_t symbol_idx) |
| Schedule LDPC decoding or encoding over code blocks. More...
|
|
void | ScheduleUsers (EventType event_type, size_t frame_id, size_t symbol_id) |
|
void | SendSnrReport (EventType event_type, size_t frame_id, size_t symbol_id) |
|
◆ ScheduleProcessingFlags
Enumerator |
---|
kNone | |
kUplinkComplete | |
kDownlinkComplete | |
kProcessingComplete | |
◆ Agora()
Create an Agora object and start the worker threads.
◆ ~Agora()
◆ CheckFrameComplete()
bool Agora::CheckFrameComplete |
( |
size_t |
frame_id | ) |
|
|
private |
Determines if all the work has been completed on the frame_id Completion is determined based on the ifft, tx, decode, and tomac counters. If frame processing is complete. All of the work counters are reset and the cur_proc_frame_id_ is incremented. Returns true if all processing is complete AND the frame_id is the last frame to test. False otherwise.
◆ CheckIncrementScheduleFrame()
Increments the cur_sche_frame_id when all ScheduleProcessingFlags have been acheived.
◆ FetchEvent()
size_t Agora::FetchEvent |
( |
std::vector< EventData > & |
events_list, |
|
|
bool |
is_turn_to_dequeue_from_io |
|
) |
| |
|
private |
◆ FreeQueues()
void Agora::FreeQueues |
( |
| ) |
|
|
private |
◆ GetEqualData()
void Agora::GetEqualData |
( |
float ** |
ptr, |
|
|
int * |
size |
|
) |
| |
◆ HandleEventFft()
void Agora::HandleEventFft |
( |
size_t |
tag | ) |
|
|
private |
◆ InitializeCounters()
void Agora::InitializeCounters |
( |
| ) |
|
|
private |
◆ InitializeQueues()
void Agora::InitializeQueues |
( |
| ) |
|
|
private |
◆ InitializeThreads()
void Agora::InitializeThreads |
( |
| ) |
|
|
private |
- Todo:
- convert unique ptr to shared
◆ SaveDecodeDataToFile()
void Agora::SaveDecodeDataToFile |
( |
int |
frame_id | ) |
|
|
private |
◆ SaveTxDataToFile()
void Agora::SaveTxDataToFile |
( |
int |
frame_id | ) |
|
|
private |
◆ ScheduleAntennas()
void Agora::ScheduleAntennas |
( |
EventType |
event_type, |
|
|
size_t |
frame_id, |
|
|
size_t |
symbol_id |
|
) |
| |
|
private |
◆ ScheduleAntennasTX()
void Agora::ScheduleAntennasTX |
( |
size_t |
frame_id, |
|
|
size_t |
symbol_id |
|
) |
| |
|
private |
◆ ScheduleCodeblocks()
void Agora::ScheduleCodeblocks |
( |
EventType |
event_type, |
|
|
Direction |
dir, |
|
|
size_t |
frame_id, |
|
|
size_t |
symbol_idx |
|
) |
| |
|
private |
Schedule LDPC decoding or encoding over code blocks.
- Parameters
-
task_type | Either LDPC decoding or LDPC encoding |
frame_id | The monotonically increasing frame ID |
symbol_idx | The index of the symbol among uplink symbols for LDPC decoding, and among downlink symbols for LDPC encoding |
◆ ScheduleDownlinkProcessing()
void Agora::ScheduleDownlinkProcessing |
( |
size_t |
frame_id | ) |
|
|
private |
◆ ScheduleSubcarriers()
void Agora::ScheduleSubcarriers |
( |
EventType |
event_type, |
|
|
size_t |
frame_id, |
|
|
size_t |
symbol_id |
|
) |
| |
|
private |
◆ ScheduleUsers()
void Agora::ScheduleUsers |
( |
EventType |
event_type, |
|
|
size_t |
frame_id, |
|
|
size_t |
symbol_id |
|
) |
| |
|
private |
◆ SendSnrReport()
void Agora::SendSnrReport |
( |
EventType |
event_type, |
|
|
size_t |
frame_id, |
|
|
size_t |
symbol_id |
|
) |
| |
|
private |
◆ Start()
◆ Stop()
The main Agora event loop.
◆ UpdateRanConfig()
Update Agora's RAN config parameters.
◆ UpdateRxCounters()
void Agora::UpdateRxCounters |
( |
size_t |
frame_id, |
|
|
size_t |
symbol_id |
|
) |
| |
|
private |
◆ agora_memory_
◆ base_worker_core_offset_
const size_t Agora::base_worker_core_offset_ |
|
private |
◆ beam_counters_
◆ beam_last_frame_
size_t Agora::beam_last_frame_ = SIZE_MAX |
|
private |
◆ config_
◆ decode_counters_
◆ demul_counters_
◆ enable_save_decode_data_to_file_
bool Agora::enable_save_decode_data_to_file_ = false |
◆ enable_save_tx_data_to_file_
bool Agora::enable_save_tx_data_to_file_ = false |
◆ encode_counters_
◆ encode_cur_frame_for_symbol_
std::vector<size_t> Agora::encode_cur_frame_for_symbol_ |
|
private |
◆ encode_deferral_
std::queue<size_t> Agora::encode_deferral_ |
|
private |
◆ fft_created_count_
size_t Agora::fft_created_count_ |
|
private |
◆ fft_cur_frame_for_symbol_
std::vector<size_t> Agora::fft_cur_frame_for_symbol_ |
|
private |
◆ fft_queue_arr_
◆ flags_
struct { ... } Agora::flags_ |
◆ frame_tracking_
◆ ifft_counters_
◆ ifft_cur_frame_for_symbol_
std::vector<size_t> Agora::ifft_cur_frame_for_symbol_ |
|
private |
◆ ifft_next_symbol_
size_t Agora::ifft_next_symbol_ = 0 |
|
private |
◆ mac_request_queue_
◆ mac_response_queue_
◆ mac_std_thread_
std::thread Agora::mac_std_thread_ |
|
private |
◆ mac_thread_
◆ mac_to_phy_counters_
◆ max_equaled_frame_
size_t Agora::max_equaled_frame_ = SIZE_MAX |
|
private |
◆ message_
◆ message_queue_
◆ packet_tx_rx_
◆ phy_stats_
std::unique_ptr<PhyStats> Agora::phy_stats_ |
|
private |
◆ pilot_fft_counters_
◆ precode_counters_
◆ precode_cur_frame_for_symbol_
std::vector<size_t> Agora::precode_cur_frame_for_symbol_ |
|
private |
◆ rc_counters_
◆ rc_last_frame_
size_t Agora::rc_last_frame_ = SIZE_MAX |
|
private |
◆ recorder_
◆ rx_counters_
◆ rx_ptoks_ptr_
◆ schedule_process_flags_
uint8_t Agora::schedule_process_flags_ |
|
private |
◆ stats_
std::unique_ptr<Stats> Agora::stats_ |
|
private |
◆ tomac_counters_
◆ tx_counters_
◆ tx_ptoks_ptr_
◆ uplink_fft_counters_
◆ worker_set_
The documentation for this class was generated from the following files: