call_leg: remove unused event MSC_EV_CALL_LEG_RTP_RELEASED
The event is actually never dispatched and useless, because when an RTP stream releases, the call_leg terminates directly anyway (which wasn't apparent when starting to design the call_leg FSM yet). Change-Id: I6b2fc1225c960fa2f7c46adf241520217a07821c
This commit is contained in:
parent
c0847d641c
commit
265a4c7489
|
@ -36,7 +36,6 @@ struct call_leg {
|
|||
|
||||
uint32_t parent_event_rtp_addr_available;
|
||||
uint32_t parent_event_rtp_complete;
|
||||
uint32_t parent_event_rtp_released;
|
||||
|
||||
/* For internal MNCC, if RTP addresses for endpoints become assigned by the MGW, implicitly notify the other
|
||||
* call leg's RTP_TO_CN side rtp_stream with rtp_stream_remote_addr_available(). */
|
||||
|
@ -58,15 +57,13 @@ void call_leg_init(struct gsm_network *net);
|
|||
struct call_leg *call_leg_alloc(struct osmo_fsm_inst *parent_fi,
|
||||
uint32_t parent_event_term,
|
||||
uint32_t parent_event_rtp_addr_available,
|
||||
uint32_t parent_event_rtp_complete,
|
||||
uint32_t parent_event_rtp_released);
|
||||
uint32_t parent_event_rtp_complete);
|
||||
|
||||
void call_leg_reparent(struct call_leg *cl,
|
||||
struct osmo_fsm_inst *parent_fi,
|
||||
uint32_t parent_event_term,
|
||||
uint32_t parent_event_rtp_addr_available,
|
||||
uint32_t parent_event_rtp_complete,
|
||||
uint32_t parent_event_rtp_released);
|
||||
uint32_t parent_event_rtp_complete);
|
||||
|
||||
int call_leg_local_bridge(struct call_leg *cl1, uint32_t call_id1, struct gsm_trans *trans1,
|
||||
struct call_leg *cl2, uint32_t call_id2, struct gsm_trans *trans2);
|
||||
|
|
|
@ -148,7 +148,6 @@ enum msc_common_events {
|
|||
|
||||
MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE,
|
||||
MSC_EV_CALL_LEG_RTP_COMPLETE,
|
||||
MSC_EV_CALL_LEG_RTP_RELEASED,
|
||||
MSC_EV_CALL_LEG_TERM,
|
||||
|
||||
/* MNCC has told us to RTP_CREATE, but local RTP port has not yet been set up.
|
||||
|
|
|
@ -67,8 +67,7 @@ void call_leg_init(struct gsm_network *net)
|
|||
struct call_leg *call_leg_alloc(struct osmo_fsm_inst *parent_fi,
|
||||
uint32_t parent_event_term,
|
||||
uint32_t parent_event_rtp_addr_available,
|
||||
uint32_t parent_event_rtp_complete,
|
||||
uint32_t parent_event_rtp_released)
|
||||
uint32_t parent_event_rtp_complete)
|
||||
{
|
||||
struct call_leg *cl;
|
||||
struct osmo_fsm_inst *fi = osmo_fsm_inst_alloc_child(&call_leg_fsm, parent_fi, parent_event_term);
|
||||
|
@ -82,7 +81,6 @@ struct call_leg *call_leg_alloc(struct osmo_fsm_inst *parent_fi,
|
|||
.fi = fi,
|
||||
.parent_event_rtp_addr_available = parent_event_rtp_addr_available,
|
||||
.parent_event_rtp_complete = parent_event_rtp_complete,
|
||||
.parent_event_rtp_released = parent_event_rtp_released,
|
||||
};
|
||||
|
||||
return cl;
|
||||
|
@ -92,8 +90,7 @@ void call_leg_reparent(struct call_leg *cl,
|
|||
struct osmo_fsm_inst *new_parent_fi,
|
||||
uint32_t parent_event_term,
|
||||
uint32_t parent_event_rtp_addr_available,
|
||||
uint32_t parent_event_rtp_complete,
|
||||
uint32_t parent_event_rtp_released)
|
||||
uint32_t parent_event_rtp_complete)
|
||||
{
|
||||
LOG_CALL_LEG(cl, LOGL_DEBUG, "Reparenting from parent %s to parent %s\n",
|
||||
cl->fi->proc.parent->name, new_parent_fi->name);
|
||||
|
@ -101,7 +98,6 @@ void call_leg_reparent(struct call_leg *cl,
|
|||
talloc_steal(new_parent_fi, cl->fi);
|
||||
cl->parent_event_rtp_addr_available = parent_event_rtp_addr_available;
|
||||
cl->parent_event_rtp_complete = parent_event_rtp_complete;
|
||||
cl->parent_event_rtp_released = parent_event_rtp_released;
|
||||
}
|
||||
|
||||
static int call_leg_fsm_timer_cb(struct osmo_fsm_inst *fi)
|
||||
|
|
|
@ -546,28 +546,15 @@ static struct gsm_trans *find_waiting_call(struct msc_a *msc_a)
|
|||
|
||||
static void msc_a_cleanup_rtp_streams(struct msc_a *msc_a, uint32_t event, void *data)
|
||||
{
|
||||
struct rtp_stream *rtps;
|
||||
|
||||
switch (event) {
|
||||
case MSC_EV_CALL_LEG_RTP_RELEASED:
|
||||
rtps = data;
|
||||
if (msc_a->cc.mncc_forwarding_to_remote_ran
|
||||
&& msc_a->cc.mncc_forwarding_to_remote_ran->rtps == rtps)
|
||||
msc_a->cc.mncc_forwarding_to_remote_ran->rtps = NULL;
|
||||
if (msc_a->ho.new_cell.mncc_forwarding_to_remote_ran
|
||||
&& msc_a->ho.new_cell.mncc_forwarding_to_remote_ran->rtps == rtps)
|
||||
msc_a->ho.new_cell.mncc_forwarding_to_remote_ran->rtps = NULL;
|
||||
return;
|
||||
|
||||
case MSC_EV_CALL_LEG_TERM:
|
||||
msc_a->cc.call_leg = NULL;
|
||||
if (msc_a->cc.mncc_forwarding_to_remote_ran)
|
||||
msc_a->cc.mncc_forwarding_to_remote_ran->rtps = NULL;
|
||||
|
||||
if (msc_a->ho.new_cell.mncc_forwarding_to_remote_ran) {
|
||||
fprintf(stderr, "FOCKEN %p\n", msc_a->ho.new_cell.mncc_forwarding_to_remote_ran->rtps);
|
||||
if (msc_a->ho.new_cell.mncc_forwarding_to_remote_ran)
|
||||
msc_a->ho.new_cell.mncc_forwarding_to_remote_ran->rtps = NULL;
|
||||
}
|
||||
return;
|
||||
|
||||
case MSC_MNCC_EV_CALL_ENDED:
|
||||
|
@ -633,7 +620,6 @@ static void msc_a_fsm_communicating(struct osmo_fsm_inst *fi, uint32_t event, vo
|
|||
/* Nothing to do. */
|
||||
return;
|
||||
|
||||
case MSC_EV_CALL_LEG_RTP_RELEASED:
|
||||
case MSC_MNCC_EV_CALL_ENDED:
|
||||
/* Cleaned up above */
|
||||
return;
|
||||
|
@ -765,7 +751,6 @@ static void msc_a_fsm_releasing(struct osmo_fsm_inst *fi, uint32_t event, void *
|
|||
/* Already releasing */
|
||||
return;
|
||||
|
||||
case MSC_EV_CALL_LEG_RTP_RELEASED:
|
||||
case MSC_EV_CALL_LEG_TERM:
|
||||
case MSC_MNCC_EV_CALL_ENDED:
|
||||
/* RTP streams cleaned up above */
|
||||
|
@ -819,7 +804,6 @@ const struct value_string msc_a_fsm_event_names[] = {
|
|||
OSMO_VALUE_STRING(MSC_REMOTE_EV_RX_GSUP),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_RTP_COMPLETE),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_RTP_RELEASED),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_TERM),
|
||||
OSMO_VALUE_STRING(MSC_MNCC_EV_NEED_LOCAL_RTP),
|
||||
OSMO_VALUE_STRING(MSC_MNCC_EV_CALL_PROCEEDING),
|
||||
|
@ -934,7 +918,6 @@ static const struct osmo_fsm_state msc_a_fsm_states[] = {
|
|||
| S(MSC_A_EV_UNUSED)
|
||||
| S(MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE)
|
||||
| S(MSC_EV_CALL_LEG_RTP_COMPLETE)
|
||||
| S(MSC_EV_CALL_LEG_RTP_RELEASED)
|
||||
| S(MSC_EV_CALL_LEG_TERM)
|
||||
| S(MSC_MNCC_EV_CALL_ENDED)
|
||||
| S(MSC_A_EV_HANDOVER_REQUIRED)
|
||||
|
@ -950,7 +933,6 @@ static const struct osmo_fsm_state msc_a_fsm_states[] = {
|
|||
| S(MSC_A_EV_FROM_I_PROCESS_ACCESS_SIGNALLING_REQUEST)
|
||||
| S(MSC_A_EV_FROM_I_SEND_END_SIGNAL_REQUEST)
|
||||
| S(MSC_A_EV_UNUSED)
|
||||
| S(MSC_EV_CALL_LEG_RTP_RELEASED)
|
||||
| S(MSC_EV_CALL_LEG_TERM)
|
||||
| S(MSC_MNCC_EV_CALL_ENDED)
|
||||
,
|
||||
|
@ -1590,8 +1572,7 @@ static int msc_a_start_assignment(struct msc_a *msc_a, struct gsm_trans *cc_tran
|
|||
cl = msc_a->cc.call_leg = call_leg_alloc(msc_a->c.fi,
|
||||
MSC_EV_CALL_LEG_TERM,
|
||||
MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE,
|
||||
MSC_EV_CALL_LEG_RTP_COMPLETE,
|
||||
MSC_EV_CALL_LEG_RTP_RELEASED);
|
||||
MSC_EV_CALL_LEG_RTP_COMPLETE);
|
||||
OSMO_ASSERT(cl);
|
||||
|
||||
/* HACK: We put the connection in loopback mode at the beginnig to
|
||||
|
|
|
@ -278,7 +278,6 @@ const struct value_string msc_i_fsm_event_names[] = {
|
|||
OSMO_VALUE_STRING(MSC_REMOTE_EV_RX_GSUP),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_RTP_COMPLETE),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_RTP_RELEASED),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_TERM),
|
||||
OSMO_VALUE_STRING(MSC_MNCC_EV_NEED_LOCAL_RTP),
|
||||
OSMO_VALUE_STRING(MSC_MNCC_EV_CALL_PROCEEDING),
|
||||
|
|
|
@ -359,8 +359,7 @@ void msc_t_fsm_wait_local_rtp_onenter(struct osmo_fsm_inst *fi, uint32_t prev_st
|
|||
msc_t->inter_msc.call_leg = call_leg_alloc(msc_t->c.fi,
|
||||
MSC_EV_CALL_LEG_TERM,
|
||||
MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE,
|
||||
MSC_EV_CALL_LEG_RTP_COMPLETE,
|
||||
MSC_EV_CALL_LEG_RTP_RELEASED);
|
||||
MSC_EV_CALL_LEG_RTP_COMPLETE);
|
||||
if (!msc_t->inter_msc.call_leg
|
||||
|| call_leg_ensure_ci(msc_t->inter_msc.call_leg, RTP_TO_RAN, msc_t->inter_msc.callref, NULL, NULL, NULL)
|
||||
|| call_leg_ensure_ci(msc_t->inter_msc.call_leg, RTP_TO_CN, msc_t->inter_msc.callref, NULL, NULL, NULL)) {
|
||||
|
@ -391,7 +390,6 @@ void msc_t_fsm_wait_local_rtp(struct osmo_fsm_inst *fi, uint32_t event, void *da
|
|||
msc_t_send_stored_ho_request(msc_t);
|
||||
return;
|
||||
|
||||
case MSC_EV_CALL_LEG_RTP_RELEASED:
|
||||
case MSC_EV_CALL_LEG_TERM:
|
||||
msc_t->inter_msc.call_leg = NULL;
|
||||
msc_t_error("Failed to set up MGW endpoint\n");
|
||||
|
@ -550,7 +548,6 @@ static void msc_t_fsm_wait_ho_request_ack(struct osmo_fsm_inst *fi, uint32_t eve
|
|||
msc_t_down_l2_co(msc_t, an_apdu, false);
|
||||
return;
|
||||
|
||||
case MSC_EV_CALL_LEG_RTP_RELEASED:
|
||||
case MSC_EV_CALL_LEG_TERM:
|
||||
msc_t->inter_msc.call_leg = NULL;
|
||||
msc_t_error("Failed to set up MGW endpoint\n");
|
||||
|
@ -609,8 +606,7 @@ static int msc_t_wait_ho_complete_decode_cb(struct osmo_fsm_inst *msc_t_fi, void
|
|||
msc_i->c.fi,
|
||||
MSC_EV_CALL_LEG_TERM,
|
||||
MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE,
|
||||
MSC_EV_CALL_LEG_RTP_COMPLETE,
|
||||
MSC_EV_CALL_LEG_RTP_RELEASED);
|
||||
MSC_EV_CALL_LEG_RTP_COMPLETE);
|
||||
|
||||
/* msc_i_set_ran_conn() properly "steals" the ran_conn from msc_t */
|
||||
msc_i_set_ran_conn(msc_i, msc_t->ran_conn);
|
||||
|
@ -657,7 +653,6 @@ static void msc_t_fsm_wait_ho_complete(struct osmo_fsm_inst *fi, uint32_t event,
|
|||
msc_t_down_l2_co(msc_t, an_apdu, false);
|
||||
return;
|
||||
|
||||
case MSC_EV_CALL_LEG_RTP_RELEASED:
|
||||
case MSC_EV_CALL_LEG_TERM:
|
||||
msc_t->inter_msc.call_leg = NULL;
|
||||
msc_t_error("Failed to set up MGW endpoint\n");
|
||||
|
@ -795,7 +790,6 @@ static const struct osmo_fsm_state msc_t_fsm_states[] = {
|
|||
.action = msc_t_fsm_wait_local_rtp,
|
||||
.in_event_mask = 0
|
||||
| S(MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE)
|
||||
| S(MSC_EV_CALL_LEG_RTP_RELEASED)
|
||||
| S(MSC_EV_CALL_LEG_TERM)
|
||||
| S(MSC_MNCC_EV_CALL_ENDED)
|
||||
| S(MSC_T_EV_CN_CLOSE)
|
||||
|
@ -810,7 +804,6 @@ static const struct osmo_fsm_state msc_t_fsm_states[] = {
|
|||
.in_event_mask = 0
|
||||
| S(MSC_EV_FROM_RAN_UP_L2)
|
||||
| S(MSC_EV_FROM_RAN_CONN_RELEASED)
|
||||
| S(MSC_EV_CALL_LEG_RTP_RELEASED)
|
||||
| S(MSC_EV_CALL_LEG_TERM)
|
||||
| S(MSC_MNCC_EV_CALL_ENDED)
|
||||
| S(MSC_T_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST)
|
||||
|
@ -827,7 +820,6 @@ static const struct osmo_fsm_state msc_t_fsm_states[] = {
|
|||
.in_event_mask = 0
|
||||
| S(MSC_EV_FROM_RAN_UP_L2)
|
||||
| S(MSC_EV_FROM_RAN_CONN_RELEASED)
|
||||
| S(MSC_EV_CALL_LEG_RTP_RELEASED)
|
||||
| S(MSC_EV_CALL_LEG_TERM)
|
||||
| S(MSC_MNCC_EV_CALL_ENDED)
|
||||
| S(MSC_T_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST)
|
||||
|
@ -841,7 +833,6 @@ const struct value_string msc_t_fsm_event_names[] = {
|
|||
OSMO_VALUE_STRING(MSC_REMOTE_EV_RX_GSUP),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_RTP_COMPLETE),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_RTP_RELEASED),
|
||||
OSMO_VALUE_STRING(MSC_EV_CALL_LEG_TERM),
|
||||
OSMO_VALUE_STRING(MSC_MNCC_EV_NEED_LOCAL_RTP),
|
||||
OSMO_VALUE_STRING(MSC_MNCC_EV_CALL_PROCEEDING),
|
||||
|
|
Loading…
Reference in New Issue