ns-3 PLC model
 All Classes Functions Variables Enumerations
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
ns3::PLC_InformationRatePhy Class Reference

#include <plc-phy.h>

Inheritance diagram for ns3::PLC_InformationRatePhy:
ns3::PLC_HalfDuplexOfdmPhy ns3::PLC_Phy ns3::PLC_ChaseCombiningPhy

List of all members.

Public Member Functions

void SetHeaderModulationAndCodingScheme (ModulationAndCodingType mcs)
ModulationAndCodingType GetHeaderModulationAndCodingScheme (void)
void SetPayloadModulationAndCodingScheme (ModulationAndCodingType mcs)
ModulationAndCodingType GetPayloadModulationAndCodingScheme (void)
size_t GetOfdmSymbolsPerCodeBlock (void)
void EndRxHeader (Ptr< SpectrumValue > &rxPsd, Ptr< const PLC_TrxMetaInfo > metaInfo)
void EndRxPayload (Ptr< const PLC_TrxMetaInfo > metaInfo)
void ReceptionFailure (void)
void SendFrame (Ptr< Packet > p, Ptr< PLC_TrxMetaInfo > metaInfo)
virtual void PreambleDetectionSuccessful (Ptr< const Packet > p, uint32_t txId, Ptr< SpectrumValue > &rxPsd, Time duration, Ptr< const PLC_TrxMetaInfo > metaInfo)

Static Public Member Functions

static TypeId GetTypeId (void)
static void SetOfdmSymbolsPerCodeBlock (size_t spb)
static void SetRatelessCodingOverhead (double overhead)
static double GetRatelessCodingOverhead (void)

Protected Member Functions

virtual void DoStart (void)
virtual void DoDispose (void)
virtual void DoSetNoiseFloor (Ptr< const SpectrumValue > noiseFloor)
virtual bool DoStartTx (Ptr< Packet > p)
virtual void DoStartRx (Ptr< const Packet > p, uint32_t txId, Ptr< SpectrumValue > &rxPsd, Time duration, Ptr< const PLC_TrxMetaInfo > metaInfo)
virtual void DoUpdateRxPsd (uint32_t txId, Ptr< SpectrumValue > newRxPsd)
virtual void StartReception (Ptr< const Packet > p, uint32_t txId, Ptr< SpectrumValue > &rxPsd, Time duration, Ptr< const PLC_TrxMetaInfo > metaInfo)
virtual void NotifySuccessfulReception (void)
Ptr< Packet > CreateEncodedPacket (Ptr< PLC_TrxMetaInfo > metaInfo)
Ptr< Packet > CreateFixedRateEncodedPacket (Ptr< PLC_TrxMetaInfo > metaInfo)
Ptr< Packet > CreateRatelessEncodedPacket (Ptr< PLC_TrxMetaInfo > metaInfo)
PLC_PhyCcaResult ClearChannelAssessment (void)
size_t RequiredChunks (size_t num_blocks)
size_t ChunksInByte (size_t num_chunks, size_t raw_bits_per_symbol)

Protected Attributes

Ptr< PLC_InformationRateModelm_information_rate_model
ModulationAndCodingType m_header_mcs
ModulationAndCodingType m_payload_mcs

Static Protected Attributes

static size_t modulation_symbols_per_code_block = 1
static double rateless_coding_overhead = 0.2

Detailed Description

Simple implementation of a half duplex phy using the information rate model


Member Function Documentation

Returns:
Modulation symbols needed to map one code block

A second fixed rate modulation and coding scheme has to be defined for the transmission of control frames and frame header. Only the payload of data frames can be encoded rateless. The robustness of control frame and frame header transmission can be increased by choosing a lower mcs

Define number of modulation symbols needed to map one code block

Parameters:
spb
void ns3::PLC_InformationRatePhy::SetRatelessCodingOverhead ( double  overhead) [static]

Define the minimal overhead induced by rateless encoding. default: 0.2

TODO: non static estimation with respect to message length and claimed decoding propability

Parameters:
overhead(1 = 100%)

The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations