A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
lte-enb-cmac-sap.h
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: Nicola Baldo <nbaldo@cttc.es>
19
* Marco Miozzo <mmiozzo@cttc.es>
20
*/
21
22
#ifndef LTE_ENB_CMAC_SAP_H
23
#define LTE_ENB_CMAC_SAP_H
24
25
#include <ns3/packet.h>
26
#include <ns3/ff-mac-common.h>
27
#include <ns3/eps-bearer.h>
28
#include <ns3/lte-common.h>
29
30
namespace
ns3 {
31
32
33
class
LteMacSapUser;
34
41
class
LteEnbCmacSapProvider
42
{
43
public
:
44
virtual
~LteEnbCmacSapProvider
();
51
virtual
void
ConfigureMac
(uint8_t ulBandwidth,
52
uint8_t dlBandwidth) = 0;
53
54
55
virtual
void
AddUe
(uint16_t rnti) = 0;
56
62
virtual
void
RemoveUe
(uint16_t rnti) = 0;
63
68
struct
LcInfo
69
{
70
uint16_t
rnti
;
71
uint8_t
lcId
;
72
uint8_t
lcGroup
;
73
uint8_t
qci
;
74
bool
isGbr
;
75
uint64_t
mbrUl
;
76
uint64_t
mbrDl
;
77
uint64_t
gbrUl
;
78
uint64_t
gbrDl
;
79
};
80
87
virtual
void
AddLc
(
LcInfo
lcinfo,
LteMacSapUser
* msu) = 0;
88
89
95
virtual
void
ReconfigureLc
(
LcInfo
lcinfo) = 0;
96
97
104
virtual
void
ReleaseLc
(uint16_t rnti, uint8_t lcid) = 0;
105
109
struct
UeConfig
110
{
114
uint16_t
m_rnti
;
118
uint8_t
m_transmissionMode
;
119
};
120
126
virtual
void
UeUpdateConfigurationReq
(
UeConfig
params) = 0;
127
128
133
struct
RachConfig
134
{
135
uint8_t
numberOfRaPreambles
;
136
uint8_t
preambleTransMax
;
137
uint8_t
raResponseWindowSize
;
138
};
139
144
virtual
RachConfig
GetRachConfig
() = 0;
145
150
struct
AllocateNcRaPreambleReturnValue
151
{
152
bool
valid
;
153
uint8_t
raPreambleId
;
154
uint8_t
raPrachMaskIndex
;
155
};
156
164
virtual
AllocateNcRaPreambleReturnValue
AllocateNcRaPreamble
(uint16_t rnti) = 0;
165
166
};
167
168
169
176
class
LteEnbCmacSapUser
177
{
178
public
:
179
virtual
~LteEnbCmacSapUser
();
180
186
virtual
uint16_t
AllocateTemporaryCellRnti
() = 0;
187
195
virtual
void
NotifyLcConfigResult
(uint16_t rnti, uint8_t lcid,
bool
success) = 0;
196
200
struct
UeConfig
201
{
205
uint16_t
m_rnti
;
209
uint8_t
m_transmissionMode
;
210
};
211
217
virtual
void
RrcConfigurationUpdateInd
(
UeConfig
params) = 0;
218
};
219
220
221
222
223
224
225
226
}
// namespace ns3
227
228
229
#endif // MAC_SAP_H
src
lte
model
lte-enb-cmac-sap.h
Generated on Tue May 14 2013 11:08:25 for ns-3 by
1.8.1.2