From 2100097ef1be98a338b583f15bb5f529690829ff Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Wed, 12 Jan 2022 02:38:39 +0100 Subject: 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 --- configure.ac | 3 +++ 1 file changed, 3 insertions(+) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 7cf4362..96e6856 100644 --- a/configure.ac +++ b/configure.ac @@ -87,11 +87,14 @@ AM_CONFIG_HEADER(config.h) AC_OUTPUT( include/Makefile include/osmocom/Makefile + include/osmocom/gtlv/Makefile include/osmocom/pfcp/Makefile src/Makefile + src/libosmo-gtlv/Makefile src/libosmo-pfcp/Makefile tests/Makefile tests/atlocal + tests/libosmo-gtlv/Makefile doc/Makefile contrib/Makefile Makefile) -- cgit v1.2.3