29 #include "ns3/simple-net-device.h" 30 #include "ns3/simple-channel.h" 31 #include "ns3/address.h" 32 #include "ns3/mac48-address.h" 33 #include "ns3/packet.h" 34 #include "ns3/callback.h" 36 #include "ns3/simulator.h" 37 #include "ns3/error-model.h" 38 #include "ns3/pointer.h" 39 #include "ns3/double.h" 40 #include "ns3/string.h" 41 #include "ns3/rng-seed-manager.h" 47 for (
int i = 0; i < num; i++)
50 device->
Send (pkt, addr, 0);
80 virtual void DoRun (
void);
102 :
TestCase (
"ErrorModel and PhyRxDrop trace for SimpleNetDevice"), m_count (0), m_drops (0)
127 RngSeedManager::SetSeed (7);
128 RngSeedManager::SetRun (2);
149 output->SetAttribute (
"ReceiveErrorModel",
PointerValue (em));
153 Simulator::Schedule (
Seconds (0), &
SendPacket, 10000, input, output->GetAddress ());
156 Simulator::Destroy ();
177 virtual void DoRun (
void);
199 :
TestCase (
"ErrorModel and PhyRxDrop trace for SimpleNetDevice"), m_count (0), m_drops (0)
224 RngSeedManager::SetSeed (5);
225 RngSeedManager::SetRun (8);
248 output->SetAttribute (
"ReceiveErrorModel",
PointerValue (em));
252 Simulator::Schedule (
Seconds (0), &
SendPacket, 10000, input, output->GetAddress ());
255 Simulator::Destroy ();
uint32_t m_count
The received packets counter.
Smart pointer class similar to boost::intrusive_ptr.
void SetStream(int64_t stream)
Specifies the stream number for the RngStream.
static void BuildSimpleTopology(Ptr< Node > a, Ptr< Node > b, Ptr< SimpleNetDevice > input, Ptr< SimpleNetDevice > output, Ptr< SimpleChannel > channel)
Hold variables of type string.
void DropEvent(Ptr< const Packet > p)
Register a Drop.
BurstErrorModel unit tests.
virtual void DoRun(void)
Implementation to actually run this TestCase.
a polymophic address class
virtual void SetNode(Ptr< Node > node)
static Mac48Address Allocate(void)
Allocate a new Mac48Address.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
uint32_t m_drops
The dropped packets counter.
virtual ~ErrorModelSimple()
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
bool Receive(Ptr< NetDevice > nd, Ptr< const Packet > p, uint16_t protocol, const Address &addr)
Receive form a NetDevice.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Hold objects of type Ptr<T>.
void SetRandomVariable(Ptr< RandomVariableStream > ranVar)
virtual bool Send(Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)=0
uint32_t m_count
The received packets counter.
void DropEvent(Ptr< const Packet > p)
Register a Drop.
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node.
virtual void SetAddress(Address address)
Set the address of this interface.
Time Seconds(double value)
Construct a Time in the indicated unit.
uint32_t m_drops
The dropped packets counter.
void SetRandomVariable(Ptr< RandomVariableStream >)
bool Receive(Ptr< NetDevice > nd, Ptr< const Packet > p, uint16_t protocol, const Address &addr)
Receive form a NetDevice.
static ErrorModelTestSuite errorModelTestSuite
Static variable for test initialization.
This class can be used to hold variables of floating point type such as 'double' or 'float'...
void SetChannel(Ptr< SimpleChannel > channel)
Attach a channel to this net device.
void SetAttribute(std::string name, const AttributeValue &value)
Set a single attribute, raising fatal errors if unsuccessful.
static void SendPacket(int num, Ptr< NetDevice > device, Address &addr)
virtual void DoRun(void)
Implementation to actually run this TestCase.
virtual ~BurstErrorModelSimple()