path: root/openbsc/
AgeCommit message (Collapse)AuthorFilesLines
2016-03-31Merge branch 'master' into sysmocom/iuNeels Hofmeyr1-0/+1
Conflicts: openbsc/src/libmsc/auth.c openbsc/src/libmsc/gsm_04_08.c openbsc/src/osmo-bsc/osmo_bsc_vty.c openbsc/tests/
2016-03-31Add MM Auth test; add auth_action_str() functionNeels Hofmeyr1-0/+1
Add basic MM Authentication test setup, with fake DB access and RAND_bytes(). So far implement simple tests for IO error during DB access and missing auth entry. To print the auth action during tests, add struct auth_action_names and auth_action_str() inline function in auth.[hc].
2016-03-04create libxsc and move some code, never link libbsc and libmscNeels Hofmeyr1-0/+1
libbsc and libmsc have conflicting definitions of gsm_subscriber_connection and do no longer belong together anyway. Create libxsc, meaning 'lib[bm]sc', to hold all code used by both libmsc and libbsc, and make sure gsm_subscriber_connection isn't used there. In various binaries and tests, do not link libbsc and libmsc. (Note: this commit was reshaped out of a large wip chunk, it may not compile properly without the subsequent commits)
2016-03-03Remove osmo-nitb, cannot link libbsc with libmsc anymoreNeels Hofmeyr1-2/+1
2016-03-03add tests/libiudummyNeels Hofmeyr1-0/+1
2016-03-03put Iu-common and Iu-CS stuff in proper placesNeels Hofmeyr1-0/+1
Add libiu to contain the parts used by both Iu-CS (in osmo-cscn) and Iu-PS (in gprs) into libiu. It's rather thin and may make sense to move to osmo-iuh altogether, eventually. iu.c is half moved to libiu/, and half to osmo-cscn/iu_cs.c.
2016-03-03Add osmo-cscn, as a copy of osmo-nitb.Neels Hofmeyr1-0/+1
CSCN means "Circuit Switched Core Network" (-in-the-box) and will become a NITB-without-BSC, so that it talks Iu-cs to the HNBGW and talks 'A' to an external BSC. Copying NITB is debatable: on the one hand, we've agreed on the name Osmo-CSCN for the end result (without internal BSC). On the other hand, I will probably add Iu-cs into the NITB code incrementally, in such a way that theoretically, both Iu-cs and the internal BSC functionality could be used at the same time. So Osmo-CSCN will be a NITB plus Iu-cs for a while. Instead of adding to NITB, I prefer to work on a copy, so that the original NITB remains more or less unchanged. Only a later step will clearly distinguish CSCN from NITB: when the BSC part is split off for the benefit of a proper A-interface, and CSCN talks to an external BSC.
2016-03-03migrate WIP osmo-iuh hack to use system-installed libosm-ranap.soHarald Welte1-0/+3
this means we no longer try to link to hard-coded files outside of the openbsc.git repository.
2016-01-22dahdi: The driver has moved to libosmo-abisHolger Hans Peter Freyther1-1/+0
We can remove this check from openbsc as the handling is done in libosmo-abis.
2015-12-03tests: fix condition to run sgsn, oap, gtphub testsNeels Hofmeyr1-0/+6
Sponsored-by: On-Waves ehi
2015-11-20Depend on libgtp >= 0.92, as previous versions don't have gtpie.h installedHarald Welte1-1/+1
this fixes compilation for people having older gtp libraries installed.
2015-11-16Add GTP hub initial code base.Neels Hofmeyr1-0/+1
First steps towards a new GTP hub. The aim is to mux GTP connections, so that multiple SGSN <--> GGSN links can pass through a single point. Background: allow having more than one SGSN, possibly in various remote locations. The recent addition of OAP to GSUP is related to the same background idea. (This is a collapsed patch of various changes that do not make sense to review in chronological order anymore, since a lot of it has thorougly transmorphed after it was first committed.) Sponsored-by: On-Waves ehf
2015-11-02oap: add oap testsuite skeletonNeels Hofmeyr1-0/+1
Sponsored-by: On-Waves ehf
2015-10-12libmsc: Use RAND_bytes when choosing a tmsiDaniel Willmann1-1/+1
Require openssl version to be >= 0.9.5 because we rely on the RAND_bytes return value. [hfreyther: Add cast to uint8_t*]
2015-09-15openbsc/ check for pcap/pcap.h.Neels Hofmeyr1-0/+1
The build process requires pcap/pcap.h in openbsc/src/utils/meas_pcap2db.c, but the configure script did not check for that file.
2015-07-02configure: Do not link all applications against libgsmHolger Hans Peter Freyther1-1/+2
Use the same trick as done by the dlopen check to not have everyone link against the library.
2015-07-02configure: No need to check for crypt hereHolger Hans Peter Freyther1-2/+0
We just link to libosmovty and if it requires crypt internally it needs to link to that (and not us). This looks like a left-over from when we moved the VTY code out of OpenBSC
2015-07-01nat: Use RAND_bytes instead of /dev/urandomHolger Hans Peter Freyther1-0/+1
We don't need to consume all the entropy of the kernel but can use libcrypto (OpenSSL) to generate random data. It is not clear if we need to call RAND_load_file but I think we can assume that our Unices have a /dev/urandom. This takes less CPU time, provides good enough entropy (in theory) and leaves some in the kernel entropy pool.
2015-05-25sgsn: Integrate c-ares with the osmocom event loopHolger Hans Peter Freyther1-0/+5
c-ares is an asynchronous DNS resolver and we need it to resolve the GGSN address. This is integrating the library into our infrastructure. We will create and maintain a list of registered FDs (c-ares is currently only using one of them) and (re-)schedule the timer after events occurred.
2015-05-03filter: Move the gsm 04.08 filter to a common placeHolger Hans Peter Freyther1-0/+1
For customer requirements we want to be able to do filtering on the BSC as well. The same messages need to be scanned and the same access-lists will be looked at. In the future we might even split traffic based on the IMSI. Begin with moving the code to a new top level directory and then renaming and removing the nat dependency.
2015-01-10meas: Unbreak the build once moreHolger Hans Peter Freyther1-0/+5
The code assumes that sqlite3.h is in the standard include path. Maybe sqlite3 wasn't installed or resides in a non standard (/usr/local) location? Fix the build as it has been broken since 1st of January.
2015-01-01build meas_vis only if libcdk is availableHarald Welte1-0/+4
2014-12-05bsc/test: Add tests for gsm_subscriber baseJacob Erlbeck1-0/+1
This commit adds test for the generic part of gsm_subscriber like reference counting and flag usage. Sponsored-by: On-Waves ehf
2014-10-09sgsn: Add boilerplate code for a SGSN testHolger Hans Peter Freyther1-0/+2
2014-09-01configure: fix unrecognized option --enable-external-testsPablo Neira Ayuso1-1/+1
./configure --help indicates: --enable-external-tests Include the VTY/CTRL tests in make check [default=no] but ./configure ... --enable-external-tests configure: WARNING: unrecognized options: --enable-external-tests the name of the option seems to be --enable-ext-tests.
2014-08-22misc: Introduce a more neutral configure option for CTRL/VTYHolger Hans Peter Freyther1-9/+14
We started with only testing the VTY but now test VTY and CTRL interface with this python framework and might even extend this to SMPP. So add and "--enable-external-tests" directive which enables the external interface tests. Depend on libosmocore 0.7.0Harald Welte1-2/+2
2014-08-21move libctrl from openbsc to libosmoctrl (libosmocore.git)Harald Welte1-1/+1
2014-06-05mgcp: Add RTP audio transcodingJacob Erlbeck1-0/+15
This patch implements audio transcoding between the formats GSM, PCMA, L16, and optionally G.729. The feature needs to be enabled by using the autoconf option '--enable-mgcp-transcoding'. In this case mgcp_transcode.c will be compiled and linked to osmo-bsc_mgcp, and the transcoding functions provided will be registered as processing callbacks. If G.729 support is required, libcg729 needs to be installed and '--with-g729' must be passed to ./configure. Ticket: OW#1111 Sponsored-by: On-Waves ehf
2014-05-22mgcp: add voice muxer supportPablo Neira Ayuso1-0/+1
This patch adds the voice muxer. You can use this to batch RTP traffic to reduce bandwidth comsuption. Basically, osmux transforms RTP flows to a compact batch format, that is later on decompacted to its original form. Port UDP/1984 is used for the muxer traffic between osmo-bsc_nat and osmo-bsc_mgcp (in the BSC side). This feature depends on libosmo-netif, which contains the osmux core support. Osmux is requested on-demand via the MGCP CRCX/MDCX messages (using the vendor-specific extension X-Osmux: on) coming from the BSC-NAT, so you can selectively enable osmux per BSC from one the bsc-nat.cfg file, so we have a centralized point to enable/disable osmux. First thing you need to do is to accept requests to use Osmux, this can be done from VTY interface of osmo-bsc_nat and osmo-bsc_mgcp by adding the following line: mgcp ... osmux on osmux batch-factor 4 This just initializes the osmux engine. You still have to specify what BSC uses osmux from osmo-bsc_nat configuration file: ... bsc 1 osmux on bsc 2 ... bsc 3 osmux on In this case, bsc 1 and 3 should use osmux if possible, bsc 2 does not have osmux enabled. Thus, you can selectively enable osmux depending on the BSC, and we have a centralized point for configuration from the bsc-nat to enable osmux on demand, as suggested by Holger. At this moment, this patch contains heavy debug logging for each RTP packet that can be removed later to save cycles. The RTP ssrc/seqnum/timestamp is randomly allocated for each MDCX that is received to configure an endpoint.
2014-05-15misc: Use the right mailinglist address for OpenBSCHolger Hans Peter Freyther1-1/+1
2014-04-01ipa: Use enhanced ipa_msg_recv_buffered() to cope with partioned IPA messagesJacob Erlbeck1-1/+1
The old ipa_msg_recv() implementation didn't support partial receive, so IPA connections got disconnected when this happened. This patch adds the handling of the temporary message buffers and uses ipa_msg_recv_buffered(). It has been successfully tested by jerlbeck with osmo-nitb and osmo-bsc. Ticket: OW#768 Sponsored-by: On-Waves ehf
2014-01-16si/test: Merge si tests into gsm48 testsJacob Erlbeck1-1/+0
Currently tests covering features of the GSM 04.08 specification are spread over the si and gsm0408 subdirs in tests. This commit merges all tests from 'si' into 'gsm0408' and removes the 'si' test sub-directory. Sponsored-by: On-Waves ehf
2013-12-19Add EFR support to TRAU muxer + test caseAndreas Eversberg1-0/+1
Decoding and encoding of FR and EFR TRAU frames are put into seperate functions. CRC check is done to detect bad EFR TRAU frames. The test case includes FR and EFR transcoding. EFR support was tested with Nokia InSite BTS and Siemens BS11.
2013-10-15gbproxy: Add test program to test gbproxy message handlingJacob Erlbeck1-0/+4
This program tests the gbproxy implementation by passing NS messages to a modified gbproxy that dumps the resulting messages, signals, and state. It focusses on testing abnormal situations like port changes. Ticket: OW#874 Sponsored-by: On-Waves ehf
2013-10-15misc: Require libosmocore 0.6.4 and libosmogb 0.6.4Holger Hans Peter Freyther1-2/+2
2013-09-19bsc/mminfo: Patch timezone and DST in MM Info messagesJacob Erlbeck1-1/+3
This adds in-place patching of the time information in the MM INFORMATION message. The timezone in the 'Local time zone' and the 'Universal time and local time zone' information elements and the offset in the 'Network Daylight Saving Time' information element are optionally set. The new values are determined by the 'timezone' vty command in the config_net_bts node. That command is extended by an optional DST offset parameter. Tests are provided for the vty part and for the plain bsc_scan_msc_msg() function. Sponsored-by: On-Waves ehf Ticket: OW#978
2013-07-31nat: Introduce a prefix lookup tree (trie) for number rewritingHolger Hans Peter Freyther1-0/+1
* It is a trie. The max depth of the trie is the length of the longest prefix. The lookup is O(lookuped_prefix), but as the prefix length is limited, the lookup time is constant. * Each node can hold the entire prefix, has place for the rewrite rule with up to three digits. * A trie with 20k entries will take about 3MB ram. * Filling the trie 100 times takes ~800ms on my i7 laptop * 10.000.000 lookups take 315ms.. (for the same prefix). * 93/99 lines are tested, 6/6 functions are tested, 49 of 54 branches are tested. Only memory allocation failures are not covered * A late addition is to handle the '+' sign and to increase the number of chars in the rewrite prefix. The timing/line coverage has not been updated after this change.
2013-07-27smpp: Move the coding/mode detection into a utils fileHolger Hans Peter Freyther1-1/+3
Make sure to not ever have issues with this code again, move the utility code to a new file and create a basic testcase. The method currently has 100% line and branch coverage. My initial patched missed the smpp_utils.c file and I re-did the copying (and verifying the branch coverage)
2013-06-24Introduced support for external python testsKaterina Barone-Adesi1-0/+15
The test scripts warn about missing documentation, untested configs, check common errors, and stub out testing individual VTY commands. The scripts have been moved to the another osmocom repository, python/osmo-python-tests The features were requested by zecke.
2013-03-13SMPP: Implement SMPP Osmocom Estensions on MO-SMS0.13.0Harald Welte1-1/+1
An ESME can now be configured in the VTY to enable osmocom-extensions, which will add vendor-specific SMPP TLVs for RxLev/RxQual/ARFCN/IMEI and transmit power to the SMPP DELIVER-SM message type.
2012-12-21autoconf: Fix the --disable-* case for the AC_ARG_ENABLE macrosHolger Hans Peter Freyther1-27/+20
--disable-smpp would actually not disable SMPP but enable it. Correct it for all usages of AC_ARG_ENABLE. Move the unconditional invocation of PKG_CHECK_MODULES before the conditional one to make it work as the pkg-config m4 macro appears to expand the first usage differently and searches for the pkg-config exuable. Use "$enableval" to see if the feature should be enabled or disabled and then search for the module afterwards.
2012-12-19abis: Create a routine that can parse all SW Descriptions of a SW ConfigHolger Hans Peter Freyther1-0/+1
Be able to parse the entire SW Config IE. Parse the SW Descruption into a struct provided by the caller.
2012-12-19misc: Fix compilation now that the method is located in libosmocoreHolger Hans Peter Freyther1-1/+1
These TLV helper functions are now located in libosmocore.
2012-11-16SMPP: build the smpp interface only in case of ./configure --enable-smppHarald Welte1-1/+12
2012-11-16Initial support of SMPP interface for MT-SMSHarald Welte1-0/+1
2012-10-22si: Partially implement the range encoding for the SI.Holger Hans Peter Freyther1-0/+1
I saw the old copy of the "Appendix J" code too late and I have discovered some quirks and I am more familar with my implementation. Most noticable 'w' only needs to be as big as the input arfcn but requires the 'w' to be initialized. The power_of_2 implementation differs as well (mine matches the output of wirehsark). The f0 could be chosen in a better way but right now picking the lower bound is the easiest. It is not clear if to use modulo if the range is chosen in the middle. This can be improved in the future. Right now I have no bit fiddling for range128, 256 and 1024 as I was running out of time.
2012-10-04tests: Remove the debug/logging test as it is in libosmocore nowHolger Hans Peter Freyther1-1/+0
2012-08-03gb: suspend_ref was changed to a plain uint8_t, update the codeHolger Hans Peter Freyther1-1/+1
Require a 0.5.2+ libosmogb due the change of the suspend_ref type.
2012-06-17use new external libosmogb (part of libosmocore.git)0.12.0Harald Welte1-4/+1
This removes the libgb (GPRS NS/BSSGP) code from the openbsc.git repository and uses the new version from libosmocore.git instead.