aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2019-03-14 22:11:45 +0000
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2019-03-14 22:47:31 +0000
commit0848ff84b7655097a5aedae1b58cdcd2571c8af5 (patch)
tree206df5aed1f6628df4956fb13e7fbf80ba57ef03 /include/osmocom
parent85e2bc905130a1a18b914a40c526d3a9cfd17a7c (diff)
Revert "assignment_fsm: Properly support assigning signalling mode TCH/x"
This commit breaks voice channel assignment. It results in the Assignment Complete sent to the MSC for a voice lchan lacking AoIP Transport Layer Address, Speech Version and Speech Codec. Hence the MSC cannot complete the Assignment for a voice call. Let's revisit this patch, test thoroughly and re-merge later. This reverts commit 4d3a21269b25e7164a94fa8ce3ad67ff80904aee. Reason for revert: <INSERT REASONING HERE> Change-Id: I72aaa03539919e7e85b5b75b133326cec5e68bc9
Diffstat (limited to 'include/osmocom')
-rw-r--r--include/osmocom/bsc/gsm_data.h17
-rw-r--r--include/osmocom/bsc/lchan_select.h2
2 files changed, 8 insertions, 11 deletions
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index aff73de36..47ca5e839 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -98,15 +98,9 @@ enum subscr_sccp_state {
SUBSCR_SCCP_ST_CONNECTED
};
-enum channel_rate {
- CH_RATE_SDCCH,
- CH_RATE_HALF,
- CH_RATE_FULL,
-};
-
struct channel_mode_and_rate {
enum gsm48_chan_mode chan_mode;
- enum channel_rate chan_rate;
+ bool full_rate;
uint16_t s15_s0;
};
@@ -121,9 +115,12 @@ struct assignment_request {
char msc_rtp_addr[INET_ADDRSTRLEN];
uint16_t msc_rtp_port;
- /* Rate/codec setting in preference order (need at least 1 !) */
- int n_ch_mode_rate;
- struct channel_mode_and_rate ch_mode_rate[3];
+ /* Prefered rate/codec setting (mandatory) */
+ struct channel_mode_and_rate ch_mode_rate_pref;
+
+ /* Alternate rate/codec setting (optional) */
+ bool ch_mode_rate_alt_present;
+ struct channel_mode_and_rate ch_mode_rate_alt;
};
/* State of an ongoing Assignment, while the assignment_fsm is still busy. This serves as state separation to keep the
diff --git a/include/osmocom/bsc/lchan_select.h b/include/osmocom/bsc/lchan_select.h
index 865181bf5..4aecdf676 100644
--- a/include/osmocom/bsc/lchan_select.h
+++ b/include/osmocom/bsc/lchan_select.h
@@ -3,4 +3,4 @@
struct gsm_lchan *lchan_select_by_type(struct gsm_bts *bts, enum gsm_chan_t type);
struct gsm_lchan *lchan_select_by_chan_mode(struct gsm_bts *bts,
- enum gsm48_chan_mode chan_mode, enum channel_rate chan_rate);
+ enum gsm48_chan_mode chan_mode, bool full_rate);