
// autogenerated by show asciidoc counters
These counters and their description based on OsmoBSC 1.4.0.84-3f1f8 (OsmoBSC).

=== Rate Counters

// generating tables for rate_ctr_group
// rate_ctr_group table base transceiver station
.bts - base transceiver station
[options="header"]
|===
| Name | Reference | Description
| chreq:total | <<bts_chreq:total>> | Received channel requests.
| chreq:no_channel | <<bts_chreq:no_channel>> | Sent to MS no channel available.
| chan:rf_fail | <<bts_chan:rf_fail>> | Received a RF failure indication from BTS.
| chan:rll_err | <<bts_chan:rll_err>> | Received a RLL failure with T200 cause from BTS.
| oml_fail | <<bts_oml_fail>> | Received a TEI down on a OML link.
| rsl_fail | <<bts_rsl_fail>> | Received a TEI down on a OML link.
| codec:amr_f | <<bts_codec:amr_f>> | Count the usage of AMR/F codec by channel mode requested.
| codec:amr_h | <<bts_codec:amr_h>> | Count the usage of AMR/H codec by channel mode requested.
| codec:efr | <<bts_codec:efr>> | Count the usage of EFR codec by channel mode requested.
| codec:fr | <<bts_codec:fr>> | Count the usage of FR codec by channel mode requested.
| codec:hr | <<bts_codec:hr>> | Count the usage of HR codec by channel mode requested.
| paging:attempted | <<bts_paging:attempted>> | Paging attempts for a subscriber.
| paging:already | <<bts_paging:already>> | Paging attempts ignored as subscriber was already being paged.
| paging:responded | <<bts_paging:responded>> | Paging attempts with successful paging response.
| paging:expired | <<bts_paging:expired>> | Paging Request expired because of timeout T3113.
| chan_act:total | <<bts_chan_act:total>> | Total number of Channel Activations.
| chan_act:nack | <<bts_chan_act:nack>> | Number of Channel Activations that the BTS NACKed
| rsl:unknown | <<bts_rsl:unknown>> | Number of unknown/unsupported RSL messages received from BTS
| rsl:ipa_nack | <<bts_rsl:ipa_nack>> | Number of IPA (RTP/dyn-PDCH) related NACKs received from BTS
| chan:mode_modify_nack | <<bts_chan:mode_modify_nack>> | Number of Channel Mode Modify NACKs received from BTS
|===
// rate_ctr_group table base transceiver station
.bts - base transceiver station
[options="header"]
|===
| Name | Reference | Description
| chreq:total | <<bts_chreq:total>> | Received channel requests.
| chreq:no_channel | <<bts_chreq:no_channel>> | Sent to MS no channel available.
| chan:rf_fail | <<bts_chan:rf_fail>> | Received a RF failure indication from BTS.
| chan:rll_err | <<bts_chan:rll_err>> | Received a RLL failure with T200 cause from BTS.
| oml_fail | <<bts_oml_fail>> | Received a TEI down on a OML link.
| rsl_fail | <<bts_rsl_fail>> | Received a TEI down on a OML link.
| codec:amr_f | <<bts_codec:amr_f>> | Count the usage of AMR/F codec by channel mode requested.
| codec:amr_h | <<bts_codec:amr_h>> | Count the usage of AMR/H codec by channel mode requested.
| codec:efr | <<bts_codec:efr>> | Count the usage of EFR codec by channel mode requested.
| codec:fr | <<bts_codec:fr>> | Count the usage of FR codec by channel mode requested.
| codec:hr | <<bts_codec:hr>> | Count the usage of HR codec by channel mode requested.
| paging:attempted | <<bts_paging:attempted>> | Paging attempts for a subscriber.
| paging:already | <<bts_paging:already>> | Paging attempts ignored as subscriber was already being paged.
| paging:responded | <<bts_paging:responded>> | Paging attempts with successful paging response.
| paging:expired | <<bts_paging:expired>> | Paging Request expired because of timeout T3113.
| chan_act:total | <<bts_chan_act:total>> | Total number of Channel Activations.
| chan_act:nack | <<bts_chan_act:nack>> | Number of Channel Activations that the BTS NACKed
| rsl:unknown | <<bts_rsl:unknown>> | Number of unknown/unsupported RSL messages received from BTS
| rsl:ipa_nack | <<bts_rsl:ipa_nack>> | Number of IPA (RTP/dyn-PDCH) related NACKs received from BTS
| chan:mode_modify_nack | <<bts_chan:mode_modify_nack>> | Number of Channel Mode Modify NACKs received from BTS
|===
// rate_ctr_group table base transceiver station
.bts - base transceiver station
[options="header"]
|===
| Name | Reference | Description
| chreq:total | <<bts_chreq:total>> | Received channel requests.
| chreq:no_channel | <<bts_chreq:no_channel>> | Sent to MS no channel available.
| chan:rf_fail | <<bts_chan:rf_fail>> | Received a RF failure indication from BTS.
| chan:rll_err | <<bts_chan:rll_err>> | Received a RLL failure with T200 cause from BTS.
| oml_fail | <<bts_oml_fail>> | Received a TEI down on a OML link.
| rsl_fail | <<bts_rsl_fail>> | Received a TEI down on a OML link.
| codec:amr_f | <<bts_codec:amr_f>> | Count the usage of AMR/F codec by channel mode requested.
| codec:amr_h | <<bts_codec:amr_h>> | Count the usage of AMR/H codec by channel mode requested.
| codec:efr | <<bts_codec:efr>> | Count the usage of EFR codec by channel mode requested.
| codec:fr | <<bts_codec:fr>> | Count the usage of FR codec by channel mode requested.
| codec:hr | <<bts_codec:hr>> | Count the usage of HR codec by channel mode requested.
| paging:attempted | <<bts_paging:attempted>> | Paging attempts for a subscriber.
| paging:already | <<bts_paging:already>> | Paging attempts ignored as subscriber was already being paged.
| paging:responded | <<bts_paging:responded>> | Paging attempts with successful paging response.
| paging:expired | <<bts_paging:expired>> | Paging Request expired because of timeout T3113.
| chan_act:total | <<bts_chan_act:total>> | Total number of Channel Activations.
| chan_act:nack | <<bts_chan_act:nack>> | Number of Channel Activations that the BTS NACKed
| rsl:unknown | <<bts_rsl:unknown>> | Number of unknown/unsupported RSL messages received from BTS
| rsl:ipa_nack | <<bts_rsl:ipa_nack>> | Number of IPA (RTP/dyn-PDCH) related NACKs received from BTS
| chan:mode_modify_nack | <<bts_chan:mode_modify_nack>> | Number of Channel Mode Modify NACKs received from BTS
|===
// rate_ctr_group table E1 Input subsystem
.e1inp - E1 Input subsystem 
[options="header"]
|===
| Name | Reference | Description
| hdlc:abort | <<e1inp_hdlc:abort>> | HDLC abort
| hdlc:bad_fcs | <<e1inp_hdlc:bad_fcs>> | HLDC Bad FCS
| hdlc:overrun | <<e1inp_hdlc:overrun>> | HDLC Overrun
| alarm | <<e1inp_alarm>> | Alarm
| removed | <<e1inp_removed>> | Line removed
|===
// rate_ctr_group table base station controller
.bsc - base station controller 
[options="header"]
|===
| Name | Reference | Description
| assignment:attempted | <<bsc_assignment:attempted>> | Assignment attempts.
| assignment:completed | <<bsc_assignment:completed>> | Assignment completed.
| assignment:stopped | <<bsc_assignment:stopped>> | Connection ended during Assignment.
| assignment:no_channel | <<bsc_assignment:no_channel>> | Failure to allocate lchan for Assignment.
| assignment:timeout | <<bsc_assignment:timeout>> | Assignment timed out.
| assignment:failed | <<bsc_assignment:failed>> | Received Assignment Failure message.
| assignment:error | <<bsc_assignment:error>> | Assignment failed for other reason.
| handover:attempted | <<bsc_handover:attempted>> | Intra-BSC handover attempts.
| handover:completed | <<bsc_handover:completed>> | Intra-BSC handover completed.
| handover:stopped | <<bsc_handover:stopped>> | Connection ended during HO.
| handover:no_channel | <<bsc_handover:no_channel>> | Failure to allocate lchan for HO.
| handover:timeout | <<bsc_handover:timeout>> | Handover timed out.
| handover:failed | <<bsc_handover:failed>> | Received Handover Fail messages.
| handover:error | <<bsc_handover:error>> | Re-assignment failed for other reason.
| interbsc_ho_out:attempted | <<bsc_interbsc_ho_out:attempted>> | Attempts to handover to remote BSS.
| interbsc_ho_out:completed | <<bsc_interbsc_ho_out:completed>> | Handover to remote BSS completed.
| interbsc_ho_out:stopped | <<bsc_interbsc_ho_out:stopped>> | Connection ended during HO.
| interbsc_ho_out:timeout | <<bsc_interbsc_ho_out:timeout>> | Handover timed out.
| interbsc_ho_out:error | <<bsc_interbsc_ho_out:error>> | Handover to remote BSS failed for other reason.
| interbsc_ho_in:attempted | <<bsc_interbsc_ho_in:attempted>> | Attempts to handover from remote BSS.
| interbsc_ho_in:completed | <<bsc_interbsc_ho_in:completed>> | Handover from remote BSS completed.
| interbsc_ho_in:stopped | <<bsc_interbsc_ho_in:stopped>> | Connection ended during HO.
| interbsc_ho_in:no_channel | <<bsc_interbsc_ho_in:no_channel>> | Failure to allocate lchan for HO.
| interbsc_ho_in:failed | <<bsc_interbsc_ho_in:failed>> | Received Handover Fail message.
| interbsc_ho_in:timeout | <<bsc_interbsc_ho_in:timeout>> | Handover from remote BSS timed out.
| interbsc_ho_in:error | <<bsc_interbsc_ho_in:error>> | Handover from remote BSS failed for other reason.
| paging:attempted | <<bsc_paging:attempted>> | Paging attempts for a subscriber.
| paging:detached | <<bsc_paging:detached>> | Paging request send failures because no responsible BTS was found.
| paging:responded | <<bsc_paging:responded>> | Paging attempts with successful response.
| abis:unknown_unit_id | <<bsc_abis:unknown_unit_id>> | Connection attempts from unknown IPA CCM Unit ID.
|===
== Osmo Stat Items

// generating tables for osmo_stat_items
base transceiver station
// osmo_stat_item_group table base transceiver station
.bts - base transceiver station
[options="header"]
|===
| Name | Reference | Description | Unit
| chanloadavg | <<bts_chanloadavg>> | Channel load average. | %
| T3122 | <<bts_T3122>> | T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator. | s
| rach_busy | <<bts_rach_busy>> | RACH slots with signal above threshold | %
| rach_access | <<bts_rach_access>> | RACH slots with access bursts in them | %
|===
base transceiver station
// osmo_stat_item_group table base transceiver station
.bts - base transceiver station
[options="header"]
|===
| Name | Reference | Description | Unit
| chanloadavg | <<bts_chanloadavg>> | Channel load average. | %
| T3122 | <<bts_T3122>> | T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator. | s
| rach_busy | <<bts_rach_busy>> | RACH slots with signal above threshold | %
| rach_access | <<bts_rach_access>> | RACH slots with access bursts in them | %
|===
base transceiver station
// osmo_stat_item_group table base transceiver station
.bts - base transceiver station
[options="header"]
|===
| Name | Reference | Description | Unit
| chanloadavg | <<bts_chanloadavg>> | Channel load average. | %
| T3122 | <<bts_T3122>> | T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator. | s
| rach_busy | <<bts_rach_busy>> | RACH slots with signal above threshold | %
| rach_access | <<bts_rach_access>> | RACH slots with access bursts in them | %
|===
== Osmo Counters

// generating tables for osmo_counters
// there are no ungrouped osmo_counters
