diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2013-02-05 09:06:49 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2013-03-11 11:47:41 +0100 |
commit | 294fd1b650e4482775fdd604288fc928e66ef81c (patch) | |
tree | 506a480f0f000d7cea082e104d39cc5873164a5c /include | |
parent | 19f212951af720bc5ad415d8347838f3ac222442 (diff) |
Added radio link timeout procedure according to TS 05.08 Chapter 5.2
Chapter 5.2 applies to MS procedure, but 5.3 (BSS procedure) defines no
exact criterion, so I decided to use the procedure equivalent to MS.
The criterion is based on a counter S, which is initialized to a preset
RADIO_LINK_TIMEOUT, which can be configured via VTY. Whenever a received
SACCH block is bad, S is counted down by one. If SACCH block is
successfully decoded, S is counted up by two, but never above initial
RADIO_LINK_TIMEOUT value. If S reaches 0, an RSL Connection Failure
Indication with cause RF Radio Link Failure is sent to BSC, which then
aborts channel.
Use link timeout value from BSC via OML attribute.
How to test:
- Set "debug" for "meas" logging.
- Start silent call to an attached mobile.
- Remove battery from mobile or shield mobile.
- Watch S count down.
Diffstat (limited to 'include')
-rw-r--r-- | include/osmo-bts/gsm_data.h | 1 | ||||
-rw-r--r-- | include/osmo-bts/rsl.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 267aa52b..bf2d172c 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -58,6 +58,7 @@ struct gsm_bts_role_bts { struct { uint8_t tc4_ctr; } si; + uint8_t radio_link_timeout; }; enum lchan_ciph_state { diff --git a/include/osmo-bts/rsl.h b/include/osmo-bts/rsl.h index c8daff32..251cd23d 100644 --- a/include/osmo-bts/rsl.h +++ b/include/osmo-bts/rsl.h @@ -9,6 +9,7 @@ int rsl_tx_est_ind(struct gsm_lchan *lchan, uint8_t link_id, uint8_t *data, int int rsl_tx_chan_act_ack(struct gsm_lchan *lchan, struct gsm_time *gtime); int rsl_tx_chan_act_nack(struct gsm_lchan *lchan, uint8_t cause); +int rsl_tx_conn_fail(struct gsm_lchan *lchan, uint8_t cause); int rsl_tx_rf_rel_ack(struct gsm_lchan *lchan); /* call-back for LAPDm code, called when it wants to send msgs UP */ |