Base class for all SatPhyRxCarriers. More...
#include "satellite-phy-rx-carrier.h"
Classes | |
struct | rxParams_s |
Struct for storing the packet specific Rx parameters. More... | |
Public Types | |
enum | CarrierType { BASE , DEDICATED_ACCESS , RA_SLOTTED_ALOHA , RA_CRDSA , RA_ESSA } |
Possible carrier types. More... | |
typedef void(* | LinkBudgetTraceCallback) (Ptr< SatSignalParameters > rxParams, Mac48Address receiverAddress, Mac48Address destinationAddress, double interference, double sinr) |
Callback signature for LinkBudgetTrace trace source. More... | |
typedef void(* | LinkSinrTraceCallback) (double sinr, const Address &utAddress) |
Callback signature for LinkSinrTrace trace source. More... | |
typedef void(* | PhyRxCollisionCallback) (uint32_t nPackets, const Address &utAddress, bool isCollided) |
Common callback signature for trace sources related to packets reception by PHY and its collision. More... | |
typedef void(* | PhyRxErrorCallback) (uint32_t nPackets, const Address &utAddress, bool isError) |
Common callback signature for trace sources related to packets reception by PHY and its error. More... | |
typedef void(* | RxPowerTraceCallback) (double rxPower, const Address &utAddress) |
Callback signature for RxPowerTrace trace source. More... | |
enum | State { IDLE , RX } |
Enum for PHY states. More... | |
Public Member Functions | |
SatPhyRxCarrier (uint32_t carrierId, Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatWaveformConf > waveformConf, bool isRandomAccessEnabled) | |
Constructor. More... | |
virtual | ~SatPhyRxCarrier () |
Destructor. More... | |
virtual void | BeginEndScheduling () |
Function for initializing the frame/window end scheduling. More... | |
uint32_t | GetBeamId () |
Get ID the ID of the beam this carrier is attached to. More... | |
virtual CarrierType | GetCarrierType () |
Method for querying the type of the carrier. More... | |
double | GetRxTemperatureK () |
Method for querying the temperature of the carrier. More... | |
uint32_t | GetSatId () |
Get ID the ID of the satellite this carrier is attached to. More... | |
void | SetAverageNormalizedOfferedLoadCallback (SatPhyRx::AverageNormalizedOfferedLoadCallback callback) |
Function for setting the AverageNormalizedOfferedLoadCallback callback. More... | |
void | SetBeamId (uint32_t beamId) |
Function for setting the beam id for all the transmissions from this SatPhyTx. More... | |
void | SetCnoCb (SatPhyRx::CnoCallback cb) |
Function for settign the C/NO callback. More... | |
void | SetNodeInfo (const Ptr< SatNodeInfo > nodeInfo) |
Function for setting the node info class. More... | |
void | SetPhy (Ptr< SatPhy > phy) |
Function for setting the SatPhy module. More... | |
void | SetReceiveCb (SatPhyRx::ReceiveCallback cb) |
Function for setting the receive callback. More... | |
void | SetSatId (uint32_t satId) |
Function for setting the satellite id for all the transmissions from this SatPhyTx. More... | |
virtual bool | StartRx (Ptr< SatSignalParameters > rxParams) |
Function for starting packet reception from the SatChannel. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Function for gettign the NS-3 type ID. More... | |
Protected Member Functions | |
double | CalculateCompositeSinr (double sinr1, double sinr2) |
Function for calculating the composite SINR. More... | |
double | CalculateSinr (double rxPowerW, double ifPowerW, double rxNoisePowerW, double rxAciIfPowerW, double rxExtNoisePowerW, double otherInterference) |
Function for calculating the SINR. More... | |
double | CalculateSinr (double sinr, double otherInterference) |
Calculate final SINR with PHY specific parameters and given calculated SINR. More... | |
void | ChangeState (State newState) |
Function for changing the receiver state. More... | |
bool | CheckAgainstLinkResults (double cSinr, Ptr< SatSignalParameters > rxParams) |
Function for checking the SINR against the link results. More... | |
void | CheckRxStateSanity () |
Function for checking the Rx state sanity. More... | |
virtual Ptr< SatInterference::InterferenceChangeEvent > | CreateInterference (Ptr< SatSignalParameters > rxParams, Address rxAddress)=0 |
Create an interference event based on Rx parameters and address. More... | |
void | DecreaseNumOfRxState (SatEnums::PacketType_t packetType) |
Function for decreasing the number of ongoing transmissions. More... | |
void | DoCompositeSinrOutputTrace (double cSinr) |
Function for composite SINR output tracing. More... | |
virtual void | DoCreateInterferenceEliminationModel (Ptr< SatPhyRxCarrierConf > carrierConf, uint32_t carrierId, Ptr< SatWaveformConf > waveformConf) |
Create an interference cancelation model for this carrier. More... | |
virtual void | DoCreateInterferenceModel (Ptr< SatPhyRxCarrierConf > carrierConf, uint32_t carrierId, double rxBandwidthHz) |
Create an interference model for this carrier. More... | |
virtual void | DoDispose () |
Dispose. More... | |
virtual void | EndRxData (uint32_t key)=0 |
Function for ending the packet reception from the SatChannel. More... | |
uint32_t | GetCarrierId () const |
Get the ID of the carrier. More... | |
Ptr< SatChannelEstimationErrorContainer > | GetChannelEstimationErrorContainer () |
Get a pointer to the channel estimation error container of the carrier. More... | |
virtual SatEnums::ChannelType_t | GetChannelType () |
Get the channel type. More... | |
virtual const bool | GetDefaultReceiveMode () |
Get the default receive mode for the carrier. More... | |
Ptr< SatInterferenceElimination > | GetInterferenceEliminationModel () |
Get pointer to the current interference elimination model. More... | |
Ptr< SatInterference > | GetInterferenceModel () |
Get pointer to the current interference model. More... | |
virtual SatEnums::RegenerationMode_t | GetLinkRegenerationMode () |
Get the link regeneration mode. More... | |
Ptr< SatLinkResults > | GetLinkResults () |
Get pointer to the link results given by the carrier creation configuration. More... | |
Ptr< SatNodeInfo > | GetNodeInfo () |
Get the satellite node info. More... | |
Mac48Address | GetOwnAddress () |
Get the MAC address of the carrier. More... | |
std::pair< bool, SatPhyRxCarrier::rxParams_s > | GetReceiveParams (Ptr< SatSignalParameters > rxParams) |
Rx parameter storage methods. More... | |
State | GetState () |
Get the state of the carrier. More... | |
rxParams_s | GetStoredRxParams (uint32_t key) |
Get stored rxParams under a key. More... | |
double | GetUniformRandomValue (double min, double max) |
A helper method for getting values form a uniform random variable in child classes. More... | |
Ptr< SatWaveformConf > | GetWaveformConf () |
Get pointer to the waveform configuration. More... | |
double | GetWorstSinr (double sinr1, double sinr2) |
Function for calculating the worst sinr between uplink and downlink. More... | |
void | IncreaseNumOfRxState (SatEnums::PacketType_t packetType) |
Function for increasing the number of ongoing transmissions. More... | |
bool | IsCompositeSinrOutputTraceEnabled () const |
Check if composite SINR output trace is enabled. More... | |
bool | IsReceivingDedicatedAccess () |
Check if the carrier is receiving a dedicated access packet. More... | |
void | RemoveStoredRxParams (uint32_t key) |
Remove stored rxParams under a key. More... | |
void | SetChannelType (SatEnums::ChannelType_t channelType) |
Set the channel type for the carrier. More... | |
void | SetLinkRegenerationMode (SatEnums::RegenerationMode_t linkRegenerationMode) |
Set the link regeneration mode. More... | |
void | StoreRxParams (uint32_t key, rxParams_s rxParams) |
Store rxParams under a key. More... | |
Protected Attributes | |
SatPhyRxCarrierConf::AdditionalInterferenceCallback | m_additionalInterferenceCallback |
Callback to get additional interference. More... | |
SatPhy::AverageNormalizedOfferedLoadCallback | m_avgNormalizedOfferedLoadCallback |
Average normalized offered load callback. More... | |
SatPhy::CnoCallback | m_cnoCallback |
The upper layer C/N0 receive callback. More... | |
TracedCallback< uint32_t, const Address & > | m_daRxCarrierIdTrace |
TracedCallback< uint32_t, const Address &, bool > | m_daRxTrace |
DaRx trace source. More... | |
TracedCallback< Ptr< SatSignalParameters >, Mac48Address, Mac48Address, double, double > | m_linkBudgetTrace |
The trace source on packet receptiong. More... | |
SatEnums::RegenerationMode_t | m_linkRegenerationMode |
Link regeneration mode. More... | |
TracedCallback< double, const Address & > | m_linkSinrTrace |
A callback for link specific SINR in dB. More... | |
const bool | m_randomAccessEnabled |
Is random access enabled for this carrier. More... | |
double | m_rxAciIfPowerW |
RX Adjacent channel interference. More... | |
double | m_rxBandwidthHz |
RX Bandwidth in Hz. More... | |
SatPhyRx::ReceiveCallback | m_rxCallback |
The upper layer package receive callback. More... | |
double | m_rxExtNoisePowerW |
External noise power system RX noise. More... | |
double | m_rxNoisePowerW |
RX noise. More... | |
TracedCallback< double, const Address & > | m_rxPowerTrace |
A callback for received signal power in dBW. More... | |
double | m_rxTemperatureK |
RX noise temperature in K. More... | |
TracedCallback< double, const Address & > | m_sinrTrace |
A callback for transmission composite SINR at UT (BBFrame) or GW (time slot). More... | |
Private Member Functions | |
bool | CheckAgainstLinkResultsErrorModelAvi (double cSinr, Ptr< SatSignalParameters > rxParams) |
Function for checking the SINR against the link results. More... | |
Private Attributes | |
uint32_t | m_beamId |
uint32_t | m_carrierId |
Ptr< SatChannelEstimationErrorContainer > | m_channelEstimationError |
Channel estimation error container. More... | |
SatEnums::ChannelType_t | m_channelType |
double | m_constantErrorRate |
bool | m_enableCompositeSinrOutputTrace |
SatPhyRxCarrierConf::ErrorModel | m_errorModel |
Ptr< SatLinkResults > | m_linkResults |
Ptr< SatNodeInfo > | m_nodeInfo |
uint32_t | m_numOfOngoingRx |
Contains information about how many ongoing Rx events there are. More... | |
Mac48Address | m_ownAddress |
bool | m_receivingDedicatedAccess |
uint32_t | m_rxPacketCounter |
Running counter for received packets. More... | |
std::map< uint32_t, rxParams_s > | m_rxParamsMap |
uint32_t | m_satId |
Ptr< SatInterference > | m_satInterference |
Ptr< SatInterferenceElimination > | m_satInterferenceElimination |
State | m_state |
Ptr< UniformRandomVariable > | m_uniformVariable |
Ptr< SatWaveformConf > | m_waveformConf |
Base class for all SatPhyRxCarriers.
Definition at line 60 of file satellite-phy-rx-carrier.h.
typedef void(* ns3::SatPhyRxCarrier::LinkBudgetTraceCallback) (Ptr< SatSignalParameters > rxParams, Mac48Address receiverAddress, Mac48Address destinationAddress, double interference, double sinr) |
Callback signature for LinkBudgetTrace
trace source.
rxParams | RX signalling parameters |
receiverAddress | receiver address |
destinationAddress | packet destination address |
interference | interference power (in W) |
sinr | composite SINR (in linear unit) |
Definition at line 84 of file satellite-phy-rx-carrier.h.
typedef void(* ns3::SatPhyRxCarrier::LinkSinrTraceCallback) (double sinr, const Address &utAddress) |
Callback signature for LinkSinrTrace
trace source.
sinr | link-specific SINR (in dB) |
utAddress | the MAC48 address of the corresponding UT. |
Definition at line 102 of file satellite-phy-rx-carrier.h.
typedef void(* ns3::SatPhyRxCarrier::PhyRxCollisionCallback) (uint32_t nPackets, const Address &utAddress, bool isCollided) |
Common callback signature for trace sources related to packets reception by PHY and its collision.
nPackets | number of packets in the received packet burst. |
utAddress | the MAC48 address of the corresponding UT. |
isCollided | whether a collision has occurred. |
Definition at line 120 of file satellite-phy-rx-carrier.h.
typedef void(* ns3::SatPhyRxCarrier::PhyRxErrorCallback) (uint32_t nPackets, const Address &utAddress, bool isError) |
Common callback signature for trace sources related to packets reception by PHY and its error.
nPackets | number of upper layer packets in the received packet burst. |
utAddress | the MAC48 address of the corresponding UT. |
isError | whether a PHY error has occurred. |
Definition at line 111 of file satellite-phy-rx-carrier.h.
typedef void(* ns3::SatPhyRxCarrier::RxPowerTraceCallback) (double rxPower, const Address &utAddress) |
Callback signature for RxPowerTrace
trace source.
rxPower | received signal power (in dbW) |
utAddress | the MAC48 address of the corresponding UT. |
Definition at line 95 of file satellite-phy-rx-carrier.h.
Possible carrier types.
Enumerator | |
---|---|
BASE | |
DEDICATED_ACCESS | |
RA_SLOTTED_ALOHA | |
RA_CRDSA | |
RA_ESSA |
Definition at line 153 of file satellite-phy-rx-carrier.h.
ns3::SatPhyRxCarrier::SatPhyRxCarrier | ( | uint32_t | carrierId, |
Ptr< SatPhyRxCarrierConf > | carrierConf, | ||
Ptr< SatWaveformConf > | waveformConf, | ||
bool | isRandomAccessEnabled | ||
) |
Constructor.
carrierId | |
carrierConf | |
waveformConf | |
isRandomAccessEnabled |
Uniform random variable used for checking whether a packet was received successfully or not
Definition at line 59 of file satellite-phy-rx-carrier.cc.
References ns3::SatConstVariables::BOLTZMANN_CONSTANT, DoCreateInterferenceEliminationModel(), DoCreateInterferenceModel(), ns3::SatEnums::EFFECTIVE_BANDWIDTH, ns3::SatPhyRxCarrierConf::EM_AVI, GetChannelType(), ns3::SatEnums::GetChannelTypeName(), m_additionalInterferenceCallback, m_carrierId, m_channelEstimationError, m_constantErrorRate, m_errorModel, m_linkResults, m_rxAciIfPowerW, m_rxBandwidthHz, m_rxExtNoisePowerW, m_rxNoisePowerW, m_rxTemperatureK, m_uniformVariable, SetChannelType(), and SetLinkRegenerationMode().
|
virtual |
Destructor.
Definition at line 203 of file satellite-phy-rx-carrier.cc.
|
virtual |
Function for initializing the frame/window end scheduling.
Reimplemented in ns3::SatPhyRxCarrierPerWindow, ns3::SatPhyRxCarrierPerSlot, and ns3::SatPhyRxCarrierPerFrame.
Definition at line 209 of file satellite-phy-rx-carrier.cc.
|
protected |
Function for calculating the composite SINR.
sinr1 | SINR 1 |
sinr2 | SINR 2 |
Definition at line 676 of file satellite-phy-rx-carrier.cc.
Referenced by ns3::SatPhyRxCarrierPerFrame::CalculatePacketCompositeSinr(), ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
Function for calculating the SINR.
rxPowerW | Rx power in Watts |
ifPowerW | Interference power in Watts |
rxNoisePowerW | Rx noise power in Watts |
rxAciIfPowerW | Rx ACI power in Watts |
rxExtNoisePowerW | Rx external noise power in Watts |
otherInterference | Additional interference to compute final SINR |
Definition at line 629 of file satellite-phy-rx-carrier.cc.
Referenced by ns3::SatPhyRxCarrierPerFrame::CalculatePacketCompositeSinr(), ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierUplink::EndRxData(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
Calculate final SINR with PHY specific parameters and given calculated SINR.
Additional interference value is added.
sinr | Calculated SINR |
otherInterference | Interference to add to the sinr |
Definition at line 656 of file satellite-phy-rx-carrier.cc.
|
protected |
Function for changing the receiver state.
newState | New state |
Definition at line 300 of file satellite-phy-rx-carrier.cc.
References m_state.
Referenced by DecreaseNumOfRxState(), and IncreaseNumOfRxState().
|
protected |
Function for checking the SINR against the link results.
cSinr | composite SINR |
rxParams | Rx parameters |
Initialize with no errors
No errors i.e. error = false;
Definition at line 484 of file satellite-phy-rx-carrier.cc.
References CheckAgainstLinkResultsErrorModelAvi(), ns3::SatPhyRxCarrierConf::EM_AVI, ns3::SatPhyRxCarrierConf::EM_CONSTANT, ns3::SatPhyRxCarrierConf::EM_NONE, GetUniformRandomValue(), m_constantErrorRate, and m_errorModel.
Referenced by ns3::SatPhyRxCarrierMarsala::PerformMarsala(), ns3::SatPhyRxCarrierPerFrame::ProcessReceivedCrdsaPacket(), ns3::SatPhyRxCarrierPerSlot::ProcessSlottedAlohaCollisions(), ns3::SatPhyRxCarrierPerWindow::ProcessWindow(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
private |
Function for checking the SINR against the link results.
cSinr | composite SINR |
rxParams | Rx parameters |
In forward link the link results are in Es/No format, thus here we need to convert the SINR into Es/No:
C/No = C/N * fs Es/No = C/N * B/fs = (C/No / fs) * B/fs Es/No = (C*Ts)/No = C/No * (1/fs) = C/N
where C/No = carrier to noise density C/N = signal to noise ratio (= SINR in the simulator) Es/No = energy per symbol per noise density B = channel bandwidth in Hz fs = symbol rate in baud
In return link the link results are in Eb/No format, thus here we need to convert the SINR into Eb/No: Eb/No = C/N * B/fb = (C/No / fs) * B/fb Eb/No = (Es/log2M)/No = (Es/No)*(1/log2M) = C/N * (1/log2M) = C/No * (1/fs) * (1/log2M)
where C/No = carrier to noise density C/N = signal to noise ratio (= SINR in the simulator) Es/No = energy per symbol per noise density Eb/No = energy per bit per noise density B = channel bandwidth in Hz fs = symbol rate in baud fb = channel bitrate (after FEC) in bps (i.e. burst payloadInBits / burstDurationInSec)
Definition at line 518 of file satellite-phy-rx-carrier.cc.
References ns3::SatEnums::FORWARD_FEEDER_CH, ns3::SatEnums::FORWARD_USER_CH, GetChannelType(), ns3::SatUtils::GetCodingRate(), GetLinkResults(), ns3::SatUtils::GetModulatedBits(), GetUniformRandomValue(), ns3::SatUtils::LinearToDb(), m_linkRegenerationMode, ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::RETURN_FEEDER_CH, ns3::SatEnums::RETURN_USER_CH, and ns3::SatEnums::UNKNOWN_CH.
Referenced by CheckAgainstLinkResults().
|
protected |
Function for checking the Rx state sanity.
Definition at line 751 of file satellite-phy-rx-carrier.cc.
References IDLE, m_numOfOngoingRx, m_state, and RX.
Referenced by DecreaseNumOfRxState(), and IncreaseNumOfRxState().
|
protectedpure virtual |
Create an interference event based on Rx parameters and address.
Implemented by child classes.
Implemented in ns3::SatPhyRxCarrierUplink, and ns3::SatPhyRxCarrierPerSlot.
Referenced by StartRx().
|
protected |
Function for decreasing the number of ongoing transmissions.
packetType | Packet type of the ongoing transmission |
Definition at line 728 of file satellite-phy-rx-carrier.cc.
References ChangeState(), CheckRxStateSanity(), IDLE, m_numOfOngoingRx, m_receivingDedicatedAccess, and ns3::SatEnums::PACKET_TYPE_DEDICATED_ACCESS.
Referenced by ns3::SatPhyRxCarrierPerSlot::EndRxData(), and ns3::SatPhyRxCarrierUplink::EndRxData().
|
protected |
Function for composite SINR output tracing.
cSinr | composite SINR |
Definition at line 470 of file satellite-phy-rx-carrier.cc.
References GetChannelType(), and GetOwnAddress().
Referenced by ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protectedvirtual |
Create an interference cancelation model for this carrier.
carrierConf | |
carrierId | |
frameConf |
Definition at line 177 of file satellite-phy-rx-carrier.cc.
References m_randomAccessEnabled, m_satInterferenceElimination, ns3::SatPhyRxCarrierConf::SIC_PERFECT, and ns3::SatPhyRxCarrierConf::SIC_RESIDUAL.
Referenced by SatPhyRxCarrier().
|
protectedvirtual |
Create an interference model for this carrier.
carrierConf | |
carrierId | |
rxBandwidthHz | |
randomAccessEnabled |
Definition at line 127 of file satellite-phy-rx-carrier.cc.
References GetChannelType(), ns3::SatPhyRxCarrierConf::IF_CONSTANT, ns3::SatPhyRxCarrierConf::IF_PER_FRAGMENT, ns3::SatPhyRxCarrierConf::IF_PER_PACKET, ns3::SatPhyRxCarrierConf::IF_TRACE, m_randomAccessEnabled, and m_satInterference.
Referenced by SatPhyRxCarrier().
|
protectedvirtual |
Dispose.
Reimplemented in ns3::SatPhyRxCarrierPerWindow, ns3::SatPhyRxCarrierPerSlot, and ns3::SatPhyRxCarrierPerFrame.
Definition at line 252 of file satellite-phy-rx-carrier.cc.
References m_additionalInterferenceCallback, m_avgNormalizedOfferedLoadCallback, m_cnoCallback, m_rxCallback, m_satInterference, m_satInterferenceElimination, and m_uniformVariable.
Referenced by ns3::SatPhyRxCarrierPerSlot::DoDispose().
|
protectedpure virtual |
Function for ending the packet reception from the SatChannel.
key | Key for Rx params map |
Implemented in ns3::SatPhyRxCarrierUplink, and ns3::SatPhyRxCarrierPerSlot.
Referenced by StartRx().
|
inline |
Get ID the ID of the beam this carrier is attached to.
Definition at line 205 of file satellite-phy-rx-carrier.h.
References m_beamId.
Referenced by ns3::SatPhyRxCarrierPerSlot::CreateInterference(), ns3::SatPhyRxCarrierPerFrame::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerSlot::ReceiveSlot(), and StartRx().
|
inlineprotected |
Get the ID of the carrier.
Definition at line 529 of file satellite-phy-rx-carrier.h.
References m_carrierId.
Referenced by ns3::SatPhyRxCarrierPerFrame::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
inlinevirtual |
Method for querying the type of the carrier.
Reimplemented in ns3::SatPhyRxCarrierUplink, ns3::SatPhyRxCarrierPerWindow, ns3::SatPhyRxCarrierPerSlot, and ns3::SatPhyRxCarrierPerFrame.
Definition at line 226 of file satellite-phy-rx-carrier.h.
References BASE.
|
inlineprotected |
Get a pointer to the channel estimation error container of the carrier.
Definition at line 557 of file satellite-phy-rx-carrier.h.
References m_channelEstimationError.
Referenced by ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
inlineprotectedvirtual |
Get the channel type.
Base class has undefined channel type, while child classes have can have other channel types.
Definition at line 394 of file satellite-phy-rx-carrier.h.
References m_channelType.
Referenced by SatPhyRxCarrier(), CheckAgainstLinkResultsErrorModelAvi(), ns3::SatPhyRxCarrierPerSlot::CreateInterference(), DoCompositeSinrOutputTrace(), DoCreateInterferenceModel(), ns3::SatPhyRxCarrierUplink::EndRxData(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerSlot::ReceiveSlot(), and StartRx().
|
inlineprotectedvirtual |
Get the default receive mode for the carrier.
In satellite nodes, this will be overrided to always receive packets.
Reimplemented in ns3::SatPhyRxCarrierUplink.
Definition at line 271 of file satellite-phy-rx-carrier.h.
Referenced by GetReceiveParams().
|
inlineprotected |
Get pointer to the current interference elimination model.
Definition at line 298 of file satellite-phy-rx-carrier.h.
References m_satInterferenceElimination.
Referenced by ns3::SatPhyRxCarrierPerWindow::DoSic(), ns3::SatPhyRxCarrierPerFrame::EliminateInterference(), and ns3::SatPhyRxCarrierPerWindow::EliminatePreviousInterferences().
|
inlineprotected |
Get pointer to the current interference model.
Definition at line 289 of file satellite-phy-rx-carrier.h.
References m_satInterference.
Referenced by ns3::SatPhyRxCarrierPerSlot::CreateInterference(), ns3::SatPhyRxCarrierUplink::CreateInterference(), ns3::SatPhyRxCarrierPerSlot::EndRxData(), ns3::SatPhyRxCarrierUplink::EndRxData(), ns3::SatPhyRxCarrierPerSlot::ProcessSlottedAlohaCollisions(), ns3::SatPhyRxCarrierPerFrame::ReceiveSlot(), ns3::SatPhyRxCarrierPerSlot::ReceiveSlot(), and StartRx().
|
inlineprotectedvirtual |
Get the link regeneration mode.
Definition at line 412 of file satellite-phy-rx-carrier.h.
References m_linkRegenerationMode.
Referenced by ns3::SatPhyRxCarrierPerFrame::CalculatePacketCompositeSinr(), ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierPerSlot::CreateInterference(), ns3::SatPhyRxCarrierPerSlot::EndRxData(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
inlineprotected |
Get pointer to the link results given by the carrier creation configuration.
Definition at line 539 of file satellite-phy-rx-carrier.h.
References m_linkResults.
Referenced by CheckAgainstLinkResultsErrorModelAvi(), and ns3::SatPhyRxCarrierPerWindow::GetEffectiveSnir().
|
inlineprotected |
Get the satellite node info.
Definition at line 357 of file satellite-phy-rx-carrier.h.
References m_nodeInfo.
Referenced by ns3::SatPhyRxCarrierPerFrame::BeginEndScheduling(), ns3::SatPhyRxCarrierPerWindow::BeginEndScheduling(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
inlineprotected |
Get the MAC address of the carrier.
Definition at line 348 of file satellite-phy-rx-carrier.h.
References m_ownAddress.
Referenced by ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierPerSlot::CreateInterference(), DoCompositeSinrOutputTrace(), ns3::SatPhyRxCarrierPerFrame::DoFrameEnd(), ns3::SatPhyRxCarrierUplink::EndRxData(), GetReceiveParams(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
Rx parameter storage methods.
Get receive parameters from signal parameters.
rxParams | SatSignalParameters |
Definition at line 308 of file satellite-phy-rx-carrier.cc.
References ns3::SatPhyRxCarrier::rxParams_s::destAddress, ns3::SatPhyRxCarrier::rxParams_s::finalDestAddress, ns3::SatPhyRxCarrier::rxParams_s::finalSourceAddress, ns3::SatEnums::FORWARD_FEEDER_CH, GetDefaultReceiveMode(), ns3::SatMacTag::GetDestAddress(), ns3::SatAddressE2ETag::GetE2EDestAddress(), ns3::SatAddressE2ETag::GetE2ESourceAddress(), GetOwnAddress(), ns3::SatMacTag::GetSourceAddress(), m_linkRegenerationMode, ns3::SatEnums::REGENERATION_PHY, ns3::SatEnums::RETURN_USER_CH, ns3::SatPhyRxCarrier::rxParams_s::rxParams, and ns3::SatPhyRxCarrier::rxParams_s::sourceAddress.
Referenced by StartRx().
|
inline |
Method for querying the temperature of the carrier.
Definition at line 260 of file satellite-phy-rx-carrier.h.
References m_rxTemperatureK.
|
inline |
Get ID the ID of the satellite this carrier is attached to.
Definition at line 187 of file satellite-phy-rx-carrier.h.
References m_satId.
Referenced by ns3::SatPhyRxCarrierPerFrame::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
inlineprotected |
Get the state of the carrier.
Definition at line 436 of file satellite-phy-rx-carrier.h.
References m_state.
Referenced by ns3::SatPhyRxCarrierPerSlot::EndRxData(), and ns3::SatPhyRxCarrierUplink::EndRxData().
|
inlineprotected |
Get stored rxParams under a key.
Definition at line 327 of file satellite-phy-rx-carrier.h.
References m_rxParamsMap.
Referenced by ns3::SatPhyRxCarrierPerSlot::EndRxData(), and ns3::SatPhyRxCarrierUplink::EndRxData().
|
static |
Function for gettign the NS-3 type ID.
Definition at line 214 of file satellite-phy-rx-carrier.cc.
References m_daRxCarrierIdTrace, m_daRxTrace, m_enableCompositeSinrOutputTrace, m_linkBudgetTrace, m_linkSinrTrace, m_rxPowerTrace, and m_sinrTrace.
|
inlineprotected |
A helper method for getting values form a uniform random variable in child classes.
min | Minimum value |
max | Maximum value |
Definition at line 576 of file satellite-phy-rx-carrier.h.
References m_uniformVariable.
Referenced by CheckAgainstLinkResults(), CheckAgainstLinkResultsErrorModelAvi(), and ns3::SatPhyRxCarrierPerSlot::ProcessSlottedAlohaCollisions().
|
inlineprotected |
Get pointer to the waveform configuration.
Definition at line 548 of file satellite-phy-rx-carrier.h.
References m_waveformConf.
Referenced by ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), and ns3::SatPhyRxCarrierPerWindow::GetWindowBounds().
|
protected |
Function for calculating the worst sinr between uplink and downlink.
sinr1 | SINR 1 |
sinr2 | SINR 2 |
Definition at line 694 of file satellite-phy-rx-carrier.cc.
Referenced by ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
Function for increasing the number of ongoing transmissions.
packetType | Packet type of the ongoing transmission |
Definition at line 712 of file satellite-phy-rx-carrier.cc.
References ChangeState(), CheckRxStateSanity(), m_numOfOngoingRx, m_receivingDedicatedAccess, ns3::SatEnums::PACKET_TYPE_DEDICATED_ACCESS, and RX.
Referenced by StartRx().
|
inlineprotected |
Check if composite SINR output trace is enabled.
Definition at line 565 of file satellite-phy-rx-carrier.h.
References m_enableCompositeSinrOutputTrace.
Referenced by ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
inlineprotected |
Check if the carrier is receiving a dedicated access packet.
Definition at line 280 of file satellite-phy-rx-carrier.h.
References m_receivingDedicatedAccess.
Referenced by StartRx().
|
inlineprotected |
Remove stored rxParams under a key.
Definition at line 339 of file satellite-phy-rx-carrier.h.
References m_rxParamsMap.
Referenced by ns3::SatPhyRxCarrierPerSlot::EndRxData(), and ns3::SatPhyRxCarrierUplink::EndRxData().
void ns3::SatPhyRxCarrier::SetAverageNormalizedOfferedLoadCallback | ( | SatPhyRx::AverageNormalizedOfferedLoadCallback | callback | ) |
Function for setting the AverageNormalizedOfferedLoadCallback callback.
callback | callback |
Definition at line 767 of file satellite-phy-rx-carrier.cc.
References m_avgNormalizedOfferedLoadCallback.
|
inline |
Function for setting the beam id for all the transmissions from this SatPhyTx.
beamId | the Beam Identifier |
Definition at line 196 of file satellite-phy-rx-carrier.h.
References m_beamId.
|
inlineprotected |
Set the channel type for the carrier.
channelType | Channel type. |
Definition at line 403 of file satellite-phy-rx-carrier.h.
References m_channelType.
Referenced by SatPhyRxCarrier().
void ns3::SatPhyRxCarrier::SetCnoCb | ( | SatPhyRx::CnoCallback | cb | ) |
Function for settign the C/NO callback.
cb | callback |
Definition at line 293 of file satellite-phy-rx-carrier.cc.
References m_cnoCallback.
|
inlineprotected |
Set the link regeneration mode.
linkRegenerationMode | Link regeneration mode |
Definition at line 421 of file satellite-phy-rx-carrier.h.
References m_linkRegenerationMode.
Referenced by SatPhyRxCarrier().
void ns3::SatPhyRxCarrier::SetNodeInfo | ( | const Ptr< SatNodeInfo > | nodeInfo | ) |
Function for setting the node info class.
nodeInfo | Node information related to this SatPhyRxCarrier |
Definition at line 620 of file satellite-phy-rx-carrier.cc.
References m_nodeInfo, and m_ownAddress.
void ns3::SatPhyRxCarrier::SetPhy | ( | Ptr< SatPhy > | phy | ) |
Function for setting the SatPhy module.
phy | PHY module |
void ns3::SatPhyRxCarrier::SetReceiveCb | ( | SatPhyRx::ReceiveCallback | cb | ) |
Function for setting the receive callback.
cb | callback |
Definition at line 286 of file satellite-phy-rx-carrier.cc.
References m_rxCallback.
|
inline |
Function for setting the satellite id for all the transmissions from this SatPhyTx.
beamId | the satellite Identifier |
Definition at line 178 of file satellite-phy-rx-carrier.h.
References m_satId.
|
virtual |
Function for starting packet reception from the SatChannel.
rxParams | The needed parameters for the received signal |
Reimplemented in ns3::SatPhyRxCarrierUplink.
Definition at line 375 of file satellite-phy-rx-carrier.cc.
References CreateInterference(), EndRxData(), ns3::SatPhyRxCarrier::rxParams_s::finalDestAddress, ns3::SatPhyRxCarrier::rxParams_s::finalSourceAddress, ns3::SatEnums::FORWARD_FEEDER_CH, ns3::SatEnums::FORWARD_USER_CH, GetBeamId(), GetChannelType(), ns3::SatEnums::GetChannelTypeName(), GetInterferenceModel(), GetReceiveParams(), IDLE, IncreaseNumOfRxState(), ns3::SatPhyRxCarrier::rxParams_s::interferenceEvent, IsReceivingDedicatedAccess(), ns3::SatUtils::LinearToDb(), m_carrierId, m_linkRegenerationMode, m_nodeInfo, m_rxPacketCounter, m_rxPowerTrace, m_state, ns3::SatEnums::PACKET_TYPE_DEDICATED_ACCESS, ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::RETURN_FEEDER_CH, ns3::SatEnums::RETURN_USER_CH, RX, ns3::SatPhyRxCarrier::rxParams_s::sourceAddress, and StoreRxParams().
Referenced by ns3::SatPhyRxCarrierUplink::StartRx().
|
inlineprotected |
Store rxParams under a key.
Definition at line 333 of file satellite-phy-rx-carrier.h.
References m_rxParamsMap.
Referenced by StartRx().
|
protected |
Callback to get additional interference.
Definition at line 666 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), ns3::SatPhyRxCarrierPerFrame::CalculatePacketCompositeSinr(), ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), DoDispose(), ns3::SatPhyRxCarrierUplink::EndRxData(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), ns3::SatPhyRxCarrierPerFrame::ProcessReceivedCrdsaPacket(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
Average normalized offered load callback.
Definition at line 681 of file satellite-phy-rx-carrier.h.
Referenced by DoDispose(), ns3::SatPhyRxCarrierPerFrame::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), and SetAverageNormalizedOfferedLoadCallback().
|
private |
Definition at line 694 of file satellite-phy-rx-carrier.h.
Referenced by GetBeamId(), and SetBeamId().
|
private |
Definition at line 695 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), GetCarrierId(), and StartRx().
|
private |
Channel estimation error container.
Definition at line 724 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and GetChannelEstimationErrorContainer().
|
private |
Definition at line 714 of file satellite-phy-rx-carrier.h.
Referenced by GetChannelType(), and SetChannelType().
|
protected |
The upper layer C/N0 receive callback.
Definition at line 676 of file satellite-phy-rx-carrier.h.
Referenced by DoDispose(), ns3::SatPhyRxCarrierPerSlot::ReceiveSlot(), and SetCnoCb().
|
private |
Definition at line 719 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and CheckAgainstLinkResults().
|
protected |
Definition at line 661 of file satellite-phy-rx-carrier.h.
Referenced by GetTypeId(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
DaRx
trace source.
Fired when a packet burst is received through Dedicated Channel.
Contains the following information:
Definition at line 659 of file satellite-phy-rx-carrier.h.
Referenced by ns3::SatPhyRxCarrierPerWindow::CleanOldPackets(), GetTypeId(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
private |
Definition at line 699 of file satellite-phy-rx-carrier.h.
Referenced by GetTypeId(), and IsCompositeSinrOutputTraceEnabled().
|
private |
Definition at line 718 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and CheckAgainstLinkResults().
|
protected |
The trace source on packet receptiong.
Definition at line 624 of file satellite-phy-rx-carrier.h.
Referenced by ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierPerFrame::DoFrameEnd(), ns3::SatPhyRxCarrierUplink::EndRxData(), GetTypeId(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
Link regeneration mode.
Definition at line 610 of file satellite-phy-rx-carrier.h.
Referenced by CheckAgainstLinkResultsErrorModelAvi(), ns3::SatPhyRxCarrierPerWindow::DoSic(), ns3::SatPhyRxCarrierPerFrame::EliminateInterference(), ns3::SatPhyRxCarrierPerWindow::EliminatePreviousInterferences(), GetLinkRegenerationMode(), GetReceiveParams(), SetLinkRegenerationMode(), and StartRx().
|
private |
Definition at line 715 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and GetLinkResults().
|
protected |
A callback for link specific SINR in dB.
Definition at line 645 of file satellite-phy-rx-carrier.h.
Referenced by ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierUplink::EndRxData(), GetTypeId(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), ns3::SatPhyRxCarrierPerFrame::ProcessReceivedCrdsaPacket(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
private |
Definition at line 713 of file satellite-phy-rx-carrier.h.
Referenced by GetNodeInfo(), SetNodeInfo(), and StartRx().
|
private |
Contains information about how many ongoing Rx events there are.
Definition at line 704 of file satellite-phy-rx-carrier.h.
Referenced by CheckRxStateSanity(), DecreaseNumOfRxState(), and IncreaseNumOfRxState().
|
private |
Definition at line 712 of file satellite-phy-rx-carrier.h.
Referenced by GetOwnAddress(), and SetNodeInfo().
|
protected |
Is random access enabled for this carrier.
Definition at line 458 of file satellite-phy-rx-carrier.h.
Referenced by ns3::SatPhyRxCarrierPerFrame::SatPhyRxCarrierPerFrame(), ns3::SatPhyRxCarrierPerWindow::SatPhyRxCarrierPerWindow(), DoCreateInterferenceEliminationModel(), DoCreateInterferenceModel(), and ns3::SatPhyRxCarrierPerSlot::GetCarrierType().
|
private |
Definition at line 696 of file satellite-phy-rx-carrier.h.
Referenced by DecreaseNumOfRxState(), IncreaseNumOfRxState(), and IsReceivingDedicatedAccess().
|
protected |
RX Adjacent channel interference.
Definition at line 605 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), ns3::SatPhyRxCarrierPerFrame::CalculatePacketCompositeSinr(), ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierUplink::EndRxData(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
RX Bandwidth in Hz.
Definition at line 590 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), ns3::SatPhyRxCarrierPerFrame::CalculateNormalizedOfferedRandomAccessLoad(), ns3::SatPhyRxCarrierPerWindow::CalculateNormalizedOfferedRandomAccessLoad(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
The upper layer package receive callback.
Definition at line 671 of file satellite-phy-rx-carrier.h.
Referenced by DoDispose(), ns3::SatPhyRxCarrierPerFrame::DoFrameEnd(), ns3::SatPhyRxCarrierPerWindow::ProcessWindow(), ns3::SatPhyRxCarrierPerSlot::ReceiveSlot(), SetReceiveCb(), and ns3::SatPhyRxCarrierUplink::StartRx().
|
protected |
External noise power system RX noise.
Definition at line 595 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), ns3::SatPhyRxCarrierPerFrame::CalculatePacketCompositeSinr(), ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierUplink::EndRxData(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
protected |
RX noise.
Definition at line 600 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), ns3::SatPhyRxCarrierPerFrame::CalculatePacketCompositeSinr(), ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierUplink::EndRxData(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
private |
Running counter for received packets.
Definition at line 709 of file satellite-phy-rx-carrier.h.
Referenced by StartRx().
|
private |
Definition at line 711 of file satellite-phy-rx-carrier.h.
Referenced by GetStoredRxParams(), RemoveStoredRxParams(), and StoreRxParams().
|
protected |
A callback for received signal power in dBW.
Definition at line 630 of file satellite-phy-rx-carrier.h.
Referenced by GetTypeId(), and StartRx().
|
protected |
RX noise temperature in K.
Definition at line 585 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and GetRxTemperatureK().
|
private |
Definition at line 693 of file satellite-phy-rx-carrier.h.
Referenced by GetSatId(), and SetSatId().
|
private |
Definition at line 697 of file satellite-phy-rx-carrier.h.
Referenced by DoCreateInterferenceModel(), DoDispose(), and GetInterferenceModel().
|
private |
Definition at line 698 of file satellite-phy-rx-carrier.h.
Referenced by DoCreateInterferenceEliminationModel(), DoDispose(), and GetInterferenceEliminationModel().
|
protected |
A callback for transmission composite SINR at UT (BBFrame) or GW (time slot).
The first argument is the SINR in dB. The second argument is the address of the node where the signal originates from.
Definition at line 639 of file satellite-phy-rx-carrier.h.
Referenced by ns3::SatPhyRxCarrierPerFrame::DoFrameEnd(), GetTypeId(), ns3::SatPhyRxCarrierPerWindow::ProcessWindow(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
private |
Definition at line 692 of file satellite-phy-rx-carrier.h.
Referenced by ChangeState(), CheckRxStateSanity(), GetState(), and StartRx().
|
private |
Definition at line 717 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), DoDispose(), and GetUniformRandomValue().
|
private |
Definition at line 716 of file satellite-phy-rx-carrier.h.
Referenced by GetWaveformConf().