diff --git a/src/devices/mesh/dot11s/hwmp-protocol-mac.cc b/src/devices/mesh/dot11s/hwmp-protocol-mac.cc
index e74a0e83c..fc8986a27 100644
--- a/src/devices/mesh/dot11s/hwmp-protocol-mac.cc
+++ b/src/devices/mesh/dot11s/hwmp-protocol-mac.cc
@@ -334,13 +334,13 @@ HwmpProtocolMac::Statistics::Print (std::ostream & os) const
"rxPrep=\"" << rxPrep << "\"\n"
"rxPerr=\"" << rxPerr << "\"\n"
"txMgt=\"" << txMgt << "\"\n"
- "txMgtBytes=\"" << (double)txMgtBytes / 1024.0 << "K\"\n"
+ "txMgtBytes=\"" << txMgtBytes << "\"\n"
"rxMgt=\"" << rxMgt << "\"\n"
- "rxMgtBytes=\"" << (double)rxMgtBytes / 1204.0 << "K\"\n"
+ "rxMgtBytes=\"" << rxMgtBytes << "\"\n"
"txData=\"" << txData << "\"\n"
- "txDataBytes=\"" << (double)txDataBytes / 1024.0 << "K\"\n"
+ "txDataBytes=\"" << txDataBytes << "\"\n"
"rxData=\"" << rxData << "\"\n"
- "rxDataBytes=\"" << (double)rxDataBytes / 1024.0 << "K\"/>\n";
+ "rxDataBytes=\"" << rxDataBytes << "\"/>\n";
}
void
HwmpProtocolMac::Report (std::ostream & os) const
diff --git a/src/devices/mesh/dot11s/hwmp-protocol.cc b/src/devices/mesh/dot11s/hwmp-protocol.cc
index 27ffc6ab8..eac08ce0f 100644
--- a/src/devices/mesh/dot11s/hwmp-protocol.cc
+++ b/src/devices/mesh/dot11s/hwmp-protocol.cc
@@ -961,7 +961,7 @@ void HwmpProtocol::Statistics::Print (std::ostream & os) const
os << "\n";
@@ -973,13 +973,13 @@ HwmpProtocol::Report (std::ostream & os) const
"address=\"" << m_address << "\"\n"
"maxQueueSize=\"" << m_maxQueueSize << "\"\n"
"dot11MeshHWMPmaxPREQretries=\"" << (uint16_t)m_dot11MeshHWMPmaxPREQretries << "\"\n"
- "dot11MeshHWMPnetDiameterTraversalTime=\"" << m_dot11MeshHWMPnetDiameterTraversalTime.GetMilliSeconds () << "ms\"\n"
- "dot11MeshHWMPpreqMinInterval=\"" << m_dot11MeshHWMPpreqMinInterval.GetMilliSeconds () << "ms\"\n"
- "dot11MeshHWMPperrMinInterval=\"" << m_dot11MeshHWMPperrMinInterval.GetMilliSeconds () << "ms\"\n"
- "dot11MeshHWMPactiveRootTimeout=\"" << m_dot11MeshHWMPactiveRootTimeout.GetMilliSeconds () << "ms\"\n"
- "dot11MeshHWMPactivePathTimeout=\"" << m_dot11MeshHWMPactivePathTimeout.GetMilliSeconds () << "ms\"\n"
- "dot11MeshHWMPpathToRootInterval=\"" << m_dot11MeshHWMPpathToRootInterval.GetMilliSeconds () << "ms\"\n"
- "dot11MeshHWMPrannInterval=\"" << m_dot11MeshHWMPrannInterval.GetMilliSeconds () << "ms\"\n"
+ "dot11MeshHWMPnetDiameterTraversalTime=\"" << m_dot11MeshHWMPnetDiameterTraversalTime.GetSeconds () << "\"\n"
+ "dot11MeshHWMPpreqMinInterval=\"" << m_dot11MeshHWMPpreqMinInterval.GetSeconds () << "\"\n"
+ "dot11MeshHWMPperrMinInterval=\"" << m_dot11MeshHWMPperrMinInterval.GetSeconds () << "\"\n"
+ "dot11MeshHWMPactiveRootTimeout=\"" << m_dot11MeshHWMPactiveRootTimeout.GetSeconds () << "\"\n"
+ "dot11MeshHWMPactivePathTimeout=\"" << m_dot11MeshHWMPactivePathTimeout.GetSeconds () << "\"\n"
+ "dot11MeshHWMPpathToRootInterval=\"" << m_dot11MeshHWMPpathToRootInterval.GetSeconds () << "\"\n"
+ "dot11MeshHWMPrannInterval=\"" << m_dot11MeshHWMPrannInterval.GetSeconds () << "\"\n"
"isRoot=\"" << m_isRoot << "\"\n"
"maxTtl=\"" << (uint16_t)m_maxTtl << "\"\n"
"unicastPerrThreshold=\"" << (uint16_t)m_unicastPerrThreshold << "\"\n"
diff --git a/src/devices/mesh/dot11s/peer-link.cc b/src/devices/mesh/dot11s/peer-link.cc
index 293195587..9850aa9dd 100644
--- a/src/devices/mesh/dot11s/peer-link.cc
+++ b/src/devices/mesh/dot11s/peer-link.cc
@@ -602,15 +602,11 @@ PeerLink::Report (std::ostream & os) const
"localAddress=\"" << m_macPlugin->GetAddress () << "\"\n"
"peerInterfaceAddress=\"" << m_peerAddress << "\"\n"
"peerMeshPointAddress=\"" << m_peerMeshPointAddress << "\"\n"
- "metricOfTheLink=\"" << m_macPlugin->GetLinkMetric(m_peerAddress) << "\"\n"
- "lastBeacon=\"" << m_lastBeacon.GetMilliSeconds () << "ms\"\n"
+ "metric=\"" << m_macPlugin->GetLinkMetric(m_peerAddress) << "\"\n"
+ "lastBeacon=\"" << m_lastBeacon.GetSeconds () << "\"\n"
"localLinkId=\"" << m_localLinkId << "\"\n"
"peerLinkId=\"" << m_peerLinkId << "\"\n"
"assocId=\"" << m_assocId << "\"\n"
- "dot11MeshMaxRetries=\"" << m_dot11MeshMaxRetries << "\"\n"
- "dot11MeshRetryTimeout=\"" << m_dot11MeshRetryTimeout.GetMilliSeconds () << "ms\"\n"
- "dot11MeshHoldingTimeout=\"" << m_dot11MeshHoldingTimeout.GetMilliSeconds () << "ms\"\n"
- "dot11MeshConfirmTimeout=\"" << m_dot11MeshConfirmTimeout.GetMilliSeconds () << "ms\"\n"
"/>\n";
}
} // namespace dot11s
diff --git a/src/devices/mesh/dot11s/peer-management-protocol-mac.cc b/src/devices/mesh/dot11s/peer-management-protocol-mac.cc
index ec7de71e3..a76c2e842 100644
--- a/src/devices/mesh/dot11s/peer-management-protocol-mac.cc
+++ b/src/devices/mesh/dot11s/peer-management-protocol-mac.cc
@@ -289,9 +289,9 @@ PeerManagementProtocolMac::Statistics::Print (std::ostream & os) const
"dropped=\"" << dropped << "\"\n"
"brokenMgt=\"" << brokenMgt << "\"\n"
"txMgt=\"" << txMgt << "\"\n"
- "txMgtBytes=\"" << (double)txMgtBytes /1024.0 << "\"\n"
+ "txMgtBytes=\"" << txMgtBytes << "\"\n"
"rxMgt=\"" << rxMgt << "\"\n"
- "rxMgtBytes=\"" << (double)rxMgtBytes / 1024.0 << "K\"\n"
+ "rxMgtBytes=\"" << rxMgtBytes << "\"\n"
"beaconShift=\"" << beaconShift << "\"/>\n";
}
void
diff --git a/src/devices/mesh/dot11s/peer-management-protocol.cc b/src/devices/mesh/dot11s/peer-management-protocol.cc
index 2af2d02ae..52b495bb3 100644
--- a/src/devices/mesh/dot11s/peer-management-protocol.cc
+++ b/src/devices/mesh/dot11s/peer-management-protocol.cc
@@ -61,8 +61,7 @@ PeerManagementProtocol::GetTypeId (void)
}
PeerManagementProtocol::PeerManagementProtocol ():
m_lastAssocId (0),
- m_lastLocalLinkId (1),
- m_numberOfActivePeers (0)
+ m_lastLocalLinkId (1)
{
}
PeerManagementProtocol::~PeerManagementProtocol ()
@@ -345,9 +344,7 @@ PeerManagementProtocol::IsActiveLink (uint32_t interface, Mac48Address peerAddre
bool
PeerManagementProtocol::ShouldSendOpen (uint32_t interface, Mac48Address peerAddress)
{
- if (m_numberOfActivePeers > m_maxNumberOfPeerLinks)
- return false;
- return true;
+ return (m_stats.linksTotal <= m_maxNumberOfPeerLinks);
}
bool
PeerManagementProtocol::ShouldAcceptOpen (
@@ -355,7 +352,7 @@ PeerManagementProtocol::ShouldAcceptOpen (
Mac48Address peerAddress,
PmpReasonCode & reasonCode)
{
- if (m_numberOfActivePeers > m_maxNumberOfPeerLinks)
+ if (m_stats.linksTotal > m_maxNumberOfPeerLinks)
{
reasonCode = REASON11S_MESH_MAX_PEERS;
return false;
@@ -428,14 +425,14 @@ PeerManagementProtocol::PeerLinkStatus (uint32_t interface, Mac48Address peerAdd
if((nstate == PeerLink::ESTAB) && (ostate != PeerLink::ESTAB))
{
m_stats.linksOpened ++;
- m_numberOfActivePeers ++;
+ m_stats.linksTotal++;
if(!m_peerStatusCallback.IsNull ())
m_peerStatusCallback (peerMeshPointAddress, peerAddress, interface, true);
}
if((ostate == PeerLink::ESTAB) && (nstate != PeerLink::ESTAB))
{
m_stats.linksClosed ++;
- m_numberOfActivePeers --;
+ m_stats.linksTotal--;
if(!m_peerStatusCallback.IsNull ())
m_peerStatusCallback (peerMeshPointAddress, peerAddress, interface, false);
}
@@ -448,7 +445,7 @@ PeerManagementProtocol::PeerLinkStatus (uint32_t interface, Mac48Address peerAdd
uint8_t
PeerManagementProtocol::GetNumberOfLinks ()
{
- return m_numberOfActivePeers;
+ return m_stats.linksTotal;
}
Ptr
PeerManagementProtocol::GetMeshId () const
@@ -470,6 +467,7 @@ void
PeerManagementProtocol::Statistics::Print (std::ostream & os) const
{
os << "\n";
}
@@ -493,7 +491,7 @@ PeerManagementProtocol::Report (std::ostream & os) const
void
PeerManagementProtocol::ResetStats ()
{
- m_stats = Statistics::Statistics ();
+ m_stats = Statistics::Statistics (m_stats.linksTotal); // don't reset number of links
for(PeerManagementProtocolMacMap::const_iterator plugins = m_plugins.begin (); plugins != m_plugins.end (); plugins ++)
plugins->second->ResetStats ();
}
diff --git a/src/devices/mesh/dot11s/peer-management-protocol.h b/src/devices/mesh/dot11s/peer-management-protocol.h
index 3df63510c..e29d1c432 100644
--- a/src/devices/mesh/dot11s/peer-management-protocol.h
+++ b/src/devices/mesh/dot11s/peer-management-protocol.h
@@ -212,7 +212,6 @@ private:
///\}
uint16_t m_lastAssocId;
uint16_t m_lastLocalLinkId;
- uint8_t m_numberOfActivePeers; //number of established peer links
uint8_t m_maxNumberOfPeerLinks;
/**
* Peer Links
@@ -232,10 +231,11 @@ private:
///\}
//Keeps statistics
struct Statistics {
+ uint16_t linksTotal;
uint16_t linksOpened;
uint16_t linksClosed;
- Statistics () : linksOpened (0), linksClosed (0) {};
+ Statistics (uint16_t t = 0) : linksTotal(t), linksOpened (0), linksClosed (0) {};
void Print (std::ostream & os) const;
};
struct Statistics m_stats;
diff --git a/src/devices/mesh/mesh-point-device.cc b/src/devices/mesh/mesh-point-device.cc
index ec71ace74..fdd5e7b7b 100644
--- a/src/devices/mesh/mesh-point-device.cc
+++ b/src/devices/mesh/mesh-point-device.cc
@@ -424,17 +424,17 @@ MeshPointDevice::Report (std::ostream & os) const
{
os << "\n";
}
diff --git a/src/devices/mesh/mesh-wifi-interface-mac.cc b/src/devices/mesh/mesh-wifi-interface-mac.cc
index 30db7fea3..3ac6f77d4 100644
--- a/src/devices/mesh/mesh-wifi-interface-mac.cc
+++ b/src/devices/mesh/mesh-wifi-interface-mac.cc
@@ -648,17 +648,18 @@ void
MeshWifiInterfaceMac::Statistics::Print (std::ostream & os) const
{
os << "\n";
+ "rxBytes=\"" << recvBytes << "\"/>\n";
}
void
MeshWifiInterfaceMac::Report (std::ostream & os) const
{
os << "\n";
m_stats.Print (os);
diff --git a/src/helper/mesh-helper.cc b/src/helper/mesh-helper.cc
index 181d26922..19ef09b11 100644
--- a/src/helper/mesh-helper.cc
+++ b/src/helper/mesh-helper.cc
@@ -89,7 +89,7 @@ MeshHelper::Report (const ns3::Ptr& device, std::ostream& os)
Ptr mp = device->GetObject ();
NS_ASSERT (mp != 0);
std::vector > ifaces = mp->GetInterfaces ();
- os << "GetAddress () << "\">\n";
+ os << "GetAddress ()) << "\">\n";
m_stack->Report (mp, os);
os << "\n";
}