A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
mesh-wifi-beacon.cc
Go to the documentation of this file.
1/*
2 * Copyright (c) 2009 IITP RAS
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Pavel Boyko <boyko@iitp.ru>
18 */
19
20#include "mesh-wifi-beacon.h"
21
22#include "ns3/nstime.h"
23#include "ns3/wifi-mac-header.h"
24
25namespace ns3
26{
27
29{
30 m_header.Get<Ssid>() = ssid;
31 m_header.Get<SupportedRates>() = rates.rates;
34}
35
36void
38{
40}
41
42Time
44{
46}
47
50{
51 Ptr<Packet> packet = Create<Packet>();
52 packet->AddHeader(m_elements);
53 packet->AddHeader(BeaconHeader());
54 return packet;
55}
56
59{
60 WifiMacHeader hdr;
63 hdr.SetAddr2(address);
64 hdr.SetAddr3(mpAddress);
65 hdr.SetDsNotFrom();
66 hdr.SetDsNotTo();
67 return hdr;
68}
69
70} // namespace ns3
The Extended Supported Rates Information Element.
an EUI-48 address
Definition: mac48-address.h:46
static Mac48Address GetBroadcast()
bool AddInformationElement(Ptr< WifiInformationElement > element)
add an IE, if maxSize has exceeded, returns false
WifiMacHeader CreateHeader(Mac48Address address, Mac48Address mpAddress)
Create Wifi header for beacon frame.
Time GetBeaconInterval() const
Returns the beacon interval of Wifi beacon.
Ptr< Packet > CreatePacket()
Create frame = { beacon header + all information elements sorted by ElementId () }.
MgtBeaconHeader BeaconHeader() const
Read standard Wifi beacon header.
MgtBeaconHeader m_header
Beacon header.
void AddInformationElement(Ptr< WifiInformationElement > ie)
Add information element.
MeshWifiBeacon(Ssid ssid, AllSupportedRates rates, uint64_t us)
C-tor.
MeshInformationElementVector m_elements
List of information elements added.
void SetBeaconIntervalUs(uint64_t us)
Set the beacon interval in microseconds unit.
Definition: mgt-headers.cc:81
uint64_t GetBeaconIntervalUs() const
Return the beacon interval in microseconds unit.
Definition: mgt-headers.cc:75
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
The IEEE 802.11 SSID Information Element.
Definition: ssid.h:36
The Supported Rates Information Element.
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
Implements the IEEE 802.11 MAC header.
void SetDsNotFrom()
Un-set the From DS bit in the Frame Control field.
void SetAddr1(Mac48Address address)
Fill the Address 1 field with the given address.
virtual void SetType(WifiMacType type, bool resetToDsFromDs=true)
Set Type/Subtype values with the correct values depending on the given type.
void SetAddr2(Mac48Address address)
Fill the Address 2 field with the given address.
void SetAddr3(Mac48Address address)
Fill the Address 3 field with the given address.
void SetDsNotTo()
Un-set the To DS bit in the Frame Control field.
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Definition: nstime.h:1350
Every class exported by the ns3 library is enclosed in the ns3 namespace.
@ WIFI_MAC_MGT_BEACON
Struct containing all supported rates.
SupportedRates rates
supported rates
std::optional< ExtendedSupportedRatesIE > extendedRates
supported extended rates