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-01-12 01:38:39 +00:00
|
|
|
AM_CPPFLAGS = \
|
|
|
|
$(all_includes) \
|
|
|
|
-I$(top_srcdir)/include \
|
|
|
|
-I$(top_builddir) \
|
|
|
|
-I$(builddir) \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
AM_CFLAGS = \
|
|
|
|
-Wall \
|
|
|
|
$(LIBOSMOCORE_CFLAGS) \
|
|
|
|
$(COVERAGE_CFLAGS) \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
AM_LDFLAGS = \
|
|
|
|
$(LIBOSMOCORE_LIBS) \
|
|
|
|
$(COVERAGE_LDFLAGS) \
|
|
|
|
$(NULL)
|
|
|
|
|
2022-04-09 15:38:06 +00:00
|
|
|
lib_LTLIBRARIES = \
|
|
|
|
libosmo-gtlv.la \
|
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-01-12 01:38:39 +00:00
|
|
|
$(NULL)
|
|
|
|
|
2022-04-09 15:38:06 +00:00
|
|
|
libosmo_gtlv_la_SOURCES = \
|
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-01-12 01:38:39 +00:00
|
|
|
gtlv.c \
|
2022-01-12 01:57:58 +00:00
|
|
|
gtlv_dec_enc.c \
|
2022-01-12 01:58:02 +00:00
|
|
|
gtlv_gen.c \
|
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-01-12 01:38:39 +00:00
|
|
|
$(NULL)
|
2022-04-09 15:38:06 +00:00
|
|
|
|
|
|
|
# This is _NOT_ the library release version, it's an API version.
|
|
|
|
# Please read Chapter 6 "Library interface versions" of the libtool
|
|
|
|
# documentation before making any modification
|
2022-08-09 17:13:30 +00:00
|
|
|
LIBVERSION=0:0:0
|
2022-04-09 15:38:06 +00:00
|
|
|
|
|
|
|
libosmo_gtlv_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined -export-symbols-regex '^osmo_'
|