A Discrete-Event Network Simulator
API
ipv6-address-generator.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2008 University of Washington
4  * Copyright (c) 2011 Atishay Jain
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 
20 #ifndef IPV6_ADDRESS_GENERATOR_H
21 #define IPV6_ADDRESS_GENERATOR_H
22 
23 #include "ns3/ipv6-address.h"
24 
25 namespace ns3 {
26 
62 {
63 public:
74  static void Init (const Ipv6Address net, const Ipv6Prefix prefix,
75  const Ipv6Address interfaceId = "::1");
76 
89  static Ipv6Address NextNetwork (const Ipv6Prefix prefix);
90 
100  static Ipv6Address GetNetwork (const Ipv6Prefix prefix);
101 
108  static void InitAddress (const Ipv6Address interfaceId, const Ipv6Prefix prefix);
109 
119  static Ipv6Address NextAddress (const Ipv6Prefix prefix);
120 
130  static Ipv6Address GetAddress (const Ipv6Prefix prefix);
131 
135  static void Reset (void);
136 
147  static bool AddAllocated (const Ipv6Address addr);
148 
155  static bool IsAddressAllocated (const Ipv6Address addr);
156 
164  static bool IsNetworkAllocated (const Ipv6Address addr, const Ipv6Prefix prefix);
165 
169  static void TestMode (void);
170 };
171 
172 }; // namespace ns3
173 
174 #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 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 void TestMode(void)
Used to turn off fatal errors and assertions, for testing.
static bool AddAllocated(const Ipv6Address addr)
Add the Ipv6Address to the list of IPv6 entries.
static void Reset(void)
Reset the networks and Ipv6Address to zero.
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.
Describes an IPv6 address.
Definition: ipv6-address.h:50
Describes an IPv6 prefix.
Definition: ipv6-address.h:456
Every class exported by the ns3 library is enclosed in the ns3 namespace.