A Discrete-Event Network Simulator
API
Todo List
Module core
Move all Private and Impl classes to namespace ns3::impl?
Member GlobalRouteManagerImplTestCase::DoRun (void)

Testing

here we should do some verification of the routes built

Member ns3::A2A4RsrqHandoverAlgorithm::IsValidNeighbour (uint16_t cellId)
In the future, this function can be expanded to validate whether the neighbour cell is a valid target cell, e.g., taking into account the NRT in ANR and whether it is a CSG cell with closed access.
Member ns3::A2A4RsrqHandoverAlgorithm::UeMeasure::m_rsrp
Can be removed?
Member ns3::A3RsrpHandoverAlgorithm::IsValidNeighbour (uint16_t cellId)
In the future, this function can be expanded to validate whether the neighbour cell is a valid target cell, e.g., taking into account the NRT in ANR and whether it is a CSG cell with closed access.
Member ns3::AarfcdWifiManager::DoGetRtsTxVector (WifiRemoteStation *station) override
we could/should implement the AARF algorithm for RTS only by picking a single rate within the BasicRateSet.
Member ns3::AarfWifiManager::DoGetRtsTxVector (WifiRemoteStation *station) override
we could/should implement the AARF algorithm for RTS only by picking a single rate within the BasicRateSet.
Member ns3::AddPIHeader (uint8_t *&buf, size_t &len)
Consider having a instance member m_packetBuffer and using memmove instead of memcpy to add the PI header. It might be faster in this case to use memmove and avoid the extra mallocs.
Member ns3::AnimationInterface::CsmaMacRxTrace (std::string context, Ptr< const Packet > p)
NS_ASSERT (CsmaPacketIsPending (AnimUid) == true);
Member ns3::AnimationInterface::CsmaPhyRxEndTrace (std::string context, Ptr< const Packet > p)
NS_ASSERT (CsmaPacketIsPending (AnimUid) == true);
Member ns3::AnimationInterface::CsmaPhyTxEndTrace (std::string context, Ptr< const Packet > p)
NS_ASSERT (IsPacketPending (AnimUid) == true);
Member ns3::AnimationInterface::WavePhyRxBeginTrace (std::string context, Ptr< const Packet > p)
NS_ASSERT (WavePacketIsPending (animUid) == true);
Member ns3::AnimationInterface::WifiPhyRxBeginTrace (std::string context, Ptr< const Packet > p, RxPowerWattPerChannelBand rxPowersW)
NS_ASSERT (WifiPacketIsPending (animUid) == true);
Member ns3::AodvHelper::Create (Ptr< Node > node) const
support installing AODV on the subset of all available IP interfaces
Member ns3::AparfWifiManager::DoGetRtsTxVector (WifiRemoteStation *station) override
we could/should implement the ARF algorithm for RTS only by picking a single rate within the BasicRateSet.
Member ns3::ArfWifiManager::DoGetRtsTxVector (WifiRemoteStation *station) override
we could/should implement the ARF algorithm for RTS only by picking a single rate within the BasicRateSet.
Member ns3::AsciiToIpv6Host (const char *address, uint8_t addr[16])
Handle IPv6 address with decimal value for last four bytes.
Member ns3::BSSchedulerSimple::Schedule (void)
Overflows but don't know how to fix
Member ns3::CaraWifiManager::DoGetRtsTxVector (WifiRemoteStation *station) override
we could/should implement the Arf algorithm for RTS only by picking a single rate within the BasicRateSet.
Member ns3::CidFactory::FreeCid (Cid cid)
We need to update the cid bitmap properly here.
Member ns3::DistributedSimulatorImpl::GetMaximumSimulationTime (void) const
I am fairly certain other compilers use other non-standard post-fixes to indicate 64 bit constants.
Member ns3::dot11s::HwmpProtocolMac::ReceiveData (Ptr< Packet > packet, const WifiMacHeader &header)
address extension
Member ns3::dot11s::IePreq::AddDestinationAddressElement (bool doFlag, bool rfFlag, Mac48Address dest_address, uint32_t dest_seq_number)
check overflow
Member ns3::dot11s::IePreq::m_maxSize
make as an attribute
Member ns3::dot11s::PeerLinkCloseStart::GetFields () const
protocol version:
Member ns3::dot11s::PeerLinkConfirmStart::GetFields () const
protocol version:
Member ns3::dot11s::PeerLinkOpenStart::GetFields () const
protocol version:
Member ns3::dot11s::PeerManagementProtocol::GetAddress ()
this used by plugins only. Now MAC plugins can ask MP address directly from main MAC
Member ns3::dsdv::RoutingTable::Purge (std::map< Ipv4Address, RoutingTableEntry > &removedAddresses)
Need to decide when to invalidate a route
Member ns3::dsr::DsrErrorBuffer::Enqueue (DsrErrorBuffEntry &entry)
check the source and destination over here
Member ns3::dsr::DsrOptionRerr::Process (Ptr< Packet > packet, Ptr< Packet > dsrP, Ipv4Address ipv4Address, Ipv4Address source, Ipv4Header const &ipv4Header, uint8_t protocol, bool &isPromisc, Ipv4Address promiscSource)
This is for the other two error options, not supporting for now
Member ns3::dsr::DsrRouteCache::DecStability (Ipv4Address node)
remove it here
Member ns3::dsr::DsrRouteCache::DeleteAllRoutesIncludeLink (Ipv4Address errorSrc, Ipv4Address unreachNode, Ipv4Address node)
get rid of this one
Member ns3::dsr::DsrRouteCache::IncStability (Ipv4Address node)
get rid of the debug here
Member ns3::dsr::DsrRouteCache::PurgeMac ()
disable temporarily
Member ns3::dsr::DsrRouteCache::UpdateNetGraph ()
May need to set different weight for different link here later
Member ns3::dsr::DsrRouteCache::UseExtends (DsrRouteCacheEntry::IP_VECTOR rt)
remove after debug
Member ns3::dsr::DsrRouting::CheckSendBuffer ()
New DsrNetworkQueueEntry
Member ns3::dsr::DsrRouting::ForwardErrPacket (DsrOptionRerrUnreachHeader &rerr, DsrOptionSRHeader &sourceRoute, Ipv4Address nextHop, uint8_t protocol, Ptr< Ipv4Route > route)
New DsrNetworkQueueEntry
Member ns3::dsr::DsrRouting::SalvagePacket (Ptr< const Packet > packet, Ipv4Address source, Ipv4Address dst, uint8_t protocol)
New DsrNetworkQueueEntry
Member ns3::dsr::DsrRouting::SendAck (uint16_t ackId, Ipv4Address destination, Ipv4Address realSrc, Ipv4Address realDst, uint8_t protocol, Ptr< Ipv4Route > route)
New DsrNetworkQueueEntry
Member ns3::dsr::DsrRouting::SendPacket (Ptr< Packet > packet, Ipv4Address source, Ipv4Address nextHop, uint8_t protocol)
New DsrNetworkQueueEntry
Member ns3::dsr::DsrRouting::SendPacketFromBuffer (DsrOptionSRHeader const &sourceRoute, Ipv4Address nextHop, uint8_t protocol)
New DsrNetworkQueueEntry
Member ns3::dsr::DsrRouting::SendReply (Ptr< Packet > packet, Ipv4Address source, Ipv4Address nextHop, Ptr< Ipv4Route > route)
New DsrNetworkQueueEntry
Member ns3::dsr::DsrRouting::SendRequest (Ptr< Packet > packet, Ipv4Address source)
New DsrNetworkQueueEntry
Member ns3::dsr::DsrRouting::SendUnreachError (Ipv4Address unreachNode, Ipv4Address destination, Ipv4Address originalDst, uint8_t salvage, uint8_t protocol)
New DsrNetworkQueueEntry
Class ns3::EnbMemberLteEnbPhySapProvider
SetBandwidth() and SetCellId() can be removed.
Member ns3::EpcUeNas::m_stateTransitionCallback
This should be a TracedValue
Member ns3::EpcX2::DoSendUeData (EpcX2SapProvider::UeDataParams params)
This should be done in GtpuHeader
Member ns3::FdBetFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Member ns3::FdMtFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Member ns3::FdNetDevice::m_phyTxDropTrace
Remove: this TracedCallback is never invoked.
Member ns3::FdTbfqFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Member ns3::FlameStack::Report (const Ptr< MeshPointDevice > mp, std::ostream &)
report flame counters
Member ns3::FlameStack::ResetStats (const Ptr< MeshPointDevice > mp)
reset flame counters
Member ns3::GlobalRouteManagerImpl::DeleteGlobalRoutes ()
separate manually assigned static routes from static routes that the global routing code injects, and only delete the latter
Class ns3::Histogram

Add support for negative data.

Add method(s) to estimate parameters from the histogram, see http://www.dspguide.com/ch2/4.htm

Member ns3::Icmpv6L4Protocol::DoDAD (Ipv6Address target, Ptr< Ipv6Interface > interface)
disable multicast loopback to prevent NS probing to be received by the sender
Member ns3::Icmpv6L4Protocol::Forward (Ipv6Address source, Icmpv6Header icmp, uint32_t info, Ipv6Header ipHeader, const uint8_t payload[8])
assuming the ICMP is carrying a extensionless IP packet
Member ns3::Icmpv6L4Protocol::HandleRA (Ptr< Packet > p, Ipv6Address const &src, Ipv6Address const &dst, Ptr< Ipv6Interface > interface)
case of multiple prefix on single interface
Member ns3::Icmpv6L4Protocol::Receive (Ptr< Packet > p, Ipv6Header const &header, Ptr< Ipv6Interface > interface)
implement request / reply consistency check.
Member ns3::Icmpv6OptionHeader::Icmpv6OptionHeader ()
Member ns3::Ipv4GlobalRouting::LookupGlobal (Ipv4Address dest, Ptr< NetDevice > oif=0)
handle multi-address case
Member ns3::Ipv4Interface::Send (Ptr< Packet > p, const Ipv4Header &hdr, Ipv4Address dest)
additional checks needed here (such as whether multicast goes to loopback)?
Member ns3::Ipv6ExtensionAH::Process (Ptr< Packet > &packet, uint8_t offset, Ipv6Header const &ipv6Header, Ipv6Address dst, uint8_t *nextHeader, bool &stopProcessing, bool &isDropped, Ipv6L3Protocol::DropReason &dropReason)
Member ns3::Ipv6ExtensionAHHeader::Deserialize (Buffer::Iterator start)
Member ns3::Ipv6ExtensionAHHeader::GetSerializedSize () const
Member ns3::Ipv6ExtensionAHHeader::Print (std::ostream &os) const
Member ns3::Ipv6ExtensionAHHeader::Serialize (Buffer::Iterator start) const
Member ns3::Ipv6ExtensionESP::Process (Ptr< Packet > &packet, uint8_t offset, Ipv6Header const &ipv6Header, Ipv6Address dst, uint8_t *nextHeader, bool &stopProcessing, bool &isDropped, Ipv6L3Protocol::DropReason &dropReason)
Member ns3::Ipv6ExtensionESPHeader::Deserialize (Buffer::Iterator start)
Member ns3::Ipv6ExtensionESPHeader::GetSerializedSize () const
Member ns3::Ipv6ExtensionESPHeader::Print (std::ostream &os) const
Member ns3::Ipv6ExtensionESPHeader::Serialize (Buffer::Iterator start) const
Member ns3::Ipv6Interface::Send (Ptr< Packet > p, const Ipv6Header &hdr, Ipv6Address dest)
additional checks needed here (such as whether multicast goes to loopback)?
Member ns3::LteAnr::DoReportUeMeas (LteRrcSap::MeasResults measResults)
Remove neighbours in the NRT.
Member ns3::LteEnbPhy::GetTypeId (void)

In what unit is this?

In what unit is this?

Member ns3::LteEnbPhy::m_interferenceSamplePeriod
In what unit is this?
Member ns3::LteEnbRrc::ReceiveReportTracedCallback )(const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const LteRrcSap::MeasurementReport report)
The LteRrcSap::MeasurementReport argument should be changed to a const reference since the argument is large.
Member ns3::LteMacSapUser::NotifyHarqDeliveryFailure ()=0
eventual parameters to be defined
Member ns3::LteRlc::DoTransmitPdcpPdu (Ptr< Packet > p)=0
MRE What is the sense to duplicate all the interfaces here???
Member ns3::LteRlcAm::DoReceivePdu (LteMacSapUser::ReceivePduParameters rxPduParams)
stop and reset the t-Reordering
Member ns3::LteRlcAm::m_maxRetxThreshold
How these parameters are configured???
Member ns3::LteRlcAm::ReassembleAndDeliver (Ptr< Packet > packet)
What to do in this case? Discard packet and continue? Or Assert?
Member ns3::LteUeMac::DoReceiveLteControlMessage (Ptr< LteControlMessage > msg)
RRC generates the RecvRaResponse messaged for avoiding holes in transmission at PHY layer (which produce erroneous UL CQI evaluation)
Member ns3::LteUePhy::m_subframeNo
Can be removed.
Member ns3::LteUePhy::m_ueMeasurementsFilterLast
Can be removed.
Member ns3::LteUeRrc::ApplyRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedicated rrcd)
currently not implemented. Would need to modify drbInfo, and then propagate changes to the MAC
Member ns3::LteUeRrc::DoNotifyRandomAccessFailed ()
After a handover failure because of a random access failure, send an RRC Connection Re-establishment and switch to CONNECTED_REESTABLISHING state.
Member ns3::LteUeRrc::DoRecvRrcConnectionReestablishment (LteRrcSap::RrcConnectionReestablishment msg)
After receiving RRC Connection Re-establishment, stop timer T301, fire a new trace source, reply with RRC Connection Re-establishment Complete, and finally switch to CONNECTED_NORMALLY state. See Section 5.3.7.5 of 3GPP TS 36.331.
Member ns3::LteUeRrc::DoRecvRrcConnectionReestablishmentReject (LteRrcSap::RrcConnectionReestablishmentReject msg)
After receiving RRC Connection Re-establishment Reject, stop timer T301. See Section 5.3.7.8 of 3GPP TS 36.331.
Member ns3::LteUeRrc::DoRecvRrcConnectionRelease (LteRrcSap::RrcConnectionRelease msg)
Currently not implemented, see Section 5.3.8 of 3GPP TS 36.331.
Member ns3::LteUeRrc::SaveUeMeasurements (uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering, uint8_t componentCarrierId)
Remove the useLayer3Filtering argument
Member ns3::McpsDataIndicationCallback
for now, we do not deliver all of the parameters in section 802.15.4-2006 7.1.1.3.1 but just send up the packet.
Member ns3::MeshHelper::ChannelPolicy
SetMeshId
Class ns3::MeshPointDevice
Member ns3::MeshPointDevice::DoSend (bool success, Ptr< Packet > packet, Mac48Address src, Mac48Address dst, uint16_t protocol, uint32_t iface)
diagnose routing errors
Member ns3::MeshWifiInterfaceMac::InstallPlugin (Ptr< MeshWifiInterfaceMacPlugin > plugin)
return unique ID to allow user to unregister plugins
Member ns3::MeshWifiInterfaceMac::Statistics::Print (std::ostream &os) const
txBeacons
Member ns3::MeshWifiInterfaceMac::SwitchFrequencyChannel (uint16_t new_id)
Correct channel switching is:
Class ns3::MeshWifiInterfaceMacPlugin
plugins description
Member ns3::MeshWifiInterfaceMacPlugin::Receive (Ptr< Packet > packet, const WifiMacHeader &header)=0
define when MAC call this
Member ns3::MeshWifiInterfaceMacPlugin::UpdateBeacon (MeshWifiBeacon &beacon) const =0
define when MAC call this
Member ns3::MeshWifiInterfaceMacPlugin::UpdateOutcomingFrame (Ptr< Packet > packet, WifiMacHeader &header, Mac48Address from, Mac48Address to)=0
define when MAC call this, preconditions & postconditions
Member ns3::MlmeBeaconNotifyIndicationCallback
for now, we do not deliver all of the parameters in section 802.15.4-2006 6.2.4.1 but just send up the packet.
Member ns3::MlmeSyncLossIndicationCallback
for now, we do not deliver all of the parameters in section See IEEE 802.15.4-2011 6.2.13.2.
Member ns3::NdiscCache::Entry::AddWaitingPacket (Ipv6PayloadHeaderPair p)
report packet as 'dropped'
Member ns3::NdiscCache::Entry::ClearWaitingPacket ()
report packets as 'dropped'
Member ns3::olsr::RoutingProtocol::RouteInput (Ptr< const Packet > p, const Ipv4Header &header, Ptr< const NetDevice > idev, UnicastForwardCallback ucb, MulticastForwardCallback mcb, LocalDeliverCallback lcb, ErrorCallback ecb)
Implement IP aliasing and OLSR
Member ns3::olsr::RoutingProtocol::RouteOutput (Ptr< Packet > p, const Ipv4Header &header, Ptr< NetDevice > oif, Socket::SocketErrno &sockerr)
Implement IP aliasing and OLSR
Member ns3::OmnetDataOutput::Output (DataCollector &dc)
add timestamp to the runlevel
Member ns3::ParfWifiManager::DoGetRtsTxVector (WifiRemoteStation *station) override
we could/should implement the ARF algorithm for RTS only by picking a single rate within the BasicRateSet.
Member ns3::PendingData::SizeFromOffset (uint32_t offset)
should this return zero, or error out?
Member ns3::PfFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Member ns3::PhyReceptionStatParameters::TracedCallback )(const PhyReceptionStatParameters params)
The argument should be passed by const reference, since it's large.
Member ns3::PhyTransmissionStatParameters::TracedCallback )(const PhyTransmissionStatParameters params)
The argument should be passed by const reference, since it's large.
Member ns3::PssFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Member ns3::QueueDisc::Requeue (Ptr< QueueDiscItem > item)
netif_schedule (q);
Member ns3::QueueDisc::Run (void)
netif_schedule (q);
Member ns3::RedQueueDisc::DropEarly (Ptr< QueueDiscItem > item, uint32_t qSize)
Implement set bit to mark
Member ns3::RrFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Class ns3::RrMultiUserScheduler
Take the supported channel width of the stations into account while selecting stations and assigning RUs to them.
Member ns3::ShowProgress::CheckProgress (void)
Evaluate if simple exponential averaging would be more effective, simpler.
Class ns3::SimulatorImpl
Define what the simulation or event context means.
Member ns3::TcpGeneralTest::ErrorClose ([[maybe_unused]] SocketWho who)
indicate the error
Member ns3::TcpHeader::EnableChecksums (void)
currently has no effect
Member ns3::TcpL4Protocol::SendPacketV4 (Ptr< Packet > pkt, const TcpHeader &outgoing, const Ipv4Address &saddr, const Ipv4Address &daddr, Ptr< NetDevice > oif=0) const
UrgentPointer
Member ns3::TcpL4Protocol::SendPacketV6 (Ptr< Packet > pkt, const TcpHeader &outgoing, const Ipv6Address &saddr, const Ipv6Address &daddr, Ptr< NetDevice > oif=0) const
UrgentPointer
Member ns3::TdBetFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Member ns3::TdMtFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Member ns3::TdTbfqFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Member ns3::test::RandomVariable::LogNormalAntitheticTestCase::DoRun (void)
This test fails sometimes if the required tolerance is less than 3%, which may be because there is a bug in the implementation or that the mean of this distribution is more sensitive to its parameters than the others are.
Member ns3::test::RandomVariable::LogNormalTestCase::DoRun (void)
This test fails sometimes if the required tolerance is less than 3%, which may be because there is a bug in the implementation or that the mean of this distribution is more sensitive to its parameters than the others are.
Member ns3::test::RandomVariable::RandomVariableSuite::RandomVariableSuite ()

This test is currently disabled because it fails sometimes. A possible reason for the failure is that the antithetic code is not implemented properly for this gamma case.

This test is currently disabled because it fails sometimes. A possible reason for the failure is that the antithetic code is not implemented properly for this log-normal case.

Class ns3::TestRunnerImpl
Move TestRunnerImpl to separate file.
Member ns3::Tlv::Deserialize (Buffer::Iterator start)

implement Deserialize HMAC_TUPLE

implement Deserialize MAC_VERSION_ENCODING

implement Deserialize CURRENT_TRANSMIT_POWER

implement Deserialize VENDOR_SPECIFIC_INFORMATION

implement Deserialize VENDOR_ID_EMCODING

Member ns3::TtaFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters &params)
check correct value according the DCIs txed
Member ns3::UanNetDevice::SetMtu (const uint16_t mtu)
Check this in MAC
Member ns3::UanPhyDual::SetSleepMode ([[maybe_unused]] bool sleep)
This method has to be implemented
Member ns3::UdpSocketImpl::~UdpSocketImpl ()
leave any multicast groups that have been joined
Class ns3::WallClockSynchronizer
Add more on jiffies, sleep, processes, etc.
Member ns3::WaveNetDevice::m_addressChange
The Address arguments should be passed by const reference, since they are large.
Member ns3::WifiPhy::m_phyMonitorSniffRxTrace
WifiTxVector and signalNoiseDbm should be passed as const references because of their sizes.
Member ns3::WifiPhy::m_phyMonitorSniffTxTrace
WifiTxVector should be passed by const reference because of its size.
Member ns3::WifiPhy::MonitorSnifferRxCallback )(Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise, uint16_t staId)
WifiTxVector should be passed by const reference because of its size.
Member ns3::WifiPhy::MonitorSnifferTxCallback )(const Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, uint16_t staId)
WifiTxVector should be passed by const reference because of its size.
Member ns3::WifiRemoteStationManager::GetControlAnswerMode (WifiMode reqMode) const
Note that we're ignoring the last sentence for now, because there is not yet any manipulation here of PHY options.
Member ns3::WimaxNetDevice::m_traceRx
This member variable should be private.
Member ns3::WimaxNetDevice::m_traceTx
This member variable should be private.
Member PrintAllAttributes (std::ostream &os)
Print this sorted by class (the current version) as well as by Attribute name.
Member PrintAllLogComponents (std::ostream &os)
Switch to a border-less table, so the file links align See http://www.stack.nl/~dimitri/doxygen/manual/htmlcmds.html
Member PrintAllTraceSources (std::ostream &os)
Print this sorted by class (the current version) as well as by TraceSource name.
Module rip
: Add routing table compression (CIDR). The most evident result: without it a router will announce to be the default router and more RTEs, which is silly.
Module ripng
: Add routing table compression (CIDR). The most evident result: without it a router will announce to be the default router and more RTEs, which is silly.
Class StaWifiMacScanningTestCase
Add explicit association refusal test if ns-3 implemented it.
File test-string-value-formatting.cc
This should really be turned into a TestSuite