|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
27 #include <ns3/spectrum-phy.h>
28 #include <ns3/traced-callback.h>
29 #include <ns3/traced-value.h>
30 #include <ns3/event-id.h>
36 class LrWpanErrorModel;
37 struct LrWpanSpectrumSignalParameters;
39 class SpectrumChannel;
43 class UniformRandomVariable;
122 namespace TracedValueCallback
TracedValue< LrWpanPhyEnumeration > m_trxState
The current transceiver state.
a unique identifier for an interface.
static TypeId GetTypeId(void)
Get the type ID.
@ IEEE_802_15_4_2_4GHZ_OQPSK
void EndCca(void)
Called at the end of the CCA.
IEEE802.15.4-2006 PHY PIB Attributes Table 23 in section 6.4.2.
@ IEEE_802_15_4_PHY_INVALID_PARAMETER
bool ChannelSupported(uint8_t channel)
Check if the given channel is supported by the PHY.
Callback< void, LrWpanPhyEnumeration, LrWpanPibAttributeIdentifier > PlmeSetAttributeConfirmCallback
This method implements the PD SAP: PlmeSetAttributeConfirm.
An identifier for simulation events.
Ptr< MobilityModel > GetMobility(void) const
Get the associated MobilityModel instance.
void EndSetTRXState(void)
Called after applying a deferred transceiver state switch.
LrWpanEdPower m_edPower
Helper value for tracking the average power during ED.
void SetDevice(Ptr< NetDevice > d)
Set the associated NetDevice instance.
@ IEEE_802_15_4_915MHZ_BPSK
Time lastUpdate
Last update time.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Callback< void, uint32_t, Ptr< Packet >, uint8_t > PdDataIndicationCallback
This method implements the PD SAP: PdDataIndication.
Ptr< SpectrumValue > m_txPsd
The transmit power spectral density.
TracedCallback< Ptr< const Packet > > m_phyRxDropTrace
The trace source fired when the phy layer drops a packet it has received.
void PlmeSetAttributeRequest(LrWpanPibAttributeIdentifier id, LrWpanPhyPibAttributes *attribute)
IEEE 802.15.4-2006 section 6.2.2.9 PLME-SET.request Set attributes per definition from Table 23 in se...
void PlmeGetAttributeRequest(LrWpanPibAttributeIdentifier id)
IEEE 802.15.4-2006 section 6.2.2.5 PLME-GET.request Get attributes per definition from Table 23 in se...
uint32_t phyCurrentPage
Current channel page.
uint64_t GetPhySHRDuration(void) const
Get the duration of the SHR (preamble and SFD) in symbols, depending on the currently selected channe...
Callback< void, LrWpanPhyEnumeration, uint8_t > PlmeEdConfirmCallback
This method implements the PD SAP: PlmeEdConfirm.
uint32_t phyMaxFrameDuration
The maximum number of symbols in a frame.
Callback< void, LrWpanPhyEnumeration > PdDataConfirmCallback
This method implements the PD SAP: PdDataConfirm.
PlmeCcaConfirmCallback m_plmeCcaConfirmCallback
This callback is used to report CCA status to the MAC or CSMA/CA.
void PlmeSetTRXStateRequest(LrWpanPhyEnumeration state)
IEEE 802.15.4-2006 section 6.2.2.7 PLME-SET-TRX-STATE.request Set PHY state.
virtual Ptr< const SpectrumModel > GetRxSpectrumModel(void) const
int8_t GetNominalTxPowerFromPib(uint8_t phyTransmitPower)
Calculates the nominal transmit power of the device in decibels relative to 1 mW according to the rep...
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
Ptr< LrWpanErrorModel > m_errorModel
The error model describing the bit and packet error rates.
void SetChannel(Ptr< SpectrumChannel > c)
Set the channel attached to this device.
LrWpanPhyPibAttributes m_phyPIBAttributes
The current PHY PIB attributes.
Callback< void, LrWpanPhyEnumeration, LrWpanPibAttributeIdentifier, LrWpanPhyPibAttributes * > PlmeGetAttributeConfirmCallback
This method implements the PD SAP: PlmeGetAttributeConfirm.
double m_ccaPeakPower
Helper value for the peak power value during CCA.
double symbolRate
symbol rate
double GetPhySymbolsPerOctet(void) const
Get the number of symbols per octet, depending on the currently selected channel.
Ptr< AntennaModel > m_antenna
The antenna used by the transceiver.
void SetTxPowerSpectralDensity(Ptr< SpectrumValue > txPsd)
Set the Power Spectral Density of outgoing signals in W/Hz.
TracedCallback< Ptr< const Packet > > m_phyTxEndTrace
The trace source fired when a packet ends the transmission process on the medium.
void EndEd(void)
Called at the end of the ED procedure.
@ IEEE_802_15_4_PHY_SUCCESS
void ChangeTrxState(LrWpanPhyEnumeration newState)
Change the PHY state to the given new state, firing the state change trace.
double GetDataOrSymbolRate(bool isData)
implement PLME SetAttribute confirm SAP bit rate is in kbit/s.
@ IEEE_802_15_4_PHY_READ_ONLY
PlmeGetAttributeConfirmCallback m_plmeGetAttributeConfirmCallback
This callback is used to report requested attribute values back to the MAC.
@ IEEE_802_15_4_PHY_UNSUPPORTED_ATTRIBUTE
LrWpanPhy(void)
Default constructor.
uint8_t phyCCAMode
CCA mode.
double m_rxSensitivity
The receiver sensitivity.
Callback< void, LrWpanPhyEnumeration > PlmeSetTRXStateConfirmCallback
This method implements the PD SAP: PlmeSetTRXStateConfirm.
LrWpanPibAttributeIdentifier
IEEE802.15.4-2006 PHY PIB Attribute Identifiers Table 23 in section 6.4.2.
PlmeSetTRXStateConfirmCallback m_plmeSetTRXStateConfirmCallback
This callback is used to report transceiver state change status to the MAC.
uint8_t phyTransmitPower
2 MSB: tolerance on the transmit power, 6 LSB: Tx power in dBm relative to 1mW (signed int in 2-compl...
static const uint32_t aTurnaroundTime
The turnaround time for switching the transceiver from RX to TX or vice versa.
EventId m_ccaRequest
Scheduler event of a currently running CCA request.
static const LrWpanPhyDataAndSymbolRates dataSymbolRates[7]
The data and symbol rates for the different PHY options.
Ptr< SpectrumChannel > m_channel
The channel attached to this transceiver.
void SetPlmeGetAttributeConfirmCallback(PlmeGetAttributeConfirmCallback c)
set the callback for the end of an GetAttribute, as part of the interconnections betweenthe PHY and t...
@ IEEE_802_15_4_PHY_TRX_OFF
void SetPlmeSetAttributeConfirmCallback(PlmeSetAttributeConfirmCallback c)
set the callback for the end of an SetAttribute, as part of the interconnections betweenthe PHY and t...
void SetPlmeCcaConfirmCallback(PlmeCcaConfirmCallback c)
set the callback for the end of a CCA, as part of the interconnections betweenthe PHY and the MAC.
@ IEEE_802_15_4_868MHZ_ASK
TracedCallback< Ptr< const Packet >, double > m_phyRxEndTrace
The trace source fired when a packet ends the reception process from the medium.
Abstract base class for Spectrum-aware PHY layers.
Ptr< AntennaModel > GetRxAntenna(void) const
Get the AntennaModel used by the NetDevice for reception.
void(* StateTracedCallback)(Time time, LrWpanPhyEnumeration oldState, LrWpanPhyEnumeration newState)
TracedCallback signature for Trx state change events.
double phySymbolsPerOctet
The number of symbols per octet.
PlmeSetAttributeConfirmCallback m_plmeSetAttributeConfirmCallback
This callback is used to report attribute set results back to the MAC.
LrWpanPhyEnumeration
IEEE802.15.4-2006 PHY Emumerations Table 18 in section 6.2.3.
@ IEEE_802_15_4_PHY_TX_ON
Time m_rxLastUpdate
Timestamp of the last calculation of the PER of a packet currently received.
Ptr< const SpectrumValue > GetNoisePowerSpectralDensity(void)
Get the noise power spectral density.
@ IEEE_802_15_4_PHY_RX_ON
Ptr< NetDevice > GetDevice(void) const
Get the associated NetDevice instance.
This data structure provides the Bit rate and Symbol rate for a given channel See IEEE802....
void SetPlmeSetTRXStateConfirmCallback(PlmeSetTRXStateConfirmCallback c)
set the callback for the end of an SetTRXState, as part of the interconnections betweenthe PHY and th...
Simulation virtual time values and global simulation resolution.
void EndTx(void)
Finish the transmission of a frame.
Time CalculateTxTime(Ptr< const Packet > packet)
Calculate the time required for sending the given packet, including preamble, SFD and PHR.
TracedCallback< Ptr< const Packet > > m_phyTxDropTrace
The trace source fired when the phy layer drops a packet as it tries to transmit it.
TracedCallback< Time, LrWpanPhyEnumeration, LrWpanPhyEnumeration > m_trxStateLogger
The trace source fired when the phy layer changes the transceiver state.
@ IEEE_802_15_4_PHY_BUSY_TX
void PlmeCcaRequest(void)
IEEE 802.15.4-2006 section 6.2.2.1 PLME-CCA.request Perform a CCA per section 6.9....
void CancelEd(LrWpanPhyEnumeration state)
Cancel an ongoing ED procedure.
std::pair< Ptr< LrWpanSpectrumSignalParameters >, bool > m_currentRxPacket
Statusinformation of the currently received packet.
Ptr< LrWpanErrorModel > GetErrorModel(void) const
get the error model in use
uint32_t phySHRDuration
The duration of the synchronization header (SHR) in symbols.
LrWpanPhyOption
This Phy option will be used to index various Tables in IEEE802.15.4-2006.
std::pair< Ptr< Packet >, bool > PacketAndStatus
The second is true if the first is flagged as error/invalid.
void SetPlmeEdConfirmCallback(PlmeEdConfirmCallback c)
set the callback for the end of an ED, as part of the interconnections betweenthe PHY and the MAC.
LrWpanPhyEnumeration m_trxStatePending
The next pending state to applied after the current action of the PHY is completed.
virtual void StartRx(Ptr< SpectrumSignalParameters > params)
Notify the SpectrumPhy instance of an incoming waveform.
PdDataIndicationCallback m_pdDataIndicationCallback
This callback is used to notify incoming packets to the MAC layer.
TracedCallback< Ptr< const Packet > > m_phyRxBeginTrace
The trace source fired when a packet begins the reception process from the medium.
Time GetPpduHeaderTxTime(void)
Calculate the time required for sending the PPDU header, that is the preamble, SFD and PHR.
void SetMobility(Ptr< MobilityModel > m)
Set the mobility model associated with this device.
Ptr< LrWpanInterferenceHelper > m_signal
The accumulated signals currently received by the transceiver, including the signal of a possibly rec...
@ IEEE_802_15_4_915MHZ_ASK
TracedCallback< Ptr< const Packet > > m_phyTxBeginTrace
The trace source fired when a packet begins the transmission process on the medium.
void SetAntenna(Ptr< AntennaModel > a)
Set the attached antenna.
@ IEEE_802_15_4_868MHZ_OQPSK
Ptr< const SpectrumValue > m_noise
The spectral density for for the noise.
void SetPdDataConfirmCallback(PdDataConfirmCallback c)
set the callback for the end of a TX, as part of the interconnections betweenthe PHY and the MAC.
Callback< void, LrWpanPhyEnumeration > PlmeCcaConfirmCallback
This method implements the PD SAP: PlmeCcaConfirm.
void PlmeEdRequest(void)
IEEE 802.15.4-2006 section 6.2.2.3 PLME-ED.request Perform an ED per section 6.9.7.
LrWpanPhyOption GetMyPhyOption(void)
Get the currently configured PHY option.
uint8_t phyCurrentChannel
The RF channel to use.
Time measurementLength
Total measurement period.
@ IEEE_802_15_4_INVALID_PHY_OPTION
Ptr< UniformRandomVariable > m_random
Uniform random variable stream.
static const uint32_t aMaxPhyPacketSize
The maximum packet size accepted by the PHY.
void SetPdDataIndicationCallback(PdDataIndicationCallback c)
set the callback for the end of a RX, as part of the interconnections betweenthe PHY and the MAC.
@ IEEE_802_15_4_PHY_FORCE_TRX_OFF
void CheckInterference(void)
Check if the interference destroys a frame currently received.
PdDataConfirmCallback m_pdDataConfirmCallback
This callback is used to report packet transmission status to the MAC layer.
EventId m_pdDataRequest
Scheduler event of a currently running data transmission request.
LrWpanPhyOption m_phyOption
The currently configured PHY type.
@ IEEE_802_15_4_PHY_BUSY_RX
PlmeEdConfirmCallback m_plmeEdConfirmCallback
This callback is used to report ED status to the MAC.
Forward calls to a chain of Callback.
void SetNoisePowerSpectralDensity(Ptr< const SpectrumValue > noisePsd)
Set the noise power spectral density.
Ptr< MobilityModel > m_mobility
The mobility model used by the PHY.
bool PhyIsBusy(void) const
Check if the PHY is busy, which is the case if the PHY is currently sending or receiving a frame.
void SetErrorModel(Ptr< LrWpanErrorModel > e)
set the error model to use
void PdDataRequest(const uint32_t psduLength, Ptr< Packet > p)
IEEE 802.15.4-2006 section 6.2.1.1 PD-DATA.request Request to transfer MPDU from MAC (transmitting)
@ IEEE_802_15_4_PHY_UNSPECIFIED
void EndRx(Ptr< SpectrumSignalParameters > params)
Finish the reception of a frame.
@ IEEE_802_15_4_868MHZ_BPSK
void SetMyPhyOption(void)
Configure the PHY option according to the current channel and channel page.
EventId m_setTRXState
Scheduler event of a currently running deferred transceiver state switch.
PacketAndStatus m_currentTxPacket
Statusinformation of the currently transmitted packet.
static const LrWpanPhyPpduHeaderSymbolNumber ppduHeaderSymbolNumbers[7]
The preamble, SFD, and PHR lengths in symbols for the different PHY options.
double averagePower
Average measured power.
Ptr< NetDevice > m_device
The configured net device.
Helper structure to manage the power measurement during ED.
@ IEEE_802_15_4_915MHZ_OQPSK
Ptr< SpectrumChannel > GetChannel(void)
Get the currently attached channel.
virtual void DoDispose(void)
Destructor implementation.
Make LrWpanPhy a SpectrumPhy so we can enable the eventual modeling of device interference.
EventId m_edRequest
Scheduler event of a currently running ED request.