aboutsummaryrefslogtreecommitdiffstats
path: root/src/Makefile.am
AgeCommit message (Collapse)AuthorFilesLines
2016-05-20Add support for NuRAN Wireless Litecell 1.5 BTSYves Godin1-0/+24
Layer 1 compatibility with previous generation or NuRan GSM product, therefore the support for the Litecell 1.5 uses its own sources instead of using tons of ifdef/endif. Max's amendments: * make headers path configurable * use configured TRX instead of hardcoded value * split subdir-objects into separate commit * cosmetic changes Change-Id: Ib1287375cb10a889625bbac8528fa60deed23a2b Fixes: SYS#2443 Reviewed-on: https://gerrit.osmocom.org/61 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org>
2016-05-17Enable subdir-objects automake optionYves Godin1-0/+1
Change-Id: I01fd264fd1f990f39cdbf309149e0eb857d7732f Related: SYS#2443 Reviewed-on: https://gerrit.osmocom.org/60 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
2016-05-17Restructure sourcesMax1-20/+29
Move hardware-spicefic files into subdirectory similar to the way it's done in OsmoBTS to make adding new hardware support easier. Change-Id: I05004ad9032759a5dbfa57290ed1df83e89d5cb8 Related: SYS#2443 Reviewed-on: https://gerrit.osmocom.org/58 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
2016-04-22Rename define for direct hw accessMax1-1/+1
2015-12-15edge: Add GprsCodingScheme classJacob Erlbeck1-2/+4
Currently the coding scheme is checked and compared at different places which makes in cumbersome to extend it for EGPRS. This class encapsules the coding scheme and provides required meta information like sizes as well as helper methods. Sponsored-by: On-Waves ehf
2015-11-13remove obsolete OpenBTS PCU interface supportHarald Welte1-8/+1
This OpenBTS socket interface was originally added to enable GPRS capabilitie with a forked version of OpenBTS, at a time when the public OpenBTS release didn't yet have any GPRS support. Meanwhile, the later OpenBTS releases included their own version of GPRS, without any external PCU/SGSN/GGSN, so this interface is no longer needed. This also means that the OsmoBTS socket interface is now the default at compilation time. There is no other interface.
2015-11-12rename sysmo_sock.cpp to osmobts_sock.cppHarald Welte1-2/+2
This also renames the --enable-sysmbts option to --enable-osmobts This socket interface was nevery sysmoBTS specific, but it is a generic socket interface to any OsmoBTS supported layer1/hardware. So it was a mis-nomer so far.
2015-07-21llc: Add CoDel AQM implementationJacob Erlbeck1-2/+4
This commit adds an implementation of the CoDel algorithm based on the reference pseudocode presented in http://queue.acm.org/appendices/codel.html. Instead of abstracting the queue itself, the implementation provides a time stamp based automaton which is invoked after a package has been dequeued. Note that the modifications of the algorithm shown in https://tools.ietf.org/html/draft-ietf-aqm-codel-01 are not yet applied. Sponsored-by: On-Waves ehf
2015-06-22build: Add -lrt to AM_LDFLAGSJacob Erlbeck1-0/+1
This is needed to link programs using clock_gettime and related functions when compiling with older glibc versions. This should fix the Jenkins build. Nevertheless fixing this in configure.ac were probably nicer. Sponsored-by: On-Waves ehf
2015-06-08vty: Add a file for C++ functionsJacob Erlbeck1-0/+2
Currently the pcu_vty.c doesn't compile with C++. Thus C++ object cannot be access directly there. This commit adds a helper C++ file that exports all functions with C calling conventions and naming to work around that limitation until the transition of pcu_vty.c is completed. Sponsored-by: On-Waves ehf
2015-05-28tbf: Remove TimingAdvance storageJacob Erlbeck1-2/+0
Currently the TA storage stores up to 30 TLLI->TA mappings, if more entries are created the oldest one is dropped. In theory this can lead to missing TA information if many MS are present. This commit removes the TimingAdvance class completely, since the TA value is now stored in the GprsMs objects. Note that the GprsMs objects are currently not kept after the TBFs have detached from them, so the TA values are now kept for a shorter time than before. Ticket: #1674 Sponsored-by: On-Waves ehf
2015-05-20ms: Add MS storage classJacob Erlbeck1-0/+2
Currently the MS objects are contained in the TBF objects only. To allow for an extended life time after the TBF objects have been freed and to find them based on TLLI, a container for the MS objects is needed. This commit adds the container class and also adds the corresponding m_list member to GprsMs. Further integration into the PCU code is not yet done. Ticket: #1674 Sponsored-by: On-Waves ehf
2015-05-20llist: Add a C++ wrapper for linux_listJacob Erlbeck1-1/+2
This commit adds the LListHead class which is a wrapper around the linuxlist. It adds an additional member to refer to the container, since the container_of macro doesn't work properly with C++ classes. All functions and macros from linuxlist.h are support except for the entry macros (e.g. llist_entry, llist_for_each_entry, ...). To access the container (entry), an entry() method is provided instead: llist_for_each(pos, &elems) { pos->entry()->do_something(); } Sponsored-by: On-Waves ehf
2015-05-20ms: Add GprsMs class to hold per-MS informationJacob Erlbeck1-0/+2
Currently only TBF objects are used to handle the data flow between the MS and the SGSN. MS specific data (e.g. pending LLC frames, TLLI) is copied between successive TBFs. If all TBFs (uplink and downlink) are idle for some time, all information about the MS is discarded in the PCU. This makes the implementation of some features more difficult, e.g. proper TLLI and timing advance handling, connection based CS selection, and proper management of multiple TBF. This commit adds the GprsMs class that is intended to hold information directly related to the MS and to keep references to the active TBFs. The class is not yet integrated with the other PCU code. A GprsMs object container and MS specific fields (TA, CS) will be added in later commits. Note that calling detach_tbf() can possibly delete the MS object depending on the callback implementation. Ticket: #1674 Sponsored-by: On-Waves ehf
2015-03-29pcu: Add pcu_utils.h to Makefile.amJacob Erlbeck1-1/+2
Addresses: src/gprs_rlcmac_sched.cpp:26:23: error: pcu_utils.h: No such file or directory Sponsored-by: On-Waves ehf
2014-08-12tbf: Split out UL/DL TBF methods into separate filesDaniel Willmann1-0/+2
tbf_ul.cpp for UL TBF methods tbf_dl.cpp for DL TBF methods This commit contains no code changes. Ticket: SYS#389 Sponsored by: On-Waves ehf
2013-11-19rlc: Start to move things out of the tbf into the rlcHolger Hans Peter Freyther1-1/+2
Add remarks of possible broken behavior inside the tbf routines. Move the preparation (and init) into the new rlc.cpp file.
2013-11-07llc: Move the llc structure to a new header fileHolger Hans Peter Freyther1-1/+2
2013-11-07llc: Move the llc code out of the tbf.cpp into a new dedicated oneHolger Hans Peter Freyther1-1/+2
2013-10-30tbf: Move gprs_rlcmac_send_data_block_acknowledged into tbfHolger Hans Peter Freyther1-1/+0
We can now remove the gprs_rlcmac_data as the code has been moved into the tbf, pdch and bts.
2013-10-30pdch/tbf: Move gprs_rlcmac_rcv_data_block_acknowledged into the pdchHolger Hans Peter Freyther1-2/+5
Move the method into the PDCH. Extract the finding of TLLI into a new class called Decoding. Move the assemble and forward LLC frames into the TBF as it is poking in the internals of the TBF.
2013-10-30sba: Create a SBAController that will manage the sbas for a BTSHolger Hans Peter Freyther1-1/+2
The PollController is a friend of the SBAController and is allowed to access the internal list. The list is hidden from everyone else. This is done because the calculation of timeout should belong into the PollController and not into the SBAController.
2013-10-30sba: Move the sba code to a dedicated fileHolger Hans Peter Freyther1-1/+2
Move the code around and then turn it into an object...
2013-10-30ta: Create TimingAdvance class and make it belong to the BTSHolger Hans Peter Freyther1-1/+2
This allows us to easily flush the state in case a PCU/BTS connection is lost.
2013-10-30ta: Move timing advance related code into the ta.cpp fileHolger Hans Peter Freyther1-1/+2
2013-10-30encoding: Move the functions into the encoding classHolger Hans Peter Freyther1-1/+2
Add some TODO to this class. E.g. they could all work on the bitvec and the parameter handling could better.
2013-10-30encoding: Move encoding routines into a separate fileHolger Hans Peter Freyther1-1/+2
2013-10-30bts: Introduce a PollController that has the responsibility to pollHolger Hans Peter Freyther1-2/+4
For each frame indication received by the BTS the poll controller is asked to expire timedout entries.
2013-10-30bts: Introduce a singleton for the BTS and use it in the codeHolger Hans Peter Freyther1-1/+2
Compared to the previous code there will be a branch to get the global pointer so the code will be slightly slower than the previous version but it allows us to start creating objects but still use the code from C. It is best approach I have found so far. One downside of C++ is that by default talloc will not be used (unless we override the new operator to use talloc. Right now we need to memset the C data structure by hand. The benefit of enforcing a better structure should is more important though.
2013-10-30bts: Move struct gprs_rlcmac_bts and other structs into a bts.hHolger Hans Peter Freyther1-1/+2
Begin to make the BTS a real C++ object with real responsibilities. The biggest issue will be the pcu_vty.c that might not like C++ at all.
2013-10-30alloc: Move the two timeslot alloc algorithms to a dedicated fileHolger Hans Peter Freyther1-0/+1
2013-10-18tbf: Begin to add some structure to the tbf codeHolger Hans Peter Freyther1-2/+4
The TBF should use the IMSI to identify a block flow but all handling is spread across the entire code. Start to clean this up by moving relevant code into the tbf file. Afterwards one can clean up and add more internal structure.
2013-08-02tests: Move the RLCMACTest into the test directory and setup autotestHolger Hans Peter Freyther1-9/+2
2013-03-17Introduce new file for various measurementsAndreas Eversberg1-0/+1
The measurements include: - DL bandwidth usage - DL packet loss rate - DL measurements by mobile - UL measurements by BTS In order to receive DL measurements from mobile, it must be enabled via system information message at BSC.
2012-12-18Adding direct access to DSP of sysmoBTS for PDTCH trafficeAndreas Eversberg1-1/+34
In order to use this feature, sysmoBTS requires option "-M", otherwise the traffic is forwarded through socket interface. This is essential, if PCU runs on processor of sysmoBTS. The reaction time and delay of PDTCH frames could heavily degrade proper packet flow.
2012-07-25misc: Add the libosmocore CFLAGS to the CPPFLAGSHolger Hans Peter Freyther1-1/+1
libosmocore might not be in the standard include path, add the CFLAGS to the preprocessor flags. This is fixing the build on the Osmocom Jenkins.
2012-07-22Makefile.am: Actually install the pcu during 'make install'Harald Welte1-1/+3
2012-07-22Makefile.am: rename executable name from pcu to osmo-pcuHarald Welte1-3/+3
This makes more sense since the entire repository is called this way
2012-07-13logging: Add vty to allow definition/storage of debug levelsAndreas Eversberg1-2/+4
Note: This requires new libosomocore that allows to compile VTY headers with C++.
2012-07-12Merge branch 'jolly_new'Ivan Kluchnikov1-9/+9
Merge is based on jolly_new branch with two modifications. 1. Modified PCU L1 interface. pcu_l1_if.cpp - common functions for tx and rx messages on L1 interface. sysmo_sock.cpp - SYSMO-PCU socket functions. openbts_sock.cpp - OpenBTS-PCU socket functions. pcuif_proto.h - L1 interface's primitives. 2. Modified encoding of RLC/MAC Control messages, now we use structures and encode_gsm_rlcmac_downlink() function for encode control blocks (without hand-coding).
2012-07-06remove dependencies to openbsc/osmoggsn internalsHarald Welte1-18/+3
...and link against libosmogb (part of libosmocore.git)
2012-06-27Work on RLCMAC layer. Integration of scheduler and new packet transferAndreas Eversberg1-0/+2
2012-06-26Merge branch 'jolly'Ivan Kluchnikov1-3/+14
Merged jolly branch with master, fixed conflicts.
2012-06-23Split of L1 interface to be used with OpenBTS or sysmo-BTSAndreas Eversberg1-1/+8
The OpenBTS socket functions are moved from main to pcu_l1_if.cpp. New sysmo_l1_if.cpp is introduced. It used special unix socket interface to connect to sysmo-BTS. This is required to access CCCH/RACH and info about cell layout. Traffic is also forwarded via this interface, but it direct access of L1 baseband DSP will be added soon. In order to handle ready-to-send requests above l1_if, the transmit queue (for downlink blocks) is moved to gprs_rlcmac.cpp. The TBF instance additionally holds TRX and TS info, but this is only a hack currently. TBF instance requires more details about allocated ressources in the future.
2012-06-23Adding more OpenBSC object files to Makefile.amAndreas Eversberg1-1/+8
This is required, so it works in my environment. Might be revised soon.
2012-06-18remove dependencies to openbsc/osmoggsn internalsHarald Welte1-10/+2
...and link against libosmogb (part of libosmocore.git)
2012-06-14Makefile.am: Don't link lots of openbsc / sgsn / ggsn internal .o filesHarald Welte1-13/+0
this is probably a historic relict. None of them should be used, and I cannot see any actual use of them either. The only non-library code that we link now is libosmo-gb (ns/bssgp), which soon will be turned into a real library.
2012-06-14Add auto-foo (partial cleanup, master makefile/configure.acHarald Welte1-11/+7
2012-06-14move everything to src/ subdirectoryHarald Welte1-0/+89
The code corresponds to commit a9aa4777cc1144897a77dfb6c5c3d7325705251e in openbts-p2.8.git (Tue Jun 12 18:14:49 2012 +0400)