A Discrete-Event Network Simulator
API
lte-radio-bearer-tag.cc
Go to the documentation of this file.
1/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
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: Marco Miozzo <marco.miozzo@cttc.es>
19 */
20
21
23#include "ns3/tag.h"
24#include "ns3/uinteger.h"
25
26namespace ns3 {
27
28NS_OBJECT_ENSURE_REGISTERED (LteRadioBearerTag);
29
30TypeId
32{
33 static TypeId tid = TypeId ("ns3::LteRadioBearerTag")
34 .SetParent<Tag> ()
35 .SetGroupName("Lte")
36 .AddConstructor<LteRadioBearerTag> ()
37 .AddAttribute ("rnti", "The rnti that indicates the UE to which packet belongs",
38 UintegerValue (0),
40 MakeUintegerChecker<uint16_t> ())
41 .AddAttribute ("lcid", "The id within the UE identifying the logical channel to which the packet belongs",
42 UintegerValue (0),
44 MakeUintegerChecker<uint8_t> ())
45 ;
46 return tid;
47}
48
51{
52 return GetTypeId ();
53}
54
56 : m_rnti (0),
57 m_lcid (0),
58 m_layer (0)
59{
60}
61LteRadioBearerTag::LteRadioBearerTag (uint16_t rnti, uint8_t lcid)
62 : m_rnti (rnti),
63 m_lcid (lcid)
64{
65}
66
67LteRadioBearerTag::LteRadioBearerTag (uint16_t rnti, uint8_t lcid, uint8_t layer)
68: m_rnti (rnti),
69 m_lcid (lcid),
70 m_layer (layer)
71{
72}
73
74void
76{
77 m_rnti = rnti;
78}
79
80void
82{
83 m_lcid = lcid;
84}
85
86void
88{
89 m_layer = layer;
90}
91
94{
95 return 4;
96}
97
98void
100{
101 i.WriteU16 (m_rnti);
102 i.WriteU8 (m_lcid);
103 i.WriteU8 (m_layer);
104}
105
106void
108{
109 m_rnti = (uint16_t) i.ReadU16 ();
110 m_lcid = (uint8_t) i.ReadU8 ();
111 m_layer = (uint8_t) i.ReadU8 ();
112}
113
114uint16_t
116{
117 return m_rnti;
118}
119
120uint8_t
122{
123 return m_lcid;
124}
125
126uint8_t
128{
129 return m_layer;
130}
131
132void
133LteRadioBearerTag::Print (std::ostream &os) const
134{
135 os << "rnti=" << m_rnti << ", lcid=" << (uint16_t) m_lcid << ", layer=" << (uint16_t)m_layer;
136}
137
138} // namespace ns3
Tag used to define the RNTI and LC id for each MAC packet trasmitted.
uint16_t GetRnti(void) const
Get RNTI function.
void SetLayer(uint8_t layer)
Set the layer id to the given value.
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
virtual void Serialize(TagBuffer i) const
static TypeId GetTypeId(void)
Get the type ID.
virtual void Print(std::ostream &os) const
virtual void Deserialize(TagBuffer i)
virtual uint32_t GetSerializedSize() const
LteRadioBearerTag()
Create an empty LteRadioBearerTag.
uint8_t GetLayer(void) const
Get layer function.
void SetRnti(uint16_t rnti)
Set the RNTI to the given value.
void SetLcid(uint8_t lcid)
Set the LC id to the given value.
uint8_t GetLcid(void) const
Get LCID function.
read and write tag data
Definition: tag-buffer.h:52
TAG_BUFFER_INLINE uint16_t ReadU16(void)
Definition: tag-buffer.h:205
TAG_BUFFER_INLINE void WriteU8(uint8_t v)
Definition: tag-buffer.h:172
TAG_BUFFER_INLINE void WriteU16(uint16_t v)
Definition: tag-buffer.h:180
TAG_BUFFER_INLINE uint8_t ReadU8(void)
Definition: tag-buffer.h:195
tag a set of bytes in a packet
Definition: tag.h:37
a unique identifier for an interface.
Definition: type-id.h:59
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition: type-id.cc:922
Hold an unsigned integer type.
Definition: uinteger.h:44
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Definition: uinteger.h:45
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition: object-base.h:45
Every class exported by the ns3 library is enclosed in the ns3 namespace.