Commit Graph

20 Commits

Author SHA1 Message Date
Pau Espin c0ba710d6b llc: Initial support for GRR-UNITDATA.ind/req
This allows forwarding GRR-UNITDATA.ind/req up & down the stack, to be
on pair with the BSSGP LLC SAP.

Change-Id: I6a4454b4aa2c96e1f4ce7e2a5d5aba8ec1cf3f60
2023-01-23 20:56:41 +01:00
Pau Espin 94dfdc8bfd llc: Allow app provided callbacks to retain ownership of passed primitive
This way the app can, for instance, simply forward the primtiive pointer
from LLC callback to SNDCP layer, which will in the end take the
ownership of the primitive and free it.

Change-Id: I6ea91b8f190a399c4bcf6c7cba9a65809aaf3ddb
2023-01-12 15:38:32 +01:00
Pau Espin df5a72f556 llc: Log error loading gprs chiper plugins
Change-Id: Ie0438b444c2aff8991736806256fb67b59ee8bcc
2023-01-12 15:38:32 +01:00
Pau Espin f2c6bb980d llc: Initialize gprs_cipher
Change-Id: Ifac6239a3695b69f694eb55574de64a62b0787ed
2022-12-23 13:32:44 +01:00
Pau Espin 91c87d6907 llc: Proper separation of public & private APIs, Introduce llc_prim API
Most of the existing (and added) data structures are kept private, since
most of those don't really need to be used outside internal code in the
library.

Most if not all the interaction from upper and lower layers  towards LLC
is now done through the new llc_prim pubic interface. This interface is
based on 3GPP TS 44.064 section 7.1.2.

This commit also implements some of the code paths of the public API by
means on importing LLC code from osmo-sgsn.git commit
57b63875c762a784127a13becd1c2549ca6c5454.
The import of code cannot be done in a separate commit since existing code
in osmo-sgsn.git is low quality and has tons of layer violations in all
directions.
Hence, this commit aims at being an initial point of having some working
LLC stack by means of a few unit tests, but by no means aims to be a
total working implementation. Some code paths are missing; bugs are
expected at this point.

Related: OS#5502
Change-Id: I588eb576b2703262f4ab9566ec362920d8390cfd
2022-12-21 04:49:08 +07:00
Pau Espin f6e4b3be4c llc: rework logging, add LOGLLC macro
Change-Id: I8ad3267f890a21b6c935b36b256b00bd0a4da8d6
Related: OS#5502
2022-12-21 04:49:08 +07:00
Pau Espin 05a16204f9 llc: add enum osmo_gprs_llc_{location,prim_sap}
Change-Id: I5606c0b41196f25adbc00cfdce9927daaed9a901
Related: OS#5502
2022-12-21 04:48:19 +07:00
Pau Espin 1868001ee0 llc: add libosmogsm dependency
libosmogsm is needed for the follow-up patch [1].

Change-Id: Iee45fb87905ea29df02a48003396bde27e6c550c
Related: [1] I588eb576b2703262f4ab9566ec362920d8390cfd
Related: OS#5502
2022-12-21 03:46:08 +07:00
Pau Espin 384172005c llc: fix typo: OSMO_GPRS_LLC_SAPI_SNDCP{12->11}
Change-Id: Icee190d0e20044d3808a8b1beb237a987a795d8e
Related: OS#5502
2022-12-21 03:16:08 +07:00
Vadim Yanitskiy 1880e28bbc llc: implement Exchange Identification (XID) codec
Change-Id: I16b3f7ab82c489144098aad0dccc4c67d8382c67
2022-09-28 23:01:16 +07:00
Vadim Yanitskiy 11d55e8fc4 llc: add missing enum osmo_gprs_llc_xid_type values
See 3GPP TS 44.064 version 16.0.0 Release 16, table 6.

Change-Id: Ifdca0c742727a030008a01848153c23e0e0017bd
2022-09-26 17:12:34 +07:00
Vadim Yanitskiy ed231df931 llc: add value-string for enum osmo_gprs_llc_xid_type
Change-Id: I90b6a1aa4e13984f4c43245df1308d0c3f82636f
2022-09-26 17:12:34 +07:00
Vadim Yanitskiy 0b5a816356 llc: make logging category configurable
Similar to Icfef6de126304da81120f1d7b212992ead3409aa, let's add
osmo_gprs_llc_set_log_cat() allowing the API users to change
logging category for libosmo-gprs-llc (DLGLOBAL is default).

Change-Id: I9deb794db1c80257ba81523f815232208381bc27
2022-09-22 01:54:07 +07:00
Vadim Yanitskiy 76ac335541 llc: osmo_gprs_llc_hdr_dump[_buf](): also print SAPI name
Change-Id: I95763e622bb3c3678c06901ddaecfc200d359d8d
2022-09-22 01:02:21 +07:00
Vadim Yanitskiy 0963447322 llc: add struct value_string osmo_gprs_llc_sapi_names[]
Change-Id: I8ae048ab9e6b63697951fa3f74ce671c88328f5f
2022-09-22 01:02:21 +07:00
Vadim Yanitskiy c1ca5406bc llc: implement LLC PDU codec based on code from osmo-sgsn.git
osmo-sgsn.git 13ccbc1e6120fe78f6f9f950d7242090920ca41b

Change-Id: I61d7e2e6d0a8f2cdfc2113e637e447dc428cc70d
2022-09-22 00:56:15 +07:00
Vadim Yanitskiy bae1ec285b llc: add -export-symbols-regex '^osmo_' to CFLAGS
Change-Id: I7fac3ef730ea4b2719002dd61289b22c424f43f4
2022-09-18 20:45:44 +07:00
Vadim Yanitskiy 4762fcc885 llc: import FCS (CRC24) calculation API from osmo-sgsn.git
osmo-sgsn.git fb6cf3221ef4989441c09a650011e4a334c37d12

Changes made:

* Add 'osmo_' prefix to gprs_llc_fcs(),
* osmo_gprs_llc_fcs() takes size_t and returns uint32_t,
* crc24_calc() takes size_t.

Change-Id: Ib4465c289d9ef2a1b8ef5730c559bc799bb1f012
2022-09-18 20:45:44 +07:00
Vadim Yanitskiy fcd76ba2d1 llc: add definitions from 3GPP TS 44.064 section 6.4
Change-Id: I6d0e1a878fb80c57a901da08798620a6ea4471a4
2022-09-18 20:45:44 +07:00
Vadim Yanitskiy 2639b78795 Initial libosmo-gprs-llc library skeleton
Change-Id: Ia537acc6f4e6ab576dc7959d427b80f62c474296
2022-09-02 00:58:05 +07:00