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" 42 #include "ns3/queue.h" 48 for (
int i = 0; i < num; i++)
51 device->
Send (pkt, addr, 0);
59 queueFactory.
SetTypeId(
"ns3::DropTailQueue<Packet>");
89 virtual void DoRun (
void);
111 :
TestCase (
"ErrorModel and PhyRxDrop trace for SimpleNetDevice"), m_count (0), m_drops (0)
136 RngSeedManager::SetSeed (7);
137 RngSeedManager::SetRun (2);
158 output->SetAttribute (
"ReceiveErrorModel",
PointerValue (em));
162 Simulator::Schedule (
Seconds (0), &
SendPacket, 10000, input, output->GetAddress ());
165 Simulator::Destroy ();
186 virtual void DoRun (
void);
208 :
TestCase (
"ErrorModel and PhyRxDrop trace for SimpleNetDevice"), m_count (0), m_drops (0)
233 RngSeedManager::SetSeed (5);
234 RngSeedManager::SetRun (8);
257 output->SetAttribute (
"ReceiveErrorModel",
PointerValue (em));
261 Simulator::Schedule (
Seconds (0), &
SendPacket, 10000, input, output->GetAddress ());
264 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.
void Set(const std::string &name, const AttributeValue &value, Args &&... args)
Set an attribute to be set during construction.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
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.
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
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()
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.
Instantiate subclasses of ns3::Object.
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node.
void SetQueue(Ptr< Queue< Packet > > queue)
Attach a queue to the SimpleNetDevice.
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.
Callback< R, Ts... > MakeCallback(R(T::*memPtr)(Ts...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
virtual ~BurstErrorModelSimple()