A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
mesh-wifi-beacon.h
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#ifndef MESH_WIFI_BEACON_H
21#define MESH_WIFI_BEACON_H
22
24
25#include "ns3/mgt-headers.h"
26#include "ns3/object.h"
27#include "ns3/packet.h"
28
29namespace ns3
30{
31
32class WifiMacHeader;
33class Time;
34
35/**
36 * \brief Beacon is beacon header + list of arbitrary information elements
37 *
38 * It is supposed that distinct mesh protocols can use beacons to transport
39 * their own information elements.
40 */
42{
43 public:
44 /**
45 * C-tor
46 *
47 * \param ssid is SSID for beacon header
48 * \param rates is a set of supported rates
49 * \param us beacon interval in microseconds
50 */
51 MeshWifiBeacon(Ssid ssid, AllSupportedRates rates, uint64_t us);
52
53 /**
54 * Read standard Wifi beacon header
55 *
56 * \returns the management beacon header
57 */
59 {
60 return m_header;
61 }
62
63 /**
64 * Add information element
65 *
66 * \param ie the Wifi information element
67 */
69
70 /**
71 * Create Wifi header for beacon frame.
72 *
73 * \param address is sender address
74 * \param mpAddress is mesh point address
75 * \returns the WifiMacHeader
76 */
78 /**
79 * Returns the beacon interval of Wifi beacon
80 *
81 * \returns the beacon interval time
82 */
83 Time GetBeaconInterval() const;
84 /**
85 * Create frame = { beacon header + all information elements sorted by ElementId () }
86 *
87 * \returns the frame
88 */
90
91 private:
92 /// Beacon header
94 /// List of information elements added
96};
97
98} // namespace ns3
99
100#endif /* MESH_WIFI_BEACON_H */
an EUI-48 address
Definition: mac48-address.h:46
Beacon is beacon header + list of arbitrary information elements.
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.
MeshInformationElementVector m_elements
List of information elements added.
Implement the header for management frames of type beacon.
Definition: mgt-headers.h:512
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
The IEEE 802.11 SSID Information Element.
Definition: ssid.h:36
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
Implements the IEEE 802.11 MAC header.
void(* Time)(Time oldValue, Time newValue)
TracedValue callback signature for Time.
Definition: nstime.h:839
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Struct containing all supported rates.