Using PDCP entity lte instead of nr for nr bearer

This commit is contained in:
David Rupprecht 2021-02-25 15:17:05 +01:00 committed by David Rupprecht
parent 517208a6bc
commit 8f49b92760
3 changed files with 43 additions and 7 deletions

View File

@ -111,9 +111,48 @@ srslte::pdcp_config_t make_drb_pdcp_config_t(const uint8_t bearer_id, bool is_ue
case 10:
discard_timer = pdcp_discard_timer_t::ms10;
break;
case 20:
discard_timer = pdcp_discard_timer_t::ms20;
break;
case 30:
discard_timer = pdcp_discard_timer_t::ms30;
break;
case 40:
discard_timer = pdcp_discard_timer_t::ms40;
break;
case 50:
discard_timer = pdcp_discard_timer_t::ms50;
break;
case 60:
discard_timer = pdcp_discard_timer_t::ms60;
break;
case 75:
discard_timer = pdcp_discard_timer_t::ms75;
break;
case 100:
discard_timer = pdcp_discard_timer_t::ms100;
break;
case 150:
discard_timer = pdcp_discard_timer_t::ms150;
break;
case 200:
discard_timer = pdcp_discard_timer_t::ms200;
break;
case 250:
discard_timer = pdcp_discard_timer_t::ms250;
break;
case 300:
discard_timer = pdcp_discard_timer_t::ms300;
break;
case 500:
discard_timer = pdcp_discard_timer_t::ms500;
break;
case 750:
discard_timer = pdcp_discard_timer_t::ms750;
break;
case 1500:
discard_timer = pdcp_discard_timer_t::ms1500;
break;
default:
discard_timer = pdcp_discard_timer_t::infinity;
break;

View File

@ -94,13 +94,8 @@ void pdcp::add_bearer(uint32_t lcid, pdcp_config_t cfg)
{
if (not valid_lcid(lcid)) {
std::unique_ptr<pdcp_entity_base> entity;
if (cfg.sn_len == srslte::PDCP_SN_LEN_18) {
// create NR entity for 18bit SN length
entity.reset(new pdcp_entity_nr{rlc, rrc, gw, task_sched, logger, lcid, cfg});
} else {
entity.reset(new pdcp_entity_lte{rlc, rrc, gw, task_sched, logger, lcid, cfg});
}
// For now we create an pdcp entity lte for nr due to it's maturity
entity.reset(new pdcp_entity_lte{rlc, rrc, gw, task_sched, logger, lcid, cfg});
if (not pdcp_array.insert(std::make_pair(lcid, std::move(entity))).second) {
logger.error("Error inserting PDCP entity in to array.");
return;

View File

@ -627,6 +627,8 @@ bool rrc_nr::apply_drb_add_mod(const drb_to_add_mod_s& drb_cfg)
}
srslte::pdcp_config_t pdcp_cfg = make_drb_pdcp_config_t(drb_cfg.drb_id, true, drb_cfg.pdcp_cfg);
// TODO: work-around: this is only a work around for pdcp lte entity init
pdcp_cfg.discard_timer = pdcp_discard_timer_t::infinity;
pdcp->add_bearer(lcid, pdcp_cfg);
gw->update_lcid(eps_bearer_id, lcid);
return true;