Agora  1.2.0
Agora project
symbols.h File Reference
#include <mkl.h>
#include <array>
#include <cstddef>
#include <map>
#include <string>
Include dependency graph for symbols.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define EXPORT   __attribute__((visibility("default")))
 
#define STRINGIFY(x)   #x
 
#define TOSTRING(x)   STRINGIFY(x)
 
#define TX_FRAME_DELTA   (4)
 
#define SETTLE_TIME_MS   (1)
 
#define ENABLE_RB_IND   (0)
 
#define BIGSTATION   (0)
 

Enumerations

enum  Direction : int { Direction::kDownlink, Direction::kUplink }
 
enum  EventType : int {
  EventType::kPacketRX, EventType::kFFT, EventType::kBeam, EventType::kDemul,
  EventType::kIFFT, EventType::kPrecode, EventType::kPacketTX, EventType::kPacketPilotTX,
  EventType::kDecode, EventType::kEncode, EventType::kModul, EventType::kPacketFromMac,
  EventType::kPacketToMac, EventType::kFFTPilot, EventType::kSNRReport, EventType::kRANUpdate,
  EventType::kRBIndicator, EventType::kThreadTermination
}
 
enum  DoerType : size_t {
  DoerType::kFFT, DoerType::kCSI, DoerType::kBeam, DoerType::kDemul,
  DoerType::kDecode, DoerType::kEncode, DoerType::kIFFT, DoerType::kPrecode,
  DoerType::kRC
}
 
enum  PrintType : int {
  PrintType::kPacketRXPilots, PrintType::kPacketRX, PrintType::kFFTPilots, PrintType::kFFTData,
  PrintType::kFFTCal, PrintType::kBeam, PrintType::kDemul, PrintType::kIFFT,
  PrintType::kPrecode, PrintType::kPacketTXFirst, PrintType::kPacketTX, PrintType::kDecode,
  PrintType::kEncode, PrintType::kRC, PrintType::kPacketFromMac, PrintType::kPacketToMac,
  PrintType::kModul
}
 
enum  ScheduleProcessingFlags : uint8_t { kNone = 0, kUplinkComplete = 0x1, kDownlinkComplete = 0x2, kProcessingComplete = (kUplinkComplete + kDownlinkComplete) }
 
enum  ThreadType {
  ThreadType::kMaster, ThreadType::kWorker, ThreadType::kWorkerFFT, ThreadType::kWorkerBeam,
  ThreadType::kWorkerDemul, ThreadType::kWorkerDecode, ThreadType::kWorkerRX, ThreadType::kWorkerTX,
  ThreadType::kWorkerTXRX, ThreadType::kWorkerMacTXRX, ThreadType::kMasterRX, ThreadType::kMasterTX,
  ThreadType::kRecorderWorker
}
 
enum  SymbolType {
  SymbolType::kBeacon, SymbolType::kUL, SymbolType::kDL, SymbolType::kPilot,
  SymbolType::kCalDL, SymbolType::kCalUL, SymbolType::kGuard, SymbolType::kUnknown
}
 
enum  SubcarrierType { SubcarrierType::kNull, SubcarrierType::kDMRS, SubcarrierType::kData }
 

Functions

template<typename T >
static constexpr bool IsPowerOfTwo (T x)
 Return true at compile time iff a constant is a power of two. More...
 
static std::string ThreadTypeStr (ThreadType thread_type)
 

Variables

static constexpr size_t kFrameWnd = 40
 
static constexpr size_t kNumEventTypes
 
static constexpr std::array< DoerType,(static_cast< size_t >DoerType::kRC)+1)> kAllDoerTypes
 
static constexpr size_t kNumDoerTypes = kAllDoerTypes.size()
 
static const std::map< DoerType, std::string > kDoerNames
 
static constexpr size_t kDefaultMessageQueueSize = 512
 
static constexpr size_t kDefaultWorkerQueueSize = 256
 
static constexpr size_t kScheduleQueues = 2
 
static constexpr size_t kDequeueBulkSizeTXRX = 8
 
static constexpr size_t kDequeueBulkSizeWorker = 4
 
static constexpr bool kEnableThreadPinning = true
 
static constexpr bool kEnableCoreReuse = false
 
static constexpr bool kUseDPDK = false
 
static constexpr bool kEnableMac = false
 
static constexpr bool kUseArgos = false
 
static constexpr bool kUseUHD = false
 
static constexpr bool kEnableCsvLog = false
 
static constexpr bool kEnableMatLog = false
 
static constexpr bool kUse12BitIQ = false
 
static constexpr bool kDebug12BitIQ = false
 
static constexpr bool kDebugDownlink = false
 
static constexpr bool kDebugUplink = false
 
static constexpr bool kUsePartialTrans = true
 
static constexpr bool kDownlinkHardDemod = false
 
static constexpr bool kUplinkHardDemod = false
 
static constexpr bool kExportConstellation = false
 
static constexpr bool kPrintPhyStats = true
 
static constexpr bool kCollectPhyStats = true
 
static constexpr bool kPrintBeamStats = true
 
static constexpr bool kStatsPrintFrameSummary = true
 
static constexpr bool kDebugPrintPerFrameDone = true
 
static constexpr bool kDebugPrintPerFrameStart = true
 
static constexpr bool kDebugPrintPerSymbolDone = false
 
static constexpr bool kDebugPrintPerTaskDone = false
 
static constexpr bool kDebugPrintStatsPerThread = false
 
static constexpr bool kDebugPrintInTask = false
 
static constexpr bool kDebugMulticell = false
 
static constexpr bool kRecordCalibrationMats = false
 
static constexpr bool kDebugPrintPilot = false
 Print the I/Q samples in the pilots. More...
 
static constexpr bool kDebugRadioTX = false
 
static constexpr bool kDebugRadioRX = false
 
static constexpr bool kLogMacPackets = false
 
static const std::map< char, SymbolTypekSymbolMap
 
static constexpr size_t kMaxSymbols = 70
 
static constexpr size_t kMaxDataSCs = 3300
 
static constexpr size_t kMaxAntennas = 64
 
static constexpr size_t kMaxUEs = 64
 
static constexpr size_t kMaxChannels = 2
 
static constexpr size_t kMaxModType = 8
 
static constexpr size_t kNumStatsFrames = 10000
 
static constexpr bool kIsWorkerTimingEnabled = true
 
static constexpr size_t kMaxStatsBreakdown = 4
 
static constexpr size_t kMaxThreads = 128
 
static constexpr size_t kSCsPerCacheline = 64 / (2 * sizeof(float))
 
static constexpr size_t kMacUserRemotePort = 9070
 
static constexpr size_t kMacUserLocalPort = 9170
 
static constexpr char kMacRemoteHostname [] = "127.0.0.1"
 
static constexpr size_t kMacBaseRemotePort = 8080
 
static constexpr size_t kMacBaseLocalPort = 8180
 
static constexpr size_t kMacBaseClientPort = 7070
 
static constexpr size_t kTransposeBlockSize = 8
 
static constexpr size_t kCalibScGroupSize = 8
 
static constexpr bool kUseAVX2Encoder = false
 
static constexpr bool kDebugSenderReceiver = false
 
static constexpr bool kOutputUlScData = false
 
static constexpr size_t kOfdmSymbolPerSlot = 1
 
static constexpr size_t kOutputFrameNum = 1
 
static constexpr bool kDebugTxData = false
 

Macro Definition Documentation

◆ BIGSTATION

#define BIGSTATION   (0)

◆ ENABLE_RB_IND

#define ENABLE_RB_IND   (0)

◆ EXPORT

#define EXPORT   __attribute__((visibility("default")))

◆ SETTLE_TIME_MS

#define SETTLE_TIME_MS   (1)

◆ STRINGIFY

#define STRINGIFY (   x)    #x

◆ TOSTRING

#define TOSTRING (   x)    STRINGIFY(x)

◆ TX_FRAME_DELTA

#define TX_FRAME_DELTA   (4)

Enumeration Type Documentation

◆ Direction

enum Direction : int
strong
Enumerator
kDownlink 
kUplink 

◆ DoerType

enum DoerType : size_t
strong
Enumerator
kFFT 
kCSI 
kBeam 
kDemul 
kDecode 
kEncode 
kIFFT 
kPrecode 
kRC 

◆ EventType

enum EventType : int
strong
Todo:
Merge EventType and DoerType into WorkType
Enumerator
kPacketRX 
kFFT 
kBeam 
kDemul 
kIFFT 
kPrecode 
kPacketTX 
kPacketPilotTX 
kDecode 
kEncode 
kModul 
kPacketFromMac 
kPacketToMac 
kFFTPilot 
kSNRReport 
kRANUpdate 
kRBIndicator 
kThreadTermination 

◆ PrintType

enum PrintType : int
strong
Enumerator
kPacketRXPilots 
kPacketRX 
kFFTPilots 
kFFTData 
kFFTCal 
kBeam 
kDemul 
kIFFT 
kPrecode 
kPacketTXFirst 
kPacketTX 
kDecode 
kEncode 
kRC 
kPacketFromMac 
kPacketToMac 
kModul 

◆ ScheduleProcessingFlags

enum ScheduleProcessingFlags : uint8_t
Enumerator
kNone 
kUplinkComplete 
kDownlinkComplete 
kProcessingComplete 

◆ SubcarrierType

enum SubcarrierType
strong
Enumerator
kNull 
kDMRS 
kData 

◆ SymbolType

enum SymbolType
strong
Enumerator
kBeacon 
kUL 
kDL 
kPilot 
kCalDL 
kCalUL 
kGuard 
kUnknown 

◆ ThreadType

enum ThreadType
strong
Enumerator
kMaster 
kWorker 
kWorkerFFT 
kWorkerBeam 
kWorkerDemul 
kWorkerDecode 
kWorkerRX 
kWorkerTX 
kWorkerTXRX 
kWorkerMacTXRX 
kMasterRX 
kMasterTX 
kRecorderWorker 

Function Documentation

◆ IsPowerOfTwo()

template<typename T >
static constexpr bool IsPowerOfTwo ( T  x)
inlinestaticconstexpr

Return true at compile time iff a constant is a power of two.

Here is the caller graph for this function:

◆ ThreadTypeStr()

static std::string ThreadTypeStr ( ThreadType  thread_type)
inlinestatic
Here is the caller graph for this function:

Variable Documentation

◆ kAllDoerTypes

constexpr std::array<DoerType, (static_cast<size_t>DoerType::kRC) + 1)> kAllDoerTypes
staticconstexpr

◆ kCalibScGroupSize

constexpr size_t kCalibScGroupSize = 8
staticconstexpr

◆ kCollectPhyStats

constexpr bool kCollectPhyStats = true
staticconstexpr

◆ kDebug12BitIQ

constexpr bool kDebug12BitIQ = false
staticconstexpr

◆ kDebugDownlink

constexpr bool kDebugDownlink = false
staticconstexpr

◆ kDebugMulticell

constexpr bool kDebugMulticell = false
staticconstexpr

◆ kDebugPrintInTask

constexpr bool kDebugPrintInTask = false
staticconstexpr

◆ kDebugPrintPerFrameDone

constexpr bool kDebugPrintPerFrameDone = true
staticconstexpr

◆ kDebugPrintPerFrameStart

constexpr bool kDebugPrintPerFrameStart = true
staticconstexpr

◆ kDebugPrintPerSymbolDone

constexpr bool kDebugPrintPerSymbolDone = false
staticconstexpr

◆ kDebugPrintPerTaskDone

constexpr bool kDebugPrintPerTaskDone = false
staticconstexpr

◆ kDebugPrintPilot

constexpr bool kDebugPrintPilot = false
staticconstexpr

Print the I/Q samples in the pilots.

◆ kDebugPrintStatsPerThread

constexpr bool kDebugPrintStatsPerThread = false
staticconstexpr

◆ kDebugRadioRX

constexpr bool kDebugRadioRX = false
staticconstexpr

◆ kDebugRadioTX

constexpr bool kDebugRadioTX = false
staticconstexpr

◆ kDebugSenderReceiver

constexpr bool kDebugSenderReceiver = false
staticconstexpr

◆ kDebugTxData

constexpr bool kDebugTxData = false
staticconstexpr

◆ kDebugUplink

constexpr bool kDebugUplink = false
staticconstexpr

◆ kDefaultMessageQueueSize

constexpr size_t kDefaultMessageQueueSize = 512
staticconstexpr
Todo:
need organization

◆ kDefaultWorkerQueueSize

constexpr size_t kDefaultWorkerQueueSize = 256
staticconstexpr

◆ kDequeueBulkSizeTXRX

constexpr size_t kDequeueBulkSizeTXRX = 8
staticconstexpr

◆ kDequeueBulkSizeWorker

constexpr size_t kDequeueBulkSizeWorker = 4
staticconstexpr

◆ kDoerNames

const std::map<DoerType, std::string> kDoerNames
static
Initial value:
= {
{DoerType::kFFT, std::string("FFT")},
{DoerType::kCSI, std::string("CSI")},
{DoerType::kBeam, std::string("Beamweights")},
{DoerType::kDemul, std::string("Demul")},
{DoerType::kDecode, std::string("Decode")},
{DoerType::kEncode, std::string("Encode")},
{DoerType::kIFFT, std::string("iFFT")},
{DoerType::kPrecode, std::string("Precode")},
{DoerType::kRC, std::string("RC")}}

◆ kDownlinkHardDemod

constexpr bool kDownlinkHardDemod = false
staticconstexpr

◆ kEnableCoreReuse

constexpr bool kEnableCoreReuse = false
staticconstexpr

◆ kEnableCsvLog

constexpr bool kEnableCsvLog = false
staticconstexpr

◆ kEnableMac

constexpr bool kEnableMac = false
staticconstexpr

◆ kEnableMatLog

constexpr bool kEnableMatLog = false
staticconstexpr

◆ kEnableThreadPinning

constexpr bool kEnableThreadPinning = true
staticconstexpr

◆ kExportConstellation

constexpr bool kExportConstellation = false
staticconstexpr

◆ kFrameWnd

constexpr size_t kFrameWnd = 40
staticconstexpr

◆ kIsWorkerTimingEnabled

constexpr bool kIsWorkerTimingEnabled = true
staticconstexpr

◆ kLogMacPackets

constexpr bool kLogMacPackets = false
staticconstexpr

◆ kMacBaseClientPort

constexpr size_t kMacBaseClientPort = 7070
staticconstexpr
Todo:
need to generalize for hostname, port pairs for each client

◆ kMacBaseLocalPort

constexpr size_t kMacBaseLocalPort = 8180
staticconstexpr

◆ kMacBaseRemotePort

constexpr size_t kMacBaseRemotePort = 8080
staticconstexpr

◆ kMacRemoteHostname

constexpr char kMacRemoteHostname[] = "127.0.0.1"
staticconstexpr

◆ kMacUserLocalPort

constexpr size_t kMacUserLocalPort = 9170
staticconstexpr

◆ kMacUserRemotePort

constexpr size_t kMacUserRemotePort = 9070
staticconstexpr

◆ kMaxAntennas

constexpr size_t kMaxAntennas = 64
staticconstexpr

◆ kMaxChannels

constexpr size_t kMaxChannels = 2
staticconstexpr

◆ kMaxDataSCs

constexpr size_t kMaxDataSCs = 3300
staticconstexpr

◆ kMaxModType

constexpr size_t kMaxModType = 8
staticconstexpr

◆ kMaxStatsBreakdown

constexpr size_t kMaxStatsBreakdown = 4
staticconstexpr

◆ kMaxSymbols

constexpr size_t kMaxSymbols = 70
staticconstexpr

◆ kMaxThreads

constexpr size_t kMaxThreads = 128
staticconstexpr

◆ kMaxUEs

constexpr size_t kMaxUEs = 64
staticconstexpr

◆ kNumDoerTypes

constexpr size_t kNumDoerTypes = kAllDoerTypes.size()
staticconstexpr

◆ kNumEventTypes

constexpr size_t kNumEventTypes
staticconstexpr
Initial value:
=
static_cast<size_t>(EventType::kThreadTermination) + 1

◆ kNumStatsFrames

constexpr size_t kNumStatsFrames = 10000
staticconstexpr

◆ kOfdmSymbolPerSlot

constexpr size_t kOfdmSymbolPerSlot = 1
staticconstexpr

◆ kOutputFrameNum

constexpr size_t kOutputFrameNum = 1
staticconstexpr

◆ kOutputUlScData

constexpr bool kOutputUlScData = false
staticconstexpr

◆ kPrintBeamStats

constexpr bool kPrintBeamStats = true
staticconstexpr

◆ kPrintPhyStats

constexpr bool kPrintPhyStats = true
staticconstexpr

◆ kRecordCalibrationMats

constexpr bool kRecordCalibrationMats = false
staticconstexpr

◆ kScheduleQueues

constexpr size_t kScheduleQueues = 2
staticconstexpr

◆ kSCsPerCacheline

constexpr size_t kSCsPerCacheline = 64 / (2 * sizeof(float))
staticconstexpr

◆ kStatsPrintFrameSummary

constexpr bool kStatsPrintFrameSummary = true
staticconstexpr

◆ kSymbolMap

const std::map<char, SymbolType> kSymbolMap
static
Initial value:

◆ kTransposeBlockSize

constexpr size_t kTransposeBlockSize = 8
staticconstexpr

◆ kUplinkHardDemod

constexpr bool kUplinkHardDemod = false
staticconstexpr

◆ kUse12BitIQ

constexpr bool kUse12BitIQ = false
staticconstexpr

◆ kUseArgos

constexpr bool kUseArgos = false
staticconstexpr

◆ kUseAVX2Encoder

constexpr bool kUseAVX2Encoder = false
staticconstexpr

◆ kUseDPDK

constexpr bool kUseDPDK = false
staticconstexpr

◆ kUsePartialTrans

constexpr bool kUsePartialTrans = true
staticconstexpr

◆ kUseUHD

constexpr bool kUseUHD = false
staticconstexpr
DoerType::kBeam
@ kBeam
DoerType::kEncode
@ kEncode
SymbolType::kCalDL
@ kCalDL
DoerType::kRC
@ kRC
EventType::kThreadTermination
@ kThreadTermination
SymbolType::kPilot
@ kPilot
DoerType::kPrecode
@ kPrecode
DoerType::kCSI
@ kCSI
SymbolType::kGuard
@ kGuard
SymbolType::kBeacon
@ kBeacon
DoerType::kIFFT
@ kIFFT
DoerType::kDecode
@ kDecode
DoerType::kDemul
@ kDemul
SymbolType::kCalUL
@ kCalUL
SymbolType::kUL
@ kUL
DoerType::kFFT
@ kFFT
SymbolType::kDL
@ kDL