src/wifi/model/erp-information.h
author Alexander Krotov <krotov@iitp.ru>
Sat, 04 Aug 2018 20:02:47 +0300
changeset 13716 0b3abcc6f68f
parent 13427 cc03236623ec
permissions -rw-r--r--
wifi: remove Log2 function Standard log2 is already used in wifi module anyway
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
     2
/*
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
     3
 * Copyright (c) 2015 Sébastien Deronne
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
     4
 *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
     8
 *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    12
 * GNU General Public License for more details.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    13
 *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    17
 *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    18
 * Author: Sébastien Deronne <sebastien.deronne@gmail.com>
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    19
 */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    20
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    21
#ifndef ERP_INFORMATION_H
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    22
#define ERP_INFORMATION_H
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    23
12433
89cdf2a76202 wifi: Clean includes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12431
diff changeset
    24
#include "wifi-information-element.h"
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    25
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    26
namespace ns3 {
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    27
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    28
/**
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    29
 * \brief The ErpInformation Information Element
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    30
 * \ingroup wifi
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    31
 *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    32
 * This class knows how to serialise and deserialise the ErpInformation Information Element.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    33
 */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    34
class ErpInformation : public WifiInformationElement
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    35
{
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    36
public:
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    37
  ErpInformation ();
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    38
  /**
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    39
   * Set the ERP supported field.
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    40
   *
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    41
   * \param erpSupported the ERP supported field in the ErpInformation information element
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    42
   */
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    43
  void SetErpSupported (uint8_t erpSupported);
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    44
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    45
  /**
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    46
   * Set the Barker_Preamble_Mode field in the ErpInformation information element.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    47
   *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    48
   * \param barkerPreambleMode the Barker_Preamble_Mode field in the ErpInformation information element
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    49
   */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    50
  void SetBarkerPreambleMode (uint8_t barkerPreambleMode);
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    51
  /**
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    52
   * Set the Use_Protection field in the ErpInformation information element.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    53
   *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    54
   * \param useProtection the Use_Protection field in the ErpInformation information element
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    55
   */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    56
  void SetUseProtection (uint8_t useProtection);
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    57
  /**
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    58
   * Set the Non_Erp_Present field in the ErpInformation information element.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    59
   *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    60
   * \param nonErpPresent the Non_Erp_Present field in the ErpInformation information element
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    61
   */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    62
  void SetNonErpPresent (uint8_t nonErpPresent);
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    63
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    64
  /**
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    65
   * Return the Barker_Preamble_Mode field in the ErpInformation information element.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    66
   *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    67
   * \return the Barker_Preamble_Mode field in the ErpInformation information element
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    68
   */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    69
  uint8_t GetBarkerPreambleMode (void) const;
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    70
  /**
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    71
   * Return the Use_Protection field in the ErpInformation information element.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    72
   *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    73
   * \return the Use_Protection field in the ErpInformation information element
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    74
   */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    75
  uint8_t GetUseProtection (void) const;
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    76
  /**
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    77
   * Return the Non_Erp_Present field in the ErpInformation information element.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    78
   *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    79
   * \return the Non_Erp_Present field in the ErpInformation information element
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    80
   */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    81
  uint8_t GetNonErpPresent (void) const;
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    82
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    83
  /**
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    84
   * Get the element ID field.
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    85
   *
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    86
   * \returns WifiInformationElementId
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    87
   */
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    88
  WifiInformationElementId ElementId () const;
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    89
  /**
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    90
   * Get the information field size.
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    91
   *
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    92
   * \returns the element field size
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    93
   */
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
    94
  uint8_t GetInformationFieldSize () const;
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    95
  /**
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    96
   * Serialize the information field.
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    97
   *
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    98
   * \param start the information element iterator
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
    99
   */
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   100
  void SerializeInformationField (Buffer::Iterator start) const;
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   101
  /**
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   102
   * Get the information field size.
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   103
   *
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   104
   * \param start the information element iterator
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   105
   * \param length the information field length
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   106
   *
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   107
   * \returns the information field
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   108
   */
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   109
  uint8_t DeserializeInformationField (Buffer::Iterator start,
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   110
                                       uint8_t length);
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   111
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   112
  /**
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   113
   * This information element is a bit special in that it is only
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   114
   * included if the STA is an ERP STA. To support this we
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   115
   * override the Serialize and GetSerializedSize methods of
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   116
   * WifiInformationElement.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   117
   *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   118
   * \param start
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   119
   *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   120
   * \return an iterator
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   121
   */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   122
  Buffer::Iterator Serialize (Buffer::Iterator start) const;
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   123
  /**
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   124
   * Return the serialized size of this ErpInformation information element.
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   125
   *
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   126
   * \return the serialized size of this ErpInformation information element
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   127
   */
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   128
  uint16_t GetSerializedSize () const;
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   129
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   130
private:
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   131
  uint8_t m_erpInformation; ///< ERP information
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   132
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   133
  /// This is used to decide whether this element should be added to the frame or not
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   134
  bool m_erpSupported;
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   135
};
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   136
12691
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   137
/**
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   138
 * output stream output operator
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   139
 *
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   140
 * \param os output stream
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   141
 * \param erpinformation
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   142
 *
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   143
 * \returns output stream
e33cd795e21a wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents: 12433
diff changeset
   144
 */
11881
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   145
std::ostream &operator << (std::ostream &os, const ErpInformation &erpinformation);
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   146
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   147
} //namespace ns3
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   148
8707c44ecc30 wifi: (fixes #2120) 802.11g backward compatible with 802.11b
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
diff changeset
   149
#endif /* ERP_INFORMATION_H */