src/node/mac-address.cc
changeset 926 1fdec986d774
parent 773 18ad0b94e2ae
--- a/src/node/mac-address.cc	Tue Jul 10 13:45:20 2007 +0100
+++ b/src/node/mac-address.cc	Fri Jul 13 10:40:10 2007 +0200
@@ -33,6 +33,9 @@
 
 namespace ns3 {
 
+// Static variables
+uint8_t MacAddress::g_nextAddress[MacAddress::MAX_LEN];
+
 static char
 AsciiToLowCase (char c)
 {
@@ -54,6 +57,13 @@
     }
 }
 
+MacAddress::MacAddress(uint8_t len) : m_len(len)
+{
+  NS_ASSERT (len <= MacAddress::MAX_LEN);
+  AdvanceAddress();
+  memcpy(m_address, g_nextAddress, len);
+}
+
 MacAddress::MacAddress (uint8_t const *address, uint8_t len)
 {
   NS_ASSERT (len <= MacAddress::MAX_LEN);
@@ -148,6 +158,17 @@
         m_len = len;
 }
 
+// Static methods
+void MacAddress::AdvanceAddress()
+  {
+    // Advance to next address, little end first
+    for(size_t i = 0; i < MAX_LEN; ++i)
+      {
+        if (++g_nextAddress[i] != 0) break;
+      }
+  }
+
+// Non-member operators
 bool operator == (MacAddress const&a, MacAddress const&b)
 {
 	return a.IsEqual (b);