A Discrete-Event Network Simulator
API
ie-dot11s-perr.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2008,2009 IITP RAS
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Kirill Andreev <andreev@iitp.ru>
19  */
20 
21 #ifndef PERR_INFORMATION_ELEMENT_H
22 #define PERR_INFORMATION_ELEMENT_H
23 
24 #include "ns3/mac48-address.h"
25 #include "ns3/mesh-information-element-vector.h"
26 #include "ns3/hwmp-protocol.h"
27 
28 namespace ns3 {
29 namespace dot11s {
35 {
36 public:
37  IePerr ();
38  ~IePerr ();
43  uint8_t GetNumOfDest () const;
53  bool IsFull () const;
58  std::vector<HwmpProtocol::FailedDestination> GetAddressUnitVector () const;
65  void ResetPerr ();
66 
67  // Inherited from WifiInformationElement
68  virtual WifiInformationElementId ElementId () const;
69  virtual void SerializeInformationField (Buffer::Iterator i) const;
70  virtual uint8_t DeserializeInformationField (Buffer::Iterator start, uint8_t length);
71  virtual void Print (std::ostream& os) const;
72  virtual uint8_t GetInformationFieldSize () const;
73 
74 private:
75  std::vector<HwmpProtocol::FailedDestination> m_addressUnits;
83  friend bool operator== (const IePerr & a, const IePerr & b);
84 };
85 bool operator== (const IePerr & a, const IePerr & b);
86 std::ostream &operator << (std::ostream &os, const IePerr &perr);
87 } // namespace dot11s
88 } // namespace ns3
89 #endif
iterator in a Buffer instance
Definition: buffer.h:99
an EUI-48 address
Definition: mac48-address.h:44
Information element, as defined in 802.11-2007 standard.
See 7.3.2.98 of 802.11s draft 2.07.
virtual uint8_t DeserializeInformationField(Buffer::Iterator start, uint8_t length)
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
void DeleteAddressUnit(Mac48Address address)
Delete address unit function.
bool IsFull() const
Is full function.
friend bool operator==(const IePerr &a, const IePerr &b)
equality operator
virtual void Print(std::ostream &os) const
Generate human-readable form of IE.
void ResetPerr()
Reset PERR.
void AddAddressUnit(HwmpProtocol::FailedDestination unit)
Add address unit function.
virtual WifiInformationElementId ElementId() const
uint8_t GetNumOfDest() const
Get number of destination function.
std::vector< HwmpProtocol::FailedDestination > GetAddressUnitVector() const
Get address unit vector function.
virtual uint8_t GetInformationFieldSize() const
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
virtual void SerializeInformationField(Buffer::Iterator i) const
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
std::vector< HwmpProtocol::FailedDestination > m_addressUnits
address units
address
Definition: first.py:44
bool operator==(const MeshHeader &a, const MeshHeader &b)
std::ostream & operator<<(std::ostream &os, const IeBeaconTiming &a)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
def start()
Definition: core.py:1853
structure of unreachable destination - address and sequence number
Definition: hwmp-protocol.h:79