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 62 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 86 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 104 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 122 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 113 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 97 of file satellite-phy-rx-carrier.h.
Possible carrier types.
Enumerator | |
---|---|
BASE | |
DEDICATED_ACCESS | |
RA_SLOTTED_ALOHA | |
RA_CRDSA | |
RA_ESSA |
Definition at line 155 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 60 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 204 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 210 of file satellite-phy-rx-carrier.cc.
|
protected |
Function for calculating the composite SINR.
sinr1 | SINR 1 |
sinr2 | SINR 2 |
Definition at line 678 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 631 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 658 of file satellite-phy-rx-carrier.cc.
|
protected |
Function for changing the receiver state.
newState | New state |
Definition at line 301 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 486 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 520 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 753 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 730 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 472 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 178 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 128 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 253 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 207 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 531 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 228 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 559 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 396 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 273 of file satellite-phy-rx-carrier.h.
Referenced by GetReceiveParams().
|
inlineprotected |
Get pointer to the current interference elimination model.
Definition at line 300 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 291 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 414 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 541 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 359 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 350 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 309 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 262 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 189 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 438 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 329 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 215 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 578 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 550 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 696 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 714 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 567 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 282 of file satellite-phy-rx-carrier.h.
References m_receivingDedicatedAccess.
Referenced by StartRx().
|
inlineprotected |
Remove stored rxParams under a key.
Definition at line 341 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 769 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 198 of file satellite-phy-rx-carrier.h.
References m_beamId.
|
inlineprotected |
Set the channel type for the carrier.
channelType | Channel type. |
Definition at line 405 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 294 of file satellite-phy-rx-carrier.cc.
References m_cnoCallback.
|
inlineprotected |
Set the link regeneration mode.
linkRegenerationMode | Link regeneration mode |
Definition at line 423 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 622 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 287 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 180 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 376 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 335 of file satellite-phy-rx-carrier.h.
References m_rxParamsMap.
Referenced by StartRx().
|
protected |
Callback to get additional interference.
Definition at line 668 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 683 of file satellite-phy-rx-carrier.h.
Referenced by DoDispose(), ns3::SatPhyRxCarrierPerFrame::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), and SetAverageNormalizedOfferedLoadCallback().
|
private |
Definition at line 696 of file satellite-phy-rx-carrier.h.
Referenced by GetBeamId(), and SetBeamId().
|
private |
Definition at line 697 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), GetCarrierId(), and StartRx().
|
private |
Channel estimation error container.
Definition at line 726 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and GetChannelEstimationErrorContainer().
|
private |
Definition at line 716 of file satellite-phy-rx-carrier.h.
Referenced by GetChannelType(), and SetChannelType().
|
protected |
The upper layer C/N0 receive callback.
Definition at line 678 of file satellite-phy-rx-carrier.h.
Referenced by DoDispose(), ns3::SatPhyRxCarrierPerSlot::ReceiveSlot(), and SetCnoCb().
|
private |
Definition at line 721 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and CheckAgainstLinkResults().
|
protected |
Definition at line 663 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 661 of file satellite-phy-rx-carrier.h.
Referenced by ns3::SatPhyRxCarrierPerWindow::CleanOldPackets(), GetTypeId(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
private |
Definition at line 701 of file satellite-phy-rx-carrier.h.
Referenced by GetTypeId(), and IsCompositeSinrOutputTraceEnabled().
|
private |
Definition at line 720 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and CheckAgainstLinkResults().
|
protected |
The trace source on packet receptiong.
Definition at line 626 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 612 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 717 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and GetLinkResults().
|
protected |
A callback for link specific SINR in dB.
Definition at line 647 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 715 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 706 of file satellite-phy-rx-carrier.h.
Referenced by CheckRxStateSanity(), DecreaseNumOfRxState(), and IncreaseNumOfRxState().
|
private |
Definition at line 714 of file satellite-phy-rx-carrier.h.
Referenced by GetOwnAddress(), and SetNodeInfo().
|
protected |
Is random access enabled for this carrier.
Definition at line 460 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 698 of file satellite-phy-rx-carrier.h.
Referenced by DecreaseNumOfRxState(), IncreaseNumOfRxState(), and IsReceivingDedicatedAccess().
|
protected |
RX Adjacent channel interference.
Definition at line 607 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 592 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 673 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 597 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 602 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 711 of file satellite-phy-rx-carrier.h.
Referenced by StartRx().
|
private |
Definition at line 713 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 632 of file satellite-phy-rx-carrier.h.
Referenced by GetTypeId(), and StartRx().
|
protected |
RX noise temperature in K.
Definition at line 587 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), and GetRxTemperatureK().
|
private |
Definition at line 695 of file satellite-phy-rx-carrier.h.
Referenced by GetSatId(), and SetSatId().
|
private |
Definition at line 699 of file satellite-phy-rx-carrier.h.
Referenced by DoCreateInterferenceModel(), DoDispose(), and GetInterferenceModel().
|
private |
Definition at line 700 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 641 of file satellite-phy-rx-carrier.h.
Referenced by ns3::SatPhyRxCarrierPerFrame::DoFrameEnd(), GetTypeId(), ns3::SatPhyRxCarrierPerWindow::ProcessWindow(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().
|
private |
Definition at line 694 of file satellite-phy-rx-carrier.h.
Referenced by ChangeState(), CheckRxStateSanity(), GetState(), and StartRx().
|
private |
Definition at line 719 of file satellite-phy-rx-carrier.h.
Referenced by SatPhyRxCarrier(), DoDispose(), and GetUniformRandomValue().
|
private |
Definition at line 718 of file satellite-phy-rx-carrier.h.
Referenced by GetWaveformConf().