A Discrete-Event Network Simulator
API
dsss-parameter-set.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2016 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 #include "dsss-parameter-set.h"
22 
23 namespace ns3 {
24 
26  : m_currentChannel (0),
27  m_dsssSupported (0)
28 {
29 }
30 
33 {
34  return IE_DSSS_PARAMETER_SET;
35 }
36 
37 void
38 DsssParameterSet::SetDsssSupported (uint8_t dsssSupported)
39 {
40  m_dsssSupported = dsssSupported;
41 }
42 
43 void
44 DsssParameterSet::SetCurrentChannel (uint8_t currentChannel)
45 {
46  m_currentChannel = currentChannel;
47 }
48 
49 uint8_t
51 {
53  return 1;
54 }
55 
58 {
59  if (!m_dsssSupported)
60  {
61  return i;
62  }
64 }
65 
66 uint16_t
68 {
69  if (!m_dsssSupported)
70  {
71  return 0;
72  }
74 }
75 
76 void
78 {
79  if (m_dsssSupported)
80  {
81  start.WriteU8 (m_currentChannel);
82  }
83 }
84 
85 uint8_t
87 {
89  m_currentChannel = i.ReadU8 ();
90  return length;
91 }
92 
93 } //namespace ns3
virtual Buffer::Iterator Serialize(Buffer::Iterator i) const
Serialize entire IE including Element ID and length fields.
bool m_dsssSupported
This is used to decide whether this element should be added to the frame or not.
def start()
Definition: core.py:1855
void SerializeInformationField(Buffer::Iterator start) const override
Serialize information (i.e., the body of the IE, not including the Element ID and length octets) ...
Buffer::Iterator Serialize(Buffer::Iterator start) const override
Serialize entire IE including Element ID and length fields.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
Definition: assert.h:67
iterator in a Buffer instance
Definition: buffer.h:98
uint16_t GetSerializedSize() const override
Get the size of the serialized IE including Element ID and length fields.
#define IE_DSSS_PARAMETER_SET
void SetCurrentChannel(uint8_t currentChannel)
Set the Current Channel field in the DsssParameterSet information element.
uint8_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetDsssSupported(uint8_t dsssSupported)
Set DSSS supported.
virtual uint16_t GetSerializedSize() const
Get the size of the serialized IE including Element ID and length fields.
uint8_t DeserializeInformationField(Buffer::Iterator start, uint8_t length) override
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets) ...
uint8_t m_currentChannel
current channel number
WifiInformationElementId ElementId() const override
uint8_t ReadU8(void)
Definition: buffer.h:1021
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.