1 /* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2018  Sébastien Deronne
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: Sébastien Deronne <sebastien.deronne@gmail.com>
19  */
20 
21 #ifndef HT_CONFIGURATION_H
22 #define HT_CONFIGURATION_H
23 
24 #include "ns3/object.h"
25 
26 namespace ns3 {
27 
28 /**
29  * \brief HT configuration
30  * \ingroup wifi
31  *
32  * This object stores HT configuration information, for use in modifying
33  * AP or STA behavior and for constructing HT-related information elements.
34  *
35  */
36 class HtConfiguration : public Object
37 {
38 public:
39   HtConfiguration ();
40   virtual ~HtConfiguration ();
41 
42   /**
43    * \brief Get the type ID.
44    * \return the object TypeId
45    */
46   static TypeId GetTypeId (void);
47 
48   /**
49    * Enable or disable SGI support.
50    *
51    * \param enable true if SGI is to be supported,
52    *               false otherwise
53    */
54   void SetShortGuardIntervalSupported (bool enable);
55   /**
56    * \return whether the device supports SGI.
57    *
58    * \return true if SGI is supported,
59    *         false otherwise.
60    */
61   bool GetShortGuardIntervalSupported (void) const;
62   /**
63    * Enable or disable LDPC support.
64    *
65    * \param enable true if LDPC is to be supported,
66    *               false otherwise
67    */
68   void SetLdpcSupported (bool enable);
69   /**
70    * \return whether the device supports LDPC.
71    *
72    * \return true if LDPC is supported,
73    *         false otherwise.
74    */
75   bool GetLdpcSupported (void) const;
76 
77 
78 private:
79   bool m_sgiSupported;        ///< flag whether short guard interval is supported
80   bool m_ldpcSupported;       ///< flag whether LDPC coding is supported
81 };
82 
83 } //namespace ns3
84 
85 #endif /* HT_CONFIGURATION_H */
86