Skip to content

Commit 67fe989

Browse files
committed
PHY: LtePhyEnb: decouple beacon emission from enableHandover (add enableBeacons)
Beacons are the measurement signal UEs use both for handover feasibility assessment and for radio link monitoring (RLF detection). Gating their emission on enableHandover meant radio link monitoring could not run without handover, and would silently not exist otherwise. Add a separate enableBeacons parameter that controls beacon broadcasting. It defaults to enableHandover, so existing configurations are unaffected (beacons flow exactly when they did before). enableHandover=true now requires beacons to actually flow (enableBeacons=true and beaconInterval>0); otherwise the eNB errors out at initialization instead of silently disabling handover. Fingerprint-neutral: full suite 132/132 OK (default enableBeacons==enableHandover reproduces prior behavior in every baseline config).
1 parent 1f1ad4b commit 67fe989

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

src/simu5g/stack/phy/LtePhyEnb.cc

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,17 @@ void LtePhyEnb::initialize(int stage)
7171
}
7272

7373
beaconInterval_ = cellInfo_->par("beaconInterval");
74-
if (beaconInterval_ != 0 && par("enableHandover").boolValue()) {
74+
bool enableHandover = par("enableHandover");
75+
bool enableBeacons = par("enableBeacons");
76+
bool beaconsWillFlow = enableBeacons && beaconInterval_ != 0;
77+
// Handover feasibility assessment (and radio link monitoring) in the UEs is driven by
78+
// these beacons, so handover cannot silently work without them.
79+
if (enableHandover && !beaconsWillFlow)
80+
throw cRuntimeError("enableHandover=true requires the eNB to broadcast beacons, but "
81+
"they are disabled (enableBeacons=%s, cellInfo.beaconInterval=%gs); set "
82+
"enableBeacons=true and beaconInterval>0, or set enableHandover=false",
83+
enableBeacons ? "true" : "false", beaconInterval_);
84+
if (beaconsWillFlow) {
7585
beaconStarter_ = new cMessage("beaconStarter");
7686
scheduleAt(NOW, beaconStarter_);
7787
}

src/simu5g/stack/phy/LtePhyEnb.ned

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,18 @@ simple LtePhyEnb extends LtePhyBase
2424
parameters:
2525
@class("LtePhyEnb");
2626

27-
// Enables broadcasting beacons which are used for handover feasibility assessment in UEs
27+
// Marks this eNB as a handover target: its beacons are used by UEs for handover
28+
// feasibility assessment. Requires enableBeacons (beacons are the input to that
29+
// assessment); the module errors out at initialization if beacons are disabled.
2830
bool enableHandover = default(false);
2931

32+
// Enables broadcasting periodic beacons (at cellInfo.beaconInterval). Beacons are the
33+
// measurement signal UEs use both for handover feasibility assessment and for radio
34+
// link monitoring (RLF detection), so they are decoupled from enableHandover to allow
35+
// radio link monitoring without handover. Defaults to enableHandover for backward
36+
// compatibility. Broadcasting also requires cellInfo.beaconInterval > 0.
37+
bool enableBeacons = default(enableHandover);
38+
3039
double targetBler = default(0.001);
3140
}
3241

0 commit comments

Comments
 (0)