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/testsuite.at | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'tests/testsuite.at') diff --git a/tests/testsuite.at b/tests/testsuite.at index 711f981..788f0f7 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -6,3 +6,9 @@ AT_KEYWORDS([gtlv]) cat $abs_srcdir/libosmo-gtlv/gtlv_test.ok > expout AT_CHECK([$abs_top_builddir/tests/libosmo-gtlv/gtlv_test], [], [expout], [ignore]) AT_CLEANUP + +AT_SETUP([gtlv_dec_enc]) +AT_KEYWORDS([gtlv_dec_enc]) +cat $abs_srcdir/libosmo-gtlv/gtlv_dec_enc_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/libosmo-gtlv/gtlv_dec_enc_test], [], [expout], [ignore]) +AT_CLEANUP -- cgit v1.2.3