Add PDCP per-bearer reestablish

This commit is contained in:
Ismael Gomez 2019-06-04 17:31:50 +02:00 committed by Xavier Arteaga
parent ade720e032
commit 14b526f2aa
3 changed files with 11 additions and 0 deletions

View File

@ -239,6 +239,7 @@ class pdcp_interface_rrc
{
public:
virtual void reestablish() = 0;
virtual void reestablish(uint32_t lcid) = 0;
virtual void reset() = 0;
virtual void write_sdu(uint32_t lcid, srslte::unique_byte_buffer_t sdu, bool blocking = true) = 0;
virtual void add_bearer(uint32_t lcid, srslte::srslte_pdcp_config_t cnfg = srslte::srslte_pdcp_config_t()) = 0;

View File

@ -50,6 +50,7 @@ public:
// RRC interface
void reestablish();
void reestablish(uint32_t lcid);
void reset();
void write_sdu(uint32_t lcid, unique_byte_buffer_t sdu, bool blocking = true);
void write_sdu_mch(uint32_t lcid, unique_byte_buffer_t sdu);

View File

@ -88,6 +88,15 @@ void pdcp::reestablish() {
pthread_rwlock_unlock(&rwlock);
}
void pdcp::reestablish(uint32_t lcid)
{
pthread_rwlock_rdlock(&rwlock);
if (valid_lcid(lcid)) {
pdcp_array.at(lcid)->reestablish();
}
pthread_rwlock_unlock(&rwlock);
}
void pdcp::reset()
{
// destroy all bearers