mirror of https://github.com/PentHertz/srsLTE.git
after RLF store PCI of current serving cell
the PCI is needed for the reestablishment request in case the new serving cell has changed
This commit is contained in:
parent
c1da02cd07
commit
c24b25f42e
|
@ -468,6 +468,7 @@ private:
|
||||||
bool initiated = false;
|
bool initiated = false;
|
||||||
asn1::rrc::reest_cause_e m_reest_cause = asn1::rrc::reest_cause_e::nulltype;
|
asn1::rrc::reest_cause_e m_reest_cause = asn1::rrc::reest_cause_e::nulltype;
|
||||||
uint16_t m_reest_rnti = 0;
|
uint16_t m_reest_rnti = 0;
|
||||||
|
uint16_t m_reest_source_pci = 0;
|
||||||
bool reestablishment_started = false;
|
bool reestablishment_started = false;
|
||||||
bool reestablishment_successful = false;
|
bool reestablishment_successful = false;
|
||||||
|
|
||||||
|
|
|
@ -880,6 +880,11 @@ void rrc::send_con_restablish_request()
|
||||||
crnti = ho_src_rnti;
|
crnti = ho_src_rnti;
|
||||||
pci = ho_src_cell.get_pci();
|
pci = ho_src_cell.get_pci();
|
||||||
cellid = ho_src_cell.get_cell_id();
|
cellid = ho_src_cell.get_cell_id();
|
||||||
|
} else if (cause == asn1::rrc::reest_cause_e::other_fail) {
|
||||||
|
// use source PCI after RLF
|
||||||
|
crnti = m_reest_rnti;
|
||||||
|
pci = m_reest_source_pci;
|
||||||
|
cellid = serving_cell->get_cell_id();
|
||||||
} else {
|
} else {
|
||||||
crnti = m_reest_rnti;
|
crnti = m_reest_rnti;
|
||||||
pci = serving_cell->get_pci();
|
pci = serving_cell->get_pci();
|
||||||
|
@ -887,8 +892,7 @@ void rrc::send_con_restablish_request()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compute shortMAC-I
|
// Compute shortMAC-I
|
||||||
uint8_t varShortMAC_packed[16];
|
uint8_t varShortMAC_packed[16] = {};
|
||||||
bzero(varShortMAC_packed, 16);
|
|
||||||
asn1::bit_ref bref(varShortMAC_packed, sizeof(varShortMAC_packed));
|
asn1::bit_ref bref(varShortMAC_packed, sizeof(varShortMAC_packed));
|
||||||
|
|
||||||
// ASN.1 encode VarShortMAC-Input
|
// ASN.1 encode VarShortMAC-Input
|
||||||
|
@ -1347,6 +1351,8 @@ void rrc::init_con_restablish_request(asn1::rrc::reest_cause_e cause)
|
||||||
// Save reestablishment cause and current C-RNTI
|
// Save reestablishment cause and current C-RNTI
|
||||||
m_reest_rnti = uernti.crnti;
|
m_reest_rnti = uernti.crnti;
|
||||||
m_reest_cause = cause;
|
m_reest_cause = cause;
|
||||||
|
m_reest_source_pci = serving_cell->get_pci(); // needed for reestablishment with another cell
|
||||||
|
|
||||||
reestablishment_started = false;
|
reestablishment_started = false;
|
||||||
|
|
||||||
// initiation of reestablishment procedure as indicates in 3GPP 36.331 Section 5.3.7.2
|
// initiation of reestablishment procedure as indicates in 3GPP 36.331 Section 5.3.7.2
|
||||||
|
|
Loading…
Reference in New Issue