aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/signal.h
AgeCommit message (Collapse)AuthorFilesLines
2013-01-15bsc: Introduce an authenticated signal for the MSC connectionHolger Hans Peter Freyther1-0/+1
Send the signal whenever a MSC appears to be authenticated.
2012-12-26handover: Fix the handover signalling for IP based BTSesHolger Hans Peter Freyther1-10/+0
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): ...
2012-11-11bts: Really drop the BTS in case of an OML NACKHolger Hans Peter Freyther1-0/+1
The previous code didn't work as expected. The trx and dst pointer are located in an union and in the case of the Abis code the dst is used to point to the signalling link timeslot and not the TRX. The is_ipaccess_bts always returned false because the dst was casted to a trx while it was no trx. This fix was tested with the nack_test/NACKTest.st of the test repo.
2012-06-16libgb: Use library SS_L_NS instead lf local SS_NSHarald Welte1-13/+0
which removes some further dependencies of libgb to openbsc internal code and data.
2012-02-03abis_rsl: The rach information was not used, introduce a signalHolger Hans Peter Freyther1-0/+15
Introduce a SS_CCCH for the paging and the rach load. The paging code could now start using the signal. GCC warning: abis_rsl.c: In function ‘rsl_rx_ccch_load’: abis_rsl.c:1371:11: warning: variable ‘rach_access_count’ set but not used [-Wunused-but-set-variable] abis_rsl.c:1370:11: warning: variable ‘rach_busy_count’ set but not used [-Wunused-but-set-variable] abis_rsl.c:1369:11: warning: variable ‘rach_slot_count’ set but not used [-Wunused-but-set-variable]
2011-08-19src: port openBSC over libosmo-abis0.9.15Pablo Neira Ayuso1-22/+0
This is a big patch that ports openBSC over libosmo-abis. Sorry, the changes that are included here are all dependent of libosmo-abis, splitting them into smaller pieces would leave the repository in some intermediate state, which is not desired. The main changes are: - The directory libabis/ has been removed as it now lives in libosmo-abis. - new configuration file format for nanoBTS and HSL femto, we need to define the virtual e1_line and attach it to the OML link. - all the existing BTS drivers (nanoBTS, hsl femto, Nokia site, BS11 and rbs2000) now use the new libosmo-abis framework. - use r232 input driver available in libosmo-abis for bs11_config. - use ipa_msg_recv instead of old ipaccess_read_msg function. - delete definition of gsm_e1_subslot and input_signal_data. These structures now lives in libosmo-abis. Most of this patch are deletions of libabis/ which has been moved to libosmo-abis. This patch also modifies openBSC to use all the new definitions available in libosmocore and libosmo-abis. In order to do that, we have replaced the following: - DINP, DMI, DMIB and DMUX by their respective DL* correspondences. - SS_GLOBAL by SS_L_GLOBAL - SS_INPUT by SS_L_INPUT - S_GLOBAL_SHUTDOWN by S_L_GLOBAL_SHUTDOWN - SS_INPUT by SS_L_INPUT - S_INP_* by S_L_INP_* sub-signals - E1INP_NODE by L_E1INP_NODE vty node This patch has been tested with: - one nanoBTS - the HSL femto with the examples available under libosmo-abis - BS11 with both dahdi and misdn drivers.
2011-08-10LAPD: Propagate lapd_receive() errors to the E1 driverPablo Neira Ayuso1-0/+1
Scenario: BTS are configured and working, then the BSC stops working for some reason (crash or administrative stop). If the BSC comes back to life, LAPD among other things does not know about the previous existing TEIs. Instead of ignoring these frames, we notify the driver that we are seeing frames with unknown TEIs, so it can try to recover, e.g. by resending the SABM message.
2011-04-18misc: Move from u_int to uint types of stdint.hHolger Hans Peter Freyther1-2/+2
This was done with sed on the files.
2011-03-23src: use new library libosmogsm and new path to headers in libosmocorePablo Neira Ayuso1-1/+1
libosmogsm is a new library that is distributed in the libosmocore. Now, openbsc depends on it. This patch gets openbsc with this change. This patch also rewrites all include path to the new osmocom/[gsm|core] Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2011-03-06RBS2000: Automatically connect/start/configure/enable most MOsHarald Welte1-0/+9
2011-03-06OML: Include a pointer to the BTS in NM STATE CHANGE signalsHarald Welte1-0/+1
... this allows the BTS driver to decide if it should handle the event at all
2011-03-06OM2000: Track the Operational Info and MO stateHarald Welte1-0/+6
2011-02-13INPUT: Include TEI + SAPI in E1 INPUT SIGNALHarald Welte1-0/+2
2011-02-13DAHDI: Deliver ALARM/NOALARM as input signal to RBS2000 driverHarald Welte1-0/+2
... and re-start LAPD SABM as required
2011-02-11E1 Input: Add new S_INP_LINE_INIT signalHarald Welte1-0/+2
This allows other code to listen ot a signal about a new line that was just configured.
2011-02-11[BSC] Move the BTS-type specific code from bcs_init.c to bts_*.cHarald Welte1-0/+23
bsc_init.c was a big mess even only for two supported BTS models, so before adding more BTS types, this needs a cleanup. All the BTS specific code from bsc_init.c has now moved into bts_{siemens_bs11,ipaccess_nanobts}.c This has required that input_event() and nm_state_event() get both converted to proper libosmocore signals instead of referencing external symbols.
2011-01-06rtp: Move the RTP Proxy code out of RSL into the BSC/MSC domainHolger Hans Peter Freyther1-0/+11
Instead of creating the sockets in the RSL code we will do this in the CRCX_ACK, MDCX_ACK, DLCX_IND signal handler of gsm_04_08. Introduce a handover signal so we can repatch the RTP sockets in the gsm_04_08 as well.
2011-01-01License change: We are now AGPLv3+ instead of GPLv2+Harald Welte1-6/+5
The reason for this is quite simple: We want to make sure anyone running a customized version of OpenBSC to operate a network will have to release all custom modifiations to the source code.
2010-12-27lchan: Every SS_LCHAN signal now sends a struct lchan_sig_dataHolger Hans Peter Freyther1-0/+7
The SS_LCHAN signals now always include the lchan_sig_data. For the measurement report it will optionally include the measurement report as well. Attempt to update all handlers of this signal as well
2010-12-26sms: Create signal data for SMS with more informationHolger Hans Peter Freyther1-0/+9
This is providing access to the paging result, the sms, the transaction. This will allow the SMS queue to do decisions based on the source of the failure.
2010-12-26sms: Dispatch a failed signal in many of the MT-sms pointsHolger Hans Peter Freyther1-0/+1
This attempts to dispatch a signal whenever a MT-sms is failing. In some cases, e.g. with freeing the transaction, this will also happen for MO-sms.
2010-12-25paging: Introduce a GSM_PAGING_BUSY event for a special timeoutHolger Hans Peter Freyther1-0/+2
Start counting the attempts of each paging request and call the callback with the PAGING_BUSY type when the paging request timed out but the subscriber was not paged at all. This can only happen with a huge paging backlog. In case the system has so many pending paging
2010-09-16msc: Send a signal when the connections to the MSC droppedHolger Hans Peter Freyther1-0/+14
Send a signal, this way another module can close all connections to the MSC and all local channels.
2010-07-29osmo_bsc_rf: Add a grace command, send a signalHolger Hans Peter Freyther1-0/+12
2010-07-22move ip.access netowrk listen (NWL) to network_listen.cHarald Welte1-0/+6
Also, we now re-start the network listen test after it has finished, so if you run a test from ipaccess-find, the test will get re-started and re-started all the time.
2010-07-14abis_nm: Create a signal data structure for the NACK messageHolger Hans Peter Freyther1-1/+6
Provide the message type and the msgb of the NACK message.
2010-06-17bsc_api: Make paging/silent call work with the subscriber_connectionHolger Hans Peter Freyther1-2/+2
Do not use the lchan for the paging but operate on the subscriber_connection, change the signals too to not carry the lchan but the subscriber connection... the silent call and vty code still assume there is a lchan inside the subscriber connection.
2010-05-13ipaccess: Send the reset to the BASEBAND_TRANSC and supply TRXHolger Hans Peter Freyther1-1/+1
Send the IPA Restart to a given BTS/TRX, change the signal callbacks to carry the trx instead of the BTS so we have an easy access to the right TRX and change the ipaccess-config to use that TRX. This is fixing the restart with a multi TRX setup. Even if we have the msg->trx, use the gsm_bts_trx_by_nr and get the TRX from the fom header. This is because the OpenBSC and the BTS numbering might not match for the multi TRX case.
2010-05-12NS / GB Proxy: Add Signal in case Tns-Alive expires too oftenHarald Welte1-0/+1
The Gb Proxy can then restart the RESET procedure.
2010-05-11[gprs] NS: Add signals in the event of BLOCK/UNBLOCK/RESETHarald Welte1-0/+12
The signals will be sent upon reception of NS-BLOCK/UNBLOCK/RESET PDUs We also export functions to generate/send BLOCK/UNBLOCK and RESET.
2010-05-04signal.h: Don't include gsm_subscriber but rather declare itHarald Welte1-1/+2
2010-03-28chan_alloc: Support allocating TCH/F of a dynamic TCH/F + PDCHHarald Welte1-0/+13
This code simply enables the channel allocator to understand the dynamic TCH/F / PDCH channel type as used by ip.access nanoBTS. It does not actually try to switch the dynamic mode, but instead sends signals to a (not yet present) dynamic switching algorithm.
2010-02-20split 'libosmocore' from openbsc codebaseHarald Welte1-11/+1
This library is intended to collect all generic/common funcitionality of all Osmocom.org projects, including OpenBSC but also OsmocomBB The library currently includes the following modules: bitvec, comp128, gsm_utils, msgb, select, signal, statistics, talloc, timer, tlv_parse, linuxlist msgb allocation error debugging had to be temporarily disabled as it depends on 'debug.c' functionality which at the moment remains in OpenBSC
2010-01-07[signal] Differentiate paging success from expiration in SS_PAGINGSylvain Munaut1-1/+2
This is useful information to know and actually fixes a segfault in rllp.c where lchan is accessed even tough it could be NULL in case of failure. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-12-30[abis] Dispatch a IPAC restart ACK/NACK signalHolger Hans Peter Freyther1-0/+2
* Add the NACK version to the list * Dispatch the signal when we receive the message * Handle it in ipaccess-config by exiting the application
2009-12-30[ipaccess] Restart only after setting the OML IP, software loadHolger Hans Peter Freyther1-0/+5
* Do not issue the restart right aways if we have OML IP or software load in the queue (hint, we need a real queue of operations to carry out... with one big state machine) * Change the signal_data of ipacc ACK/NACK to contain the msg type and the bts pointer. * Issue a restart for software load and OML and use the BTS pointer we got out of the new signal data.
2009-12-30[abis] Add ACK signal and send it on SET NVATTR ACKHolger Hans Peter Freyther1-0/+1
* Add the signal definition to signal.h * Dispatch the signal from abis_nm.c * Handle it in ipaccess-config.c and say we are done with work
2009-12-19ip.access: Keep a full copy of local and remote IP/PORT in lchanHarald Welte1-0/+1
Keeping all parameters for each RTP connection in the abis_ip member of lchan will help us with actual TCH handover later on.
2009-12-13introduce new signal every time we get a mobile identityHarald Welte1-0/+1
2009-12-01Introduce new S_GLOBAL_SHUTDOWN signalHarald Welte1-0/+5
This is used to notify various parts of OpenBSC that we're shutting down.
2009-11-30[handover] export measurement reports via signalHarald Welte1-0/+1
This patch introduces the S_LCHAN_MEAS_REP signal which is used to export measurement reports as input to the yet-to-be-written handover algorithm.
2009-11-29[handover] Introduce new handover related LCHAN signalsHarald Welte1-0/+5
This introduces the signals S_LCHAN_ACTIVATE_{ACK,NACK} and S_LCAN_HANDOVER_{FAIL,COMPL,DETECT} as well as code that actually issues those signals. The signals are relevant for a yet-to-be-written handover control logic.
2009-11-19[ipa] Change names of RTP methods to follow MGCP namingHolger Hans Peter Freyther1-2/+2
IPA is naming these functions CRCX, MDCX, DLCX to follow the naming of the MediaGatewayControlProtocol. Change the code to go from BIND to CRCX (create connection) and from CONNECT to MDCX (modify connection). Connect indicates that it is only possible to call it once while it is possible to call it more than once to modify the audio parmaters and such. So the IPA terminology is making a bit more sense here (now that we know it).
2009-11-14Add "silent call" feature to OpenBSCHarald Welte1-0/+14
This allows the administrator to use the vty interface to issue a silent call to a given subscriber by using "subscriber extension XXXX silent call start" and stopping that silent call with "subscriber extension XXXX silent call stop"
2009-08-13remove FIRST_CONTACT signal, the subscriber flag is sufficientHarald Welte (local)1-1/+0
2009-08-12flag new subscriber structs in memory and send a signalJan Luebbe1-0/+1
2009-08-09implement proper SAPI3 handling for SMSHarald Welte1-0/+1
SM's need to be transferred over their own RLL connection on SAPI3, rather than the default SAPI0 connection that we're using for signalling like 04.08 RR/MM/CC. This is not that much of a problem in the case of SMS SUBMIT from the MS to the netwrok. In that case, the MS will start its primary RLL connection with SAPI3, and we can just respond with SAPI3. However, in the case of SMS DELIVER to a MS, we first page the MS, it then establishes SAPI0. We then need to explicitly request the establishment of a SAPI3 RLL connection, before we can send CP-DATA with our RP-DATA and DELIVER RPDU Now that we have the bsc_rll.c code, we can actually wait for a paging response, and from the paging response request the establishment of the SAPI3 connection. We will be called back once that connection is open and can successively start transmission of the SM.
2009-08-08first 'working' SMS implementationHarald Welte1-0/+7
we now have the full path from the MS into the database (SUBMIT), as well as back from the database to the MS (DELIVER). The database gets correctly updated once a SMS has been successfully delivered. What's still missing is the periodic scan over all undelivered messages, trying to deliver them to the respective MS. So far, you have to manually trigger this on the telnet interface with 'sms send pending 1'
2009-08-08implement nanoBTS frequency error testHarald Welte1-0/+1
This helps us to detect the frequency error of BS-11 if it is located next to the nanoBTS 900. If 'ipaccess-config -l' is called, it will produce a report like <0020> ipaccess-config.c:85 TEST REPORT: test_no=0x42 test_res=0 <0020> ipaccess-config.c:108 ==> ARFCN 220, Frequency Error 22 <0020> ipaccess-config.c:108 ==> ARFCN 1, Frequency Error -37 <0020> ipaccess-config.c:108 ==> ARFCN 10, Frequency Error 0 <0020> ipaccess-config.c:108 ==> ARFCN 20, Frequency Error 11 <0020> ipaccess-config.c:108 ==> ARFCN 53, Frequency Error 5 <0020> ipaccess-config.c:108 ==> ARFCN 63, Frequency Error -4 <0020> ipaccess-config.c:108 ==> ARFCN 84, Frequency Error 11 <0020> ipaccess-config.c:108 ==> ARFCN 101, Frequency Error 0 <0020> ipaccess-config.c:108 ==> ARFCN 123, Frequency Error -52 where in this case the ARFCN 123 is the BS-11 with a frequency error larger than all the other (regular) BTS in the vicinity.
2009-07-29issue a signal once a subscriber is attached or detachedHarald Welte1-0/+7