From c121bb3188445dfc23a6daef3444031f447395bb Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 26 Dec 2012 10:17:42 +0100 Subject: handover: Fix the handover signalling for IP based BTSes This was reported by Kevin when he was testing handover. The problem is the order of the signal handlers for S_ABISIP_CRCX_ACK. Right now the handover signal handler is called before the one inside the libmsc gsm_04_08.c. This means S_HANDOVER_ACK is signalled _before_ there is a rtp socket created for the channel. The result is that the MDCX will never be sent and the called will not be properly switched _after_ the handover detection. I do not want to play with the order of signal handlers, remove the CRCX ack handling from the handover_logic.c and force the NITB (and later the BSC) to check if the lchan is involved with a handover and do the switching in there. This means right now we do what two signal handlers did in one. Reproduced and tested with the FakeBTS Handover test. Log message: <0004> abis_rsl.c:1954 (bts=1,trx=0,ts=3,ss=0) IPAC_CRCX_ACK ... <000c> gsm_04_08.c:1400 no RTP socket for new_lchan <001a> rtp_proxy.c:533 rtp_socket_create(): success <001a> rtp_proxy.c:615 rtp_socket_bind(rs=0x48703c8, IP=0.0.0.0): ... --- openbsc/include/openbsc/signal.h | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'openbsc/include/openbsc/signal.h') diff --git a/openbsc/include/openbsc/signal.h b/openbsc/include/openbsc/signal.h index 598d470f5..fd13ac719 100644 --- a/openbsc/include/openbsc/signal.h +++ b/openbsc/include/openbsc/signal.h @@ -226,16 +226,6 @@ struct msc_signal_data { struct osmo_msc_data *data; }; -/* handover */ -enum signal_ho { - S_HANDOVER_ACK, -}; - -struct ho_signal_data { - struct gsm_lchan *old_lchan; - struct gsm_lchan *new_lchan; -}; - /* SS_CCCH signals */ enum signal_ccch { S_CCCH_PAGING_LOAD, -- cgit v1.2.3