--- a/src/devices/mesh/dot11s/dot11s-mac-header.cc Wed Jul 22 13:31:31 2009 +0400
+++ b/src/devices/mesh/dot11s/dot11s-mac-header.cc Wed Jul 22 14:52:42 2009 +0400
@@ -18,15 +18,16 @@
* Author: Kirill Andreev <andreev@iitp.ru>
*/
-
#include "ns3/assert.h"
#include "ns3/address-utils.h"
#include "dot11s-mac-header.h"
#include "ns3/packet.h"
#include "ns3/test.h"
-namespace ns3 {
-namespace dot11s {
+namespace ns3
+{
+namespace dot11s
+{
/***********************************************************
* Here Mesh Mac Header functionality is defined.
***********************************************************/
@@ -34,18 +35,13 @@
MeshHeader::GetTypeId ()
{
static TypeId tid = TypeId ("ns3::Dot11sMacHeader")
- .SetParent<Header> ()
- .AddConstructor<MeshHeader> ()
- ;
+ .SetParent<Header> ()
+ .AddConstructor<MeshHeader> ();
return tid;
}
-MeshHeader::MeshHeader ():
- m_meshFlags (0),
- m_meshTtl (0),
- m_meshSeqno (0),
- m_addr4 (Mac48Address ()),
- m_addr5 (Mac48Address ()),
- m_addr6 (Mac48Address ())
+MeshHeader::MeshHeader () :
+ m_meshFlags (0), m_meshTtl (0), m_meshSeqno (0), m_addr4 (Mac48Address ()), m_addr5 (Mac48Address ()),
+ m_addr6 (Mac48Address ())
{
}
MeshHeader::~MeshHeader ()
@@ -170,23 +166,15 @@
void
MeshHeader::Print (std::ostream &os) const
{
- os << "flags = " << (uint16_t)m_meshFlags
- << "\nttl = " << (uint16_t)m_meshTtl
- << "\nseqno = " << m_meshSeqno
- << "\naddr4 = " << m_addr4
- << "\naddr5 = " << m_addr5
- << "\naddr6 = " << m_addr6;
+ os << "flags = " << (uint16_t) m_meshFlags << "\nttl = " << (uint16_t) m_meshTtl << "\nseqno = "
+ << m_meshSeqno << "\naddr4 = " << m_addr4 << "\naddr5 = " << m_addr5 << "\naddr6 = " << m_addr6;
}
-bool operator== (const MeshHeader & a, const MeshHeader & b)
+bool
+operator== (const MeshHeader & a, const MeshHeader & b)
{
- return (
- (a.m_meshFlags == b.m_meshFlags) &&
- (a.m_meshTtl == b.m_meshTtl) &&
- (a.m_meshSeqno == b.m_meshSeqno) &&
- (a.m_addr4 == b.m_addr4) &&
- (a.m_addr5 == b.m_addr5) &&
- (a.m_addr6 == b.m_addr6)
- );
+ return ((a.m_meshFlags == b.m_meshFlags) && (a.m_meshTtl == b.m_meshTtl)
+ && (a.m_meshSeqno == b.m_meshSeqno) && (a.m_addr4 == b.m_addr4) && (a.m_addr5 == b.m_addr5)
+ && (a.m_addr6 == b.m_addr6));
}
/**********************************************************
* ActionFrame
@@ -198,29 +186,28 @@
{
}
void
-WifiMeshActionHeader::SetAction (
- WifiMeshActionHeader::CategoryValue type,
- WifiMeshActionHeader::ActionValue action)
+WifiMeshActionHeader::SetAction (WifiMeshActionHeader::CategoryValue type,
+ WifiMeshActionHeader::ActionValue action)
{
m_category = type;
-
+
switch (type)
{
- case MESH_PEERING_MGT:
- {
- m_actionValue = action.peerLink;
- break;
- }
- case MESH_PATH_SELECTION:
- {
- m_actionValue = action.pathSelection;
- break;
- }
- case MESH_LINK_METRIC:
- case MESH_INTERWORKING:
- case MESH_RESOURCE_COORDINATION:
- case MESH_PROXY_FORWARDING:
+ case MESH_PEERING_MGT:
+ {
+ m_actionValue = action.peerLink;
break;
+ }
+ case MESH_PATH_SELECTION:
+ {
+ m_actionValue = action.pathSelection;
+ break;
+ }
+ case MESH_LINK_METRIC:
+ case MESH_INTERWORKING:
+ case MESH_RESOURCE_COORDINATION:
+ case MESH_PROXY_FORWARDING:
+ break;
};
}
WifiMeshActionHeader::CategoryValue
@@ -228,21 +215,21 @@
{
switch (m_category)
{
- case MESH_PEERING_MGT:
- return MESH_PEERING_MGT;
- case MESH_LINK_METRIC:
- return MESH_LINK_METRIC;
- case MESH_PATH_SELECTION:
- return MESH_PATH_SELECTION;
- case MESH_INTERWORKING:
- return MESH_INTERWORKING;
- case MESH_RESOURCE_COORDINATION:
- return MESH_RESOURCE_COORDINATION;
- case MESH_PROXY_FORWARDING:
- return MESH_PROXY_FORWARDING;
- default:
- NS_FATAL_ERROR ("Unknown action value");
- return MESH_PEERING_MGT;
+ case MESH_PEERING_MGT:
+ return MESH_PEERING_MGT;
+ case MESH_LINK_METRIC:
+ return MESH_LINK_METRIC;
+ case MESH_PATH_SELECTION:
+ return MESH_PATH_SELECTION;
+ case MESH_INTERWORKING:
+ return MESH_INTERWORKING;
+ case MESH_RESOURCE_COORDINATION:
+ return MESH_RESOURCE_COORDINATION;
+ case MESH_PROXY_FORWARDING:
+ return MESH_PROXY_FORWARDING;
+ default:
+ NS_FATAL_ERROR ("Unknown action value");
+ return MESH_PEERING_MGT;
}
}
WifiMeshActionHeader::ActionValue
@@ -251,50 +238,49 @@
ActionValue retval;
switch (m_category)
{
- case MESH_PEERING_MGT:
- switch (m_actionValue)
- {
- case PEER_LINK_OPEN:
- retval.peerLink = PEER_LINK_OPEN;
- return retval;
- case PEER_LINK_CONFIRM:
- retval.peerLink = PEER_LINK_CONFIRM;
- return retval;
- case PEER_LINK_CLOSE:
- retval.peerLink = PEER_LINK_CLOSE;
- return retval;
- default:
- NS_FATAL_ERROR ("Unknown mesh peering management action code");
- return retval;
- }
- case MESH_PATH_SELECTION:
- switch (m_actionValue)
- {
- case PATH_SELECTION:
- retval.pathSelection = PATH_SELECTION;
- return retval;
- default:
- NS_FATAL_ERROR ("Unknown mesh path selection action code");
- return retval;
- }
- case MESH_LINK_METRIC:
- // not yet supported
- case MESH_INTERWORKING:
- // not yet supported
- case MESH_RESOURCE_COORDINATION:
- // not yet supported
+ case MESH_PEERING_MGT:
+ switch (m_actionValue)
+ {
+ case PEER_LINK_OPEN:
+ retval.peerLink = PEER_LINK_OPEN;
+ return retval;
+ case PEER_LINK_CONFIRM:
+ retval.peerLink = PEER_LINK_CONFIRM;
+ return retval;
+ case PEER_LINK_CLOSE:
+ retval.peerLink = PEER_LINK_CLOSE;
+ return retval;
default:
- NS_FATAL_ERROR ("Unsupported mesh action");
+ NS_FATAL_ERROR ("Unknown mesh peering management action code");
+ return retval;
+ }
+ case MESH_PATH_SELECTION:
+ switch (m_actionValue)
+ {
+ case PATH_SELECTION:
+ retval.pathSelection = PATH_SELECTION;
return retval;
+ default:
+ NS_FATAL_ERROR ("Unknown mesh path selection action code");
+ return retval;
+ }
+ case MESH_LINK_METRIC:
+ // not yet supported
+ case MESH_INTERWORKING:
+ // not yet supported
+ case MESH_RESOURCE_COORDINATION:
+ // not yet supported
+ default:
+ NS_FATAL_ERROR ("Unsupported mesh action");
+ return retval;
}
}
TypeId
WifiMeshActionHeader::GetTypeId ()
{
static TypeId tid = TypeId ("ns3::WifiMeshActionHeader")
- .SetParent<Header> ()
- .AddConstructor<WifiMeshActionHeader> ()
- ;
+ .SetParent<Header> ()
+ .AddConstructor<WifiMeshActionHeader> ();
return tid;
}
TypeId
@@ -328,57 +314,62 @@
#ifdef RUN_SELF_TESTS
/// Built-in self test for Dot11sMacHeader
-struct Dot11sMacHeaderBist : public Test
+struct Dot11sMacHeaderBist : public Test
{
- Dot11sMacHeaderBist () : Test ("Mesh/802.11s/MeshHeader") {}
- virtual bool RunTests ();
+ Dot11sMacHeaderBist () :
+ Test ("Mesh/802.11s/MeshHeader")
+ {
+ }
+ virtual bool
+ RunTests ();
};
/// Test instance
static Dot11sMacHeaderBist g_Dot11sMacHeaderBist;
-bool Dot11sMacHeaderBist::RunTests ()
+bool
+Dot11sMacHeaderBist::RunTests ()
{
bool result (true);
- {
- MeshHeader a;
- a.SetAddressExt (3);
- a.SetAddr4 (Mac48Address ("11:22:33:44:55:66"));
- a.SetAddr5 (Mac48Address ("11:00:33:00:55:00"));
- a.SetAddr6 (Mac48Address ("00:22:00:44:00:66"));
- a.SetMeshTtl (122);
- a.SetMeshSeqno (321);
- Ptr<Packet> packet = Create<Packet> ();
- packet->AddHeader (a);
- MeshHeader b;
- packet->RemoveHeader (b);
- NS_TEST_ASSERT_EQUAL (a, b);
- }
- {
- MeshHeader a;
- a.SetAddressExt (2);
- a.SetAddr5 (Mac48Address ("11:00:33:00:55:00"));
- a.SetAddr6 (Mac48Address ("00:22:00:44:00:66"));
- a.SetMeshTtl (122);
- a.SetMeshSeqno (321);
- Ptr<Packet> packet = Create<Packet> ();
- packet->AddHeader (a);
- MeshHeader b;
- packet->RemoveHeader (b);
- NS_TEST_ASSERT_EQUAL (a, b);
- }
- {
- MeshHeader a;
- a.SetAddressExt (1);
- a.SetAddr4 (Mac48Address ("11:22:33:44:55:66"));
- a.SetMeshTtl (122);
- a.SetMeshSeqno (321);
- Ptr<Packet> packet = Create<Packet> ();
- packet->AddHeader (a);
- MeshHeader b;
- packet->RemoveHeader (b);
- NS_TEST_ASSERT_EQUAL (a, b);
- }
+ {
+ MeshHeader a;
+ a.SetAddressExt (3);
+ a.SetAddr4 (Mac48Address ("11:22:33:44:55:66"));
+ a.SetAddr5 (Mac48Address ("11:00:33:00:55:00"));
+ a.SetAddr6 (Mac48Address ("00:22:00:44:00:66"));
+ a.SetMeshTtl (122);
+ a.SetMeshSeqno (321);
+ Ptr<Packet> packet = Create<Packet> ();
+ packet->AddHeader (a);
+ MeshHeader b;
+ packet->RemoveHeader (b);
+ NS_TEST_ASSERT_EQUAL (a, b);
+ }
+ {
+ MeshHeader a;
+ a.SetAddressExt (2);
+ a.SetAddr5 (Mac48Address ("11:00:33:00:55:00"));
+ a.SetAddr6 (Mac48Address ("00:22:00:44:00:66"));
+ a.SetMeshTtl (122);
+ a.SetMeshSeqno (321);
+ Ptr<Packet> packet = Create<Packet> ();
+ packet->AddHeader (a);
+ MeshHeader b;
+ packet->RemoveHeader (b);
+ NS_TEST_ASSERT_EQUAL (a, b);
+ }
+ {
+ MeshHeader a;
+ a.SetAddressExt (1);
+ a.SetAddr4 (Mac48Address ("11:22:33:44:55:66"));
+ a.SetMeshTtl (122);
+ a.SetMeshSeqno (321);
+ Ptr<Packet> packet = Create<Packet> ();
+ packet->AddHeader (a);
+ MeshHeader b;
+ packet->RemoveHeader (b);
+ NS_TEST_ASSERT_EQUAL (a, b);
+ }
return result;
}
#endif