A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
dhcp-helper.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2011 UPB
4
* Copyright (c) 2017 NITK Surathkal
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation;
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
*
19
* Author: Radu Lupu <rlupu@elcom.pub.ro>
20
* Ankit Deepak <adadeepak8@gmail.com>
21
* Deepti Rajagopal <deeptir96@gmail.com>
22
*
23
*/
24
25
#ifndef DHCP_HELPER_H
26
#define DHCP_HELPER_H
27
28
#include <stdint.h>
29
#include "ns3/application-container.h"
30
#include "ns3/net-device-container.h"
31
#include "ns3/object-factory.h"
32
#include "ns3/ipv4-address.h"
33
#include "ns3/ipv4-interface-container.h"
34
35
namespace
ns3
{
36
43
class
DhcpHelper
44
{
45
public
:
46
DhcpHelper
();
47
53
void
SetClientAttribute
(std::string name,
const
AttributeValue
&value);
54
60
void
SetServerAttribute
(std::string name,
const
AttributeValue
&value);
61
67
ApplicationContainer
InstallDhcpClient
(
Ptr<NetDevice>
netDevice)
const
;
68
74
ApplicationContainer
InstallDhcpClient
(
NetDeviceContainer
netDevices)
const
;
75
91
ApplicationContainer
InstallDhcpServer
(
Ptr<NetDevice>
netDevice,
Ipv4Address
serverAddr,
92
Ipv4Address
poolAddr,
Ipv4Mask
poolMask,
93
Ipv4Address
minAddr,
Ipv4Address
maxAddr,
94
Ipv4Address
gateway =
Ipv4Address
());
102
Ipv4InterfaceContainer
InstallFixedAddress
(
Ptr<NetDevice>
netDevice,
Ipv4Address
addr,
Ipv4Mask
mask);
103
104
private
:
110
Ptr<Application>
InstallDhcpClientPriv
(
Ptr<NetDevice>
netDevice)
const
;
111
ObjectFactory
m_clientFactory
;
112
ObjectFactory
m_serverFactory
;
113
std::list<Ipv4Address>
m_fixedAddresses
;
114
std::list< std::pair <Ipv4Address, Ipv4Address> >
m_addressPools
;
115
};
116
117
}
// namespace ns3
118
119
#endif
/* DHCP_HELPER_H */
ns3::ApplicationContainer
holds a vector of ns3::Application pointers.
Definition:
application-container.h:43
ns3::AttributeValue
Hold a value for an Attribute.
Definition:
attribute.h:69
ns3::DhcpHelper
The helper class used to configure and install DHCP applications on nodes.
Definition:
dhcp-helper.h:44
ns3::DhcpHelper::DhcpHelper
DhcpHelper()
Definition:
dhcp-helper.cc:41
ns3::DhcpHelper::m_serverFactory
ObjectFactory m_serverFactory
DHCP server factory.
Definition:
dhcp-helper.h:112
ns3::DhcpHelper::m_fixedAddresses
std::list< Ipv4Address > m_fixedAddresses
list of fixed addresses already allocated.
Definition:
dhcp-helper.h:113
ns3::DhcpHelper::InstallFixedAddress
Ipv4InterfaceContainer InstallFixedAddress(Ptr< NetDevice > netDevice, Ipv4Address addr, Ipv4Mask mask)
Assign a fixed IP addresses to a net device.
Definition:
dhcp-helper.cc:192
ns3::DhcpHelper::InstallDhcpServer
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.
Definition:
dhcp-helper.cc:124
ns3::DhcpHelper::m_addressPools
std::list< std::pair< Ipv4Address, Ipv4Address > > m_addressPools
list of address pools.
Definition:
dhcp-helper.h:114
ns3::DhcpHelper::InstallDhcpClient
ApplicationContainer InstallDhcpClient(Ptr< NetDevice > netDevice) const
Install DHCP client of a nodes / NetDevice.
Definition:
dhcp-helper.cc:61
ns3::DhcpHelper::SetClientAttribute
void SetClientAttribute(std::string name, const AttributeValue &value)
Set DHCP client attributes.
Definition:
dhcp-helper.cc:47
ns3::DhcpHelper::SetServerAttribute
void SetServerAttribute(std::string name, const AttributeValue &value)
Set DHCP server attributes.
Definition:
dhcp-helper.cc:54
ns3::DhcpHelper::InstallDhcpClientPriv
Ptr< Application > InstallDhcpClientPriv(Ptr< NetDevice > netDevice) const
Function to install DHCP client on a node.
Definition:
dhcp-helper.cc:76
ns3::DhcpHelper::m_clientFactory
ObjectFactory m_clientFactory
DHCP client factory.
Definition:
dhcp-helper.h:111
ns3::Ipv4Address
Ipv4 addresses are stored in host order in this class.
Definition:
ipv4-address.h:41
ns3::Ipv4InterfaceContainer
holds a vector of std::pair of Ptr<Ipv4> and interface index.
Definition:
ipv4-interface-container.h:55
ns3::Ipv4Mask
a class to represent an Ipv4 address mask
Definition:
ipv4-address.h:256
ns3::NetDeviceContainer
holds a vector of ns3::NetDevice pointers
Definition:
net-device-container.h:42
ns3::ObjectFactory
Instantiate subclasses of ns3::Object.
Definition:
object-factory.h:48
ns3::Ptr< NetDevice >
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
internet-apps
helper
dhcp-helper.h
Generated on Tue Feb 6 2024 19:21:18 for ns-3 by
1.9.1