A Discrete-Event Network Simulator
API
lte-rlc-sap.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation;
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  *
17  * Author: Manuel Requena <manuel.requena@cttc.es>
18  */
19 
20 #ifndef LTE_RLC_SAP_H
21 #define LTE_RLC_SAP_H
22 
23 #include "ns3/packet.h"
24 
25 namespace ns3
26 {
27 
36 {
37  public:
38  virtual ~LteRlcSapProvider();
39 
44  {
46  uint16_t rnti;
47  uint8_t lcid;
48  };
49 
57 };
58 
67 {
68  public:
69  virtual ~LteRlcSapUser();
70 
76  virtual void ReceivePdcpPdu(Ptr<Packet> p) = 0;
77 };
78 
80 template <class C>
82 {
83  public:
90 
91  // Delete default constructor to avoid misuse
93 
99 
100  private:
101  C* m_rlc;
102 };
103 
104 template <class C>
106  : m_rlc(rlc)
107 {
108 }
109 
110 template <class C>
111 void
113 {
114  m_rlc->DoTransmitPdcpPdu(params.pdcpPdu);
115 }
116 
118 template <class C>
120 {
121  public:
128 
129  // Delete default constructor to avoid misuse
131 
132  // Interface implemented from LteRlcSapUser
133  void ReceivePdcpPdu(Ptr<Packet> p) override;
134 
135  private:
136  C* m_pdcp;
137 };
138 
139 template <class C>
141  : m_pdcp(pdcp)
142 {
143 }
144 
145 template <class C>
146 void
148 {
149  m_pdcp->DoReceivePdcpPdu(p);
150 }
151 
152 } // namespace ns3
153 
154 #endif // LTE_RLC_SAP_H
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36....
Definition: lte-rlc-sap.h:36
virtual ~LteRlcSapProvider()
Definition: lte-rlc-sap.cc:25
virtual void TransmitPdcpPdu(TransmitPdcpPduParameters params)=0
Send a PDCP PDU to the RLC for transmission This method is to be called when upper PDCP entity has a ...
Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity See 3GPP 36....
Definition: lte-rlc-sap.h:67
virtual ~LteRlcSapUser()
Definition: lte-rlc-sap.cc:29
virtual void ReceivePdcpPdu(Ptr< Packet > p)=0
Called by the RLC entity to notify the PDCP entity of the reception of a new PDCP PDU.
LteRlcSpecificLteRlcSapProvider.
Definition: lte-rlc-sap.h:82
void TransmitPdcpPdu(TransmitPdcpPduParameters params) override
Interface implemented from LteRlcSapProvider.
Definition: lte-rlc-sap.h:112
LteRlcSpecificLteRlcSapUser class.
Definition: lte-rlc-sap.h:120
void ReceivePdcpPdu(Ptr< Packet > p) override
Called by the RLC entity to notify the PDCP entity of the reception of a new PDCP PDU.
Definition: lte-rlc-sap.h:147
Every class exported by the ns3 library is enclosed in the ns3 namespace.
params
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.
Parameters for LteRlcSapProvider::TransmitPdcpPdu.
Definition: lte-rlc-sap.h:44
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Definition: lte-rlc-sap.h:47
uint16_t rnti
the C-RNTI identifying the UE
Definition: lte-rlc-sap.h:46