A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
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 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Manuel Requena <manuel.requena@cttc.es>
7 */
8
9#ifndef LTE_RLC_SAP_H
10#define LTE_RLC_SAP_H
11
12#include "ns3/packet.h"
13
14namespace ns3
15{
16
17/**
18 * Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity
19 * See 3GPP 36.322 Radio Link Control (RLC) protocol specification
20 *
21 * This is the RLC SAP Provider
22 * (i.e. the part of the SAP that contains the RLC methods called by the PDCP)
23 */
25{
26 public:
27 virtual ~LteRlcSapProvider();
28
29 /**
30 * Parameters for LteRlcSapProvider::TransmitPdcpPdu
31 */
33 {
34 Ptr<Packet> pdcpPdu; /**< the PDCP PDU */
35 uint16_t rnti; /**< the C-RNTI identifying the UE */
36 uint8_t lcid; /**< the logical channel id corresponding to the sending RLC instance */
37 };
38
39 /**
40 * Send a PDCP PDU to the RLC for transmission
41 * This method is to be called
42 * when upper PDCP entity has a PDCP PDU ready to send
43 * @param params the TransmitPdcpPduParameters
44 */
46};
47
48/**
49 * Service Access Point (SAP) offered by the UM-RLC and AM-RLC entities to the PDCP entity
50 * See 3GPP 36.322 Radio Link Control (RLC) protocol specification
51 *
52 * This is the RLC SAP User
53 * (i.e. the part of the SAP that contains the PDCP methods called by the RLC)
54 */
56{
57 public:
58 virtual ~LteRlcSapUser();
59
60 /**
61 * Called by the RLC entity to notify the PDCP entity of the reception of a new PDCP PDU
62 *
63 * @param p the PDCP PDU
64 */
65 virtual void ReceivePdcpPdu(Ptr<Packet> p) = 0;
66};
67
68/// LteRlcSpecificLteRlcSapProvider
69template <class C>
71{
72 public:
73 /**
74 * Constructor
75 *
76 * @param rlc the RLC
77 */
79
80 // Delete default constructor to avoid misuse
82
83 /**
84 * Interface implemented from LteRlcSapProvider
85 * @param params the TransmitPdcpPduParameters
86 */
87 void TransmitPdcpPdu(TransmitPdcpPduParameters params) override;
88
89 private:
90 C* m_rlc; ///< the RLC
91};
92
93template <class C>
98
99template <class C>
100void
102{
103 m_rlc->DoTransmitPdcpPdu(params.pdcpPdu);
104}
105
106/// LteRlcSpecificLteRlcSapUser class
107template <class C>
109{
110 public:
111 /**
112 * Constructor
113 *
114 * @param pdcp the PDCP
115 */
117
118 // Delete default constructor to avoid misuse
120
121 // Interface implemented from LteRlcSapUser
122 void ReceivePdcpPdu(Ptr<Packet> p) override;
123
124 private:
125 C* m_pdcp; ///< the PDCP
126};
127
128template <class C>
133
134template <class C>
135void
137{
138 m_pdcp->DoReceivePdcpPdu(p);
139}
140
141} // namespace ns3
142
143#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: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:56
virtual ~LteRlcSapUser()
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:71
void TransmitPdcpPdu(TransmitPdcpPduParameters params) override
Interface implemented from LteRlcSapProvider.
LteRlcSpecificLteRlcSapUser class.
void ReceivePdcpPdu(Ptr< Packet > p) override
Called by the RLC entity to notify the PDCP entity of the reception of a new PDCP PDU.
Smart pointer class similar to boost::intrusive_ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Parameters for LteRlcSapProvider::TransmitPdcpPdu.
Definition lte-rlc-sap.h:33
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
Definition lte-rlc-sap.h:36
uint16_t rnti
the C-RNTI identifying the UE
Definition lte-rlc-sap.h:35