Commit Graph

14 Commits

Author SHA1 Message Date
Pau Espin 14cceb5dfb Get rid of libgtp for GTP-U
It doesn't make much sense to pull whole libgtp to implement only the
user plan side of GTP. Let's drop it and add a minimal GTP-U
implementation here.

Related: SYS#5516
Change-Id: I53ad4915aaed3bc7574036e963be10514e370fe2
2021-12-23 15:55:21 +01:00
Pau Espin a7dc04ef26 First implementation of the LLSK gtp SAPI
This first implementation uses libgtp to manage the GTPv1-U socket and
pdp contexts, as a proof of concept to have something working for now.
At a later step, it is expected to drop libgtp and use some adhoc code
to handle GTP-U.

Related: SYS#5516
Change-Id: I5a6f5dfc4e508c92adb35210b4dc576d64353366
2021-12-14 15:47:53 +01:00
Pau Espin b3af382157 First implementation of the LLSK audio SAPI
This first version can send and receive regular RTP, but does not talk IuUP.
Support for IuUP will be added in a future patch. This way we can
already test the whole LLSK<->RTP path.

Change-Id: I9909a7c054ddaabb1bb63d7d06331cc79f642b5d
2021-12-14 12:43:19 +01:00
Pau Espin cd1baf0649 Initial implementation of LowerLayer UD Socket
The LLSK socket is an interface allowing thid-parties to implement and
hook their RLC/MAC/RRC stack to osmo-hnodbe, which takes care of
interconnection with the rest of the RAN and core network (Iuh, RTP,
GTP-U, etc.).

Related: SYS#5516
Change-Id: Icaabb2206d6f141d4fba47dedf71f8ec37e6257d
2021-12-14 12:43:15 +01:00
Pau Espin d8da64bb46 Drop NAS and RANAP code and VTY commands
The higher level bits were used in originally imported hnb-test code in
order to control interaction with the HNBGW over the VTY. This is no
longer needed in osmo-hnodeb, as NAS is in layers above the ones being
handled by an hNodeB.
Regarding RANAP, most of it is going to be handled by the LowerLayer UD
socket peer to be introduced in the future, so we can drop most of it,
as in osmo-hnodeb we'll basically be speaking RUA to the HNBGW and
passing RANAP buffers transparently.
We keep the .c/.h files since some small helpers functions will be
ntroduced later on when adding support for the mentioned LL socket.

Related: SYS#5516
Change-Id: I6aae54734c1c4607beede19169f16bafe35b3a61
2021-11-30 11:02:52 +01:00
Pau Espin 807e52a2da Implement initial shutdown + reconnect FSM
The shutdown_fsm doesn't do much right now, but it's included there in
order to allow easy clean up of resources upon Iuh reconnect in the
future, as well as reset the lower layers.

Change-Id: Id35d692218af366843186b0966b62f65bb9eb620
2021-11-24 21:23:45 +01:00
Pau Espin 4310b0d57a Move Iuh code to its own module
The Iuh code will be further extended next to properly support
reconnect, and hnb will also gain proper shutdown support soon.

Change-Id: I6e94210ab06a34b70c61bb074c58d7b0f4ee75de
2021-11-24 21:22:38 +01:00
Pau Espin 24326610a6 Move protocol related code in main.c to related proto files
Change-Id: I771b3d3f61207137477eed2b316a5f670fb79ef2
2021-11-02 12:41:14 +01:00
Pau Espin c1307f75b2 Allocate g_hnb as a pointer, move code to hnb.c/h
Change-Id: I5ec61d2a72d55d182e1498939209b30b6e652467
2021-11-02 12:41:14 +01:00
Pau Espin 8403def059 Move hnbap related code to hnbap.c/h
Change-Id: I8356421169bebe1d411b05b19241ea639dc3f733
2021-11-02 12:41:14 +01:00
Pau Espin 8125fd0d95 Move existing vty code to its own vty.c/h file
Change-Id: I88107e9ed03ff8f807b57a3ea0d189fd70864861
2021-11-02 12:41:14 +01:00
Pau Espin 67a3c4a7c6 Import hnb-test from osmo-iuh.git
Import from osmo-iuh.git Change-Id Iba106dcc18e3d429b4b9808610a44ac29b798172,
with minimal renaming of s/hnb_test/hnb/ and required mangling to have
it compile and run.

Change-Id: I36fd4aa5d39222371bd36e9f540b91e36a26de43
2021-11-02 12:41:12 +01:00
Pau Espin 18ac28abd6 configure: link against libsctp
osmo-hnodeb calls sctp_recvmsg directly, which is provided by libsctp.
Hence, we need to depend and link on it.

Change-Id: I793d6fe8601cf9a8dd72bf6884b469204b513c11
2021-11-02 12:40:54 +01:00
Pau Espin 243ccbafd6 Add project skeleton
This commit contains all the relevant project structure to build the
osmo-hnodeb binary, its doc, tests, packaging, etc.

The osmo-hnodeb binary itself is still just an empty main().

Related: SYS#5516
Change-Id: I6ae3215ae4b956689d2adc88db7c3ead5df14f37
2021-10-21 13:48:46 +02:00