A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-pdcp-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_PDCP_SAP_H
10#define LTE_PDCP_SAP_H
11
12#include "ns3/packet.h"
13
14namespace ns3
15{
16
17/**
18 * Service Access Point (SAP) offered by the PDCP entity to the RRC entity
19 * See 3GPP 36.323 Packet Data Convergence Protocol (PDCP) specification
20 *
21 * This is the PDCP SAP Provider
22 * (i.e. the part of the SAP that contains the PDCP methods called by the RRC)
23 */
25{
26 public:
27 virtual ~LtePdcpSapProvider();
28
29 /**
30 * Parameters for LtePdcpSapProvider::TransmitPdcpSdu
31 */
33 {
34 Ptr<Packet> pdcpSdu; /**< the RRC 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 RRC PDU parameters to the PDCP for transmission
41 *
42 * This method is to be called when upper RRC entity has a
43 * RRC PDU ready to send
44 *
45 * @param params Parameters
46 */
48};
49
50/**
51 * Service Access Point (SAP) offered by the PDCP entity to the RRC entity
52 * See 3GPP 36.323 Packet Data Convergence Protocol (PDCP) specification
53 *
54 * This is the PDCP SAP User
55 * (i.e. the part of the SAP that contains the RRC methods called by the PDCP)
56 */
58{
59 public:
60 virtual ~LtePdcpSapUser();
61
62 /**
63 * Parameters for LtePdcpSapUser::ReceivePdcpSdu
64 */
66 {
67 Ptr<Packet> pdcpSdu; /**< the RRC PDU */
68 uint16_t rnti; /**< the C-RNTI identifying the UE */
69 uint8_t lcid; /**< the logical channel id corresponding to the sending RLC instance */
70 };
71
72 /**
73 * Called by the PDCP entity to notify the RRC entity of the reception of a new RRC PDU
74 *
75 * @param params Parameters
76 */
77 virtual void ReceivePdcpSdu(ReceivePdcpSduParameters params) = 0;
78};
79
80/// LtePdcpSpecificLtePdcpSapProvider class
81template <class C>
83{
84 public:
85 /**
86 * Constructor
87 *
88 * @param pdcp PDCP
89 */
91
92 // Delete default constructor to avoid misuse
94
95 // Interface implemented from LtePdcpSapProvider
96 void TransmitPdcpSdu(TransmitPdcpSduParameters params) override;
97
98 private:
99 C* m_pdcp; ///< the PDCP
100};
101
102template <class C>
107
108template <class C>
109void
111{
112 m_pdcp->DoTransmitPdcpSdu(params);
113}
114
115/// LtePdcpSpecificLtePdcpSapUser class
116template <class C>
118{
119 public:
120 /**
121 * Constructor
122 *
123 * @param rrc RRC
124 */
126
127 // Delete default constructor to avoid misuse
129
130 // Interface implemented from LtePdcpSapUser
131 void ReceivePdcpSdu(ReceivePdcpSduParameters params) override;
132
133 private:
134 C* m_rrc; ///< RRC
135};
136
137template <class C>
142
143template <class C>
144void
146{
147 m_rrc->DoReceivePdcpSdu(params);
148}
149
150} // namespace ns3
151
152#endif // LTE_PDCP_SAP_H
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
virtual void TransmitPdcpSdu(TransmitPdcpSduParameters params)=0
Send RRC PDU parameters to the PDCP for transmission.
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
virtual void ReceivePdcpSdu(ReceivePdcpSduParameters params)=0
Called by the PDCP entity to notify the RRC entity of the reception of a new RRC PDU.
virtual ~LtePdcpSapUser()
LtePdcpSpecificLtePdcpSapProvider class.
void TransmitPdcpSdu(TransmitPdcpSduParameters params) override
Send RRC PDU parameters to the PDCP for transmission.
LtePdcpSpecificLtePdcpSapUser class.
void ReceivePdcpSdu(ReceivePdcpSduParameters params) override
Called by the PDCP entity to notify the RRC entity of the reception of a new RRC PDU.
Smart pointer class similar to boost::intrusive_ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Parameters for LtePdcpSapProvider::TransmitPdcpSdu.
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
uint16_t rnti
the C-RNTI identifying the UE
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
uint8_t lcid
the logical channel id corresponding to the sending RLC instance
uint16_t rnti
the C-RNTI identifying the UE