Address comparator moved to separate file, remade constructors (closed ticket
#21), removed unneded "struct" word
--- a/src/devices/l2-routing/l2-routing-hwmp/hwmp-rtable.cc Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/l2-routing/l2-routing-hwmp/hwmp-rtable.cc Fri Mar 13 13:40:43 2009 +0300
@@ -70,7 +70,7 @@
uint32_t seqnum
)
{
- std::map<Mac48Address, ReactiveRoute, addrcmp>::iterator i = m_routes.find(destination);
+ std::map<Mac48Address, ReactiveRoute, mac48addrComparator>::iterator i = m_routes.find(destination);
if(i == m_routes.end())
{
ReactiveRoute newroute;
@@ -135,7 +135,7 @@
HwmpRtable::AddPrecursor(Mac48Address destination, uint32_t port, Mac48Address precursor)
{
bool should_add = true;
- std::map<Mac48Address, ReactiveRoute, addrcmp>::iterator i = m_routes.find(destination);
+ std::map<Mac48Address, ReactiveRoute, mac48addrComparator>::iterator i = m_routes.find(destination);
if((i != m_routes.end()) && (i->second.port == port))
{
for(unsigned int j = 0 ; j < i->second.precursors.size(); j ++)
@@ -178,7 +178,7 @@
void
HwmpRtable::DeleteReactivePath(Mac48Address destination, uint32_t port)
{
- std::map<Mac48Address, ReactiveRoute, addrcmp>::iterator i = m_routes.find(destination);
+ std::map<Mac48Address, ReactiveRoute, mac48addrComparator>::iterator i = m_routes.find(destination);
if(i != m_routes.end())
if(i->second.port == port)
m_routes.erase(i);
@@ -192,7 +192,7 @@
result.metric = MAX_METRIC;
result.ifIndex = PORT_ANY;
- std::map<Mac48Address, ReactiveRoute, addrcmp>::iterator i = m_routes.find(destination);
+ std::map<Mac48Address, ReactiveRoute, mac48addrComparator>::iterator i = m_routes.find(destination);
if(i == m_routes.end())
return result;
result.ifIndex = i->second.port;
@@ -213,7 +213,7 @@
result.retransmitter = Mac48Address::GetBroadcast();
result.metric = MAX_METRIC;
result.ifIndex = PORT_ANY;
- std::map<uint32_t, ProactiveRoute, addrcmp>::iterator i = m_roots.find(port);
+ std::map<uint32_t, ProactiveRoute, mac48addrComparator>::iterator i = m_roots.find(port);
if(i == m_roots.end())
return result;
result.ifIndex = i->first;
@@ -229,7 +229,7 @@
HwmpRtable::GetUnreachableDestinations(Mac48Address peerAddress, uint32_t port)
{
std::vector<FailedDestination> retval;
- for(std::map<Mac48Address, ReactiveRoute, addrcmp>::iterator i = m_routes.begin(); i!= m_routes.end(); i++)
+ for(std::map<Mac48Address, ReactiveRoute, mac48addrComparator>::iterator i = m_routes.begin(); i!= m_routes.end(); i++)
if((i->second.retransmitter == peerAddress)&&(i->second.port == port))
{
FailedDestination dst;
@@ -241,7 +241,7 @@
/**
* Lookup a path to root
*/
- std::map<uint32_t, ProactiveRoute, addrcmp>::iterator i = m_roots.find(port);
+ std::map<uint32_t, ProactiveRoute, mac48addrComparator>::iterator i = m_roots.find(port);
if((i != m_roots.end())&&(i->second.retransmitter == peerAddress))
{
FailedDestination dst;
@@ -254,7 +254,7 @@
uint32_t
HwmpRtable::RequestSeqnum(Mac48Address destination)
{
- std::map<Mac48Address, ReactiveRoute, addrcmp>::iterator i = m_routes.find(destination);
+ std::map<Mac48Address, ReactiveRoute, mac48addrComparator>::iterator i = m_routes.find(destination);
if(i == m_routes.end())
return 0;
return i->second.seqnum;
@@ -264,13 +264,13 @@
HwmpRtable::GetPrecursors(Mac48Address destination, uint32_t port)
{
std::vector<Mac48Address> retval;
- std::map<uint32_t, ProactiveRoute, addrcmp>::iterator root = m_roots.find(port);
+ std::map<uint32_t, ProactiveRoute, mac48addrComparator>::iterator root = m_roots.find(port);
if((root != m_roots.end()) &&(root->second.root == destination))
{
for(unsigned int i = 0; i < root->second.precursors.size(); i ++)
retval.push_back(root->second.precursors[i]);
}
- std::map<Mac48Address, ReactiveRoute, addrcmp>::iterator route = m_routes.find(destination);
+ std::map<Mac48Address, ReactiveRoute, mac48addrComparator>::iterator route = m_routes.find(destination);
if( (route != m_routes.end()) && (route->second.port == port) )
{
for(unsigned int i = 0; i < route->second.precursors.size(); i ++)
--- a/src/devices/l2-routing/l2-routing-hwmp/hwmp-rtable.h Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/l2-routing/l2-routing-hwmp/hwmp-rtable.h Fri Mar 13 13:40:43 2009 +0300
@@ -26,6 +26,7 @@
#include <map>
#include "ns3/nstime.h"
#include "ns3/mac48-address.h"
+#include "ns3/mac48-address-comparator.h"
#include "ns3/net-device.h"
#include "ns3/event-id.h"
#include "ns3/packet.h"
@@ -66,9 +67,9 @@
uint32_t metric;
uint32_t seqnum;
};
- struct LookupResult
+ LookupResult
LookupReactive(Mac48Address destination);
- struct LookupResult
+ LookupResult
LookupProactive(uint32_t port);
//path error routines:
struct FailedDestination
@@ -76,7 +77,7 @@
Mac48Address destination;
uint32_t seqnum;
};
- std::vector<struct FailedDestination>
+ std::vector<FailedDestination>
GetUnreachableDestinations(Mac48Address peerAddress, uint32_t port);
uint32_t
RequestSeqnum(Mac48Address dst);
@@ -103,22 +104,9 @@
uint32_t seqnum;
std::vector<Mac48Address> precursors;
};
- struct addrcmp
- {
- bool operator()(const Mac48Address addr1, const Mac48Address addr2) const
- {
- uint8_t s1[6], s2[6];
- addr1.CopyTo(s1);
- addr2.CopyTo(s2);
- for(int i = 0; i < 6; i ++)
- if(s1[i] > s2[i])
- return true;
- return false;
- }
- };
- std::map<Mac48Address, struct ReactiveRoute, addrcmp>
+ std::map<Mac48Address, ReactiveRoute, mac48addrComparator>
m_routes;
- std::map<uint32_t, struct ProactiveRoute>
+ std::map<uint32_t, ProactiveRoute>
m_roots;
};
} //namespace ns3
--- a/src/devices/l2-routing/l2-routing-hwmp/hwmp-state.cc Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/l2-routing/l2-routing-hwmp/hwmp-state.cc Fri Mar 13 13:40:43 2009 +0300
@@ -37,13 +37,13 @@
return tid;
}
-HwmpState::HwmpState()
+HwmpState::HwmpState():
+ m_myPreq(m_preqQueue.end()),
+ m_preqId(1),
+ m_myDsn(1),
+ m_disabled(false),
+ m_maxTtl(10)
{
- m_myPreq = m_preqQueue.end();
- m_preqId = 1;
- m_myDsn = 1;
- m_maxTtl = 10;
- m_disabled = false;
}
void
HwmpState::SetRequestRouteCallback(
@@ -184,7 +184,7 @@
if(preq.GetTtl() == 0)
return;
//acceptance cretirea:
- std::map<Mac48Address, uint32_t, addrcmp>::iterator i = m_dsnDatabase.find(preq.GetOriginatorAddress());
+ std::map<Mac48Address, uint32_t, mac48addrComparator>::iterator i = m_dsnDatabase.find(preq.GetOriginatorAddress());
if(i == m_dsnDatabase.end())
{
m_dsnDatabase[preq.GetOriginatorAddress()] = preq.GetOriginatorSeqNumber();
@@ -197,7 +197,7 @@
if(i->second == preq.GetOriginatorSeqNumber())
{
//find metric
- std::map<Mac48Address, uint32_t, addrcmp>::iterator j =
+ std::map<Mac48Address, uint32_t, mac48addrComparator>::iterator j =
m_preqMetricDatabase.find(preq.GetOriginatorAddress());
NS_ASSERT(j != m_dsnDatabase.end());
if(j->second <= preq.GetMetric())
@@ -319,7 +319,7 @@
prep.DecrementTtl();
prep.IncrementMetric(metric);
//acceptance cretirea:
- std::map<Mac48Address, uint32_t, addrcmp>::iterator i = m_dsnDatabase.find(prep.GetDestinationAddress());
+ std::map<Mac48Address, uint32_t, mac48addrComparator>::iterator i = m_dsnDatabase.find(prep.GetDestinationAddress());
if(i == m_dsnDatabase.end())
{
m_dsnDatabase[prep.GetDestinationAddress()] = prep.GetDestinationSeqNumber();
--- a/src/devices/l2-routing/l2-routing-hwmp/hwmp-state.h Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/l2-routing/l2-routing-hwmp/hwmp-state.h Fri Mar 13 13:40:43 2009 +0300
@@ -54,9 +54,9 @@
* information
*/
void SetRequestRouteCallback(
- Callback<struct HwmpRtable::LookupResult, const Mac48Address&> cb);
+ Callback<HwmpRtable::LookupResult, const Mac48Address&> cb);
void SetRequestRootPathCallback(
- Callback<struct HwmpRtable::LookupResult, uint32_t> cb);
+ Callback<HwmpRtable::LookupResult, uint32_t> cb);
enum InfoType {
INFO_PREQ,
@@ -84,9 +84,9 @@
Callback<void, INFO> cb
);
void SetRetransmittersOfPerrCallback(
- Callback<std::vector<Mac48Address>, std::vector<struct HwmpRtable::FailedDestination>, uint32_t> cb);
+ Callback<std::vector<Mac48Address>, std::vector<HwmpRtable::FailedDestination>, uint32_t> cb);
void RequestDestination(Mac48Address dest);
- void SendPathError(std::vector<struct HwmpRtable::FailedDestination> destinations);
+ void SendPathError(std::vector<HwmpRtable::FailedDestination> destinations);
void SetAssociatedIfaceId(uint32_t interface);
uint32_t
GetAssociatedIfaceId();
@@ -144,11 +144,11 @@
//HWMP interaction callbacks:
Callback<void, INFO>
m_routingInfoCallback;
- Callback<std::vector<Mac48Address>, std::vector<struct HwmpRtable::FailedDestination>, uint32_t>
+ Callback<std::vector<Mac48Address>, std::vector<HwmpRtable::FailedDestination>, uint32_t>
m_retransmittersOfPerrCallback;
- Callback<struct HwmpRtable::LookupResult, const Mac48Address&>
+ Callback<HwmpRtable::LookupResult, const Mac48Address&>
m_requestRouteCallback;
- Callback<struct HwmpRtable::LookupResult, uint32_t>
+ Callback<HwmpRtable::LookupResult, uint32_t>
m_requestRootPathCallback;
//Mac interaction callbacks:
Callback<void, const WifiPreqInformationElement&>
@@ -161,22 +161,9 @@
uint32_t m_preqId;
uint32_t m_myDsn;
//Seqno and metric database
- struct addrcmp
- {
- bool operator()(const Mac48Address addr1, Mac48Address addr2) const
- {
- uint8_t s1[6], s2[6];
- addr1.CopyTo(s1);
- addr2.CopyTo(s2);
- for(int i = 0; i < 6; i ++)
- if(s1[i] > s2[i])
- return true;
- return false;
- }
- };
- std::map<Mac48Address, uint32_t, addrcmp>
+ std::map<Mac48Address, uint32_t, mac48addrComparator>
m_dsnDatabase;
- std::map<Mac48Address, uint32_t, addrcmp>
+ std::map<Mac48Address, uint32_t, mac48addrComparator>
m_preqMetricDatabase;
//Disable/enable functionality
bool m_disabled;
--- a/src/devices/l2-routing/l2-routing-hwmp/hwmp.cc Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/l2-routing/l2-routing-hwmp/hwmp.cc Fri Mar 13 13:40:43 2009 +0300
@@ -156,11 +156,11 @@
.AddConstructor<Hwmp>();
return tid;
}
-Hwmp::Hwmp()
+Hwmp::Hwmp():
+ m_rtable(CreateObject<HwmpRtable> ()),
+ m_maxTtl(32),
+ m_broadcastPerr(false)
{
- m_maxTtl = 32;
- m_broadcastPerr = false;
- m_rtable = CreateObject<HwmpRtable> ();
}
Hwmp::~Hwmp()
@@ -170,7 +170,7 @@
void
Hwmp::DoDispose()
{
- for(std::map<Mac48Address, EventId, addrcmp>::iterator i = m_timeoutDatabase.begin(); i != m_timeoutDatabase.end(); i ++)
+ for(std::map<Mac48Address, EventId, mac48addrComparator>::iterator i = m_timeoutDatabase.begin(); i != m_timeoutDatabase.end(); i ++)
i->second.Cancel();
m_timeoutDatabase.clear();
m_seqnoDatabase.clear();
@@ -230,7 +230,7 @@
//check seqno!
if(destination == Mac48Address::GetBroadcast())
{
- std::map<Mac48Address, uint32_t, addrcmp>::iterator i = m_seqnoDatabase.find(source);
+ std::map<Mac48Address, uint32_t, mac48addrComparator>::iterator i = m_seqnoDatabase.find(source);
if(i == m_seqnoDatabase.end())
m_seqnoDatabase[source] = tag.GetSeqno();
else
@@ -611,7 +611,7 @@
L2RoutingProtocol::QueuedPacket retval;
retval.pkt = NULL;
//Ptr<Packet> in this structure is NULL when queue is empty
- std::map<Mac48Address, std::queue<QueuedPacket>, addrcmp>:: iterator i = m_rqueue.find(dst);
+ std::map<Mac48Address, std::queue<QueuedPacket>, mac48addrComparator>:: iterator i = m_rqueue.find(dst);
if(i == m_rqueue.end())
return retval;
if((int)m_rqueue[dst].size() == 0)
@@ -651,7 +651,7 @@
bool
Hwmp::ShouldSendPreq(Mac48Address dst)
{
- std::map<Mac48Address, EventId, addrcmp>::iterator i = m_timeoutDatabase.find(dst);
+ std::map<Mac48Address, EventId, mac48addrComparator>::iterator i = m_timeoutDatabase.find(dst);
if(i == m_timeoutDatabase.end())
{
m_timeoutDatabase[dst] = Simulator::Schedule(
@@ -667,7 +667,7 @@
HwmpRtable::LookupResult result = m_rtable->LookupReactive(dst);
if(result.retransmitter != Mac48Address::GetBroadcast())
{
- std::map<Mac48Address, EventId, addrcmp>::iterator i = m_timeoutDatabase.find(dst);
+ std::map<Mac48Address, EventId, mac48addrComparator>::iterator i = m_timeoutDatabase.find(dst);
NS_ASSERT(i!= m_timeoutDatabase.end());
m_timeoutDatabase.erase(i);
return;
@@ -684,7 +684,7 @@
break;
packet.reply(false, packet.pkt, packet.src, packet.dst, packet.protocol, HwmpRtable::MAX_METRIC);
}
- std::map<Mac48Address, EventId, addrcmp>::iterator i = m_timeoutDatabase.find(dst);
+ std::map<Mac48Address, EventId, mac48addrComparator>::iterator i = m_timeoutDatabase.find(dst);
NS_ASSERT(i!= m_timeoutDatabase.end());
m_timeoutDatabase.erase(i);
return;
--- a/src/devices/l2-routing/l2-routing-hwmp/hwmp.h Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/l2-routing/l2-routing-hwmp/hwmp.h Fri Mar 13 13:40:43 2009 +0300
@@ -27,6 +27,7 @@
#include "ns3/tag.h"
#include "ns3/object.h"
#include "ns3/mac48-address.h"
+#include "ns3/mac48-address-comparator.h"
#include "ns3/l2-routing-protocol.h"
#include "ns3/packet.h"
#include "ns3/ptr.h"
@@ -167,24 +168,11 @@
//protocol:
void SetMaxQueueSize(int maxPacketsPerDestination);
int m_maxQueueSize;
- bool QueuePacket(struct L2RoutingProtocol::QueuedPacket packet);
- struct L2RoutingProtocol::QueuedPacket
+ bool QueuePacket(L2RoutingProtocol::QueuedPacket packet);
+ L2RoutingProtocol::QueuedPacket
DequeuePacket(Mac48Address dst);
void SendAllPossiblePackets(Mac48Address dst);
- struct addrcmp
- {
- bool operator()(const Mac48Address addr1, Mac48Address addr2) const
- {
- uint8_t s1[6], s2[6];
- addr1.CopyTo(s1);
- addr2.CopyTo(s2);
- for(int i = 0; i < 6; i ++)
- if(s1[i] > s2[i])
- return true;
- return false;
- }
- };
- std::map<Mac48Address, std::queue<struct QueuedPacket> >
+ std::map<Mac48Address, std::queue<QueuedPacket> >
m_rqueue;
//devices and HWMP states:
enum DeviceState {
@@ -236,10 +224,10 @@
* \param std::vector<Mac48Address> is
* receivers of PERR
*/
- std::vector<Callback<void,std::vector<struct HwmpRtable::FailedDestination> > >
+ std::vector<Callback<void,std::vector<HwmpRtable::FailedDestination> > >
m_pathErrorCallback;
void StartPathErrorProcedure(
- std::vector<struct HwmpRtable::FailedDestination> destinations,
+ std::vector<HwmpRtable::FailedDestination> destinations,
uint32_t port);
/**
* \brief HwmpState need to know where to
@@ -249,7 +237,7 @@
*/
std::vector<Mac48Address>
GetRetransmittersForFailedDestinations(
- std::vector<struct HwmpRtable::FailedDestination> failedDest,
+ std::vector<HwmpRtable::FailedDestination> failedDest,
uint32_t port);
/**
* \brief Needed by HwmpState to find routes in case
@@ -257,9 +245,9 @@
* better route
*
*/
- struct HwmpRtable::LookupResult
+ HwmpRtable::LookupResult
RequestRouteForAddress(const Mac48Address& destination);
- struct HwmpRtable::LookupResult
+ HwmpRtable::LookupResult
RequestRootPathForPort(uint32_t port);
/**
@@ -271,7 +259,7 @@
* \attention mesh seqno is processed at HWMP
*/
uint32_t m_seqno;
- std::map<Mac48Address, uint32_t, addrcmp>
+ std::map<Mac48Address, uint32_t, mac48addrComparator>
m_seqnoDatabase;
//Timers:
/**
@@ -291,7 +279,7 @@
* Keeps PREQ retry timers for every
* destination
*/
- std::map<Mac48Address, EventId, addrcmp>
+ std::map<Mac48Address, EventId, mac48addrComparator>
m_timeoutDatabase;
/**
* Configurable parameters:
--- a/src/devices/wifi/mesh-wifi-mac-header.cc Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/wifi/mesh-wifi-mac-header.cc Fri Mar 13 13:40:43 2009 +0300
@@ -18,8 +18,8 @@
}
WifiMeshHeader::WifiMeshHeader()
+ :m_meshFlags(0)
{
- m_meshFlags = 0;
}
WifiMeshHeader::~WifiMeshHeader()
--- a/src/devices/wifi/mesh-wifi-mac.h Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/wifi/mesh-wifi-mac.h Fri Mar 13 13:40:43 2009 +0300
@@ -26,6 +26,7 @@
#include <stdint.h>
#include <map>
#include "ns3/mac48-address.h"
+#include "ns3/mac48-address-comparator.h"
#include "mgt-headers.h"
#include "mesh-mgt-headers.h"
#include "ns3/callback.h"
@@ -375,21 +376,7 @@
* \brief metric calculation parameters
*/
uint32_t CalculateMetric(Mac48Address peerAddress);
- struct addrcmp
- {
- bool operator()(const Mac48Address addr1, Mac48Address addr2) const
- {
- uint8_t s1[6], s2[6];
- addr1.CopyTo(s1);
- addr2.CopyTo(s2);
- for(int i = 0; i < 6; i ++)
- if(s1[i] > s2[i])
- return true;
- return false;
- }
- };
-
- std::map<Mac48Address, uint32_t, addrcmp>
+ std::map<Mac48Address, uint32_t, mac48addrComparator>
m_metricDatabase;
};
--- a/src/devices/wifi/mesh-wifi-peer-manager.h Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/wifi/mesh-wifi-peer-manager.h Fri Mar 13 13:40:43 2009 +0300
@@ -269,7 +269,7 @@
typedef std::map<Mac48Address, std::vector<Ptr<WifiPeerLinkDescriptor> >, std::less<Mac48Address> >
PeerDescriptorsMap;
typedef std::map<Mac48Address, Ptr<MeshWifiMac>,std::less<Mac48Address> > MeshMacMap;
- typedef std::map<Mac48Address, struct BeaconInfo, std::less<Mac48Address> > BeaconInfoMap;
+ typedef std::map<Mac48Address, BeaconInfo, std::less<Mac48Address> > BeaconInfoMap;
//Ptr<MeshWifiMac> m_mac;
//Maximum peers that may be opened:
--- a/src/devices/wifi/mesh-wifi-perr-information-element.cc Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/wifi/mesh-wifi-perr-information-element.cc Fri Mar 13 13:40:43 2009 +0300
@@ -46,9 +46,9 @@
{
return GetTypeId();
}
-WifiPerrInformationElement::WifiPerrInformationElement()
+WifiPerrInformationElement::WifiPerrInformationElement():
+ m_numOfDest(0)
{
- m_numOfDest = 0;
}
uint8_t
WifiPerrInformationElement::GetNumOfDest()
@@ -83,7 +83,7 @@
length = 0; //to avoid compiler warning in optimized builds
for(unsigned int j = 0; j < m_numOfDest; j++)
{
- struct HwmpRtable::FailedDestination unit;
+ HwmpRtable::FailedDestination unit;
ReadFrom(i,unit.destination);
unit.seqnum = i.ReadNtohU32();
m_addressUnits.push_back(unit);
@@ -105,7 +105,7 @@
}
void
-WifiPerrInformationElement::AddAddressUnit(struct HwmpRtable::FailedDestination unit)
+WifiPerrInformationElement::AddAddressUnit(HwmpRtable::FailedDestination unit)
{
for(unsigned int i = 0; i < m_addressUnits.size(); i ++)
if(m_addressUnits[i].destination == unit.destination)
@@ -114,7 +114,7 @@
m_numOfDest++;
}
-std::vector<struct HwmpRtable::FailedDestination>
+std::vector<HwmpRtable::FailedDestination>
WifiPerrInformationElement::GetAddressUnitVector()
{
return m_addressUnits;
@@ -122,7 +122,7 @@
void
WifiPerrInformationElement::DeleteAddressUnit(Mac48Address address)
{
- for(std::vector<struct HwmpRtable::FailedDestination>::iterator i = m_addressUnits.begin(); i != m_addressUnits.end(); i ++)
+ for(std::vector<HwmpRtable::FailedDestination>::iterator i = m_addressUnits.begin(); i != m_addressUnits.end(); i ++)
if((*i).destination == address)
{
m_numOfDest --;
--- a/src/devices/wifi/mesh-wifi-perr-information-element.h Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/wifi/mesh-wifi-perr-information-element.h Fri Mar 13 13:40:43 2009 +0300
@@ -51,13 +51,13 @@
uint8_t GetNumOfDest();
void AddAddressUnit(struct HwmpRtable::FailedDestination unit);
- std::vector<struct HwmpRtable::FailedDestination>
+ std::vector<HwmpRtable::FailedDestination>
GetAddressUnitVector();
void DeleteAddressUnit(Mac48Address address);
void ResetPerr();
private:
uint8_t m_numOfDest;
- std::vector<struct HwmpRtable::FailedDestination>
+ std::vector<HwmpRtable::FailedDestination>
m_addressUnits;
};
--- a/src/devices/wifi/mesh-wifi-prep-information-element.cc Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/wifi/mesh-wifi-prep-information-element.cc Fri Mar 13 13:40:43 2009 +0300
@@ -49,16 +49,17 @@
{
return GetTypeId();
}
-WifiPrepInformationElement::WifiPrepInformationElement()
+WifiPrepInformationElement::WifiPrepInformationElement():
+ m_flags(0),
+ m_hopcount(0),
+ m_ttl(0),
+ m_destinationAddress(Mac48Address::GetBroadcast()),
+ m_destSeqNumber(0),
+ m_lifetime(0),
+ m_metric(0),
+ m_originatorAddress(Mac48Address::GetBroadcast()),
+ m_originatorSeqNumber(0)
{
- m_flags = 0;
- m_hopcount = 0;
- m_ttl = 0;
- m_destSeqNumber = 0;
- m_lifetime = 0;
- m_destinationAddress = Mac48Address::GetBroadcast();
- m_metric = 0;
- m_originatorSeqNumber = 0;
}
void
WifiPrepInformationElement::SetFlags(uint8_t flags)
--- a/src/devices/wifi/mesh-wifi-preq-information-element.cc Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/wifi/mesh-wifi-preq-information-element.cc Fri Mar 13 13:40:43 2009 +0300
@@ -105,18 +105,18 @@
return GetTypeId();
}
-WifiPreqInformationElement::WifiPreqInformationElement()
+WifiPreqInformationElement::WifiPreqInformationElement():
+ m_maxSize(32),
+ m_flags(0),
+ m_hopCount(0),
+ m_ttl(0),
+ m_preqId(0),
+ m_originatorAddress(Mac48Address::GetBroadcast()),
+ m_originatorSeqNumber(0),
+ m_lifetime(0),
+ m_metric(0),
+ m_destCount(0)
{
- m_flags = 0;
- m_hopCount = 0;
- m_ttl = 0;
- m_preqId = 0;
- m_lifetime = 0;
- m_originatorAddress = Mac48Address::GetBroadcast();
- m_originatorSeqNumber = 0;
- m_metric = 0;
- m_destCount = 0;
- m_maxSize = 32;
}
void
WifiPreqInformationElement::SetUnicastPreq()
--- a/src/devices/wifi/mesh-wifi-preq-information-element.h Thu Mar 12 13:39:22 2009 +0300
+++ b/src/devices/wifi/mesh-wifi-preq-information-element.h Fri Mar 13 13:40:43 2009 +0300
@@ -102,10 +102,8 @@
void IncrementMetric(uint32_t metric);
private:
- std::vector<Ptr<DestinationAddressUnit> >
- m_destinations;
//how many destinations we support
- uint8_t m_maxSize;
+ uint8_t m_maxSize; //TODO: make as an attrubute
//Fields:
uint8_t m_flags;
uint8_t m_hopCount;
@@ -116,6 +114,9 @@
uint32_t m_lifetime;
uint32_t m_metric;
uint8_t m_destCount;
+ std::vector<Ptr<DestinationAddressUnit> >
+ m_destinations;
+
};
} //namespace ns3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/node/mac48-address-comparator.h Fri Mar 13 13:40:43 2009 +0300
@@ -0,0 +1,19 @@
+#ifndef MAC48ADDRESS_COMPARATOR
+#define MAC48ADDRESS_COMPARATOR
+#include "ns3/mac48-address.h"
+namespace ns3 {
+struct mac48addrComparator
+ {
+ bool operator()(const Mac48Address addr1, Mac48Address addr2) const
+ {
+ uint8_t s1[6], s2[6];
+ addr1.CopyTo(s1);
+ addr2.CopyTo(s2);
+ for(int i = 0; i < 6; i ++)
+ if(s1[i] > s2[i])
+ return true;
+ return false;
+ }
+ };
+}//namespace ns3
+#endif
--- a/src/node/wscript Thu Mar 12 13:39:22 2009 +0300
+++ b/src/node/wscript Fri Mar 13 13:40:43 2009 +0300
@@ -45,6 +45,7 @@
headers.module = 'node'
headers.source = [
'address.h',
+ 'mac48-address-comparator.h',
'mac48-address.h',
'mac64-address.h',
'inet-socket-address.h',