A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ipv6-address-generator.h
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 
55 {
56 public:
67  static void Init (const Ipv6Address net, const Ipv6Prefix prefix,
68  const Ipv6Address interfaceId = "::1");
69 
81  static Ipv6Address NextNetwork (const Ipv6Prefix prefix);
82 
91  static Ipv6Address GetNetwork (const Ipv6Prefix prefix);
92 
99  static void InitAddress (const Ipv6Address interfaceId, const Ipv6Prefix prefix);
100 
109  static Ipv6Address NextAddress (const Ipv6Prefix prefix);
110 
119  static Ipv6Address GetAddress (const Ipv6Prefix prefix);
120 
124  static void Reset (void);
125 
135  static bool AddAllocated (const Ipv6Address addr);
136 
140  static void TestMode (void);
141 };
142 
143 }; // namespace ns3
144 
145 #endif /* IPV6_ADDRESS_GENERATOR_H */
static Ipv6Address NextNetwork(const Ipv6Prefix prefix)
Get the next network acoording to the given Ipv6Prefix.
static void InitAddress(const Ipv6Address interfaceId, const Ipv6Prefix prefix)
Set the interfaceId for the given Ipv6Prefix.
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(void)
Used to turn off fatal errors and assertions, for testing.
This generator assigns addresses sequentially from a provided network address; used in topology code...
Describes an IPv6 address.
Definition: ipv6-address.h:44
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()
Describes an IPv6 prefix. It is just a bitmask like Ipv4Mask.
Definition: ipv6-address.h:326
static bool AddAllocated(const Ipv6Address addr)
Add the Ipv6Address to the list of IPv6 entries.
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.