Commit 417bbc14 authored by aligungr's avatar aligungr

L3 RRC/NAS developments

parent 93cd83c7
...@@ -32,9 +32,9 @@ void UeRrcTask::performCellSelection() ...@@ -32,9 +32,9 @@ void UeRrcTask::performCellSelection()
if (!m_cellDesc.empty()) if (!m_cellDesc.empty())
{ {
m_logger->warn("Suitable cell selection failed in [%d] cells. [%d] out of PLMN, [%d] no SI, [%d] reserved, " m_logger->warn("Suitable cell selection failed in [%d] cells. [%d] out of PLMN, [%d] no SI, [%d] reserved, "
"[%d] barred", "[%d] barred, ftai [%d]",
static_cast<int>(m_cellDesc.size()), report.outOfPlmnCells, report.sib1MissingCells, static_cast<int>(m_cellDesc.size()), report.outOfPlmnCells, report.sib1MissingCells,
report.reservedCells, report.barredCells); report.reservedCells, report.barredCells, report.forbiddenTaiCells);
} }
else else
{ {
...@@ -47,9 +47,10 @@ void UeRrcTask::performCellSelection() ...@@ -47,9 +47,10 @@ void UeRrcTask::performCellSelection()
{ {
if (!m_cellDesc.empty()) if (!m_cellDesc.empty())
{ {
m_logger->warn("Acceptable cell selection failed in [%d] cells. [%d] no SI, [%d] reserved, [%d] barred", m_logger->warn(
static_cast<int>(m_cellDesc.size()), report.sib1MissingCells, report.reservedCells, "Acceptable cell selection failed in [%d] cells. [%d] no SI, [%d] reserved, [%d] barred, ftai [%d]",
report.barredCells); static_cast<int>(m_cellDesc.size()), report.sib1MissingCells, report.reservedCells,
report.barredCells, report.forbiddenTaiCells);
} }
else else
{ {
...@@ -115,7 +116,25 @@ bool UeRrcTask::lookForSuitableCell(CurrentCellInfo &cellInfo, CellSelectionRepo ...@@ -115,7 +116,25 @@ bool UeRrcTask::lookForSuitableCell(CurrentCellInfo &cellInfo, CellSelectionRepo
continue; continue;
} }
// TODO: Check TAI if forbidden by service area or forbidden list Tai tai{cell.sib1.plmn, cell.sib1.tac};
if (m_base->shCtx.forbiddenTaiRoaming.get<bool>([&tai](auto &item) {
return std::any_of(item.begin(), item.end(), [&tai](auto &element) { return element == tai; });
}))
{
report.forbiddenTaiCells++;
continue;
}
if (m_base->shCtx.forbiddenTaiRps.get<bool>([&tai](auto &item) {
return std::any_of(item.begin(), item.end(), [&tai](auto &element) { return element == tai; });
}))
{
report.forbiddenTaiCells++;
continue;
}
// TODO: Check TAI if forbidden by service area
// TODO: Do we need to check by access identity? // TODO: Do we need to check by access identity?
// It seems suitable // It seems suitable
...@@ -173,7 +192,25 @@ bool UeRrcTask::lookForAcceptableCell(CurrentCellInfo &cellInfo, CellSelectionRe ...@@ -173,7 +192,25 @@ bool UeRrcTask::lookForAcceptableCell(CurrentCellInfo &cellInfo, CellSelectionRe
continue; continue;
} }
// TODO: Check TAI if forbidden by service area or forbidden list Tai tai{cell.sib1.plmn, cell.sib1.tac};
if (m_base->shCtx.forbiddenTaiRoaming.get<bool>([&tai](auto &item) {
return std::any_of(item.begin(), item.end(), [&tai](auto &element) { return element == tai; });
}))
{
report.forbiddenTaiCells++;
continue;
}
if (m_base->shCtx.forbiddenTaiRps.get<bool>([&tai](auto &item) {
return std::any_of(item.begin(), item.end(), [&tai](auto &element) { return element == tai; });
}))
{
report.forbiddenTaiCells++;
continue;
}
// TODO: Check TAI if forbidden by service area
// TODO: Do we need to check by access identity? // TODO: Do we need to check by access identity?
// It seems acceptable // It seems acceptable
......
...@@ -145,6 +145,7 @@ struct CellSelectionReport ...@@ -145,6 +145,7 @@ struct CellSelectionReport
int sib1MissingCells{}; int sib1MissingCells{};
int reservedCells{}; int reservedCells{};
int barredCells{}; int barredCells{};
int forbiddenTaiCells{};
}; };
struct CurrentCellInfo struct CurrentCellInfo
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment