summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2022-02-03fw: fix build with arm-none-eabi-gcc 11.2.0fixeria/burst_indSteve Markgraf1-1/+1
2022-02-03host/osmocon: fix setting custom baudrate for CP210xVadim Yanitskiy1-5/+5
Sniffing requires higher baudrates, so in serial_up_to_eleven() we try first to set a non-standard baudrate=406250, which is known to work well with USB-UART converters based on FTDI's FT232 chip. Contrary to the FTDI's converters, CP210x based ones cannot be configured to use a non-standard baudrate directly. They require special mappings to be present in the EEPROM, so then using a setting baudrate=B460800 would actually make it use 406250. Normally, setting baudrate=406250 should fail for CP210x, so we fall-back to setting baudrate=B460800 if I_HAVE_A_CP210x is defined. However, for some weird reason, osmo_serial_set_custom_baudrate() *succeeds* setting non-standard baudrate=406250, what makes osmocon unable to communicate with the firmware. This looks like a regression in libosmocore, so let's try to work it around by moving the baudrate=406250 setting into the else block. Change-Id: I6c8a8227e5e5862a0f6b4121a6e67a9a2dda2a6d
2022-02-03layer23/ccch_scan: handle SI Type 1 in dump_bcch()Vadim Yanitskiy1-0/+14
Change-Id: I7a27d96070872a1b89809aab1a0d75608ef18d74
2022-02-03layer23/ccch_scan: fix unused variable in local_burst_decode()Vadim Yanitskiy1-2/+0
Change-Id: I647c39a7d75c3b05bf36eb6d07f934228d00cebf
2022-02-03fw: Disable backlight for the sniffing fwSylvain Munaut5-9/+9
No need to waste battery life Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03[HACK] Disable neighbor measurement taskSylvain Munaut1-1/+1
We really don't care about this and this seems to interfere with sync for some reason ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03[HACK] Add burst deciphering supportSylvain Munaut1-2/+69
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03[HACK] host/layer23: Add local burst processing for cleartext burstsSylvain Munaut4-1/+269
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03[HACK] host/layer23: Wire application logic for a simple demo sniff appSylvain Munaut1-3/+168
This listen for IMM.ASS and follows them Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03[HACK] Disptach the received BURST_IND with a signalSylvain Munaut2-0/+44
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03[HACK] Increase speed of l1ctl to 408250bps after bootVadim Yanitskiy6-5/+37
This is required to deal with the increased traffic of a passive listener Note that it break the 'auto-restart' of osmocon when active because the bootloader will send the prompt at 115200 baud and we won't see it ... Change-Id: I59e1f88e057c5a4e3605c55fb14436645339447b Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03fw/layer1: Replace all dedicated multiframe task with sniff codeSylvain Munaut1-100/+92
This way, a dedicated mode assign makes it dump all the data Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03fw/l1: Add sniffing primitivesSylvain Munaut3-1/+284
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03target/fw/dsp: Add & load the dsp sniffer patchSylvain Munaut2-2/+48
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2022-02-03target_dsp/calypso: Add a custom DSP patch for burst sniffingSylvain Munaut3-1/+204
Load it, then set gprs_install_address to 0x015c and then task 23 will be a raw sniffer. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2021-12-14treewide: remove FSF addressOliver Smith268-1072/+0
Remove the paragraph about writing to the Free Software Foundation's mailing address. The FSF has changed addresses in the past, and may do so again. In 2021 this is not useful, let's rather have a bit less boilerplate at the start of source files. Change-Id: I73be012c01c0108fb6951dbff91d50eb19b40c51
2021-11-25gprsdecode: Don't leak memory in gsmtap_sendmsg()Harald Welte1-1/+1
Change-Id: Ib9e439ad6f24c573abb6da1523713a669898d23f Depends: libosmocore I106b09f2a49bf24ce0e8d11fd4d4ee93e9cafdf5 Related: OS#5329
2021-11-15logging: use meaningful default loglevelsPhilipp Maier2-20/+20
Some logging categories use LOGL_INFO or even LOGL_DEBUG. Lets set those to LOGL_NOTICE to have a less crowded default log output. Change-Id: I3faefccae2218b17bd942bc2afac7d8e515897b7 Related: OS#2577
2021-10-16layer23/osmocon: require libosmocore >= 1.5.0 in configure.acHarald Welte2-2/+2
This should give a meaningful error message if people use too old libosmocore. Change-Id: I7d9950b5eaa836ed1ac86045bd5364fed221e369
2021-10-08262-10 is "DB Netz AG" and not "DB Systel"Harald Welte1-1/+1
Change-Id: Idbce4bade4305fabbedcf15c5bd9253fbb371744
2021-10-03trx_toolkit: support setting artificial delay for TRXCVadim Yanitskiy2-0/+16
Change-Id: Idb1ef445bc14a6312f08a83ecacc3a938b0e1d70 Related: OS#5245
2021-07-04trxcon/scheduler: unify and enrich decoding error messagesVadim Yanitskiy4-15/+8
Regarding the removal of burst_mask2str() from the TCH/H handler, it does not make sense to print it because the mask is already shifted and an earlier logging should already contain this info. Change-Id: I42d20e2da73c21ca366dd246244cd716c8ccb459 Related: OS#4823
2021-06-16trxcon/trx_if: send NOPE indications if there is no burstVadim Yanitskiy1-5/+4
In a typical setup operating on the real radio interface, it's the duty of the transceiver (e.g. osmo-trx) to send NOPE.ind to the L1 implementation (e.g. osmo-bts-trx). However, in a virtual environment for ttcn3-bts-test we use a fake transceiver, which due to its simplicity cannot send NOPE indications itself. The lack of queues and buffering does not allow us to implement NOPE indications in fake_trx.py, so the easiest approach is to generate them from trxcon. Send TRXD PDUs without the burst bits, and fake_trx.py will tranform them info NOPE.ind for us. Change-Id: I1c7f1315b8ef44f651efd6a22fb5b854f65c0946 Related: SYS#5313, OS#1569
2021-06-16trxcon/scheduler: introduce and use struct sched_burst_reqVadim Yanitskiy10-162/+146
Similar to what we do in osmo-bts-trx, group everything related to an Uplink burst into a structure. Pass a pointer to this structure to the logical channel handlers. This makes the code easier to read, and facilitates sending NOPE indications to the transceiver (will be introduced in the upcoming patch). Get rid of sched_trx_handle_tx_burst(), and instead just call sched_trx_a5_burst_enc() directly from sched_frame_clck_cb(). Change-Id: Id45b27180c233fdc42ae1ef0b195554dd299a056 Related: SYS#5313, OS#1569
2021-06-16trxcon/scheduler: cosmetic: move TDMA frame number calculationVadim Yanitskiy1-7/+5
Change-Id: I79efdfa543d37889dc6749eb25aab4e1639749c6
2021-06-16trx_toolkit/transceiver.py: allow NOPE.ind on inactive timeslotsVadim Yanitskiy1-1/+2
Change-Id: I27a3c8897cb82f6c264d34702c4ec64561bb9809 Related: SYS#5313, OS#1569
2021-06-09host/layer23/ccch_scan: skip CCCH frames with wrong lengthVadim Yanitskiy1-0/+7
It's not clear why do we get frames with unexpected length, but we definitely should not crash. Just log and ignore them. Change-Id: I85392becbffdb3ba7365decfd8f3769abe3c02c7 Related: OS#5171
2021-06-02trx_toolkit: add primary/shadow indicator for TRXDv2 PDUsVadim Yanitskiy1-1/+2
Change-Id: I0a3ad4f0bda56b93e0ab8bf82b6b3758831edf60 Related: SYS#4895, OS#4941, OS#4006
2021-05-03trx_toolkit: use RxMsg/TxMsg instead of TRX2L1/L12TRXVadim Yanitskiy12-121/+117
I intentionally do not use 'Downlink' and 'Uplink' terms in this project because both MS and BTS transmit and receive on the opposite directions. A burst coming from demodulator may be a Downlink or an Uplink burst depending on the context, so we definitely need more precise terms. Back then when I started to work on TRX toolkit, I decided to use the 'TRX2L1' and 'L12TRX' for receive and transmit directions respectively. Now I find them hard to read, so let's replace them with 'Rx' and 'Tx'. Change-Id: I688f24a3c09dd7e1cc00b5530ec26c8e8cfd8f7c Related: OS#4006, SYS#4895
2021-05-03trx_toolkit/data_msg.py: remove obsolete documentationVadim Yanitskiy1-170/+3
We do have TRXC/TRXD documentation in osmo-gsm-manuals repository. These big comments are out of sync with what we have in the manuals, so let's better remove them to avoid maintaining docs in several places. Change-Id: I47786cf3039f712efadc85bc4e1c3ae89e79ff25 Related: OS#4006, SYS#4895
2021-05-03trx_toolkit/data_msg.py: update entries in enum ModulationVadim Yanitskiy1-5/+7
Change-Id: Ia96b263bbb162b6c40f2cf81616118cc297299a5 Related: OS#4006, SYS#4895
2021-05-03trx_toolkit/test_codec.py: add missing sub-test with key=0x88Vadim Yanitskiy1-0/+4
Change-Id: If8e2ebedc48fecc4c54c71e40cadb0f3273602c5
2021-05-03trx_toolkit/ctrl_if_trx.py: fix undefined variable 'trx'Vadim Yanitskiy1-1/+1
Change-Id: I5c06fa5183b4d04cbc0c68327a062b320477344c
2021-05-03trx_toolkit/fake_trx.py: use raw string notation for regexVadim Yanitskiy1-1/+1
This way there is no need to escape backslashes in regex. Change-Id: I1b2b6675851275bd5285ffc287410535b22055ae
2021-04-30trx_toolkit/gsm_shared.py: s/GSM_BURST_LEN/GMSK_BURST_LEN/gVadim Yanitskiy3-7/+7
Change-Id: I7268196eb9fd822f0e7b65899e4c83c48a20ba5b
2021-04-30trx_toolkit/trxd_proto.py: fix missing field name for codec.SpareVadim Yanitskiy1-2/+2
Change-Id: I110dbcebf86cf978f2de7275a91c48b999fade32 Fixes: I482f72fd9305c51f43a0339d03904fb693d90ac9 Related: OS#4006, SYS#4895
2021-04-30trx_toolkit/trxd_proto.py: fix encoding of TRXDv0 Tx PDUsVadim Yanitskiy1-3/+4
Change-Id: I9da59f7e7c47dd1cac833839165ba05de6b18144 Related: OS#4006, SYS#4895
2021-04-29trxcon: fix legacy length expectations for TRXDv0 Rx PDUsVadim Yanitskiy1-1/+1
158 is basically: 8 + 148 + 2, where the last two are padding bytes sent by legacy TRXDv0 transceivers. We don't need them, so do not drop PDUs without these leggacy padding bytes. Change-Id: I6c0734bc4669ccde2a93940c9cf50fdbbd67cb00
2021-04-15trx_toolkit: change coding of 'PWR' and 'SCPIR' fieldsVadim Yanitskiy1-31/+6
During an internal discussion, it was decided to keep field 'PWR' as-is and move 'SCPIR' into a separate octet. This is easier to parse, less confusing, and would save us some CPU cycles. Change-Id: I482f72fd9305c51f43a0339d03904fb693d90ac9 Related: OS#4006, SYS#4895
2021-04-12trx_toolkit: define TRXDv2 PDUs using declarative codecVadim Yanitskiy1-6/+88
Change-Id: If356d285006c0b9b57879d0499b8144eca820cab Related: OS#4006, SYS#4895
2021-04-08trx_toolkit: define TRXDv0/v1 PDUs using declarative codecVadim Yanitskiy1-0/+120
Change-Id: I739ae5da22c603fb2cf1e84d3a79fb1a6e7343b6 Related: OS#4006, SYS#4895
2021-04-08trx_toolkit: make codec.py work with EOL Python 3.5Vadim Yanitskiy1-12/+12
Our build system is based on Debian 9 and EOL Python 3.5, so we have to maintain backwards compatibility (sigh). Some type hints moved to comments, some had to be commented out completely. Hopefully, we can 'un-vandalize' the code by reverting this change once there will be no requirement to support EOL stuff. Change-Id: I7211cfbb7549b6e700aa3dd44464ff762fd51185 Related: OS#4006, SYS#4895
2021-04-08trx_toolkit: check in simple declarative codecVadim Yanitskiy2-0/+1000
Change-Id: I7ff46b278c59af3720ee7f3950ea5a8b2f1313e1 Related: OS#4006, SYS#4895
2021-04-08trx_toolkit/data_msg.py: add type hints to static methodsVadim Yanitskiy1-4/+5
Change-Id: I06fd8bc7418700de40467fd63a08da2bc2abcea2
2021-03-14trx_toolkit/udp_link.py: cosmetic: setblocking() takes boolVadim Yanitskiy1-1/+1
Change-Id: I9c4fa8cb7c237f3b9e34ba236b6507da5c668aee
2021-03-01trx_toolkit/data_msg.py: use uppercase for KNOWN_VERSIONSVadim Yanitskiy4-8/+8
Change-Id: Ie4dcc8e91115c514ace243a95a9b44a17cd976b4 Related: OS#4006, SYS#4895
2021-03-01trx_toolkit/data_msg.py: use tuple for DATAMSG.known_versionsVadim Yanitskiy1-1/+1
Change-Id: I79de5fe478297e1850d9582426888411a0189d3f Related: OS#4006, SYS#4895
2021-03-01trx_toolkit/data_msg.py: decorate abstract methods as suchVadim Yanitskiy1-6/+7
Change-Id: I27fdcfdabc2b5318ab3e958d2e5446e670fe9035 Related: OS#4006, SYS#4895
2021-03-01trx_toolkit/data_msg.py: convert comments into docstringsVadim Yanitskiy1-47/+75
Change-Id: I856b54fd1baca4ae0edd2aa59be6a76372cef667 Related: OS#4006, SYS#4895
2021-03-01trx_toolkit/data_msg.py: do not instantiate abstract class DATAMSGVadim Yanitskiy1-5/+5
Change-Id: I811f67ae030ccd93e1c6a421097cec36ca01cbf9 Related: OS#4006, SYS#4895