A Discrete-Event Network Simulator
API
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 
58  virtual void DoSendReleaseIndication (uint64_t imsi, uint16_t rnti, uint8_t bearerId) = 0;
59 
61  {
62  uint8_t epsBearerId;
63  uint32_t teid;
64  };
65 
67  {
68  uint16_t rnti;
69  uint16_t cellId;
70  uint32_t mmeUeS1Id;
71  std::list<BearerToBeSwitched> bearersToBeSwitched;
72  };
73 
74  virtual void PathSwitchRequest (PathSwitchRequestParameters params) = 0;
75 
76 
84  virtual void UeContextRelease (uint16_t rnti) = 0;
85 
86 };
87 
88 
89 
98 {
99 public:
100  virtual ~EpcEnbS1SapUser ();
101 
107  {
108  uint16_t rnti;
112  uint8_t bearerId;
113  uint32_t gtpTeid;
115  };
116 
122 
123 
125  {
126  uint16_t rnti;
127  };
128 
130 
131 };
132 
133 
134 
135 
141 template <class C>
143 {
144 public:
145  MemberEpcEnbS1SapProvider (C* owner);
146 
147  // inherited from EpcEnbS1SapProvider
148  virtual void InitialUeMessage (uint64_t imsi, uint16_t rnti);
149  virtual void DoSendReleaseIndication (uint64_t imsi, uint16_t rnti, uint8_t bearerId);
150 
151  virtual void PathSwitchRequest (PathSwitchRequestParameters params);
152  virtual void UeContextRelease (uint16_t rnti);
153 
154 private:
157 };
158 
159 template <class C>
161  : m_owner (owner)
162 {
163 }
164 
165 template <class C>
167 {
168 }
169 
170 
171 template <class C>
172 void MemberEpcEnbS1SapProvider<C>::InitialUeMessage (uint64_t imsi, uint16_t rnti)
173 {
174  m_owner->DoInitialUeMessage (imsi, rnti);
175 }
176 
177 template <class C>
178 void MemberEpcEnbS1SapProvider<C>::DoSendReleaseIndication (uint64_t imsi, uint16_t rnti, uint8_t bearerId)
179 {
180  m_owner->DoReleaseIndication (imsi, rnti, bearerId);
181 }
182 
183 template <class C>
185 {
186  m_owner->DoPathSwitchRequest (params);
187 }
188 
189 template <class C>
191 {
192  m_owner->DoUeContextRelease (rnti);
193 }
194 
200 template <class C>
202 {
203 public:
204  MemberEpcEnbS1SapUser (C* owner);
205 
206  // inherited from EpcEnbS1SapUser
209 
210 private:
213 };
214 
215 template <class C>
217  : m_owner (owner)
218 {
219 }
220 
221 template <class C>
223 {
224 }
225 
226 template <class C>
228 {
229  m_owner->DoDataRadioBearerSetupRequest (params);
230 }
231 
232 template <class C>
234 {
235  m_owner->DoPathSwitchRequestAcknowledge (params);
236 }
237 
238 } // namespace ns3
239 
240 #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 ...
virtual void DoSendReleaseIndication(uint64_t imsi, uint16_t rnti, uint8_t bearerId)
Triggers epc-enb-application to send ERAB Release Indication message towards MME. ...
uint32_t gtpTeid
S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1.
virtual void InitialUeMessage(uint64_t imsi, uint16_t rnti)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
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 DoSendReleaseIndication(uint64_t imsi, uint16_t rnti, uint8_t bearerId)=0
Triggers epc-enb-application to send ERAB Release Indication message towards MME. ...
virtual void InitialUeMessage(uint64_t imsi, uint16_t rnti)=0
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:40
virtual void PathSwitchRequestAcknowledge(PathSwitchRequestAcknowledgeParameters params)=0
virtual void PathSwitchRequestAcknowledge(PathSwitchRequestAcknowledgeParameters params)