23 #include "ns3/data-rate.h" 24 #include "ns3/simple-net-device.h" 25 #include "ns3/simple-net-device-helper.h" 26 #include "ns3/internet-stack-helper.h" 27 #include "ns3/ipv4-address-helper.h" 28 #include "ns3/dhcp-client.h" 29 #include "ns3/dhcp-server.h" 30 #include "ns3/dhcp-helper.h" 57 void LeaseObtained (std::string context,
const Ipv4Address& newAddress);
59 virtual void DoRun (
void);
75 uint8_t numericalContext = std::stoi (context,
nullptr, 10);
77 if (numericalContext >=0 && numericalContext <=2)
112 DynamicCast<DhcpServer> (dhcpServerApp.
Get (0))->AddStaticDhcpEntry (devNet.
Get (3)->GetAddress (),
Ipv4Address (
"172.30.0.14"));
115 dhcpClientNetDevs.
Add (devNet.
Get (1));
116 dhcpClientNetDevs.Add (devNet.
Get (2));
117 dhcpClientNetDevs.Add (devNet.
Get (3));
128 Simulator::Stop (
Seconds (21.0));
141 Simulator::Destroy ();
holds a vector of ns3::Application pointers.
ApplicationContainer InstallDhcpServer(Ptr< NetDevice > netDevice, Ipv4Address serverAddr, Ipv4Address poolAddr, Ipv4Mask poolMask, Ipv4Address minAddr, Ipv4Address maxAddr, Ipv4Address gateway=Ipv4Address())
Install DHCP server of a node / NetDevice.
Ptr< NetDevice > Get(uint32_t i) const
Get the Ptr<NetDevice> stored in this container at a given index.
a class to represent an Ipv4 address mask
The helper class used to configure and install DHCP applications on nodes.
void SetChannelAttribute(std::string n1, const AttributeValue &v1)
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
aggregate IP/TCP/UDP functionality to existing Nodes.
Class for representing data rates.
AttributeValue implementation for Time.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
void Add(NetDeviceContainer other)
Append the contents of another NetDeviceContainer to the end of this container.
#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.
holds a vector of ns3::NetDevice pointers
void SetDeviceAttribute(std::string n1, const AttributeValue &v1)
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
void Start(Time start)
Arrange for all of the Applications in this container to Start() at the Time given as a parameter...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
keep track of a set of node pointers.
void Install(std::string nodeName) const
Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provid...
Ipv4Address m_leasedAddress[3]
Address given to the nodes.
Ipv4 addresses are stored in host order in this class.
void Stop(Time stop)
Arrange for all of the Applications in this container to Stop() at the Time given as a parameter...
ApplicationContainer InstallDhcpClient(Ptr< NetDevice > netDevice) const
Install DHCP client of a nodes / NetDevice.
AttributeValue implementation for DataRate.
Time Seconds(double value)
Construct a Time in the indicated unit.
virtual void DoRun(void)
Implementation to actually run this TestCase.
bool TraceConnect(std::string name, std::string context, const CallbackBase &cb)
Connect a TraceSource to a Callback with a context.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
build a set of SimpleNetDevice objects
NetDeviceContainer Install(Ptr< Node > node) const
This method creates an ns3::SimpleChannel with the attributes configured by SimpleNetDeviceHelper::Se...
Ptr< Application > Get(uint32_t i) const
Get the Ptr<Application> stored in this container at a given index.
static DhcpTestSuite dhcpTestSuite
Static variable for test initialization.
void LeaseObtained(std::string context, const Ipv4Address &newAddress)
Triggered by an address lease on a client.