Commit Graph

361 Commits

Author SHA1 Message Date
Vadim Yanitskiy 0123232305 txtime_setter_impl: fix wrong time_hint reference 2017-12-09 20:16:44 +07:00
Vadim Yanitskiy 0aafe2856d Implement the 'burst_to_fn_time' block in C++ 2017-12-04 01:48:43 +07:00
Vadim Yanitskiy 0be5e5bcc8 preprocess_tx_burst: fix the output message
During the code refactoring (4bd990b), the first part of the
output message was accidently dropped. Let's fix this.
2017-11-30 13:08:30 +01:00
Piotr Krysik e3f34d9bca test_ab: Changed to non-inverted AB 2017-11-30 12:50:37 +01:00
Piotr Krysik ccd9ed9cab Going back to previous coding style - without returns 2017-11-30 12:48:01 +01:00
Vadim Yanitskiy 73857235f0 preprocess_tx_burst: fix the output message
During the code refactoring (4bd990b), the first part of the
output message was accidently dropped. Let's fix this.
2017-11-30 06:28:48 +07:00
Vadim Yanitskiy 2ce294219c txtime_setter: clean up and simplify source code
This change formats the block implementation source code
according to a mix of GNURadio and the Kernel coding styles.

The main changes are:

  - Limit line length to 80 columns
  - Preffer the opposite conditions
  - Do not use curly braces for single line loops / conditions

For more details, see:

https://wiki.gnuradio.org/index.php/Coding_guide_impl
https://www.kernel.org/doc/html/v4.10/process/coding-style.html
2017-11-29 23:11:14 +01:00
Vadim Yanitskiy 70bec2039a preprocess_tx_burst: clean up and simplify source code
This change formats the block implementation source code
according to a mix of GNURadio and the Kernel coding styles.

The main changes are:

  - Limit line length to 80 columns
  - Preffer the opposite conditions
  - Do not use curly braces for single line loops / conditions

For more details, see:

https://wiki.gnuradio.org/index.php/Coding_guide_impl
https://www.kernel.org/doc/html/v4.10/process/coding-style.html
2017-11-29 23:11:14 +01:00
Piotr Krysik 2344483869 Added a block for generating Access Bursts 2017-11-29 16:39:22 +01:00
Piotr Krysik ba8b0a95d3 Fix: protections in txtime_setter against late bursts and bursts in too distant future.
Fixing bursts in too distant future is a bit problematic and better way than just looking at tx_time difference from current time would be desirable.
This way of fixing that issue can still cause that tx part will do nothing for about 10 seconds (after switching frequency from a BTS1 (with fn1) to BTS2 (with fn2) when fn1>fn2).
2017-11-11 11:19:26 +01:00
Piotr Krysik f849fafd92 Changed input and output name for burst_type_filter 2017-11-11 11:14:26 +01:00
Piotr Krysik bfb47dca69 Fix: don't send SCH burst to the output if it wasn't correctly decoded
This had very bad effect of incorrect fn_time values coming into txtime_setter block.
They, subsequently, might have caused busts with tx_time values in distant future. The result on uhd sink is deadlock.
2017-11-11 11:12:02 +01:00
Piotr Krysik ccb5e689e1 Added tx bursts preprocessing block 2017-11-07 19:34:22 +01:00
Piotr Krysik d7efc05b79 Moved gsm_constants file to include directory 2017-11-07 19:33:22 +01:00
Piotr Krysik acc365f2f1 Added C++ version of burst type filter 2017-11-07 19:31:42 +01:00
Vadim Yanitskiy 962e2d83bb misc_utils/trx_burst_if: get rid of built-in timeslot filter
Since the API of 'Timeslot Filter' block was exposed, we can
get rid of built-in timeslot filter and use the proper methods.
2017-11-05 17:33:26 +01:00
Vadim Yanitskiy 6bac574686 misc_utils/trx_burst_if: get rid of clock interface
Clock indications are only required for BTS operation, while MS
can obtain current frame number from the messages on DATA interface.
2017-11-05 17:33:26 +01:00
Vadim Yanitskiy e601c366bd Refactor the 'TRX Burst Interface' block
The following changes were made:

  - Both implementation and headers were merged with misc_utils
  - Fixed namespace mess: was gr::grgsm, became gr::gsm
  - More accurate class name was chosen: "trx_burst_if"
2017-11-05 17:33:26 +01:00
Piotr Krysik 52917b1034 Merge branch 'ptrkrysik/trx' of https://github.com/ptrkrysik/gr-gsm into ptrkrysik/trx 2017-11-05 12:27:22 +01:00
Piotr Krysik 264fbf69f7 Corrected namespaces from grgsm to gsm 2017-11-05 12:25:51 +01:00
Piotr Krysik 517464c0a9 Added txtime_setter block (a c++ version of txtime_bursts_tagger Python block) 2017-11-05 12:23:15 +01:00
Piotr Krysik 5f1185edd4 change just to invoke automatic tests on TravisCI 2017-11-03 11:27:06 +01:00
Piotr Krysik d32ba5b471 Removed unused (and problematic during SWIG) part of time_spec_t and exposed time_spec_t in the library's ABI 2017-11-03 09:58:13 +01:00
Piotr Krysik 6e41d06bbf Corrections in fn_time 2017-11-03 09:56:49 +01:00
Piotr Krysik 8926c1f621 Correction in time_spec.cc 2017-10-31 13:01:43 +01:00
Piotr Krysik 1dd2afe367 Changed fn_time to use time_spec_t copied from libUHD 2017-10-31 12:57:26 +01:00
Piotr Krysik 34ce7a02f0 Added C++ version of fn_time 2017-10-31 11:30:59 +01:00
Piotr Krysik 96f2ea75b0 Correction needed to make TX and RX integration work 2017-10-16 15:47:08 +02:00
Piotr Krysik df978693eb Added timestamping of bursts in the gsm receiver 2017-09-27 21:58:24 +02:00
Piotr Krysik e18b431c4b Removing duplicated lines from cmake file 2017-09-24 11:25:30 +02:00
Piotr Krysik ebf8880709 Modification of the burst sink to read bursts with headers - incomplete 2017-09-19 08:07:14 +02:00
Piotr Krysik cb04d0dd50 Merge branch 'development' into ptrkrysik/trx
# Conflicts:
#	swig/grgsm_swig.i
2017-09-19 07:58:49 +02:00
Piotr Krysik 9b5617a3ef Corrections in the buildsystem 2017-09-18 21:36:06 +02:00
Piotr Krysik 184d7064a6 Corrections of cmake files 2017-09-13 12:46:38 +02:00
Piotr Krysik 3b06bdaa06 Correcting cmake file from lib directory 2017-09-13 09:41:20 +02:00
Piotr Krysik 42d1e19a2a Added cmake file for trx_interface 2017-09-13 09:33:47 +02:00
Piotr Krysik 3148ff80ce Merge branch 'development' into ptrkrysik/trx
# Conflicts:
#	lib/CMakeLists.txt
2017-09-13 09:31:52 +02:00
Piotr Krysik 0945cc5512 Changed organization of cmake files
Cmake files were added into subdirectories.
2017-09-13 09:17:50 +02:00
Piotr Krysik e6e787959f Merge branch 'fixeria/trx' into development
# Conflicts:
#	swig/grgsm_swig.i
2017-09-12 11:45:20 +02:00
Piotr Krysik dea057452f Added a function returning maintance version name 2017-08-25 21:55:41 +02:00
Piotr Krysik bb961c17fa Added versioning borrowed fron GNU Radio to gr-gsm 2017-08-24 15:35:42 +02:00
Piotr Krysik a6268a5bc1 Big update of copyright statements so they can be automatically processed to produce debian/copyright file 2017-08-23 16:02:19 +02:00
Piotr Krysik b9a87a18fb Moved openbts codes into a separate directory and updated their license statements so they can be automatically processed 2017-08-23 15:59:28 +02:00
Piotr Krysik 344e9d2f47 Merge branch 'libosmocore_integration' into packaging_piotr
# Conflicts:
#	python/receiver/gsm_wideband_input.py
2017-08-22 15:56:20 +02:00
Piotr Krysik 938681128b Merge refactoring of the receiver done in branch 'fixeria/receiver' of https://github.com/axilirator/gr-gsm into axilirator-fixeria/receiver 2017-08-21 09:26:05 +02:00
Piotr Krysik 45f99291a4 Merge branch 'fixeria/api' of https://github.com/axilirator/gr-gsm into axilirator-fixeria/api 2017-08-02 12:41:34 +02:00
Vadim Yanitskiy cc82cf0300 receiver_impl.cc: refactor the source code
This change formats the receiver implementation source code
according to a mix of GNURadio and the Kernel coding styles.

The main changes are:

  - Line length limit is 80 columns
  - Usage of /* comments */ is prefered
  - Do not use curly braces for single line loops / conditions

For more details, see:

https://wiki.gnuradio.org/index.php/Coding_guide_impl
https://www.kernel.org/doc/html/v4.10/process/coding-style.html
2017-07-24 19:59:46 +07:00
Piotr Krysik 6629abc5e0 Closes #290 - the problem with subtracting of timeslot number for timeslots 0,1,2. 2017-07-23 20:26:49 +02:00
Vadim Yanitskiy 04536ab41c flow_control: implement pass / drop filtering policies
This change introduces a set of three modes for flow control
filters, one of which is default behavor and two extra modes
else described below:

  - FILTER_POLICY_PASS_ALL
  - FILTER_POLICY_DROP_ALL

Both modes are opposite, and make a filter either unconditionally
pass or drop all the data one gets to the input. They would be
usable for some external usage.
2017-07-22 12:43:16 +07:00
Vadim Yanitskiy 6ee2c165d9 burst_sdcch_subslot_splitter: implement and expose GET/SET API 2017-07-21 07:34:05 +07:00
Vadim Yanitskiy fbfd836fc2 burst_sdcch_subslot_filter: implement and expose GET/SET API 2017-07-21 07:34:05 +07:00
Vadim Yanitskiy ccc7183e42 burst_fnr_filter: implement and expose GET/SET API 2017-07-21 07:33:56 +07:00
Vadim Yanitskiy 91195eb5bf burst_timeslot_filter: implement and expose GET/SET API 2017-07-21 07:04:30 +07:00
Piotr Krysik 5eb5db2fc1 Added clock offset measurement in ppm as it is usable for debugging. 2017-07-20 09:06:08 +02:00
Vadim Yanitskiy 5b7c60af7a trx_interface: implement built-in timeslot filter
There is a dedicated block named 'Burst Timeslot Filter', which
could be used, but one doesn't expose the API to change the
timeslot index 'on fly'.

This change implements built-in timeslot filter in 'TRX Interface'
block, which will be used until the proper block expose API.
2017-07-19 17:30:44 +07:00
Vadim Yanitskiy 1d6b628c5a trx_interface: set proper burst type in GSMTAP header
If received burst is a RACH burst, one should contain the RACH
synchronization sequence (GSM 05.02 Chapter 5.2.7) and long
guard period filled by 0x00.
2017-07-19 14:32:35 +07:00
Vadim Yanitskiy ac3a527c98 trx_interface: implement incoming data handler
This change implements a receive path for UL bursts, namely
the OsmoTRX style header conversation to GSMTAP.
2017-07-19 14:02:49 +07:00
Vadim Yanitskiy c36c49889c trx_interface: append two unused bytes at the end of messages
Despite the last two bytes at the end of messages on DATA
interface are not used, let's keep the protocol compatibility
and fill them by 0x00.
2017-07-16 23:25:01 +07:00
Vadim Yanitskiy 89fc14ba44 Implement transceiver interface
This change introduces a new block 'TRX Interface', which is aimed
to provide an interface for external applications, such as Osmocom
MS side stack implementation - OsmocomBB. Currently one allows to
exchange raw GSM bursts between GR-GSM and other applications.

Moreover, there is a new 'trx.py' application, which implements a
simple follow graph, where all demodulated bursts are being sent
to external application via UDP link provided by 'TRX Interface'.
OsmoTRX (Osmocom's fork of OpenBTS transceiver) like control
interface is used to initialize, configure, start and stop the
application. Messages on this interface are human readable ASCII
strings, which contain a command and some related parameters.
2017-07-07 22:12:52 +07:00
Piotr Krysik b31689d227 Changed mask for System Information type 2ter. Closes #281. 2017-06-11 20:30:56 +02:00
Piotr Krysik a081366dad Quick hack to interpret unencrypted assignment commands 2017-04-02 17:19:13 +02:00
Piotr Krysik 8f121c1e7c Added interpretation of SC (start ciphering) field in cmc extractor 2017-03-30 10:55:08 +02:00
Steve Glass 263f00d036 Fix operator precedence in comparisons 2017-03-02 20:40:22 +10:00
Piotr Krysik 369bdb37c1 Merge branch 'master' into collect-system-info 2017-02-16 20:51:36 +01:00
Piotr Krysik 654d652a73 Ressurected old frequency correction function 2017-01-23 21:53:48 +01:00
Piotr Krysik 9bc0fc0c59 Changed frequency estimator to the old one that worked better 2017-01-18 21:53:17 +01:00
Roman Khassraf 98581a8e92 Implemented system info collection block 2017-01-11 13:33:12 +01:00
Piotr Krysik 81f9700762 Merge branch 'development' into libosmocore_integration 2017-01-03 09:34:45 +01:00
Piotr Krysik 70c25a112a Changes in decoding:
-copied decoding routines from libosmocore to gr-gsm,
-made cmake files entries for new source files and added linking with libosmocodec,
-moved sch.c file to decoding folder.
2017-01-03 08:01:23 +01:00
Piotr Krysik 01f9c1975e Merge pull request #241 from romankh/cmc-extractor
Merging CMC extraction block written by @romankh
2016-12-29 13:12:16 +01:00
Piotr Krysik 25ae3e2066 Merge branch '213-3digit-mnc' of https://github.com/romankh/gr-gsm into libosmocore_integration 2016-12-29 13:01:48 +01:00
Roman Khassraf e5ddab3e1d #240: Implemented block for extraction of information from cipher mode command messages 2016-12-04 16:19:40 +01:00
Roman Khassraf ddd096e6b4 #213: Fixes 3-digit MNC 2016-11-28 21:57:19 +01:00
Roman Khassraf 1591cdebdf Fix for #232 (incorrect facch subtype) 2016-11-20 21:50:23 +01:00
aurelienduarte b52c15f968 Include of grgsm/endian.h allows for make on OSX
If this is not included the following error occurs during make.

gr-gsm/lib/flow_control/uplink_downlink_splitter_impl.cc:58:30: error: use of undeclared identifier 'be16toh'
2016-10-10 20:27:11 +02:00
Piotr Krysik 694ed81d7b TCH decoding with libosmocore 2016-10-02 18:56:04 +02:00
Piotr Krysik ea90c6d640 License statement in clock offset control 2016-10-02 18:55:30 +02:00
Piotr Krysik b8d33d90f7 Control channels decoding with libosmocore 2016-10-02 18:54:46 +02:00
Piotr Krysik ea34c017b5 Added license statements where it was missing 2016-10-02 18:53:43 +02:00
Piotr Krysik 61696edd01 SCH decoding with libosmocore 2016-10-02 18:51:43 +02:00
Piotr Krysik 5878225d8a Correction of comment in the decryption block 2016-09-28 11:53:51 +02:00
Piotr Krysik b516e6dcdb Moved control channels decoder to libosmocore implementation 2016-09-28 11:53:26 +02:00
Piotr Krysik a3405b285d Changed path (flow_control) and name of uplink_downlink_filter to splitter 2016-08-30 21:31:24 +02:00
Piotr Krysik d61f85ba6d Changed method of frequency estimation 2016-08-29 07:38:25 +02:00
Piotr Krysik 0a932e638d Commented out one include 2016-08-29 07:37:30 +02:00
Piotr Krysik d01e222f39 Removed call to delete_head_blocking that was removed from new gnu radio 2016-08-18 18:58:46 +02:00
Piotr Krysik 5c9afd38f0 TCH/F decoding correction - less wrong messages interpreted as voice frames 2016-08-18 18:57:02 +02:00
Piotr Krysik 601195bc18 Little corrections to uplink/downlink filter 2016-08-18 18:56:24 +02:00
Piotr Krysik 2bb54c8fcd Added uplink/downlink splitter 2016-08-16 16:05:23 +02:00
Piotr Krysik 8a77346c7d Merge branch 'master' of https://github.com/m-alizadeh/gr-gsm into m-alizadeh-master 2016-07-26 08:30:09 +02:00
Piotr Krysik 43af70d360 Don't compute requency offset when freq. correction was triggered during FCCH burst 2016-07-20 21:37:24 +02:00
Your Name 4e898834e4 modified: lib/demapping/tch_f_chans_demapper_impl.cc
modified:   lib/demapping/tch_f_chans_demapper_impl.h
2016-07-19 17:21:58 +04:30
Piotr Krysik cab0604a04 Corrected msg_to_tag and controlled resampler's headers 2016-07-18 10:39:31 +02:00
Piotr Krysik 74c4ca9627 Removed blocks related to old frequency correction loop (controlled const source and old clock offset corrector) 2016-07-18 10:23:24 +02:00
Piotr Krysik 83afe7390f Changed clock offset controller and company in order to remove from the gsm_input one of the resamplers. 2016-07-17 22:48:35 +02:00
Piotr Krysik 4a1ca9897b Changes in the buildsystem for new blocks 2016-07-15 13:39:19 +02:00
Piotr Krysik f7b3fc236d Removed unneeded prints from controlled resampler 2016-07-15 13:38:57 +02:00
Piotr Krysik 19028868cc Merge branch 'development' of https://github.com/ptrkrysik/gr-gsm into development 2016-07-15 13:21:44 +02:00
Piotr Krysik 0982673af1 New clock offset corrector and clock offset control 2016-07-15 13:14:24 +02:00
Piotr Krysik 74c4f2c14c New blocks (msg to tag and controlled resampler) related stuff 2016-07-15 13:12:46 +02:00