diff --git a/src/lte/doc/source/figures/lte-cell-selection.dia b/src/lte/doc/source/figures/lte-cell-selection.dia index 972ffb4b5..fa1482058 100644 Binary files a/src/lte/doc/source/figures/lte-cell-selection.dia and b/src/lte/doc/source/figures/lte-cell-selection.dia differ diff --git a/src/lte/doc/source/figures/lte-ue-rrc-states.dot b/src/lte/doc/source/figures/lte-ue-rrc-states.dot index 03a6d463d..cbf075b80 100644 --- a/src/lte/doc/source/figures/lte-ue-rrc-states.dot +++ b/src/lte/doc/source/figures/lte-ue-rrc-states.dot @@ -12,8 +12,6 @@ IDLE_RANDOM_ACCESS [shape="box",width=3] IDLE_CONNECTING [shape="box",width=3] CONNECTED_NORMALLY [shape="box",width=3] CONNECTED_HANDOVER [shape="box",width=3] -CONNECTED_PHY_PROBLEM [shape="box",width=3] -CONNECTED_REESTABLISHING [shape="box",width=3] // Network attachment @@ -29,21 +27,12 @@ IDLE_CAMPED_NORMALLY -> IDLE_WAIT_SIB2 [label="connection request\nby upper laye // Connection establishment IDLE_WAIT_SIB2 -> IDLE_RANDOM_ACCESS [label="rx SIB2"] IDLE_RANDOM_ACCESS -> IDLE_CONNECTING [label="random access\nsuccessful"] -IDLE_RANDOM_ACCESS -> IDLE_CAMPED_NORMALLY [label="random access\nfailure", - style=dashed] // dashed because this has not been implemented yet +IDLE_RANDOM_ACCESS -> IDLE_CAMPED_NORMALLY [label="random access\nfailure"] IDLE_CONNECTING -> CONNECTED_NORMALLY [label="rx RRC CONN SETUP"] IDLE_CONNECTING -> IDLE_CAMPED_NORMALLY [label="rx RRC CONN\nREJECT"] // Handover CONNECTED_NORMALLY -> CONNECTED_HANDOVER [label="rx RRC CONN RECONF\nwith MobilityCtrlInfo"] CONNECTED_HANDOVER -> CONNECTED_NORMALLY [label="random access\nsuccessful"] -CONNECTED_HANDOVER -> CONNECTED_REESTABLISHING [label="handover\nfailure", style=dashed] - -// Connection re-establishment (not implemented yet) -CONNECTED_NORMALLY -> CONNECTED_PHY_PROBLEM [label="PHY problems\ndetected", style=dashed] -CONNECTED_PHY_PROBLEM -> CONNECTED_REESTABLISHING [label="RLF", style=dashed] -CONNECTED_REESTABLISHING -> CONNECTED_NORMALLY [label="rx RRC CONN\nRE-EST", style=dashed] -CONNECTED_REESTABLISHING -> IDLE_CAMPED_NORMALLY [label="rx RRC CONN\nRE-EST\nREJECT", style=dashed] - } diff --git a/src/lte/doc/source/figures/lte-ue-rrc-states.pdf b/src/lte/doc/source/figures/lte-ue-rrc-states.pdf index f2c10fbdb..cd3364222 100644 Binary files a/src/lte/doc/source/figures/lte-ue-rrc-states.pdf and b/src/lte/doc/source/figures/lte-ue-rrc-states.pdf differ diff --git a/src/lte/doc/source/figures/lte-ue-rrc-states.png b/src/lte/doc/source/figures/lte-ue-rrc-states.png index 4c94629aa..cb3afcb03 100644 Binary files a/src/lte/doc/source/figures/lte-ue-rrc-states.png and b/src/lte/doc/source/figures/lte-ue-rrc-states.png differ diff --git a/src/lte/doc/source/lte-design.rst b/src/lte/doc/source/lte-design.rst index bbd354a1d..f9d064b40 100644 --- a/src/lte/doc/source/lte-design.rst +++ b/src/lte/doc/source/lte-design.rst @@ -2052,12 +2052,14 @@ information blocks are: - System Information Block Type 1 (SIB1) Contains information regarding network access, broadcasted every 20 ms at - the middle of radio frame as a control message. + the middle of radio frame as a control message. Not used in manual + attachment method. UE must have decoded MIB before it can receive SIB1. - System Information Block Type 2 (SIB2) Contains UL- and RACH-related settings, scheduled to transmit via RRC protocol at 16 ms after cell configuration, and then repeats every 80 ms (configurable through `LteEnbRrc::SystemInformationPeriodicity` attribute. + UE must be camped to a cell in order to be able to receive its SIB2. Reception of system information is fundamental for UE to advance in its lifecycle. MIB enables the UE to increase the initial DL bandwidth of 6 RBs to @@ -2097,9 +2099,8 @@ shall not camp to eNodeB with a different CSG identity. But this rule is only enforced when CSG indication is valued as true. More details are provided in Section :ref:`sec-network-attachment` of user documentation. -When the cell passes all the above criteria, then the cell is deemed as -*suitable*. Next, UE camps to it, switching its RRC state to -`IDLE_WAIT_SYSTEM_INFO`, or to `IDLE_CAMPED_NORMALLY` if SIB2 has been received. +When the cell passes all the above criteria, the cell is deemed as *suitable*. +Then UE camps to it (`IDLE_CAMPED_NORMALLY` state). After this, upper layer may request UE to enter CONNECTED mode. Please refer to section :ref:`sec-rrc-connection-establishment` for details on this. diff --git a/src/lte/model/lte-ue-rrc.cc b/src/lte/model/lte-ue-rrc.cc index 68ad97a78..6a3ed8d36 100644 --- a/src/lte/model/lte-ue-rrc.cc +++ b/src/lte/model/lte-ue-rrc.cc @@ -95,8 +95,8 @@ const char* g_ueRrcStateName[LteUeRrc::NUM_STATES] = "IDLE_WAIT_MIB", "IDLE_WAIT_SIB1", "IDLE_CAMPED_NORMALLY", - "IDLE_RANDOM_ACCESS", "IDLE_WAIT_SIB2", + "IDLE_RANDOM_ACCESS", "IDLE_CONNECTING", "CONNECTED_NORMALLY", "CONNECTED_HANDOVER", diff --git a/src/lte/model/lte-ue-rrc.h b/src/lte/model/lte-ue-rrc.h index e82b06e4b..1484cc3f6 100644 --- a/src/lte/model/lte-ue-rrc.h +++ b/src/lte/model/lte-ue-rrc.h @@ -90,8 +90,8 @@ public: IDLE_WAIT_MIB, IDLE_WAIT_SIB1, IDLE_CAMPED_NORMALLY, - IDLE_RANDOM_ACCESS, IDLE_WAIT_SIB2, + IDLE_RANDOM_ACCESS, IDLE_CONNECTING, CONNECTED_NORMALLY, CONNECTED_HANDOVER, diff --git a/src/lte/test/lte-test-cell-selection.cc b/src/lte/test/lte-test-cell-selection.cc index 2b8cfa74c..015270c56 100644 --- a/src/lte/test/lte-test-cell-selection.cc +++ b/src/lte/test/lte-test-cell-selection.cc @@ -299,9 +299,6 @@ LteCellSelectionTestCase::DoRun () ueStaticRouting->SetDefaultRoute (epcHelper->GetUeDefaultGatewayAddress (), 1); } - // Enable Idle mode cell selection - lteHelper->Attach (ueDevs); - } // end of if (m_isEpcMode) else { @@ -322,6 +319,9 @@ LteCellSelectionTestCase::DoRun () Config::Connect ("/NodeList/*/DeviceList/*/LteUeRrc/InitialCellSelectionEndError", MakeCallback (&LteCellSelectionTestCase::InitialCellSelectionEndErrorCallback, this)); + // Enable Idle mode cell selection + lteHelper->Attach (ueDevs); + // Run simulation Simulator::Stop (m_duration); Simulator::Run ();