aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-02-05 09:06:49 +0100
committerHarald Welte <laforge@gnumonks.org>2013-03-11 11:47:41 +0100
commit294fd1b650e4482775fdd604288fc928e66ef81c (patch)
tree506a480f0f000d7cea082e104d39cc5873164a5c /include
parent19f212951af720bc5ad415d8347838f3ac222442 (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.h1
-rw-r--r--include/osmo-bts/rsl.h1
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 */