A Discrete-Event Network Simulator
API
amsdu-subframe-header.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2009 MIRKO BANCHI
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: Mirko Banchi <mk.banchi@gmail.com>
19  */
20 
21 #include "amsdu-subframe-header.h"
22 #include "ns3/address-utils.h"
23 #include "ns3/log.h"
24 
25 namespace ns3 {
26 
27 NS_LOG_COMPONENT_DEFINE ("AmsduSubframeHeader");
28 
29 NS_OBJECT_ENSURE_REGISTERED (AmsduSubframeHeader);
30 
31 TypeId
33 {
34  static TypeId tid = TypeId ("ns3::AmsduSubframeHeader")
35  .SetParent<Header> ()
36  .SetGroupName ("Wifi")
37  .AddConstructor<AmsduSubframeHeader> ()
38  ;
39  return tid;
40 }
41 
42 TypeId
44 {
45  return GetTypeId ();
46 }
47 
49  : m_length (0)
50 {
51  NS_LOG_FUNCTION (this);
52 }
53 
55 {
56  NS_LOG_FUNCTION (this);
57 }
58 
59 uint32_t
61 {
62  NS_LOG_FUNCTION (this);
63  return (6 + 6 + 2);
64 }
65 
66 void
68 {
69  NS_LOG_FUNCTION (this << &i);
70  WriteTo (i, m_da);
71  WriteTo (i, m_sa);
73 }
74 
75 uint32_t
77 {
78  NS_LOG_FUNCTION (this << &start);
80  ReadFrom (i, m_da);
81  ReadFrom (i, m_sa);
82  m_length = i.ReadNtohU16 ();
83  return i.GetDistanceFrom (start);
84 }
85 
86 void
87 AmsduSubframeHeader::Print (std::ostream &os) const
88 {
89  NS_LOG_FUNCTION (this << &os);
90  os << "DA = " << m_da << ", SA = " << m_sa << ", length = " << m_length;
91 }
92 
93 void
95 {
96  NS_LOG_FUNCTION (this << to);
97  m_da = to;
98 }
99 
100 void
102 {
103  NS_LOG_FUNCTION (this << from);
104  m_sa = from;
105 }
106 
107 void
109 {
110  NS_LOG_FUNCTION (this << length);
111  m_length = length;
112 }
113 
116 {
117  NS_LOG_FUNCTION (this);
118  return m_da;
119 }
120 
123 {
124  NS_LOG_FUNCTION (this);
125  return m_sa;
126 }
127 
128 uint16_t
130 {
131  NS_LOG_FUNCTION (this);
132  return m_length;
133 }
134 
135 } //namespace ns3
Protocol header serialization and deserialization.
Definition: header.h:42
virtual uint32_t GetSerializedSize(void) const
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition: object-base.h:44
virtual void Serialize(Buffer::Iterator start) const
void ReadFrom(Buffer::Iterator &i, Ipv4Address &ad)
Read an Ipv4Address from a Buffer.
def start()
Definition: core.py:1482
void WriteTo(Buffer::Iterator &i, Ipv4Address ad)
Write an Ipv4Address to a Buffer.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition: log.h:201
virtual uint32_t Deserialize(Buffer::Iterator start)
uint32_t GetDistanceFrom(Iterator const &o) const
Definition: buffer.cc:783
Mac48Address GetDestinationAddr(void) const
iterator in a Buffer instance
Definition: buffer.h:98
void SetSourceAddr(Mac48Address to)
void WriteHtonU16(uint16_t data)
Definition: buffer.h:904
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Mac48Address GetSourceAddr(void) const
an EUI-48 address
Definition: mac48-address.h:43
Introspection did not find any typical Config paths.
void SetDestinationAddr(Mac48Address to)
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
virtual void Print(std::ostream &os) const
uint16_t ReadNtohU16(void)
Definition: buffer.h:945
a unique identifier for an interface.
Definition: type-id.h:58
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition: type-id.cc:904
uint16_t GetLength(void) const