From 8b5a8fdfbc309c50611c60b82aa221fe64945efc Mon Sep 17 00:00:00 2001 From: Pavel Boyko Date: Thu, 30 Apr 2009 13:28:45 +0400 Subject: [PATCH] Dot11sMacHeader renamed to MeshHeader to correspond standard --- src/devices/mesh/dot11s/dot11s-mac-header.cc | 58 ++++++++++---------- src/devices/mesh/dot11s/dot11s-mac-header.h | 22 +++----- src/devices/mesh/dot11s/hwmp-mac-plugin.cc | 4 +- src/devices/mesh/dot11s/wscript | 16 +----- src/devices/mesh/wscript | 2 - 5 files changed, 41 insertions(+), 61 deletions(-) diff --git a/src/devices/mesh/dot11s/dot11s-mac-header.cc b/src/devices/mesh/dot11s/dot11s-mac-header.cc index ff95d90ce..ae808696e 100644 --- a/src/devices/mesh/dot11s/dot11s-mac-header.cc +++ b/src/devices/mesh/dot11s/dot11s-mac-header.cc @@ -31,15 +31,15 @@ namespace dot11s { * Here Mesh Mac Header functionality is defined. ***********************************************************/ TypeId -Dot11sMacHeader::GetTypeId () +MeshHeader::GetTypeId () { static TypeId tid = TypeId ("ns3::Dot11sMacHeader") .SetParent
() - .AddConstructor () + .AddConstructor () ; return tid; } -Dot11sMacHeader::Dot11sMacHeader (): +MeshHeader::MeshHeader (): m_meshFlags (0), m_meshTtl (0), m_meshSeqno (0), @@ -48,83 +48,83 @@ Dot11sMacHeader::Dot11sMacHeader (): m_addr6 (Mac48Address ()) { } -Dot11sMacHeader::~Dot11sMacHeader () +MeshHeader::~MeshHeader () { } TypeId -Dot11sMacHeader::GetInstanceTypeId () const +MeshHeader::GetInstanceTypeId () const { return GetTypeId (); } void -Dot11sMacHeader::SetAddr4 (Mac48Address address) +MeshHeader::SetAddr4 (Mac48Address address) { m_addr4 = address; } void -Dot11sMacHeader::SetAddr5 (Mac48Address address) +MeshHeader::SetAddr5 (Mac48Address address) { m_addr5 = address; } void -Dot11sMacHeader::SetAddr6 (Mac48Address address) +MeshHeader::SetAddr6 (Mac48Address address) { m_addr6 = address; } Mac48Address -Dot11sMacHeader::GetAddr4 () const +MeshHeader::GetAddr4 () const { return m_addr4; } Mac48Address -Dot11sMacHeader::GetAddr5 () const +MeshHeader::GetAddr5 () const { return m_addr5; } Mac48Address -Dot11sMacHeader::GetAddr6 () const +MeshHeader::GetAddr6 () const { return m_addr6; } void -Dot11sMacHeader::SetMeshSeqno (uint32_t seqno) +MeshHeader::SetMeshSeqno (uint32_t seqno) { m_meshSeqno = seqno; } uint32_t -Dot11sMacHeader::GetMeshSeqno () const +MeshHeader::GetMeshSeqno () const { return m_meshSeqno; } void -Dot11sMacHeader::SetMeshTtl (uint8_t TTL) +MeshHeader::SetMeshTtl (uint8_t TTL) { m_meshTtl = TTL; } uint8_t -Dot11sMacHeader::GetMeshTtl () const +MeshHeader::GetMeshTtl () const { return m_meshTtl; } void -Dot11sMacHeader::SetAddressExt (uint8_t num_of_addresses) +MeshHeader::SetAddressExt (uint8_t num_of_addresses) { if (num_of_addresses > 3) return; m_meshFlags |= 0xc0 & (num_of_addresses << 6); } uint8_t -Dot11sMacHeader::GetAddressExt () const +MeshHeader::GetAddressExt () const { return ((0xc0 & m_meshFlags) >> 6); } uint32_t -Dot11sMacHeader::GetSerializedSize () const +MeshHeader::GetSerializedSize () const { return 6 + GetAddressExt () * 6; } void -Dot11sMacHeader::Serialize (Buffer::Iterator start) const +MeshHeader::Serialize (Buffer::Iterator start) const { Buffer::Iterator i = start; i.WriteU8 (m_meshFlags); @@ -140,7 +140,7 @@ Dot11sMacHeader::Serialize (Buffer::Iterator start) const WriteTo (i, m_addr6); } uint32_t -Dot11sMacHeader::Deserialize (Buffer::Iterator start) +MeshHeader::Deserialize (Buffer::Iterator start) { Buffer::Iterator i = start; uint8_t addresses_to_read = 0; @@ -157,7 +157,7 @@ Dot11sMacHeader::Deserialize (Buffer::Iterator start) return i.GetDistanceFrom (start); } void -Dot11sMacHeader::Print (std::ostream &os) const +MeshHeader::Print (std::ostream &os) const { os << "flags = " << (uint16_t)m_meshFlags << "\nttl = " << (uint16_t)m_meshTtl @@ -166,7 +166,7 @@ Dot11sMacHeader::Print (std::ostream &os) const << "\naddr5 = " << m_addr5 << "\naddr6 = " << m_addr6; } -bool operator== (const Dot11sMacHeader & a, const Dot11sMacHeader & b) +bool operator== (const MeshHeader & a, const MeshHeader & b) { return ( (a.m_meshFlags == b.m_meshFlags) && @@ -325,7 +325,7 @@ WifiMeshActionHeader::Deserialize (Buffer::Iterator start) /// Built-in self test for Dot11sMacHeader struct Dot11sMacHeaderBist : public Test { - Dot11sMacHeaderBist () : Test ("Mesh/802.11s/IE/Dot11sMacHeader") {} + Dot11sMacHeaderBist () : Test ("Mesh/802.11s/MeshHeader") {} virtual bool RunTests(); }; @@ -336,7 +336,7 @@ bool Dot11sMacHeaderBist::RunTests () { bool result (true); { - Dot11sMacHeader a; + MeshHeader a; a.SetAddressExt(3); a.SetAddr4(Mac48Address ("11:22:33:44:55:66")); a.SetAddr5(Mac48Address ("11:00:33:00:55:00")); @@ -345,12 +345,12 @@ bool Dot11sMacHeaderBist::RunTests () a.SetMeshSeqno (321); Ptr packet = Create (); packet->AddHeader (a); - Dot11sMacHeader b; + MeshHeader b; packet->RemoveHeader (b); NS_TEST_ASSERT_EQUAL (a, b); } { - Dot11sMacHeader a; + MeshHeader a; a.SetAddressExt(2); a.SetAddr5(Mac48Address ("11:00:33:00:55:00")); a.SetAddr6(Mac48Address ("00:22:00:44:00:66")); @@ -358,19 +358,19 @@ bool Dot11sMacHeaderBist::RunTests () a.SetMeshSeqno (321); Ptr packet = Create (); packet->AddHeader (a); - Dot11sMacHeader b; + MeshHeader b; packet->RemoveHeader (b); NS_TEST_ASSERT_EQUAL (a, b); } { - Dot11sMacHeader a; + MeshHeader a; a.SetAddressExt(1); a.SetAddr4(Mac48Address ("11:22:33:44:55:66")); a.SetMeshTtl (122); a.SetMeshSeqno (321); Ptr packet = Create (); packet->AddHeader (a); - Dot11sMacHeader b; + MeshHeader b; packet->RemoveHeader (b); NS_TEST_ASSERT_EQUAL (a, b); } diff --git a/src/devices/mesh/dot11s/dot11s-mac-header.h b/src/devices/mesh/dot11s/dot11s-mac-header.h index d9794d749..ad5bfd159 100644 --- a/src/devices/mesh/dot11s/dot11s-mac-header.h +++ b/src/devices/mesh/dot11s/dot11s-mac-header.h @@ -30,13 +30,15 @@ namespace dot11s { /** * \ingroup dot11s * - * \brief See IEEE 802.11s draft 3.0 section 7.1.3.5b + * \brief Mesh Control field, see IEEE 802.11s draft 3.0 section 7.1.3.5b + * + * Header format: | Mesh flags: 1 | TTL: 1 | Sequence number: 4 | Address ext.: 0, 6, 12 or 18 | */ -class Dot11sMacHeader : public Header +class MeshHeader : public Header { public: - Dot11sMacHeader (); - ~Dot11sMacHeader (); + MeshHeader (); + ~MeshHeader (); static TypeId GetTypeId (); virtual TypeId GetInstanceTypeId () const; virtual void Print (std::ostream &os) const; @@ -67,22 +69,16 @@ private: Mac48Address m_addr4; Mac48Address m_addr5; Mac48Address m_addr6; - friend bool operator== (const Dot11sMacHeader & a, const Dot11sMacHeader & b); + friend bool operator== (const MeshHeader & a, const MeshHeader & b); }; -bool operator== (const Dot11sMacHeader & a, const Dot11sMacHeader & b); +bool operator== (const MeshHeader & a, const MeshHeader & b); /** * \ingroup dot11s * * \brief See IEEE 802.11s draft 3.0 section 7.2.3.14 * - * Multichop action frame consists of Mesh header, Action, and - * the last information. Mesh header is present within all data - * frames and multihop action frames, so Mesh header is a - * separate structure. Each Action frames (frames like - * PREQ, PREP and other) start form Category field and Action - * value field, so the Multihop Action Frame should containt - * three fields: Category, Action Value. + * Header format: | category: 1 | action value: 1 | */ class WifiMeshActionHeader : public Header { diff --git a/src/devices/mesh/dot11s/hwmp-mac-plugin.cc b/src/devices/mesh/dot11s/hwmp-mac-plugin.cc index 454c36472..9cf0180c6 100644 --- a/src/devices/mesh/dot11s/hwmp-mac-plugin.cc +++ b/src/devices/mesh/dot11s/hwmp-mac-plugin.cc @@ -53,7 +53,7 @@ HwmpMacPlugin::Receive (Ptr packet, const WifiMacHeader & header) //TODO: here we fix only mesh header if(header.IsData()) { - Dot11sMacHeader meshHdr; + MeshHeader meshHdr; HwmpTag tag; if(packet->PeekPacketTag (tag)) { @@ -136,7 +136,7 @@ HwmpMacPlugin::UpdateOutcomingFrame (Ptr packet, WifiMacHeader & header, bool tagExists = packet->RemovePacketTag(tag); NS_ASSERT (tagExists); - Dot11sMacHeader meshHdr; + MeshHeader meshHdr; meshHdr.SetMeshSeqno(tag.GetSeqno()); meshHdr.SetMeshTtl(tag.GetTtl()); packet->AddHeader(meshHdr); diff --git a/src/devices/mesh/dot11s/wscript b/src/devices/mesh/dot11s/wscript index f9df0dfa9..7f530b155 100644 --- a/src/devices/mesh/dot11s/wscript +++ b/src/devices/mesh/dot11s/wscript @@ -26,22 +26,8 @@ def build(bld): headers = bld.new_task_gen('ns3header') headers.module = 'dot11s' headers.source = [ - 'ie-dot11s-beacon-timing.h', - #'ie-dot11s-configuration.h', - 'ie-dot11s-peer-management.h', - #'ie-dot11s-preq.h', - #'ie-dot11s-prep.h', - 'ie-dot11s-perr.h', - #'ie-dot11s-rann.h', - #'peer-link-frame.h', - #'peer-link.h', - #'peer-management-plugin.h', 'peer-management-protocol.h', - #'hwmp-mac-plugin.h', 'hwmp-protocol.h', 'dot11s-helper.h', + 'dot11s-mac-header.h', ] - -# obj = bld.create_ns3_program('wifi-phy-test', -# ['core', 'simulator', 'mobility', 'node', 'wifi']) -# obj.source = 'wifi-phy-test.cc' diff --git a/src/devices/mesh/wscript b/src/devices/mesh/wscript index bd7b5495d..8091811f4 100644 --- a/src/devices/mesh/wscript +++ b/src/devices/mesh/wscript @@ -12,7 +12,6 @@ def build(bld): headers = bld.new_task_gen('ns3header') headers.module = 'mesh' headers.source = [ - # Refactored 'wifi-information-element.h', 'mesh-point-device.h', 'mesh-l2-routing-protocol.h', @@ -20,4 +19,3 @@ def build(bld): 'mesh-wifi-interface-mac.h', 'mesh-wifi-interface-mac-plugin.h', ] -