diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-11-06 22:24:07 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2018-11-14 16:16:30 +0000 |
commit | 5b1a7d1e9b8b21b4d4fa74cb5e7ffea14fa5fdb2 (patch) | |
tree | ec73d9f7fd59ad594573e9def7e8a7b5c7687bcf /include/osmocom/bsc | |
parent | d30922f7a384947f6766523180cad7b108c9d751 (diff) |
lchan release: always Deact SACCH
If an lchan is being released and had a SACCH active, there is no reason to
omit the Deact SACCH message ever. All of the callers that passed
do_deact_sacch = false did so for no good reason.
Drop the do_deact_sacch flag everywhere and, when the lchan type matches and
SAPI[0] is still active, simply always send a Deact SACCH message.
The do_deact_sacch flag was carried over from legacy code, by me, mainly
because I never really understood why it was there. I do hope I'm correct now,
asserting that having this flag makes no sense.
Change-Id: Id3301df059582da2377ef82feae554e94fa42035
Diffstat (limited to 'include/osmocom/bsc')
-rw-r--r-- | include/osmocom/bsc/bsc_subscr_conn_fsm.h | 2 | ||||
-rw-r--r-- | include/osmocom/bsc/gsm_data.h | 1 | ||||
-rw-r--r-- | include/osmocom/bsc/lchan_fsm.h | 2 |
3 files changed, 2 insertions, 3 deletions
diff --git a/include/osmocom/bsc/bsc_subscr_conn_fsm.h b/include/osmocom/bsc/bsc_subscr_conn_fsm.h index fcdba503c..f5ed7bdd8 100644 --- a/include/osmocom/bsc/bsc_subscr_conn_fsm.h +++ b/include/osmocom/bsc/bsc_subscr_conn_fsm.h @@ -71,7 +71,7 @@ void gscon_start_assignment(struct gsm_subscriber_connection *conn, struct assignment_request *req); void gscon_change_primary_lchan(struct gsm_subscriber_connection *conn, struct gsm_lchan *new_lchan); -void gscon_release_lchans(struct gsm_subscriber_connection *conn, bool do_sacch_deact, bool do_rr_release); +void gscon_release_lchans(struct gsm_subscriber_connection *conn, bool do_rr_release); void gscon_lchan_releasing(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); void gscon_forget_lchan(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 5805a5f0c..3712b9778 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -513,7 +513,6 @@ struct gsm_lchan { /* If an event to release the lchan comes in while still waiting for responses, just mark this * flag, so that the lchan will gracefully release at the next sensible junction. */ bool release_requested; - bool deact_sacch; bool do_rr_release; char *last_error; diff --git a/include/osmocom/bsc/lchan_fsm.h b/include/osmocom/bsc/lchan_fsm.h index d3315a65e..48cd3836a 100644 --- a/include/osmocom/bsc/lchan_fsm.h +++ b/include/osmocom/bsc/lchan_fsm.h @@ -49,7 +49,7 @@ enum lchan_fsm_event { void lchan_fsm_init(); void lchan_fsm_alloc(struct gsm_lchan *lchan); -void lchan_release(struct gsm_lchan *lchan, bool do_deact_sacch, bool do_rr_release, +void lchan_release(struct gsm_lchan *lchan, bool do_rr_release, bool err, enum gsm48_rr_cause cause_rr); struct lchan_activate_info { |