A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
61 {
62 public:
73  static void Init (const Ipv6Address net, const Ipv6Prefix prefix,
74  const Ipv6Address interfaceId = "::1");
75 
88  static Ipv6Address NextNetwork (const Ipv6Prefix prefix);
89 
99  static Ipv6Address GetNetwork (const Ipv6Prefix prefix);
100 
107  static void InitAddress (const Ipv6Address interfaceId, const Ipv6Prefix prefix);
108 
118  static Ipv6Address NextAddress (const Ipv6Prefix prefix);
119 
129  static Ipv6Address GetAddress (const Ipv6Prefix prefix);
130 
134  static void Reset (void);
135 
146  static bool AddAllocated (const Ipv6Address addr);
147 
151  static void TestMode (void);
152 };
153 
154 }; // namespace ns3
155 
156 #endif /* IPV6_ADDRESS_GENERATOR_H */
static Ipv6Address NextNetwork(const Ipv6Prefix prefix)
Get the next network according 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:46
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.
Definition: ipv6-address.h:387
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.