21 #include "ns3/assert.h" 
   25 #include "ns3/net-device.h" 
   26 #include "ns3/mac16-address.h" 
   27 #include "ns3/mac48-address.h" 
   28 #include "ns3/mac64-address.h" 
   30 #include "ns3/ipv6-address-generator.h" 
   88       NS_FATAL_ERROR (
"Did not pass in a valid Mac Address (16, 48 or 64 bits)");
 
  124   for (uint32_t i = 0; i < c.
GetN (); ++i) 
 
  129       NS_ASSERT_MSG (node, 
"Ipv6AddressHelper::Allocate (): Bad node");
 
  132       NS_ASSERT_MSG (ipv6, 
"Ipv6AddressHelper::Allocate (): Bad ipv6");
 
  135       ifIndex = ipv6->GetInterfaceForDevice (device);
 
  138           ifIndex = ipv6->AddInterface (device);
 
  140       NS_ASSERT_MSG (ifIndex >= 0, 
"Ipv6AddressHelper::Allocate (): " 
  141                      "Interface index not found");
 
  144       ipv6->SetMetric (ifIndex, 1);
 
  145       ipv6->AddAddress (ifIndex, ipv6Addr);
 
  146       ipv6->SetUp (ifIndex);
 
  148       retval.
Add (ipv6, ifIndex);
 
  157   for (uint32_t i = 0; i < c.
GetN (); ++i) 
 
  162       NS_ASSERT_MSG (node, 
"Ipv6AddressHelper::Allocate (): Bad node");
 
  165       NS_ASSERT_MSG (ipv6, 
"Ipv6AddressHelper::Allocate (): Bad ipv6");
 
  167       int32_t ifIndex = ipv6->GetInterfaceForDevice (device);
 
  170           ifIndex = ipv6->AddInterface (device);
 
  172       NS_ASSERT_MSG (ifIndex >= 0, 
"Ipv6AddressHelper::Allocate (): " 
  173                      "Interface index not found");
 
  175       ipv6->SetMetric (ifIndex, 1);
 
  177       if (withConfiguration.at (i))
 
  180           ipv6->AddAddress (ifIndex, ipv6Addr);
 
  183       ipv6->SetUp (ifIndex);
 
  184       retval.
Add (ipv6, ifIndex);
 
  193   std::vector<bool> withConfiguration;
 
  194   for (uint32_t i = 0; i < c.
GetN (); ++i) 
 
  196       withConfiguration.push_back (
false);
 
  198   return Assign (c, withConfiguration);
 
static bool IsMatchingType(const Address &address)
smart pointer class similar to boost::intrusive_ptr 
#define NS_LOG_FUNCTION(parameters)
Keep track of a set of IPv6 interfaces. 
Access to the IPv6 forwarding table, interfaces, and configuration. 
Ptr< NetDevice > Get(uint32_t i) const 
Get the Ptr stored in this container at a given index. 
static Mac16Address ConvertFrom(const Address &address)
static bool IsMatchingType(const Address &address)
void Add(Ptr< Ipv6 > ipv6, uint32_t interface)
Add a couple IPv6/interface. 
static Ipv6Address MakeAutoconfiguredAddress(Mac16Address addr, Ipv6Address prefix)
Make the autoconfigured IPv6 address with Mac16Address. 
IPv6 address associated with an interface. 
static Ipv6Address NextNetwork(const Ipv6Prefix prefix)
Get the next network acoording to the given Ipv6Prefix. 
void SetBase(Ipv6Address network, Ipv6Prefix prefix, Ipv6Address base=Ipv6Address("::1"))
Set the base network number, network prefix, and base interface ID. 
#define NS_FATAL_ERROR(msg)
fatal error handling 
a polymophic address class 
Ipv6InterfaceContainer Assign(const NetDeviceContainer &c)
Allocate an Ipv6InterfaceContainer with auto-assigned addresses. 
uint32_t GetN(void) const 
Get the number of Ptr stored in this container. 
static void Init(const Ipv6Address net, const Ipv6Prefix prefix, const Ipv6Address interfaceId="::1")
Initialise the base network and interfaceId for the generator. 
holds a vector of ns3::NetDevice pointers 
static Mac48Address ConvertFrom(const Address &address)
#define NS_ASSERT_MSG(condition, message)
Describes an IPv6 address. 
NS_LOG_COMPONENT_DEFINE("PacketLossCounter")
static Mac64Address ConvertFrom(const Address &address)
Describes an IPv6 prefix. It is just a bitmask like Ipv4Mask. 
static bool AddAllocated(const Ipv6Address addr)
Add the Ipv6Address to the list of IPv6 entries. 
static bool IsMatchingType(const Address &address)
Ipv6InterfaceContainer AssignWithoutAddress(const NetDeviceContainer &c)
Allocate an Ipv6InterfaceContainer but do not assign any IPv6 addresses. 
Ptr< T > GetObject(void) const 
static Ipv6Address NextAddress(const Ipv6Prefix prefix)
Allocate the next Ipv6Address for the configured network and prefix. 
Ipv6AddressHelper()
Constructor. 
void NewNetwork(void)
Allocate a new network. 
static Ipv6Address GetNetwork(const Ipv6Prefix prefix)
Get the current network of the given Ipv6Prefix. 
Ipv6Address NewAddress(void)
Allocate a new Ipv6Address with interface ID equal to the next one in the underlying generator...