A Discrete-Event Network Simulator
API
ipv4-address-generator.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008 University of Washington
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation;
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  */
17 
18 #ifndef IPV4_ADDRESS_GENERATOR_H
19 #define IPV4_ADDRESS_GENERATOR_H
20 
21 #include "ns3/ipv4-address.h"
22 
23 namespace ns3
24 {
25 
40 {
41  public:
52  static void Init(const Ipv4Address net,
53  const Ipv4Mask mask,
54  const Ipv4Address addr = "0.0.0.1");
55 
68  static Ipv4Address NextNetwork(const Ipv4Mask mask);
69 
79  static Ipv4Address GetNetwork(const Ipv4Mask mask);
80 
87  static void InitAddress(const Ipv4Address addr, const Ipv4Mask mask);
88 
98  static Ipv4Address NextAddress(const Ipv4Mask mask);
99 
109  static Ipv4Address GetAddress(const Ipv4Mask mask);
110 
114  static void Reset();
115 
126  static bool AddAllocated(const Ipv4Address addr);
127 
134  static bool IsAddressAllocated(const Ipv4Address addr);
135 
143  static bool IsNetworkAllocated(const Ipv4Address addr, const Ipv4Mask mask);
144 
148  static void TestMode();
149 };
150 
151 } // namespace ns3
152 
153 #endif /* IPV4_ADDRESS_GENERATOR_H */
This generator assigns addresses sequentially from a provided network address; used in topology code.
static Ipv4Address NextAddress(const Ipv4Mask mask)
Allocate the next Ipv4Address for the configured network and mask.
static void InitAddress(const Ipv4Address addr, const Ipv4Mask mask)
Set the address for the given mask.
static void TestMode()
Used to turn off fatal errors and assertions, for testing.
static Ipv4Address NextNetwork(const Ipv4Mask mask)
Get the next network according to the given Ipv4Mask.
static void Reset()
Reset the networks and Ipv4Address to zero.
static bool AddAllocated(const Ipv4Address addr)
Add the Ipv4Address to the list of IPv4 entries.
static bool IsAddressAllocated(const Ipv4Address addr)
Check the Ipv4Address allocation in the list of IPv4 entries.
static Ipv4Address GetNetwork(const Ipv4Mask mask)
Get the current network of the given Ipv4Mask.
static void Init(const Ipv4Address net, const Ipv4Mask mask, const Ipv4Address addr="0.0.0.1")
Initialise the base network, mask and address for the generator.
static bool IsNetworkAllocated(const Ipv4Address addr, const Ipv4Mask mask)
Check if a network has already allocated addresses.
static Ipv4Address GetAddress(const Ipv4Mask mask)
Get the Ipv4Address that will be allocated upon NextAddress ()
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:42
a class to represent an Ipv4 address mask
Definition: ipv4-address.h:257
Every class exported by the ns3 library is enclosed in the ns3 namespace.