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
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
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()
void TransmitPdcpSdu(TransmitPdcpSduParameters params) override
Send RRC PDU parameters to the PDCP for transmission.
LtePdcpSpecificLtePdcpSapProvider(C *pdcp)
Constructor.
LtePdcpSpecificLtePdcpSapUser(C *rrc)
Constructor.
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.
Definition ptr.h:66
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