Commit Graph

906 Commits

Author SHA1 Message Date
p1-bmu 32154e7bc0 asn1dir: add ASN.1 specs from TCA eUICC Protection Profile Interop Format Test 2022-02-28 15:09:49 +01:00
p1-bmu ca7e9b4895 mobile: fix last GTPv1-C issues and introduce some basic tests, to be enhanced 2022-02-18 20:51:59 +01:00
p1-bmu b0cd1c45b1 mobile: fix APN decodig routine for good 2022-02-18 20:51:19 +01:00
p1-bmu 452a92c580 mobile: fix APN and DNN encoding and decoding routines 2022-02-18 20:31:06 +01:00
p1-bmu 5c5faacb3a mobile: initial support for GTPv1-C, without support for specific IE structures 2022-02-18 19:48:29 +01:00
p1-bmu 5f5f151358 cosmetic 2022-02-15 17:49:41 +01:00
p1-bmu 1ea3d66000 GTPv1: define root struct for IE 2022-02-15 17:49:31 +01:00
p1-bmu a4c3a06b63 mobile: prepare support for GTPv2 from 29.060 2022-02-14 17:57:44 +01:00
Benoit Michau 2f2cb954bc
Merge pull request #178 from axilirator/fixeria/rrctl
Add simple extNAS/RRCTL demo sending Detach Request
2022-02-04 20:38:52 +01:00
Vadim Yanitskiy 5723fc16c5 tools: add simple extNAS/RRCTL demo sending Detach Request 2022-02-05 00:06:48 +06:00
Vadim Yanitskiy c3d9fa8132 pycrate_osmo.RRCTL: fix wrong operator in RRCTLMsg.match() 2022-02-05 00:03:51 +06:00
p1-bmu 07a50e7563 Merge branch 'master' of github.com:P1sec/pycrate 2022-02-04 16:37:28 +01:00
p1-bmu a339c60d9a fix the readme part on the tool map_op_list.py 2022-02-04 16:37:24 +01:00
Benoit Michau f3f937d16e
Merge pull request #177 from axilirator/fixeria/fixes
setup.py: add missing 'pycrate_osmo' module to packages[]
2022-02-04 16:36:35 +01:00
Vadim Yanitskiy a4a5cf258a setup.py: add missing 'pycrate_osmo' module to packages[] 2022-02-04 19:43:24 +06:00
Benoit Michau 84cb0ddead
Merge pull request #175 from axilirator/fixeria/rrctl
pycrate_osmo: add RRCTL protocol definition
2022-02-01 14:07:21 +01:00
Vadim Yanitskiy b2b71e8f61 pycrate_osmo.RRCTL: add (U)SIM specific protocol extensions 2022-02-01 17:38:01 +06:00
Vadim Yanitskiy 768d6ec079 pycrate_osmo.RRCTL: reserve a range for RRCTL protocol extensions
The idea is to group protocol extensions and have one message
type (with 4 variations: Req/Ind/Cnf/Err) per group.  Similar
to the stack and heap allocation model in Linux, new entries
shall be added to the 'RRCTLMsgType' enum as follows:

  * regular messages - from the bottom downward,
  * extension groups - from the end upward.

The mask '11xxxx'B gives us 16 unique messages, one is reserved.
2022-02-01 17:37:44 +06:00
Vadim Yanitskiy 2520b19588 pycrate_osmo.RRCTL: add SecMode message for setting EEA/EIA 2022-02-01 17:37:44 +06:00
Vadim Yanitskiy d7804463f6 pycrate_osmo.RRCTL: add Paging and Param messages 2022-02-01 17:37:44 +06:00
Vadim Yanitskiy 64f10f47b1 pycrate_osmo: add initial RRCTL protocol definition
RRCTL is a simple protocol (inspired by Osmocom's L1CTL) that allows
an external NAS entity to control the RRC layer of srsUE [1][2].
The basic primitives are PLMN search, selection, and PDU transfer.

The following message types are implemented:

  * Reset - reset internal state of the external NAS interface;
  * NetworkSearch - initiates PLMN (carrier) search on pre-configured
                    EARFCN (Absolute Radio Freqency Number);
  * NetworkSelect - binds the UE to one of the previously detected
                    carriers (see `NetworkSearch`) defined by a
                    given pair of MCC and MNC;
  * ConnEstabish - establishes connection to the serving cell
                   (previously selected using `NetworkSelect`)
                   with a given cause and NAS PDU;
  * ConnRelease - releases previously established dedicated connection;
  * ConnData - encapsulates a received (Downlink) or to be transmitted
               (Uplink) NAS PDU (the former also contains LCID).

[1] https://github.com/srsran/srsRAN (original project)
[2] https://github.com/axilirator/srsLTE (extNAS fork)
2022-02-01 17:37:40 +06:00
p1-bmu 55594c6ff2 test: add an additional GTPv2-C pdu 2022-02-01 11:57:23 +01:00
Vadim Yanitskiy 12c13ed98d pycrate_osmo: add missing SEDebugMux module to __init__.py 2022-02-01 16:43:33 +06:00
Vadim Yanitskiy a3013b3ea6 pycrate_mobile: raise PycrateErr in {BufBCD,PLMN}.set_val()
Without this patch, an unexpected value (e.g. an integer) passed
to {BufBCD,PLMN}.set_val() would be silently ignored and the
actual value would remain unchanged.
2022-02-01 16:43:33 +06:00
p1-bmu 0630cc425d GTPv2c: fix cause extension transparency 2022-02-01 11:13:01 +01:00
p1-bmu a2c33338e6 tools: extend pycrate_map_op_info to also support Camel operations 2022-01-21 16:22:41 +01:00
p1-bmu b6e12c6eac media: fix filter dict in PNG 2022-01-21 12:01:25 +01:00
p1-bmu 356c5db3d8 mobile: fix Q.931 AccessTransport structure in ISUP 2022-01-21 09:00:10 +01:00
p1-bmu f90d265160 asn1rt: enhance the possibilities for per-object BER encoding variations 2022-01-19 14:46:41 +01:00
Benoit Michau 97291e5d5e
Merge pull request #171 from axilirator/fixeria/sedbgmux
pycrate_osmo.SEDebugMux: add inner message definitions
2022-01-19 10:27:06 +01:00
Vadim Yanitskiy cce155d71d pycrate_osmo.SEDebugMux: add inner message definitions 2022-01-19 03:48:01 +06:00
Vadim Yanitskiy 8f0d39af4f pycrate_osmo.SEDebugMux: use camel case for field names
This way the protocol definition is closer to the original DebugMux
terminology found in format strings of the firmware images.
2022-01-19 03:46:05 +06:00
Vadim Yanitskiy 43ef5aa80b pycrate_osmo: s/SEDebugMuxMsg/DebugMuxFrame/
Strictly speaking, what we have in SEDebugMux.py is a frame, which
may optionally contain a message.  Let's rename the class to avoid
confusion.
2022-01-19 03:46:05 +06:00
Benoit Michau d12bbccf1d
Merge pull request #170 from axilirator/fixeria/fixes
pycrate_osmo/L1CTL: fix wrong parent class in L1CTLTrafficInd
2022-01-14 12:59:28 +01:00
Vadim Yanitskiy f8aa13b958 pycrate_osmo/L1CTL: fix wrong parent class in L1CTLTrafficInd 2022-01-14 15:00:27 +06:00
p1-bmu 6a447666ed osmo: add extra dependency info for crcmod in the readme and setup 2022-01-14 09:46:20 +01:00
p1-bmu ad6678a071 osmo: fix file header for SEDebugMux and add a description in the README 2022-01-14 09:40:36 +01:00
Benoit Michau ed5913e4b9
Merge pull request #169 from axilirator/fixeria/sedbgmux
pycrate_osmo: add Sony Ericsson DebugMux frame definition
2022-01-14 09:25:08 +01:00
Vadim Yanitskiy c0790fbd98 pycrate_osmo: add Sony Ericsson DebugMux frame definition
DebugMux is a vendor specific interface exposed by nearly all old
Sony Ericsson phones and modems.  Similar to the Qualcomm's Diag
interface, DebugMux can be used to obtain logging messages from
different sub-systems, including the baseband.

Unfortunately, Sony Ericsson never published any documentation
describing the protocol.  All information was obtained by analyzing
serial port traces and reverse-engineering DebugMuxSrv.exe.
2022-01-14 02:51:02 +06:00
p1-bmu 45da0268e3 asn1dir: add ETSI ITS IS spec 2021-12-15 10:25:12 +01:00
p1-bmu 77e70e48cd asn1c: bypass WITH COMPONENTS constraints applied to formal parameters 2021-12-15 09:09:24 +01:00
Benoit Michau 4059af03c4
Merge pull request #163 from jewalt/fix161
fix: handle decode of _FreqListRange for Range512,256,128
2021-12-08 12:43:39 +01:00
p1-bmu f62d031ae3 ether: fix VLAN type automation, and some more cleanup 2021-12-06 16:35:43 +01:00
p1-bmu e1bd91c781 asn1c: fix CHARACTER STRING definition 2021-12-01 08:41:32 +01:00
jewalt 722ee3e6d3 fix: handle decode of _FreqListRange for Range512,256,128
Since Range512, Range256, and Range128 are all _freqListRange and have
the same basic decode operation, they are decoded the same, but Range256
and Range128 add the decoded ARFCNs to the origin ARFCN mod 1024.
Range512 does not add to the original ARFCN.
2021-11-29 15:37:05 -07:00
p1-bmu 26c1a0a6bd asn1: update TCAP-MAP module with MAP rel.16 2021-11-18 15:19:54 +01:00
p1-bmu 4c00269b85 Merge branch 'asn1c_2021' 2021-11-10 16:34:20 +01:00
p1-bmu b43d5ef37e asn1c: disable ITS IEEE1609 2.1 which does not compile 2021-11-10 16:31:52 +01:00
p1-bmu e64f914b82 asn1c: add more ITS modules 2021-11-10 16:31:03 +01:00
p1-bmu dafd8b4ad8 asn1c: add few more ETSI ITS modules 2021-11-10 16:28:26 +01:00