22 #include "ns3/simulator.h"
25 #include "ns3/inet-socket-address.h"
28 #include "ns3/ipv4-l3-protocol.h"
29 #include "ns3/arp-l3-protocol.h"
30 #include "ns3/ipv4-interface.h"
31 #include "ns3/loopback-net-device.h"
57 TestCase (
"Verify the IPv4 layer 3 protocol")
72 interface->SetDevice (device);
73 interface->SetNode (node);
74 uint32_t index = ipv4->AddIpv4Interface (interface);
79 interface->AddAddress (ifaceAddr1);
82 interface->AddAddress (ifaceAddr2);
85 interface->AddAddress (ifaceAddr3);
88 interface->AddAddress (ifaceAddr4);
89 uint32_t num = interface->GetNAddresses ();
91 interface->RemoveAddress (2);
92 num = interface->GetNAddresses ();
96 "The addresses should be identical");
99 output = interface->RemoveAddress (
Ipv4Address (
"250.0.0.1"));
101 "Wrong Interface Address Removed??");
102 num = interface->GetNAddresses ();
106 output = interface->RemoveAddress (
Ipv4Address (
"253.123.9.81"));
108 "Removed non-existent address??");
109 num = interface->GetNAddresses ();
113 output = interface->RemoveAddress (Ipv4Address::GetLoopback ());
115 "Able to remove loopback address??");
116 num = interface->GetNAddresses ();
120 bool result = ipv4->RemoveAddress (index,
Ipv4Address
123 num = interface->GetNAddresses ();
127 result = ipv4->RemoveAddress (index,
Ipv4Address (
"189.0.0.1"));
129 "Removed non-existent address??");
130 num = interface->GetNAddresses ();
134 result = ipv4->RemoveAddress (index, Ipv4Address::GetLoopback ());
136 "Able to remove loopback address??");
137 num = interface->GetNAddresses ();
140 Simulator::Destroy ();
IPv4L3ProtocolTestSuite g_ipv4protocolTestSuite
IPv4L3ProtocolTestSuite()
This test suite implements a Unit Test.
virtual ~Ipv4L3ProtocolTestCase()
Destructor.
void AddTestCase(TestCase *testCase, enum TestDuration duration)
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.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ipv4L3ProtocolTestCase()
Constructor.
Ipv4 addresses are stored in host order in this class.
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node.
a class to store IPv4 address information on an interface
Ptr< T > CreateObject(void)
Create an object by type, with varying number of constructor parameters.
virtual void DoRun(void)
Run unit tests for this class.