diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-07-12 21:23:26 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-07-28 12:18:23 +0200 |
commit | ac85b34476afc341af7e09e9eca368835cd9d68b (patch) | |
tree | 742a6682f64a132d400c440fb9835a2d044cd434 /include/osmocom/bsc/lchan_fsm.h | |
parent | dbb38d532b10797aa65bfd29aa5a31ce76e6b5ea (diff) |
lchan_fsm: split off lchan_rtp_fsm, establish RTP a bit earlier
Change-Id: Id7a4407d9b63be05ce63f5f2768b7d7e3d5c86fb
Diffstat (limited to 'include/osmocom/bsc/lchan_fsm.h')
-rw-r--r-- | include/osmocom/bsc/lchan_fsm.h | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/include/osmocom/bsc/lchan_fsm.h b/include/osmocom/bsc/lchan_fsm.h index 49701c1d0..35b88471e 100644 --- a/include/osmocom/bsc/lchan_fsm.h +++ b/include/osmocom/bsc/lchan_fsm.h @@ -16,13 +16,9 @@ enum lchan_fsm_state { LCHAN_ST_UNUSED, LCHAN_ST_WAIT_TS_READY, LCHAN_ST_WAIT_ACTIV_ACK, /*< After RSL Chan Act Ack, lchan is active but RTP not configured. */ - LCHAN_ST_WAIT_RLL_ESTABLISH, - LCHAN_ST_WAIT_MGW_ENDPOINT_AVAILABLE, - LCHAN_ST_WAIT_IPACC_CRCX_ACK, - LCHAN_ST_WAIT_IPACC_MDCX_ACK, - LCHAN_ST_WAIT_MGW_ENDPOINT_CONFIGURED, + LCHAN_ST_WAIT_RLL_RTP_ESTABLISH, LCHAN_ST_ESTABLISHED, /*< Active and RTP is fully configured. */ - LCHAN_ST_WAIT_SAPIS_RELEASED, + LCHAN_ST_WAIT_RLL_RTP_RELEASED, LCHAN_ST_WAIT_BEFORE_RF_RELEASE, LCHAN_ST_WAIT_RF_RELEASE_ACK, LCHAN_ST_WAIT_AFTER_ERROR, @@ -36,13 +32,9 @@ enum lchan_fsm_event { LCHAN_EV_RSL_CHAN_ACTIV_ACK, LCHAN_EV_RSL_CHAN_ACTIV_NACK, LCHAN_EV_RLL_ESTABLISH_IND, - LCHAN_EV_MGW_ENDPOINT_AVAILABLE, - LCHAN_EV_MGW_ENDPOINT_CONFIGURED, - LCHAN_EV_MGW_ENDPOINT_ERROR, - LCHAN_EV_IPACC_CRCX_ACK, - LCHAN_EV_IPACC_CRCX_NACK, - LCHAN_EV_IPACC_MDCX_ACK, - LCHAN_EV_IPACC_MDCX_NACK, + LCHAN_EV_RTP_READY, + LCHAN_EV_RTP_ERROR, + LCHAN_EV_RTP_RELEASED, LCHAN_EV_RLL_REL_IND, LCHAN_EV_RLL_REL_CONF, LCHAN_EV_RSL_RF_CHAN_REL_ACK, @@ -66,11 +58,13 @@ struct lchan_activate_info { * When a dyn TS was selected, the lchan->type has been set to the desired rate. */ enum gsm48_chan_mode chan_mode; bool requires_voice_stream; + bool wait_before_switching_rtp; uint16_t msc_assigned_cic; struct gsm_lchan *old_lchan; }; void lchan_activate(struct gsm_lchan *lchan, struct lchan_activate_info *info); +void lchan_ready_to_switch_rtp(struct gsm_lchan *lchan); static inline const char *lchan_state_name(struct gsm_lchan *lchan) { @@ -86,4 +80,5 @@ static inline bool lchan_state_is(struct gsm_lchan *lchan, uint32_t state) bool lchan_may_receive_data(struct gsm_lchan *lchan); void lchan_forget_conn(struct gsm_lchan *lchan); -void lchan_forget_mgw_endpoint(struct gsm_lchan *lchan); + +void lchan_set_last_error(struct gsm_lchan *lchan, const char *fmt, ...); |