Agora  1.2.0
Agora project
dodecode_client.h
Go to the documentation of this file.
1 
6 #ifndef DODECODE_CLIENT_H_
7 #define DODECODE_CLIENT_H_
8 
9 #include <memory>
10 
11 #include "config.h"
12 #include "doer.h"
13 #include "memory_manage.h"
14 #include "phy_stats.h"
15 #include "scrambler.h"
16 #include "stats.h"
17 
18 class DoDecodeClient : public Doer {
19  public:
21  Config* in_config, int in_tid,
24  PhyStats* in_phy_stats, Stats* in_stats_manager);
25  ~DoDecodeClient() override;
26 
27  EventData Launch(size_t tag) override;
28 
29  private:
30  int16_t* resp_var_nodes_;
35  std::unique_ptr<AgoraScrambler::Scrambler> scrambler_;
36 };
37 
38 #endif // DODECODE_CLIENT_H_
PhyStats
Definition: phy_stats.h:15
FrameStats::GetDLSymbolIdx
size_t GetDLSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:152
DoDecodeClient::Launch
EventData Launch(size_t tag) override
Definition: dodecode_client.cc:35
PhyStats::IncrementDecodedBlocks
void IncrementDecodedBlocks(size_t ue_id, size_t offset, size_t frame_slot)
Definition: phy_stats.cc:570
LDPCconfig::MaxDecoderIter
int16_t MaxDecoderIter() const
Definition: ldpc_config.h:48
EventType::kDecode
@ kDecode
kVarNodesSize
static constexpr size_t kVarNodesSize
Definition: dodecode_client.cc:16
LDPCconfig::EarlyTermination
bool EarlyTermination() const
Definition: ldpc_config.h:49
PhyStats::UpdateBlockErrors
void UpdateBlockErrors(size_t ue_id, size_t offset, size_t frame_slot, size_t block_error_count)
Definition: phy_stats.cc:563
DoDecodeClient
Definition: dodecode_client.h:18
Stats
Definition: stats.h:63
gen_tag_t::symbol_id_
uint16_t symbol_id_
Definition: message.h:33
DurationStat::task_duration_
std::array< size_t, kMaxStatBreakdown > task_duration_
Definition: stats.h:23
concurrent_queue_wrapper.h
Config::GetInfoBits
int8_t * GetInfoBits(Table< int8_t > &info_bits, Direction dir, size_t symbol_id, size_t ue_id, size_t cb_id) const
Get info bits for this symbol, user and code block ID.
Definition: config.h:514
kFrameWnd
static constexpr size_t kFrameWnd
Definition: symbols.h:18
Agora_memory::PaddedAlignedAlloc
void * PaddedAlignedAlloc(Alignment_t alignment, size_t size)
Definition: memory_manage.cc:15
LDPCconfig::NumRows
size_t NumRows() const
Definition: ldpc_config.h:52
DoDecodeClient::DoDecodeClient
DoDecodeClient(Config *in_config, int in_tid, PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > &demod_buffers, PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > &decoded_buffers, PhyStats *in_phy_stats, Stats *in_stats_manager)
Definition: dodecode_client.cc:18
memory_manage.h
DoDecodeClient::duration_stat_
DurationStat * duration_stat_
Definition: dodecode_client.h:34
DoDecodeClient::~DoDecodeClient
~DoDecodeClient() override
Definition: dodecode_client.cc:33
Config::Frame
const FrameStats & Frame() const
Definition: config.h:340
GetTime::CyclesToUs
static double CyclesToUs(size_t cycles, double freq_ghz)
Definition: gettime.h:97
PhyStats::UpdateBitErrors
void UpdateBitErrors(size_t ue_id, size_t offset, size_t frame_slot, uint8_t tx_byte, uint8_t rx_byte)
Definition: phy_stats.cc:542
Doer
Definition: doer.h:17
Doer::tid_
int tid_
Definition: doer.h:65
gen_tag_t
Definition: message.h:22
kDebugPrintInTask
static constexpr bool kDebugPrintInTask
Definition: symbols.h:201
stats.h
Declaration file for the Stats class. Includes definations for DurationStat and FrameSummery types.
kDebugDownlink
static constexpr bool kDebugDownlink
Definition: symbols.h:180
PhyStats::UpdateDecodedBits
void UpdateDecodedBits(size_t ue_id, size_t offset, size_t frame_slot, size_t new_bits_num)
Definition: phy_stats.cc:557
EventData
Definition: message.h:142
DoDecodeClient::phy_stats_
PhyStats * phy_stats_
Definition: dodecode_client.h:33
DurationStat::task_count_
size_t task_count_
Definition: stats.h:24
kPrintPhyStats
static constexpr bool kPrintPhyStats
Definition: symbols.h:191
kEnableMac
static constexpr bool kEnableMac
Definition: symbols.h:150
message.h
Self defined functions for message storage and passing.
scrambler.h
Scramble Class and helper functions.
i
for i
Definition: generate_data.m:107
Agora_memory::Alignment_t::kAlign64
@ kAlign64
DoDecodeClient::demod_buffers_
PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > & demod_buffers_
Definition: dodecode_client.h:31
Config::NumBytesPerCb
size_t NumBytesPerCb(Direction dir) const
Definition: config.h:251
Direction::kDownlink
@ kDownlink
kPrintDecodedData
static constexpr bool kPrintDecodedData
Definition: dodecode_client.cc:14
spdlog::details::make_unique
std::unique_ptr< T > make_unique(Args &&... args)
Definition: common.h:334
LDPCconfig
Definition: ldpc_config.h:14
DurationStat
Definition: stats.h:22
Config::LdpcConfig
const LDPCconfig & LdpcConfig(Direction dir) const
Definition: config.h:280
FrameStats::ClientDlPilotSymbols
size_t ClientDlPilotSymbols() const
Definition: framestats.h:76
Config::FreqGhz
double FreqGhz() const
Definition: config.h:56
Doer::cfg_
Config * cfg_
Definition: doer.h:64
DoerType::kDecode
@ kDecode
GetTime::WorkerRdtsc
static size_t WorkerRdtsc()
Definition: gettime.h:34
LDPCconfig::ExpansionFactor
uint16_t ExpansionFactor() const
Definition: ldpc_config.h:47
Config::DlBits
Table< int8_t > & DlBits()
Definition: config.h:384
Config
Definition: config.h:26
AGORA_LOG_INFO
#define AGORA_LOG_INFO(...)
Definition: logger.h:62
doer.h
Declaration file for the Doer class. The is the base class for all agora doers.
std
Definition: json.hpp:5213
DoDecodeClient::scrambler_
std::unique_ptr< AgoraScrambler::Scrambler > scrambler_
Definition: dodecode_client.h:35
dodecode_client.h
Declaration file for the DoDecode class.
Config::ScrambleEnabled
bool ScrambleEnabled() const
Definition: config.h:296
LDPCconfig::NumCbLen
uint32_t NumCbLen() const
Definition: ldpc_config.h:50
Config::GetTotalDataSymbolIdxDl
size_t GetTotalDataSymbolIdxDl(size_t frame_id, size_t symbol_idx_dl) const
Definition: config.h:428
AgoraScrambler
Definition: scrambler.cc:12
LDPCconfig::BaseGraph
uint16_t BaseGraph() const
Definition: ldpc_config.h:46
config.h
Declaration file for the configuration class which importants json configuration values into class va...
PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t >
gettime.h
DoDecodeClient::decoded_buffers_
PtrCube< kFrameWnd, kMaxSymbols, kMaxUEs, int8_t > & decoded_buffers_
Definition: dodecode_client.h:32
phy_stats.h
Declaration file for the PhyStats class.
gen_tag_t::frame_id_
uint32_t frame_id_
Definition: message.h:32
Config::ModOrderBits
size_t ModOrderBits(Direction dir) const
Definition: config.h:247
LDPCconfig::NumBlocksInSymbol
void NumBlocksInSymbol(size_t num_blocks)
Definition: ldpc_config.h:41
LDPCconfig::NumCbCodewLen
uint32_t NumCbCodewLen() const
Definition: ldpc_config.h:51
kPrintLLRData
static constexpr bool kPrintLLRData
Definition: dodecode_client.cc:13
DoDecodeClient::resp_var_nodes_
int16_t * resp_var_nodes_
Definition: dodecode_client.h:30
gen_tag_t::cb_id_
uint16_t cb_id_
Definition: message.h:36
Stats::GetDurationStat
DurationStat * GetDurationStat(DoerType doer_type, size_t thread_id)
Definition: stats.h:162