aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gsm_04_08.c
AgeCommit message (Collapse)AuthorFilesLines
2010-04-06Merge remote branch 'origin/master' into on-waves/bsc-masterHolger Hans Peter Freyther1-103/+117
* Move to the new log code and update binaries * Catch up with lchan changes from master Conflicts: openbsc/include/openbsc/Makefile.am openbsc/include/openbsc/gsm_data.h openbsc/src/Makefile.am openbsc/src/bsc_rll.c openbsc/src/chan_alloc.c openbsc/src/debug.c openbsc/src/gsm_04_08.c openbsc/src/gsm_04_11.c openbsc/src/gsm_subscriber_base.c openbsc/src/handover_logic.c openbsc/src/silent_call.c openbsc/src/transaction.c openbsc/src/vty_interface.c openbsc/src/vty_interface_cmds.c
2010-03-29[misc] Remove whitespace from the end of the line.Holger Hans Peter Freyther1-7/+7
2010-03-26Merge branch 'on-waves/sccp' into on-waves/bsc-masterHolger Hans Peter Freyther1-4/+5
2010-03-25lchan: Change transaction to work on the GSM Subscriber ConnectionHolger Hans Peter Freyther1-35/+31
Change the MSC transaction code to operate on a GSM Subscriber Connection instead of the lchan. This will help us to separate the two commands properly.
2010-03-25lchan: Create a structure for MSC data of the lchanHolger Hans Peter Freyther1-72/+91
Prepare to split the BSC and the MSC part by putting the MSC data for a connection into a "gsm_subscriber_connection" struct and renaming the macros.
2010-03-25convert openbsc to use libosmocore-0.1.1 APIHarald Welte1-4/+5
the 0.1.1 API is cleaned up and removes all exported global static arrays (like rlm_cause_strs). There are now proper accessor functions.
2010-03-24Specify a release reason for the lchanHolger Hans Peter Freyther1-1/+1
In case the put_lchan is making the refcount drop to zero use the release reason specified in the put_lchan call. This is used by the BSC MSC IP implementation for the assignment handling where the old channel is getting closed with a local end release (1).
2010-03-24Merge remote branch 'origin/master' into on-waves/bsc-masterHolger Hans Peter Freyther1-769/+134
* Move to libosmocore * Move to new debugging architecture * Register the BTS types * Has only been compile tested Conflicts: openbsc/include/openbsc/Makefile.am openbsc/include/openbsc/gsm_data.h openbsc/include/openbsc/ipaccess.h openbsc/include/openbsc/mgcp.h openbsc/include/openbsc/msgb.h openbsc/include/openbsc/tlv.h openbsc/src/Makefile.am openbsc/src/abis_rsl.c openbsc/src/bsc_init.c openbsc/src/bsc_mgcp.c openbsc/src/chan_alloc.c openbsc/src/debug.c openbsc/src/gsm_subscriber_base.c openbsc/src/msgb.c openbsc/src/rest_octets.c openbsc/src/sccp/sccp.c openbsc/src/vty/command.c openbsc/src/vty_interface.c openbsc/tests/Makefile.am
2010-03-07move large parts of mncc.h and gsm48 encode/decode into libosmocoreHarald Welte1-619/+83
2010-03-04move some gsm48 utility functions to libosmocoreHarald Welte1-2/+2
* gsm48_generate_lai() gsm48_generate_mid_from_tmsi() gsm48_generate_mid_from_imsi() * gsm48_cc_msg_names[]
2010-03-02remove gsm04.08 utility code that has been moved to libosmocoreHarald Welte1-122/+14
2010-02-20split 'libosmocore' from openbsc codebaseHarald Welte1-5/+5
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-03gsm_04_08: Add RAND debug output in gsm48_tx_mm_auth_reqSylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-03gsm_04_08: Specify key_seq when calling gsm48_tx_mm_auth_reqSylvain Munaut1-3/+2
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-01-01introduce and implement silent_call_reroute() and silent_call_rx()Harald Welte1-0/+4
Thise two functions are interfacing with the 04.08 layer 3 to determine if a particular message should be handled inside the OpenBSC layer 3, or if it should be handled in the silent call handler.
2009-12-26print LAC and BTS number when showing location update rejectHarald Welte (local)1-2/+4
2009-12-26generate INFO events for CC SETUP and LOC UPD REJHarald Welte (local)1-1/+6
2009-12-24add (and use) new subscr_name() function to get name or IMSIHarald Welte1-3/+2
2009-12-24don't print directly to stderr, use LOGP()Harald Welte1-7/+7
2009-12-22statistics: Introduce 'struct counter' instead of using unsigned longHarald Welte1-6/+6
This has the advantage that counters can be added all over the code very easily, while having only one routine that stores all of the current counter values to the database. The counters are synced every 60 seconds, providing relatively fine grained statistics about the network usage as time passes by.
2009-12-22Merge commit 'origin/master' into on-waves/bsc-masterHolger Hans Peter Freyther1-190/+199
Conflicts: openbsc/include/openbsc/Makefile.am openbsc/include/openbsc/gsm_data.h openbsc/src/Makefile.am openbsc/src/abis_rsl.c openbsc/src/chan_alloc.c openbsc/src/gsm_04_08.c openbsc/src/gsm_data.c openbsc/src/vty_interface.c The biggest problem is the moving of the RTP code into the RSL layer. This may break quite some things...
2009-12-22[gsm48] Move gsm48_parse_meas_rep to gsm_04_08_utilsHolger Hans Peter Freyther1-68/+0
Move the function over to the _utils side as handover measurement is compiled into libbsc and we don't want to end up with linking errors.
2009-12-22keep some internal statistics inside OpenBSCHarald Welte1-0/+19
the statistics will give us some idea about the network load and performance.
2009-12-21[handover] Real handover algorithmHarald Welte1-0/+1
This implements the handover algorithm (and associated parameters) as described in Chapter 8 of the book "Performance Enhancements in a Frequency |Hopping GSM Network" by Thomas Toftegard Nielsen and Jeroen Wigard. The parameters such as averaging windows are configured in struct gsm_network. We keep some state to trakc up to 10 neighbors as they are being reported from the MS. This has so far only been tested in a network with two BTS that have each other as neighbor. Networks with morge neighbors might encounter bugs.
2009-12-20rename ipacc_connect_proxy_bind() to rsl_ipacc_mdcx_to_rtpsock()Harald Welte1-17/+3
Our RTP sockets are no longer just for the proxy mode, so having "proxy" in the function name is really misleading.
2009-12-20Move RTP socket handling out of signal handlers into abis_rslHarald Welte1-26/+0
This is not really nice, but we will soon have multiple users of the CRCX / MDCX / DLCX signals, and we cannot guarantee the ordering of them. So as a workaround, we move the RTP socket creation and deletion into the core abis_rsl codebase.
2009-12-20remove hand full of 'extern ipacc_rtp_direct' definitionsHarald Welte1-2/+0
and instead declare it in gsm_data.h
2009-12-20add FIXME to IMSI DETACH INDICATION: we need to release all transactionsHarald Welte1-0/+3
2009-12-19RTP-enable MNCC API for LCR + ip.accessHarald Welte1-34/+83
Instead of passing TRAU frames down the MNCC API to the call control application like MNCC, we now decode the TRAU frame into the actual codec frame. We do the same with the RTP packets in case of ip.access and thus have a unified format of passing codec data from the BTS to an application, independent of the BTS type. This is only implemented for V1 full-rate at the moment, and needs to be fixed.
2009-12-19measurement report parsing: NO-NCELL-M of 7 tells us no neighborsHarald Welte1-1/+1
2009-12-19ip.access: Keep a full copy of local and remote IP/PORT in lchanHarald Welte1-3/+0
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-19Fix subscr ref leak for multi CM SERV REQSylvain Munaut1-1/+3
Multiple CM SERVICE REQUEST can happen on a single RR connection, in this case, since the subscr reference is tracked through lchan->subscr and will only be put'd once on lchan_free, we need to make sure we don't get several reference .... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-12-16measurement report: correctly parse BSIC of first neighbor cellHarald Welte1-1/+1
2009-12-1604.08: fix off-by-one error while parsing measurement resultsHarald Welte1-19/+19
2009-12-15introduce cache of 6 last recently received measurement reports for each lchanHarald Welte1-2/+2
2009-12-1404.08 MEAS REP: Convert relative cell number to ARFCNHarald Welte1-6/+11
Since we are keeping a bitvec of the neighbor cells, we can now use bitvec_get_nth_set_bit() to determine the ARFCN for each reported cell in the 04.08 MEASUREMENT REPORT.
2009-12-14fix compiler warnings in gsm_04_08.cHarald Welte1-2/+2
2009-12-14Add VTY setting for whether or not to sending MM INFOHarald Welte1-2/+4
2009-12-13introduce new signal every time we get a mobile identityHarald Welte1-0/+6
2009-12-12Gracefully reject non-speech callsHarald Welte1-20/+34
As we currently really only deal with voice/speech calls and don't support FAX and DATA (CSD) calls, we now gracefully reject them.
2009-12-12[04.08] use lchan_auto_release to quickly close channelHarald Welte1-7/+11
In some cases, we can try to close the lchan a bit faster than our lchan release timeout: * After we've sent LOC UPD ACCEPT and MM INFO * After a phone has confirmed the RELEASE of a call
2009-12-06location updating reject cause now specified on VTY rather than command line ↵Harald Welte1-7/+2
argument
2009-12-06move RTP socket information from timeslot to lchanHarald Welte1-31/+24
With ip.access, in case of TCH/H, we have one RTP stream for each half-slot (lchan), not just one per on-air timeslot. This is quite different from a classic BTS where the TRAU frames of the two TCH/H channels would be part of the same 16k sub-slot in a E1 timeslot.
2009-12-02move RTP socket information from timeslot to lchanHarald Welte1-31/+24
With ip.access, in case of TCH/H, we have one RTP stream for each half-slot (lchan), not just one per on-air timeslot. This is quite different from a classic BTS where the TRAU frames of the two TCH/H channels would be part of the same 16k sub-slot in a E1 timeslot.
2009-11-29[handover] Introduce new handover related LCHAN signalsHarald Welte1-4/+29
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-29print debug statement in case of HANDOVER COMPLETE or HANDOVER FAILEDHarald Welte1-0/+8
2009-11-29New complete measurement result/report handlingHarald Welte1-33/+27
This patch extends struct gsm_meas_rep into a complete structure containing all information from both uplink and downlink measurement results/reports. This is a first step to provide this complete measurement data as a C structure into a to-be-implemented handover decision algorithm.
2009-11-20[lchan] Release the channel ones its' usecount drops to zeroHolger Hans Peter Freyther1-3/+2
Remove the timer handling from the LCHAN and release the channel ones the use count is dropping to zero. Change code that was sending/using the lchan after the release and change the send data method to warn in case the lchan is used after it has been freed.
2009-11-19[lchan] RSL and RR need the multirate config, place it in the lchanHolger Hans Peter Freyther1-1/+1
Both GSM 04.08 RR and GSM 08.58 RSL need the multirate config in the channel modify. Place the config in the lchan, change the gsm48 methods to not take the argument, change the RSL implementation to make use of it with the right IE. The other code should use the t(l)v_put routines as well but were left untouched for now.
2009-11-19[ipa] Change names of RTP methods to follow MGCP namingHolger Hans Peter Freyther1-5/+5
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).