A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
epc-enb-s1-sap.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2012 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  */
20 
21 #ifndef EPC_ENB_S1_SAP_H
22 #define EPC_ENB_S1_SAP_H
23 
24 #include <list>
25 #include <stdint.h>
26 #include <ns3/eps-bearer.h>
27 #include <ns3/ipv4-address.h>
28 
29 namespace ns3 {
30 
31 
40 {
41 public:
42  virtual ~EpcEnbS1SapProvider ();
43 
50  virtual void InitialUeMessage (uint64_t imsi, uint16_t rnti) = 0;
51 
52 
54  {
55  uint8_t epsBearerId;
56  uint32_t teid;
57  };
58 
60  {
61  uint16_t rnti;
62  uint16_t cellId;
63  uint32_t mmeUeS1Id;
64  std::list<BearerToBeSwitched> bearersToBeSwitched;
65  };
66 
67  virtual void PathSwitchRequest (PathSwitchRequestParameters params) = 0;
68 
69 
77  virtual void UeContextRelease (uint16_t rnti) = 0;
78 
79 };
80 
81 
82 
91 {
92 public:
93  virtual ~EpcEnbS1SapUser ();
94 
100  {
101  uint16_t rnti;
105  uint8_t bearerId;
106  uint32_t gtpTeid;
108  };
109 
115 
116 
118  {
119  uint16_t rnti;
120  };
121 
123 
124 };
125 
126 
127 
128 
134 template <class C>
136 {
137 public:
138  MemberEpcEnbS1SapProvider (C* owner);
139 
140  // inherited from EpcEnbS1SapProvider
141  virtual void InitialUeMessage (uint64_t imsi, uint16_t rnti);
142  virtual void PathSwitchRequest (PathSwitchRequestParameters params);
143  virtual void UeContextRelease (uint16_t rnti);
144 
145 private:
148 };
149 
150 template <class C>
152  : m_owner (owner)
153 {
154 }
155 
156 template <class C>
158 {
159 }
160 
161 
162 template <class C>
163 void MemberEpcEnbS1SapProvider<C>::InitialUeMessage (uint64_t imsi, uint16_t rnti)
164 {
165  m_owner->DoInitialUeMessage (imsi, rnti);
166 }
167 
168 
169 template <class C>
171 {
172  m_owner->DoPathSwitchRequest (params);
173 }
174 
175 template <class C>
177 {
178  m_owner->DoUeContextRelease (rnti);
179 }
180 
186 template <class C>
188 {
189 public:
190  MemberEpcEnbS1SapUser (C* owner);
191 
192  // inherited from EpcEnbS1SapUser
195 
196 private:
199 };
200 
201 template <class C>
203  : m_owner (owner)
204 {
205 }
206 
207 template <class C>
209 {
210 }
211 
212 template <class C>
214 {
215  m_owner->DoDataRadioBearerSetupRequest (params);
216 }
217 
218 template <class C>
220 {
221  m_owner->DoPathSwitchRequestAcknowledge (params);
222 }
223 
224 } // namespace ns3
225 
226 #endif // EPC_ENB_S1_SAP_H
Ipv4Address transportLayerAddress
IP Address of the SGW, see 36.423 9.2.1.
Parameters passed to DataRadioBearerSetupRequest ()
Template for the implementation of the EpcEnbS1SapUser as a member of an owner class of type C to whi...
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication...
virtual void PathSwitchRequest(PathSwitchRequestParameters params)=0
virtual void UeContextRelease(uint16_t rnti)
release UE context at the S1 Application of the source eNB after reception of the UE CONTEXT RELEASE ...
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication...
virtual void DataRadioBearerSetupRequest(DataRadioBearerSetupRequestParameters params)=0
request the setup of a DataRadioBearer
uint16_t rnti
the RNTI identifying the UE for which the DataRadioBearer is to be created
std::list< BearerToBeSwitched > bearersToBeSwitched
EpsBearer bearer
the characteristics of the bearer to be set up
This class contains the specification of EPS Bearers.
Definition: eps-bearer.h:71
virtual void UeContextRelease(uint16_t rnti)=0
release UE context at the S1 Application of the source eNB after reception of the UE CONTEXT RELEASE ...
uint32_t gtpTeid
S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1.
virtual void InitialUeMessage(uint64_t imsi, uint16_t rnti)
virtual void DataRadioBearerSetupRequest(DataRadioBearerSetupRequestParameters params)
request the setup of a DataRadioBearer
Template for the implementation of the EpcEnbS1SapProvider as a member of an owner class of type C to...
virtual void PathSwitchRequest(PathSwitchRequestParameters params)
virtual void InitialUeMessage(uint64_t imsi, uint16_t rnti)=0
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:38
virtual void PathSwitchRequestAcknowledge(PathSwitchRequestAcknowledgeParameters params)=0
virtual void PathSwitchRequestAcknowledge(PathSwitchRequestAcknowledgeParameters params)