From f842c8c8d0d809b298668c9f547e6df837532fce Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Wed, 12 Jan 2022 02:57:58 +0100 Subject: libosmo-gtlv: add auto dec/enc to/from structs Add osmo_gtlv_coding: describe the value part of a TLV (decode and encode), describe a struct with its members, and get/put readily decoded structs from/to a raw PDU, directly. With osmo_gtlv_coding defined for a protocol's tags, we only deal with encoded PDUs or fully decoded C structs, no TLV related re-implementations clutter up the message handling code. A usage example is given in gtlv_dec_enc_test. The first real use will be the PFCP protocol in osmo-upf.git. With osmo_gtlv_coding, there still is a lot of monkey work involved in describing the decoded structs. A subsequent patch adds a generator for osmo_gtlv_coding and message structs from tag value lists. Related: SYS#5599 Change-Id: I65de793105882a452124ee58adb0e58469e6e796 --- tests/libosmo-gtlv/Makefile.am | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests/libosmo-gtlv/Makefile.am') diff --git a/tests/libosmo-gtlv/Makefile.am b/tests/libosmo-gtlv/Makefile.am index 7ab4ae0..6d85334 100644 --- a/tests/libosmo-gtlv/Makefile.am +++ b/tests/libosmo-gtlv/Makefile.am @@ -10,10 +10,12 @@ AM_CFLAGS = \ noinst_PROGRAMS = \ gtlv_test \ + gtlv_dec_enc_test \ $(NULL) EXTRA_DIST = \ gtlv_test.ok \ + gtlv_dec_enc_test.ok \ $(NULL) gtlv_test_SOURCES = \ @@ -25,6 +27,16 @@ gtlv_test_LDADD = \ $(LIBOSMOCORE_LIBS) \ $(NULL) +gtlv_dec_enc_test_SOURCES = \ + gtlv_dec_enc_test.c \ + $(NULL) + +gtlv_dec_enc_test_LDADD = \ + $(top_builddir)/src/libosmo-gtlv/libosmo-gtlv.a \ + $(LIBOSMOCORE_LIBS) \ + $(NULL) + .PHONY: update_exp update_exp: $(builddir)/gtlv_test >$(srcdir)/gtlv_test.ok + $(builddir)/gtlv_dec_enc_test >$(srcdir)/gtlv_dec_enc_test.ok -- cgit v1.2.3