1.1 --- a/src/devices/wifi/mesh-mgt-headers.cc Thu Mar 12 13:02:29 2009 +0300
1.2 +++ b/src/devices/wifi/mesh-mgt-headers.cc Thu Mar 12 13:24:22 2009 +0300
1.3 @@ -25,9 +25,77 @@
1.4 #include "ns3/address-utils.h"
1.5 #include "ns3/simulator.h"
1.6 #include "ns3/assert.h"
1.7 +#include "ns3/log.h"
1.8 +
1.9 +NS_LOG_COMPONENT_DEFINE("MeshMgtHeaders");
1.10 +
1.11
1.12 namespace ns3
1.13 +{/***********************************************************
1.14 + * Mesh Beacon
1.15 + ***********************************************************/
1.16 +void
1.17 +MgtMeshBeaconHeader::SetMeshConfigurationElement(MeshConfigurationElement mesh_config)
1.18 {
1.19 + m_meshConfig = mesh_config;
1.20 +}
1.21 +
1.22 +void
1.23 +MgtMeshBeaconHeader::SetWifiBeaconTimingElement(WifiBeaconTimingElement wifi_timing)
1.24 +{
1.25 + m_meshTiming = wifi_timing;
1.26 +}
1.27 +
1.28 +MeshConfigurationElement
1.29 +MgtMeshBeaconHeader::GetMeshConfigurationElement()
1.30 +{
1.31 + return m_meshConfig;
1.32 +}
1.33 +
1.34 +WifiBeaconTimingElement
1.35 +MgtMeshBeaconHeader::GetWifiBeaconTimingElement()
1.36 +{
1.37 + return m_meshTiming;
1.38 +}
1.39 +
1.40 +uint32_t
1.41 +MgtMeshBeaconHeader::GetSerializedSize (void) const
1.42 +{
1.43 + uint32_t size = (
1.44 + MgtBeaconHeader::GetSerializedSize()
1.45 + + m_meshConfig.GetSerializedSize()
1.46 + + m_meshTiming.GetSerializedSize()
1.47 + + 9 //MSCIE
1.48 + );
1.49 + return size;
1.50 +}
1.51 +void
1.52 +MgtMeshBeaconHeader::Serialize (Buffer::Iterator start) const
1.53 +{
1.54 + //First we pack Beacon:
1.55 + NS_LOG_DEBUG("Serialization beacon");
1.56 + Buffer::Iterator i = start;
1.57 + MgtBeaconHeader::Serialize(i);
1.58 + i.Next(MgtBeaconHeader::GetSerializedSize());
1.59 + i = m_meshConfig.Serialize(i);
1.60 + i = m_meshTiming.Serialize(i);
1.61 + i.Next(9); //MSCIE
1.62 +}
1.63 +
1.64 +uint32_t
1.65 +MgtMeshBeaconHeader::Deserialize (Buffer::Iterator start)
1.66 +{
1.67 + NS_LOG_DEBUG("Deserialization beacon");
1.68 + Buffer::Iterator i = start;
1.69 + MgtBeaconHeader::Deserialize(start);
1.70 + i.Next(MgtBeaconHeader::GetSerializedSize());
1.71 + i = m_meshConfig.Deserialize(i);
1.72 + i = m_meshTiming.Deserialize(i);
1.73 + i.Next(9); //MSCIE
1.74 + return i.GetDistanceFrom (start);
1.75 +}
1.76 +
1.77 +
1.78 /***********************************************************
1.79 * PeerLinkOpen frame:
1.80 ************************************************************/
2.1 --- a/src/devices/wifi/mesh-mgt-headers.h Thu Mar 12 13:02:29 2009 +0300
2.2 +++ b/src/devices/wifi/mesh-mgt-headers.h Thu Mar 12 13:24:22 2009 +0300
2.3 @@ -35,9 +35,29 @@
2.4 #include "mesh-wifi-prep-information-element.h"
2.5 #include "mesh-wifi-perr-information-element.h"
2.6 #include "mesh-wifi-rann-information-element.h"
2.7 +#include "mesh-configuration-element.h"
2.8 +#include "mesh-wifi-beacon-timing-element.h"
2.9 +#include "mgt-headers.h"
2.10 +
2.11 #include "ssid.h"
2.12
2.13 namespace ns3 {
2.14 +class MgtMeshBeaconHeader : public MgtBeaconHeader
2.15 +{
2.16 + public:
2.17 + void SetMeshConfigurationElement(MeshConfigurationElement mesh_config);
2.18 + void SetWifiBeaconTimingElement(WifiBeaconTimingElement wifi_timing);
2.19 + MeshConfigurationElement GetMeshConfigurationElement();
2.20 + WifiBeaconTimingElement GetWifiBeaconTimingElement();
2.21 + virtual uint32_t GetSerializedSize (void) const;
2.22 + virtual void Serialize (Buffer::Iterator start) const;
2.23 + virtual uint32_t Deserialize (Buffer::Iterator start);
2.24 +
2.25 + private:
2.26 + MeshConfigurationElement m_meshConfig;
2.27 + WifiBeaconTimingElement m_meshTiming;
2.28 +
2.29 +};
2.30
2.31 class MeshMgtPeerLinkManFrame : public Header
2.32 {
3.1 --- a/src/devices/wifi/mesh-wifi-mac-header.h Thu Mar 12 13:02:29 2009 +0300
3.2 +++ b/src/devices/wifi/mesh-wifi-mac-header.h Thu Mar 12 13:24:22 2009 +0300
3.3 @@ -1,5 +1,5 @@
3.4 -#ifndef WIFI_MAC_HEADER_H
3.5 -#define WIFI_MAC_HEADER_H
3.6 +#ifndef MESH_WIFI_MAC_HEADER_H
3.7 +#define MESH_WIFI_MAC_HEADER_H
3.8
3.9 #include "ns3/header.h"
3.10 #include "ns3/mac48-address.h"
3.11 @@ -121,4 +121,4 @@
3.12 uint8_t m_actionValue;
3.13 };
3.14 } // namespace ns3
3.15 -#endif /* WIFI_MAC_HEADER_H */
3.16 +#endif /* MESH_WIFI_MAC_HEADER_H */
4.1 --- a/src/devices/wifi/mgt-headers.cc Thu Mar 12 13:02:29 2009 +0300
4.2 +++ b/src/devices/wifi/mgt-headers.cc Thu Mar 12 13:24:22 2009 +0300
4.3 @@ -20,8 +20,6 @@
4.4 #include "mgt-headers.h"
4.5 #include "ns3/simulator.h"
4.6 #include "ns3/assert.h"
4.7 -#include "ns3/log.h"
4.8 -NS_LOG_COMPONENT_DEFINE("MgtHeaders");
4.9
4.10 namespace ns3 {
4.11
4.12 @@ -214,71 +212,6 @@
4.13 //i.Next (3); // ds parameter set
4.14 return i.GetDistanceFrom (start);
4.15 }
4.16 -/***********************************************************
4.17 - * Mesh Beacon
4.18 - ***********************************************************/
4.19 -void
4.20 -MgtMeshBeaconHeader::SetMeshConfigurationElement(MeshConfigurationElement mesh_config)
4.21 -{
4.22 - m_meshConfig = mesh_config;
4.23 -}
4.24 -
4.25 -void
4.26 -MgtMeshBeaconHeader::SetWifiBeaconTimingElement(WifiBeaconTimingElement wifi_timing)
4.27 -{
4.28 - m_meshTiming = wifi_timing;
4.29 -}
4.30 -
4.31 -MeshConfigurationElement
4.32 -MgtMeshBeaconHeader::GetMeshConfigurationElement()
4.33 -{
4.34 - return m_meshConfig;
4.35 -}
4.36 -
4.37 -WifiBeaconTimingElement
4.38 -MgtMeshBeaconHeader::GetWifiBeaconTimingElement()
4.39 -{
4.40 - return m_meshTiming;
4.41 -}
4.42 -
4.43 -uint32_t
4.44 -MgtMeshBeaconHeader::GetSerializedSize (void) const
4.45 -{
4.46 - uint32_t size = (
4.47 - MgtBeaconHeader::GetSerializedSize()
4.48 - + m_meshConfig.GetSerializedSize()
4.49 - + m_meshTiming.GetSerializedSize()
4.50 - + 9 //MSCIE
4.51 - );
4.52 - return size;
4.53 -}
4.54 -
4.55 -void
4.56 -MgtMeshBeaconHeader::Serialize (Buffer::Iterator start) const
4.57 -{
4.58 - //First we pack Beacon:
4.59 - NS_LOG_DEBUG("Serialization beacon");
4.60 - Buffer::Iterator i = start;
4.61 - MgtBeaconHeader::Serialize(i);
4.62 - i.Next(MgtBeaconHeader::GetSerializedSize());
4.63 - i = m_meshConfig.Serialize(i);
4.64 - i = m_meshTiming.Serialize(i);
4.65 - i.Next(9); //MSCIE
4.66 -}
4.67 -
4.68 -uint32_t
4.69 -MgtMeshBeaconHeader::Deserialize (Buffer::Iterator start)
4.70 -{
4.71 - NS_LOG_DEBUG("Deserialization beacon");
4.72 - Buffer::Iterator i = start;
4.73 - MgtBeaconHeader::Deserialize(start);
4.74 - i.Next(MgtBeaconHeader::GetSerializedSize());
4.75 - i = m_meshConfig.Deserialize(i);
4.76 - i = m_meshTiming.Deserialize(i);
4.77 - i.Next(9); //MSCIE
4.78 - return i.GetDistanceFrom (start);
4.79 -}
4.80 -
4.81
4.82 /***********************************************************
4.83 * Assoc Request
5.1 --- a/src/devices/wifi/mgt-headers.h Thu Mar 12 13:02:29 2009 +0300
5.2 +++ b/src/devices/wifi/mgt-headers.h Thu Mar 12 13:24:22 2009 +0300
5.3 @@ -21,14 +21,12 @@
5.4 #define MGT_HEADERS_H
5.5
5.6 #include <stdint.h>
5.7 -#include <vector>
5.8 +//#include <vector>
5.9
5.10 #include "ns3/header.h"
5.11 #include "status-code.h"
5.12 #include "capability-information.h"
5.13 #include "supported-rates.h"
5.14 -#include "mesh-configuration-element.h"
5.15 -#include "mesh-wifi-beacon-timing-element.h"
5.16 #include "ssid.h"
5.17
5.18 namespace ns3 {
5.19 @@ -138,22 +136,6 @@
5.20 };
5.21
5.22 class MgtBeaconHeader : public MgtProbeResponseHeader {};
5.23 -class MgtMeshBeaconHeader : public MgtBeaconHeader
5.24 -{
5.25 - public:
5.26 - void SetMeshConfigurationElement(MeshConfigurationElement mesh_config);
5.27 - void SetWifiBeaconTimingElement(WifiBeaconTimingElement wifi_timing);
5.28 - MeshConfigurationElement GetMeshConfigurationElement();
5.29 - WifiBeaconTimingElement GetWifiBeaconTimingElement();
5.30 - virtual uint32_t GetSerializedSize (void) const;
5.31 - virtual void Serialize (Buffer::Iterator start) const;
5.32 - virtual uint32_t Deserialize (Buffer::Iterator start);
5.33 -
5.34 - private:
5.35 - MeshConfigurationElement m_meshConfig;
5.36 - WifiBeaconTimingElement m_meshTiming;
5.37 -
5.38 -};
5.39
5.40
5.41 } // namespace ns3
6.1 --- a/src/devices/wifi/wifi-mac-header.h Thu Mar 12 13:02:29 2009 +0300
6.2 +++ b/src/devices/wifi/wifi-mac-header.h Thu Mar 12 13:24:22 2009 +0300
6.3 @@ -180,5 +180,9 @@
6.4 uint8_t m_qosAckPolicy;
6.5 uint16_t m_qosStuff;
6.6 };
6.7 +
6.8 } // namespace ns3
6.9 +
6.10 +
6.11 +
6.12 #endif /* WIFI_MAC_HEADER_H */