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 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Pavel Boyko <boyko@iitp.ru>
7 */
8
9#include "mesh-wifi-beacon.h"
10
11#include "ns3/nstime.h"
12#include "ns3/wifi-mac-header.h"
13
14namespace ns3
15{
16
18{
19 m_header.Get<Ssid>() = ssid;
20 m_header.Get<SupportedRates>() = rates.rates;
23}
24
25void
30
31Time
36
39{
40 Ptr<Packet> packet = Create<Packet>();
41 packet->AddHeader(m_elements);
42 packet->AddHeader(BeaconHeader());
43 return packet;
44}
45
48{
49 WifiMacHeader hdr;
52 hdr.SetAddr2(address);
53 hdr.SetAddr3(mpAddress);
54 hdr.SetDsNotFrom();
55 hdr.SetDsNotTo();
56 return hdr;
57}
58
59} // namespace ns3
The Extended Supported Rates Information Element.
an EUI-48 address
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.
uint64_t GetBeaconIntervalUs() const
Return the beacon interval in microseconds unit.
Smart pointer class similar to boost::intrusive_ptr.
The IEEE 802.11 SSID Information Element.
Definition ssid.h:25
The Supported Rates Information Element.
Simulation virtual time values and global simulation resolution.
Definition nstime.h:94
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.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Definition ptr.h:436
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Definition nstime.h:1368
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