OsmoBSC> show network ... Handover: Off ... OsmoBSC> enable OsmoBSC# ### No handover config present OsmoBSC# show running-config ... !handover OsmoBSC# ### Toggling handover on network level affects 'show network': OsmoBSC# configure terminal OsmoBSC(config)# network OsmoBSC(config-net)# do show network ... Handover: Off ... OsmoBSC(config-net)# handover 1 OsmoBSC(config-net)# do show network ... Handover: On ... OsmoBSC(config-net)# ### If network level default is 'on', bts level can still override to 'off': OsmoBSC(config-net)# bts 0 OsmoBSC(config-net-bts)# handover 0 OsmoBSC(config-net-bts)# do show network ... Handover: Off ... OsmoBSC(config-net-bts)# exit OsmoBSC(config-net)# ### Create a *second* BTS that is not explicitly 'off': OsmoBSC(config-net)# bts 1 OsmoBSC(config-net-bts)# do show network ... Handover: On at 1 BTS, Off at 1 BTS ... OsmoBSC(config-net-bts)# ### Add arbitrary handover config item for bts 1: OsmoBSC(config-net-bts)# handover1 power budget interval 23 OsmoBSC(config-net-bts)# exit OsmoBSC(config-net)# ### HO is 'on' globally, bts 0 disables it, bts 1 tweaks a param: OsmoBSC(config-net)# show running-config ... network ... !handover handover 1 ... !handover bts 0 ... !handover handover 0 ... !handover bts 1 ... !handover handover1 power budget interval 23 ... !handover OsmoBSC(config-net)# ### Set global default to 'off', now bts 1 also uses the global default of 'off': OsmoBSC(config-net)# handover 0 OsmoBSC(config-net)# do show network ... Handover: Off ... OsmoBSC(config-net)# show running-config ... network ... !handover handover 0 ... !handover bts 0 ... !handover handover 0 ... !handover bts 1 ... !handover handover1 power budget interval 23 ... !handover OsmoBSC(config-net)# ### Remove the global setting, i.e. use the factory default net level, with same effect: OsmoBSC(config-net)# handover default % 'handover' setting removed, now is 0 OsmoBSC(config-net)# handover default % 'handover' already was unset, still is 0 OsmoBSC(config-net)# do show network ... Handover: Off ... OsmoBSC(config-net)# show running-config ... network ... !handover bts 0 ... !handover handover 0 ... !handover bts 1 ... !handover handover1 power budget interval 23 ... !handover OsmoBSC(config-net)# ### Re-enable net-level handover, but bts 0 remains disabled explicitly OsmoBSC(config-net)# handover 1 OsmoBSC(config-net)# do show network ... Handover: On at 1 BTS, Off at 1 BTS ... OsmoBSC(config-net)# show running-config ... network ... !handover handover 1 ... !handover bts 0 ... !handover handover 0 ... !handover bts 1 ... !handover handover1 power budget interval 23 ... !handover OsmoBSC(config-net)# ### Remove explicit setting of bts 0 to also use the global setting: OsmoBSC(config-net)# bts 0 OsmoBSC(config-net-bts)# handover default % 'handover' setting removed, now is 1 (set on higher level node) OsmoBSC(config-net-bts)# handover default % 'handover' already was unset, still is 1 (set on higher level node) OsmoBSC(config-net-bts)# do show network ... Handover: On ... OsmoBSC(config-net-bts)# show running-config ... network ... !handover handover 1 ... !handover bts 0 ... !handover bts 1 ... !handover handover1 power budget interval 23 ... !handover OsmoBSC(config-net-bts)# ### Verify that 'min rxlev' value range stops at -50 OsmoBSC(config-net-bts)# handover2 min rxlev ? <-110--50> minimum RxLev (dBm; note: negative values) default Use default (-100), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 min rxlev -111 % Unknown command. OsmoBSC(config-net-bts)# handover2 min rxlev -110 OsmoBSC(config-net-bts)# handover2 min rxlev -50 OsmoBSC(config-net-bts)# handover2 min rxlev -49 % Unknown command. OsmoBSC(config-net-bts)# handover2 min rxlev 50 % Unknown command. OsmoBSC(config-net-bts)# handover2 min rxlev default % 'handover2 min rxlev' setting removed, now is -100 OsmoBSC(config-net-bts)# ### Checking online help OsmoBSC(config-net-bts)# exit OsmoBSC(config-net)# list ... handover (0|1|default) handover algorithm (1|2|default) handover1 window rxlev averaging (<1-10>|default) handover1 window rxqual averaging (<1-10>|default) handover1 window rxlev neighbor averaging (<1-10>|default) handover1 power budget interval (<1-99>|default) handover1 power budget hysteresis (<0-999>|default) handover1 maximum distance (<0-9999>|default) handover2 window rxlev averaging (<1-10>|default) handover2 window rxqual averaging (<1-10>|default) handover2 window rxlev neighbor averaging (<1-10>|default) handover2 power budget interval (<1-99>|default) handover2 power budget hysteresis (<0-999>|default) handover2 maximum distance (<0-9999>|default) handover2 assignment (0|1|default) handover2 tdma-measurement (full|subset|default) handover2 min rxlev (<-110--50>|default) handover2 min rxqual (<0-7>|default) handover2 afs-bias rxlev (<0-20>|default) handover2 afs-bias rxqual (<0-7>|default) handover2 min-free-slots tch/f (<0-9999>|default) handover2 min-free-slots tch/h (<0-9999>|default) handover2 max-handovers (<1-9999>|default) handover2 penalty-time max-distance (<0-99999>|default) handover2 penalty-time failed-ho (<0-99999>|default) handover2 penalty-time failed-assignment (<0-99999>|default) handover2 retries (<0-9>|default) handover2 congestion-check (disabled|<1-999>|now) ... OsmoBSC(config-net)# handover? handover Handover general config OsmoBSC(config-net)# handover1? handover1 Handover options for handover decision algorithm 1 OsmoBSC(config-net)# handover2? handover2 Handover options for handover decision algorithm 2 OsmoBSC(config-net)# handover ? 0 Disable in-call handover 1 Enable in-call handover default Enable/disable handover: Use default (0), remove explicit setting on this node algorithm Choose algorithm for handover decision ... OsmoBSC(config-net)# handover1 ? window Measurement averaging settings power Neighbor cell power triggering maximum Maximum Timing-Advance value (i.e. MS distance) before triggering HO OsmoBSC(config-net)# handover2 ? window Measurement averaging settings power Neighbor cell power triggering maximum Maximum Timing-Advance value (i.e. MS distance) before triggering HO assignment Enable or disable in-call channel re-assignment within the same cell tdma-measurement Define measurement set of TDMA frames min Minimum Level/Quality thresholds before triggering HO afs-bias Configure bias to prefer AFS (AMR on TCH/F) over other codecs min-free-slots Minimum free TCH timeslots before cell is considered congested max-handovers Maximum number of concurrent handovers allowed per cell penalty-time Set penalty times to wait between repeated handovers retries Number of times to immediately retry a failed handover/assignment, before a penalty time is applied congestion-check Configure congestion check interval OsmoBSC(config-net)# handover algorithm ? 1 Algorithm 1: trigger handover based on comparing current cell and neighbor RxLev and RxQual, only. 2 Algorithm 2: trigger handover on RxLev/RxQual, and also to balance the load across several cells. Consider available codecs. Prevent repeated handover by penalty timers. default Use default (1), remove explicit setting on this node OsmoBSC(config-net)# handover1 window ? rxlev Received-Level averaging rxqual Received-Quality averaging OsmoBSC(config-net)# handover1 window rxlev ? averaging How many RxLev measurements to use for averaging neighbor How many Neighbor RxLev measurements to use for averaging OsmoBSC(config-net)# handover1 window rxlev averaging ? <1-10> RxLev averaging: Number of values to average over default Use default (10), remove explicit setting on this node OsmoBSC(config-net)# handover1 window rxlev neighbor ? averaging How many Neighbor RxLev measurements to use for averaging OsmoBSC(config-net)# handover1 window rxlev neighbor averaging ? <1-10> Neighbor RxLev averaging: Number of values to average over default Use default (10), remove explicit setting on this node OsmoBSC(config-net)# handover1 window rxqual ? averaging How many RxQual measurements to use for averaging OsmoBSC(config-net)# handover1 window rxqual averaging ? <1-10> RxQual averaging: Number of values to average over default Use default (1), remove explicit setting on this node OsmoBSC(config-net)# handover1 power ? budget Neighbor cell power triggering OsmoBSC(config-net)# handover1 power budget ? interval How often to check for a better cell (SACCH frames) hysteresis How many dB stronger must a neighbor be to become a HO candidate OsmoBSC(config-net)# handover1 power budget interval ? <1-99> Check for stronger neighbor every N number of SACCH frames default Use default (6), remove explicit setting on this node OsmoBSC(config-net)# handover1 power budget hysteresis ? <0-999> Neighbor's strength difference in dB default Use default (3), remove explicit setting on this node OsmoBSC(config-net)# handover1 maximum ? distance Maximum Timing-Advance value (i.e. MS distance) before triggering HO OsmoBSC(config-net)# handover1 maximum distance ? <0-9999> Maximum Timing-Advance value (i.e. MS distance) before triggering HO default Use default (9999), remove explicit setting on this node OsmoBSC(config-net)# handover2 window ? rxlev Received-Level averaging rxqual Received-Quality averaging OsmoBSC(config-net)# handover2 window rxlev ? averaging How many RxLev measurements to use for averaging neighbor How many Neighbor RxLev measurements to use for averaging OsmoBSC(config-net)# handover2 window rxlev averaging ? <1-10> RxLev averaging: Number of values to average over default Use default (10), remove explicit setting on this node OsmoBSC(config-net)# handover2 window rxlev neighbor ? averaging How many Neighbor RxLev measurements to use for averaging OsmoBSC(config-net)# handover2 window rxlev neighbor averaging ? <1-10> Neighbor RxLev averaging: Number of values to average over default Use default (10), remove explicit setting on this node OsmoBSC(config-net)# handover2 window rxqual ? averaging How many RxQual measurements to use for averaging OsmoBSC(config-net)# handover2 window rxqual averaging ? <1-10> RxQual averaging: Number of values to average over default Use default (1), remove explicit setting on this node OsmoBSC(config-net)# handover2 power ? budget Neighbor cell power triggering OsmoBSC(config-net)# handover2 power budget ? interval How often to check for a better cell (SACCH frames) hysteresis How many dB stronger must a neighbor be to become a HO candidate OsmoBSC(config-net)# handover2 power budget interval ? <1-99> Check for stronger neighbor every N number of SACCH frames default Use default (6), remove explicit setting on this node OsmoBSC(config-net)# handover2 power budget hysteresis ? <0-999> Neighbor's strength difference in dB default Use default (3), remove explicit setting on this node OsmoBSC(config-net)# handover2 maximum ? distance Maximum Timing-Advance value (i.e. MS distance) before triggering HO OsmoBSC(config-net)# handover2 maximum distance ? <0-9999> Maximum Timing-Advance value (i.e. MS distance) before triggering HO default Use default (9999), remove explicit setting on this node OsmoBSC(config-net)# handover2 assignment ? 0 Disable in-call assignment 1 Enable in-call assignment default Use default (0), remove explicit setting on this node OsmoBSC(config-net)# handover2 tdma-measurement ? full Full set of 102/104 TDMA frames subset Sub set of 4 TDMA frames (SACCH) default Use default (subset), remove explicit setting on this node OsmoBSC(config-net)# handover2 min ? rxlev How weak may RxLev of an MS become before triggering HO rxqual How bad may RxQual of an MS become before triggering HO, where 0 is the best quality (bit error rate < 0.2%) and 7 is the worst quality (bit error rate > 12.8%), see 3GPP TS 45.008 8.2.4. OsmoBSC(config-net)# handover2 min rxlev ? <-110--50> minimum RxLev (dBm; note: negative values) default Use default (-100), remove explicit setting on this node OsmoBSC(config-net)# handover2 min rxqual ? <0-7> worst acceptable RxQual default Use default (5), remove explicit setting on this node OsmoBSC(config-net)# handover2 afs-bias ? rxlev RxLev improvement bias for AFS over other codecs rxqual RxQual improvement bias for AFS over other codecs OsmoBSC(config-net)# handover2 afs-bias rxlev ? <0-20> Virtual RxLev improvement (dB) default Use default (0), remove explicit setting on this node OsmoBSC(config-net)# handover2 afs-bias rxqual ? <0-7> Virtual RxQual improvement default Use default (0), remove explicit setting on this node OsmoBSC(config-net)# handover2 min-free-slots ? tch/f Minimum free TCH/F timeslots before cell is considered congested tch/h Minimum free TCH/H timeslots before cell is considered congested OsmoBSC(config-net)# handover2 min-free-slots tch/f ? <0-9999> Number of TCH/F slots default Use default (0), remove explicit setting on this node OsmoBSC(config-net)# handover2 min-free-slots TCH/F ? % There is no matched command. OsmoBSC(config-net)# handover2 min-free-slots tch/h ? <0-9999> Number of TCH/H slots default Use default (0), remove explicit setting on this node OsmoBSC(config-net)# handover2 max-handovers ? <1-9999> Number default Use default (9999), remove explicit setting on this node OsmoBSC(config-net)# handover2 penalty-time ? max-distance Time to suspend handover for a subscriber after leaving this cell due to exceeding max distance; see also 'handover2 retries' failed-ho Time to suspend handover for a subscriber after a failed handover into this cell; see also 'handover2 retries' failed-assignment Time to suspend handover for a subscriber after a failed re-assignment within this cell; see also 'handover2 retries' OsmoBSC(config-net)# handover2 penalty-time max-distance ? <0-99999> Seconds default Use default (300), remove explicit setting on this node OsmoBSC(config-net)# handover2 penalty-time failed-ho ? <0-99999> Seconds default Use default (60), remove explicit setting on this node OsmoBSC(config-net)# handover2 penalty-time failed-assignment ? <0-99999> Seconds default Use default (60), remove explicit setting on this node OsmoBSC(config-net)# handover2 retries ? <0-9> Number of retries default Use default (0), remove explicit setting on this node OsmoBSC(config-net)# handover2 congestion-check ? disabled Disable congestion checking, do not handover based on cell load. Note: there is one global congestion check interval, i.e. contrary to other handover2 settings, this is not configurable per individual cell. <1-999> Congestion check interval in seconds (default 10) now Manually trigger a congestion check to run right now OsmoBSC(config-net)# ### Same on BTS level, except for the congestion-check OsmoBSC(config-net)# bts 0 OsmoBSC(config-net-bts)# handover? handover Handover general config OsmoBSC(config-net-bts)# handover1? handover1 Handover options for handover decision algorithm 1 OsmoBSC(config-net-bts)# handover2? handover2 Handover options for handover decision algorithm 2 OsmoBSC(config-net-bts)# handover ? 0 Disable in-call handover 1 Enable in-call handover default Enable/disable handover: Use default (0), remove explicit setting on this node algorithm Choose algorithm for handover decision ... OsmoBSC(config-net-bts)# handover1 ? window Measurement averaging settings power Neighbor cell power triggering maximum Maximum Timing-Advance value (i.e. MS distance) before triggering HO OsmoBSC(config-net-bts)# handover2 ? window Measurement averaging settings power Neighbor cell power triggering maximum Maximum Timing-Advance value (i.e. MS distance) before triggering HO assignment Enable or disable in-call channel re-assignment within the same cell tdma-measurement Define measurement set of TDMA frames min Minimum Level/Quality thresholds before triggering HO afs-bias Configure bias to prefer AFS (AMR on TCH/F) over other codecs min-free-slots Minimum free TCH timeslots before cell is considered congested max-handovers Maximum number of concurrent handovers allowed per cell penalty-time Set penalty times to wait between repeated handovers retries Number of times to immediately retry a failed handover/assignment, before a penalty time is applied OsmoBSC(config-net-bts)# handover algorithm ? 1 Algorithm 1: trigger handover based on comparing current cell and neighbor RxLev and RxQual, only. 2 Algorithm 2: trigger handover on RxLev/RxQual, and also to balance the load across several cells. Consider available codecs. Prevent repeated handover by penalty timers. default Use default (1), remove explicit setting on this node OsmoBSC(config-net-bts)# handover1 window ? rxlev Received-Level averaging rxqual Received-Quality averaging OsmoBSC(config-net-bts)# handover1 window rxlev ? averaging How many RxLev measurements to use for averaging neighbor How many Neighbor RxLev measurements to use for averaging OsmoBSC(config-net-bts)# handover1 window rxlev averaging ? <1-10> RxLev averaging: Number of values to average over default Use default (10), remove explicit setting on this node OsmoBSC(config-net-bts)# handover1 window rxlev neighbor ? averaging How many Neighbor RxLev measurements to use for averaging OsmoBSC(config-net-bts)# handover1 window rxlev neighbor averaging ? <1-10> Neighbor RxLev averaging: Number of values to average over default Use default (10), remove explicit setting on this node OsmoBSC(config-net-bts)# handover1 window rxqual ? averaging How many RxQual measurements to use for averaging OsmoBSC(config-net-bts)# handover1 window rxqual averaging ? <1-10> RxQual averaging: Number of values to average over default Use default (1), remove explicit setting on this node OsmoBSC(config-net-bts)# handover1 power ? budget Neighbor cell power triggering OsmoBSC(config-net-bts)# handover1 power budget ? interval How often to check for a better cell (SACCH frames) hysteresis How many dB stronger must a neighbor be to become a HO candidate OsmoBSC(config-net-bts)# handover1 power budget interval ? <1-99> Check for stronger neighbor every N number of SACCH frames default Use default (6), remove explicit setting on this node OsmoBSC(config-net-bts)# handover1 power budget hysteresis ? <0-999> Neighbor's strength difference in dB default Use default (3), remove explicit setting on this node OsmoBSC(config-net-bts)# handover1 maximum ? distance Maximum Timing-Advance value (i.e. MS distance) before triggering HO OsmoBSC(config-net-bts)# handover1 maximum distance ? <0-9999> Maximum Timing-Advance value (i.e. MS distance) before triggering HO default Use default (9999), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 window ? rxlev Received-Level averaging rxqual Received-Quality averaging OsmoBSC(config-net-bts)# handover2 window rxlev ? averaging How many RxLev measurements to use for averaging neighbor How many Neighbor RxLev measurements to use for averaging OsmoBSC(config-net-bts)# handover2 window rxlev averaging ? <1-10> RxLev averaging: Number of values to average over default Use default (10), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 window rxlev neighbor ? averaging How many Neighbor RxLev measurements to use for averaging OsmoBSC(config-net-bts)# handover2 window rxlev neighbor averaging ? <1-10> Neighbor RxLev averaging: Number of values to average over default Use default (10), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 window rxqual ? averaging How many RxQual measurements to use for averaging OsmoBSC(config-net-bts)# handover2 window rxqual averaging ? <1-10> RxQual averaging: Number of values to average over default Use default (1), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 power ? budget Neighbor cell power triggering OsmoBSC(config-net-bts)# handover2 power budget ? interval How often to check for a better cell (SACCH frames) hysteresis How many dB stronger must a neighbor be to become a HO candidate OsmoBSC(config-net-bts)# handover2 power budget interval ? <1-99> Check for stronger neighbor every N number of SACCH frames default Use default (6), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 power budget hysteresis ? <0-999> Neighbor's strength difference in dB default Use default (3), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 maximum ? distance Maximum Timing-Advance value (i.e. MS distance) before triggering HO OsmoBSC(config-net-bts)# handover2 maximum distance ? <0-9999> Maximum Timing-Advance value (i.e. MS distance) before triggering HO default Use default (9999), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 assignment ? 0 Disable in-call assignment 1 Enable in-call assignment default Use default (0), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 tdma-measurement ? full Full set of 102/104 TDMA frames subset Sub set of 4 TDMA frames (SACCH) default Use default (subset), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 min ? rxlev How weak may RxLev of an MS become before triggering HO rxqual How bad may RxQual of an MS become before triggering HO, where 0 is the best quality (bit error rate < 0.2%) and 7 is the worst quality (bit error rate > 12.8%), see 3GPP TS 45.008 8.2.4. OsmoBSC(config-net-bts)# handover2 min rxlev ? <-110--50> minimum RxLev (dBm; note: negative values) default Use default (-100), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 min rxqual ? <0-7> worst acceptable RxQual default Use default (5), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 afs-bias ? rxlev RxLev improvement bias for AFS over other codecs rxqual RxQual improvement bias for AFS over other codecs OsmoBSC(config-net-bts)# handover2 afs-bias rxlev ? <0-20> Virtual RxLev improvement (dB) default Use default (0), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 afs-bias rxqual ? <0-7> Virtual RxQual improvement default Use default (0), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 min-free-slots ? tch/f Minimum free TCH/F timeslots before cell is considered congested tch/h Minimum free TCH/H timeslots before cell is considered congested OsmoBSC(config-net-bts)# handover2 min-free-slots tch/f ? <0-9999> Number of TCH/F slots default Use default (0), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 min-free-slots TCH/F ? % There is no matched command. OsmoBSC(config-net-bts)# handover2 min-free-slots tch/h ? <0-9999> Number of TCH/H slots default Use default (0), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 max-handovers ? <1-9999> Number default Use default (9999), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 penalty-time ? max-distance Time to suspend handover for a subscriber after leaving this cell due to exceeding max distance; see also 'handover2 retries' failed-ho Time to suspend handover for a subscriber after a failed handover into this cell; see also 'handover2 retries' failed-assignment Time to suspend handover for a subscriber after a failed re-assignment within this cell; see also 'handover2 retries' OsmoBSC(config-net-bts)# handover2 penalty-time max-distance ? <0-99999> Seconds default Use default (300), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 penalty-time failed-ho ? <0-99999> Seconds default Use default (60), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 penalty-time failed-assignment ? <0-99999> Seconds default Use default (60), remove explicit setting on this node OsmoBSC(config-net-bts)# handover2 retries ? <0-9> Number of retries default Use default (0), remove explicit setting on this node