Commit Graph

14 Commits

Author SHA1 Message Date
Oliver Smith 823b88873c packaging: depend on libosmocore >= 1.7.0
Require the same libosmocore version in configure.ac and rpm spec as
already set in debian/control.

Change-Id: I701f1aacca22a697f35aba0041a71945c5aea107
2022-08-22 11:37:07 +02:00
Vadim Yanitskiy 6ec51e63e7 configure.ac: do not require unused dlopen
Change-Id: Ic012f7b19a46ee38db0172b07bad2098567192b0
2022-08-16 23:47:53 +07:00
Neels Hofmeyr 610eec3b7c RPM: fix .spec file
Change-Id: Ie2fa0770b94af8637483434068b7c0df4b4272c6
2022-08-12 04:44:27 +02:00
Neels Hofmeyr 2eca9989be configure.ac: drop dependencies on vty and ctrl
Change-Id: Idea223e9b039241dd35c735922b8794573730fc3
2022-08-12 01:19:55 +02:00
Vadim Yanitskiy a6fabf75b5 configure: fix warning: AC_OUTPUT should be used without arguments
Change-Id: I71fc8dc78b8b10628ef0533c69e42c0298fb27df
2022-08-03 03:16:11 +07:00
Vadim Yanitskiy 5d5597d104 configure: fix AC_CONFIG_MACRO_DIRS related warnings
Create m4/.gitkeep to eliminate the following warning:

  aclocal: warning: couldn't open directory 'm4': No such file or directory

Add 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac to as suggested:

  libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac

Change-Id: Id9d605490c4b403b99ed54745838cc9f242030c3
2022-08-03 03:13:18 +07:00
Neels Hofmeyr 2f102058ca install libosmo-pfcp
The first user of this is osmo-hnbgw, to implement GTP mapping via a
UPF.

Related: SYS#5895
Change-Id: If4465095000a898296d69d5b725507f909c87aa3
2022-06-17 12:09:25 +02:00
Neels Hofmeyr d39783cd17 install libosmo-gtlv
Related: SYS#5895
Change-Id: I9f4651b6bee457583aba99052dc82bbf675515e6
2022-06-17 12:09:25 +02:00
Neels Hofmeyr 5d8bff6ba0 add initial FSM design charts
Related: SYS#5599
Change-Id: I55474daa6bb204a0fe7da0a3bf888bb7d1c46677
2022-06-16 13:04:33 +02:00
Neels Hofmeyr d6ac69d6f6 add pfcp msg test
Related: SYS#5599
Change-Id: I30bdfc66a8f96c0639513ef406e9b66525dced6d
2022-06-16 13:04:33 +02:00
Neels Hofmeyr 8b58faa4c2 libosmo-gtlv: add TLIV capability
During code review, it was indicated that some TLV protocols that we
will likely deal with in the near future also employ an I, and instance
value of a tag. Add TLIV support.

A usage example for a manually implemented TLIV structure is found in
tests/libosmo-gtlv/gtlv_test.c.

A usage example for a generated TLIV protocol is found in
tests/libosmo-gtlv/test_tliv/.

Related: SYS#5599
Change-Id: I0a076e54dfba6038cc779cb7c8f3967d212226aa
2022-06-16 13:04:33 +02:00
Neels Hofmeyr e011b04c6b libosmo-gtlv: add C code generator for IE structs and arrays
Defining a protocol of message types with lists of IEs bears a lot of
repetitive, copy-paste-error-prone writing out of data structures.
Add a third layer to libosmo-gtlv, which allows helpful code generation.

By non-repetitive data structures that briefly describe the protocol's
messages and IEs, generate possibly repetitive IE list arrays and
decoded-struct definitions automatically, avoiding grunt work errors.

I tried C macros for this at first, but it became too convoluted.
Generating C code that can be read and grepped makes things easier.

A usage example is found in tests/libosmo-gtlv/test_gtlv_gen/.

Related: SYS#5599
Change-Id: Ifb3ea54d2797ce060b95834aa117725ec2d6c4cf
2022-06-16 13:04:33 +02:00
Neels Hofmeyr 2100097ef1 libosmo-gtlv: add generic TLV de- and encoder
An all new TLV parser supporting:

- Any size of T and L (determined by callback function),
- "Grouped IEs", so that an IE payload is a nested IE structure,
- optional/mandatory/multi-occurence IEs,
- decoding unordered tags (or enforcing strict order).

Will be used for PFCP message decoding and encoding, a T16L16V protocol
which requires above features.

Upcoming patches add
- translating PDUs to plain C structs and vice versa
- TLV generator to reduce repetition a in protocol definition
- TLIV capability

Previously, the way we deal with TLVs causes a lot of code
re-implementation: the TL decoding is taken care of by the API, but for
encoding, we essentially re-implement each protocol and each encoded
message in the individual programs. This API is an improvement in that
we only once implement the TL coding (or just use osmo_t8l8v_cfg /
osmo_t16l16v_cfg), get symmetric de- and encoding of the TL, and only
need to deal with the value part of each IE.

The common pattern of
- store TL preliminarily,
- write V data and
- update L after V is complete
is conveniently done by osmo_gtlv_put_update_tl().

Related: SYS#5599
Change-Id: Ib0fd00d9f288ffe13b7e67701f3e47073587404a
2022-06-16 13:04:33 +02:00
Neels Hofmeyr cf11908f9c initial osmocom boilerplate source tree
Related: SYS#5599
Depends: I0a46b147ec6a76d909df28136cfd2b764b2c75ea (libosmocore)
Change-Id: I4352dd8738a1a9de6ba2fc250ee8eef69c65ff1e
2022-06-16 13:04:33 +02:00