A Discrete-Event Network Simulator
API
ipv6-address-generator.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008 University of Washington
3  * Copyright (c) 2011 Atishay Jain
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  */
18 
19 #ifndef IPV6_ADDRESS_GENERATOR_H
20 #define IPV6_ADDRESS_GENERATOR_H
21 
22 #include "ns3/ipv6-address.h"
23 
24 namespace ns3
25 {
26 
62 {
63  public:
74  static void Init(const Ipv6Address net,
75  const Ipv6Prefix prefix,
76  const Ipv6Address interfaceId = "::1");
77 
90  static Ipv6Address NextNetwork(const Ipv6Prefix prefix);
91 
101  static Ipv6Address GetNetwork(const Ipv6Prefix prefix);
102 
109  static void InitAddress(const Ipv6Address interfaceId, const Ipv6Prefix prefix);
110 
120  static Ipv6Address NextAddress(const Ipv6Prefix prefix);
121 
131  static Ipv6Address GetAddress(const Ipv6Prefix prefix);
132 
136  static void Reset();
137 
148  static bool AddAllocated(const Ipv6Address addr);
149 
156  static bool IsAddressAllocated(const Ipv6Address addr);
157 
165  static bool IsNetworkAllocated(const Ipv6Address addr, const Ipv6Prefix prefix);
166 
170  static void TestMode();
171 };
172 
173 }; // namespace ns3
174 
175 #endif /* IPV6_ADDRESS_GENERATOR_H */
This generator assigns addresses sequentially from a provided network address; used in topology code.
static void Init(const Ipv6Address net, const Ipv6Prefix prefix, const Ipv6Address interfaceId="::1")
Initialise the base network and interfaceId for the generator.
static void TestMode()
Used to turn off fatal errors and assertions, for testing.
static Ipv6Address NextAddress(const Ipv6Prefix prefix)
Allocate the next Ipv6Address for the configured network and prefix.
static Ipv6Address GetNetwork(const Ipv6Prefix prefix)
Get the current network of the given Ipv6Prefix.
static void InitAddress(const Ipv6Address interfaceId, const Ipv6Prefix prefix)
Set the interfaceId for the given Ipv6Prefix.
static bool IsNetworkAllocated(const Ipv6Address addr, const Ipv6Prefix prefix)
Check if a network has already allocated addresses.
static bool AddAllocated(const Ipv6Address addr)
Add the Ipv6Address to the list of IPv6 entries.
static Ipv6Address GetAddress(const Ipv6Prefix prefix)
Get the Ipv6Address that will be allocated upon NextAddress ()
static Ipv6Address NextNetwork(const Ipv6Prefix prefix)
Get the next network according to the given Ipv6Prefix.
static bool IsAddressAllocated(const Ipv6Address addr)
Check the Ipv6Address allocation in the list of IPv6 entries.
static void Reset()
Reset the networks and Ipv6Address to zero.
Describes an IPv6 address.
Definition: ipv6-address.h:49
Describes an IPv6 prefix.
Definition: ipv6-address.h:455
Every class exported by the ns3 library is enclosed in the ns3 namespace.