--- 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);