<p>daniel has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gbproxy/+/23308">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Remove osmo-sgsn relics<br><br>* include/osmocom/sgsn -> gbproxy<br>* (unused) tests specific to osmo-sgsn<br><br>Change-Id: I3704760e8936bdd005a3f73727de5f2b3e8774a0<br>---<br>M configure.ac<br>M debian/copyright<br>M include/osmocom/Makefile.am<br>R include/osmocom/gbproxy/Makefile.am<br>R include/osmocom/gbproxy/gb_proxy.h<br>M src/gb_proxy.c<br>M src/gb_proxy_ctrl.c<br>M src/gb_proxy_main.c<br>M src/gb_proxy_peer.c<br>M src/gb_proxy_vty.c<br>M tests/ctrl_test_runner.py<br>D tests/sndcp_xid/Makefile.am<br>D tests/sndcp_xid/sndcp_xid_test.c<br>D tests/sndcp_xid/sndcp_xid_test.ok<br>14 files changed, 11 insertions(+), 347 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/08/23308/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/configure.ac b/configure.ac</span><br><span>index a4758b5..309d3f7 100644</span><br><span>--- a/configure.ac</span><br><span>+++ b/configure.ac</span><br><span>@@ -236,7 +236,7 @@</span><br><span> AC_OUTPUT(</span><br><span>     include/Makefile</span><br><span>     include/osmocom/Makefile</span><br><span style="color: hsl(0, 100%, 40%);">-    include/osmocom/sgsn/Makefile</span><br><span style="color: hsl(120, 100%, 40%);">+    include/osmocom/gbproxy/Makefile</span><br><span>     src/Makefile</span><br><span>     tests/Makefile</span><br><span>     doc/Makefile</span><br><span>diff --git a/debian/copyright b/debian/copyright</span><br><span>index 8bdbc5d..f6a5956 100644</span><br><span>--- a/debian/copyright</span><br><span>+++ b/debian/copyright</span><br><span>@@ -22,8 +22,8 @@</span><br><span>            doc/examples/Makefile.am</span><br><span>            doc/examples/osmo-gbproxy/osmo-gbproxy.cfg</span><br><span>            include/Makefile.am</span><br><span style="color: hsl(0, 100%, 40%);">-           include/osmocom/sgsn/Makefile.am</span><br><span style="color: hsl(0, 100%, 40%);">-           include/osmocom/sgsn/gb_proxy.h</span><br><span style="color: hsl(120, 100%, 40%);">+           include/osmocom/gbproxy/Makefile.am</span><br><span style="color: hsl(120, 100%, 40%);">+           include/osmocom/gbproxy/gb_proxy.h</span><br><span>            m4/README</span><br><span>            src/Makefile.am</span><br><span>            src/gprs/.gitignore</span><br><span>diff --git a/include/osmocom/Makefile.am b/include/osmocom/Makefile.am</span><br><span>index 09db97a..a3f6651 100644</span><br><span>--- a/include/osmocom/Makefile.am</span><br><span>+++ b/include/osmocom/Makefile.am</span><br><span>@@ -1,3 +1,3 @@</span><br><span> SUBDIRS = \</span><br><span style="color: hsl(0, 100%, 40%);">-   sgsn \</span><br><span style="color: hsl(120, 100%, 40%);">+        gbproxy \</span><br><span>    $(NULL)</span><br><span>diff --git a/include/osmocom/sgsn/Makefile.am b/include/osmocom/gbproxy/Makefile.am</span><br><span>similarity index 68%</span><br><span>rename from include/osmocom/sgsn/Makefile.am</span><br><span>rename to include/osmocom/gbproxy/Makefile.am</span><br><span>index 6802740..550edb8 100644</span><br><span>--- a/include/osmocom/sgsn/Makefile.am</span><br><span>+++ b/include/osmocom/gbproxy/Makefile.am</span><br><span>@@ -1,3 +1,4 @@</span><br><span> noinst_HEADERS = \</span><br><span>     gb_proxy.h \</span><br><span style="color: hsl(120, 100%, 40%);">+  gb_proxy_igpp.h \</span><br><span>    $(NULL)</span><br><span>diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/gbproxy/gb_proxy.h</span><br><span>similarity index 100%</span><br><span>rename from include/osmocom/sgsn/gb_proxy.h</span><br><span>rename to include/osmocom/gbproxy/gb_proxy.h</span><br><span>diff --git a/src/gb_proxy.c b/src/gb_proxy.c</span><br><span>index f448c0b..c07c36b 100644</span><br><span>--- a/src/gb_proxy.c</span><br><span>+++ b/src/gb_proxy.c</span><br><span>@@ -52,7 +52,7 @@</span><br><span> #include <osmocom/gsm/gsm_utils.h></span><br><span> </span><br><span> #include "debug.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gb_proxy.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/gbproxy/gb_proxy.h></span><br><span> </span><br><span> #include <osmocom/gsm/protocol/gsm_04_08_gprs.h></span><br><span> </span><br><span>diff --git a/src/gb_proxy_ctrl.c b/src/gb_proxy_ctrl.c</span><br><span>index b6f01af..35ef81b 100644</span><br><span>--- a/src/gb_proxy_ctrl.c</span><br><span>+++ b/src/gb_proxy_ctrl.c</span><br><span>@@ -28,7 +28,7 @@</span><br><span> </span><br><span> #include <osmocom/ctrl/control_if.h></span><br><span> #include <osmocom/ctrl/control_cmd.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gb_proxy.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/gbproxy/gb_proxy.h></span><br><span> </span><br><span> #include "debug.h"</span><br><span> </span><br><span>diff --git a/src/gb_proxy_main.c b/src/gb_proxy_main.c</span><br><span>index 87331ea..45e0858 100644</span><br><span>--- a/src/gb_proxy_main.c</span><br><span>+++ b/src/gb_proxy_main.c</span><br><span>@@ -43,7 +43,7 @@</span><br><span> #include <osmocom/gprs/gprs_bssgp.h></span><br><span> </span><br><span> #include "debug.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gb_proxy.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/gbproxy/gb_proxy.h></span><br><span> </span><br><span> #include <osmocom/ctrl/control_vty.h></span><br><span> #include <osmocom/ctrl/control_if.h></span><br><span>diff --git a/src/gb_proxy_peer.c b/src/gb_proxy_peer.c</span><br><span>index a9471f0..fa99832 100644</span><br><span>--- a/src/gb_proxy_peer.c</span><br><span>+++ b/src/gb_proxy_peer.c</span><br><span>@@ -20,7 +20,7 @@</span><br><span>  *</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gb_proxy.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/gbproxy/gb_proxy.h></span><br><span> </span><br><span> #include "debug.h"</span><br><span> </span><br><span>diff --git a/src/gb_proxy_vty.c b/src/gb_proxy_vty.c</span><br><span>index 3a52e32..f48a6db 100644</span><br><span>--- a/src/gb_proxy_vty.c</span><br><span>+++ b/src/gb_proxy_vty.c</span><br><span>@@ -39,7 +39,7 @@</span><br><span> #include <osmocom/gsm/gsm48.h></span><br><span> </span><br><span> #include "debug.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gb_proxy.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/gbproxy/gb_proxy.h></span><br><span> </span><br><span> #include <osmocom/vty/command.h></span><br><span> #include <osmocom/vty/logging.h></span><br><span>diff --git a/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py</span><br><span>index 69b2478..9a004a4 100755</span><br><span>--- a/tests/ctrl_test_runner.py</span><br><span>+++ b/tests/ctrl_test_runner.py</span><br><span>@@ -143,28 +143,6 @@</span><br><span> </span><br><span>         return responses</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-class TestCtrlSGSN(TestCtrlBase):</span><br><span style="color: hsl(0, 100%, 40%);">-    def ctrl_command(self):</span><br><span style="color: hsl(0, 100%, 40%);">-        return ["./src/sgsn/osmo-sgsn", "-c",</span><br><span style="color: hsl(0, 100%, 40%);">-                "doc/examples/osmo-sgsn/osmo-sgsn.cfg"]</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    def ctrl_app(self):</span><br><span style="color: hsl(0, 100%, 40%);">-        return (4251, "./src/sgsn/osmo-sgsn", "OsmoSGSN", "sgsn")</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    def testListSubscribers(self):</span><br><span style="color: hsl(0, 100%, 40%);">-        # TODO. Add command to mark a subscriber as active</span><br><span style="color: hsl(0, 100%, 40%);">-        r = self.do_get('subscriber-list-active-v1')</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEqual(r['mtype'], 'GET_REPLY')</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEqual(r['var'], 'subscriber-list-active-v1')</span><br><span style="color: hsl(0, 100%, 40%);">-        self.assertEqual(r['value'], None)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-def add_sgsn_test(suite, workdir):</span><br><span style="color: hsl(0, 100%, 40%);">-    if not os.path.isfile(os.path.join(workdir, "src/sgsn/osmo-sgsn")):</span><br><span style="color: hsl(0, 100%, 40%);">-        print("Skipping the SGSN test")</span><br><span style="color: hsl(0, 100%, 40%);">-        return</span><br><span style="color: hsl(0, 100%, 40%);">-    test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlSGSN)</span><br><span style="color: hsl(0, 100%, 40%);">-    suite.addTest(test)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> if __name__ == '__main__':</span><br><span>     import argparse</span><br><span>     import sys</span><br><span>@@ -195,6 +173,6 @@</span><br><span>     os.chdir(workdir)</span><br><span>     print("Running tests for specific control commands")</span><br><span>     suite = unittest.TestSuite()</span><br><span style="color: hsl(0, 100%, 40%);">-    add_sgsn_test(suite, workdir)</span><br><span style="color: hsl(120, 100%, 40%);">+    print("GbProxy has not CTRL tests yet")</span><br><span>     res = unittest.TextTestRunner(verbosity=verbose_level).run(suite)</span><br><span>     sys.exit(len(res.errors) + len(res.failures))</span><br><span>diff --git a/tests/sndcp_xid/Makefile.am b/tests/sndcp_xid/Makefile.am</span><br><span>deleted file mode 100644</span><br><span>index dad41ea..0000000</span><br><span>--- a/tests/sndcp_xid/Makefile.am</span><br><span>+++ /dev/null</span><br><span>@@ -1,17 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include</span><br><span style="color: hsl(0, 100%, 40%);">-AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-EXTRA_DIST = sndcp_xid_test.ok</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-noinst_PROGRAMS = sndcp_xid_test</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-sndcp_xid_test_SOURCES = sndcp_xid_test.c</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-sndcp_xid_test_LDADD = \</span><br><span style="color: hsl(0, 100%, 40%);">-     $(top_builddir)/src/sgsn/gprs_sndcp_xid.o \</span><br><span style="color: hsl(0, 100%, 40%);">-     $(LIBOSMOABIS_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(LIBOSMOCORE_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(LIBOSMOGSM_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-    $(LIBOSMOGB_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-     $(LIBGTP_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-        -lrt -lm</span><br><span>diff --git a/tests/sndcp_xid/sndcp_xid_test.c b/tests/sndcp_xid/sndcp_xid_test.c</span><br><span>deleted file mode 100644</span><br><span>index 56b97e3..0000000</span><br><span>--- a/tests/sndcp_xid/sndcp_xid_test.c</span><br><span>+++ /dev/null</span><br><span>@@ -1,287 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-/* Test SNDCP-XID Encoding/Decoding */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* (C) 2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de></span><br><span style="color: hsl(0, 100%, 40%);">- * All Rights Reserved</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * Author: Philipp Maier</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(0, 100%, 40%);">- * it under the terms of the GNU Affero General Public License as published by</span><br><span style="color: hsl(0, 100%, 40%);">- * the Free Software Foundation; either version 3 of the License, or</span><br><span style="color: hsl(0, 100%, 40%);">- * (at your option) any later version.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(0, 100%, 40%);">- * but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(0, 100%, 40%);">- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(0, 100%, 40%);">- * GNU Affero General Public License for more details.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * You should have received a copy of the GNU Affero General Public License</span><br><span style="color: hsl(0, 100%, 40%);">- * along with this program.  If not, see <http://www.gnu.org/licenses/>.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gprs_sndcp_xid.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/debug.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/talloc.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/utils.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/application.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <stdio.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <string.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Test SNDCP-XID decoding with a real world sample */</span><br><span style="color: hsl(0, 100%, 40%);">-static void test_xid_decode_realworld(const void *ctx)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-       struct llist_head *comp_fields;</span><br><span style="color: hsl(0, 100%, 40%);">- int rc;</span><br><span style="color: hsl(0, 100%, 40%);">- printf("Testing SNDCP XID-Decoder/Encoder (real world data)\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      /* Example of a real world SNDCP-XID message */</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t xid[] =</span><br><span style="color: hsl(0, 100%, 40%);">-     { 0x00, 0x01, 0x00, 0x02, 0x31, 0x82, 0x02, 0x27, 0x89, 0xff, 0xe0,</span><br><span style="color: hsl(0, 100%, 40%);">- 0x00, 0x0f, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x02,</span><br><span style="color: hsl(0, 100%, 40%);">- 0x01, 0x02, 0x00, 0x03, 0x01, 0x03, 0x00, 0x04, 0x01, 0x04, 0x00, 0x05,</span><br><span style="color: hsl(0, 100%, 40%);">- 0x01, 0x05, 0x00, 0x06, 0x00, 0x07, 0x01, 0x07, 0x00, 0x08, 0x01, 0x08,</span><br><span style="color: hsl(0, 100%, 40%);">- 0x80, 0x00, 0x04, 0x12, 0x00, 0x40, 0x07 };</span><br><span style="color: hsl(0, 100%, 40%);">-     uint8_t xid_r[512];</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     /* Parse and show contained comp fields */</span><br><span style="color: hsl(0, 100%, 40%);">-      comp_fields = gprs_sndcp_parse_xid(NULL, ctx, xid, sizeof(xid), NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-  OSMO_ASSERT(comp_fields);</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("Decoded:\n");</span><br><span style="color: hsl(0, 100%, 40%);">- gprs_sndcp_dump_comp_fields(comp_fields, DSNDCP);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       /* Encode comp-fields again */</span><br><span style="color: hsl(0, 100%, 40%);">-  rc = gprs_sndcp_compile_xid(xid_r,sizeof(xid_r), comp_fields,</span><br><span style="color: hsl(0, 100%, 40%);">-                               DEFAULT_SNDCP_VERSION);</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("Result length=%i\n",rc);</span><br><span style="color: hsl(0, 100%, 40%);">-      printf("Encoded:  %s\n", osmo_hexdump_nospc(xid, sizeof(xid)));</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("Rencoded: %s\n", osmo_hexdump_nospc(xid_r, rc));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      OSMO_ASSERT(rc == 54);</span><br><span style="color: hsl(0, 100%, 40%);">-  OSMO_ASSERT(memcmp(xid, xid_r, sizeof(xid)) == 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      /* Free comp fields */</span><br><span style="color: hsl(0, 100%, 40%);">-  talloc_free(comp_fields);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       printf("\n");</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Encode and decode test with artificial test data */</span><br><span style="color: hsl(0, 100%, 40%);">-static void test_xid_encode_decode(const void *ctx)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-      printf("Testing SNDCP XID-Encoder/Decoder\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        LLIST_HEAD(comp_fields);</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gprs_sndcp_pcomp_rfc1144_params rfc1144_params;</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gprs_sndcp_comp_field rfc1144_comp_field;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gprs_sndcp_pcomp_rfc2507_params rfc2507_params;</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gprs_sndcp_comp_field rfc2507_comp_field;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gprs_sndcp_pcomp_rohc_params rohc_params;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gprs_sndcp_comp_field rohc_comp_field;</span><br><span style="color: hsl(0, 100%, 40%);">-   struct gprs_sndcp_dcomp_v42bis_params v42bis_params;</span><br><span style="color: hsl(0, 100%, 40%);">-    struct gprs_sndcp_comp_field v42bis_comp_field;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gprs_sndcp_dcomp_v44_params v44_params;</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gprs_sndcp_comp_field v44_comp_field;</span><br><span style="color: hsl(0, 100%, 40%);">-    struct llist_head *comp_fields_dec;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     uint8_t xid[512];</span><br><span style="color: hsl(0, 100%, 40%);">-       unsigned int xid_len = sizeof(xid);</span><br><span style="color: hsl(0, 100%, 40%);">-     int rc;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- memset(&rfc1144_comp_field, 0, sizeof(struct gprs_sndcp_comp_field));</span><br><span style="color: hsl(0, 100%, 40%);">-       memset(&rfc2507_comp_field, 0, sizeof(struct gprs_sndcp_comp_field));</span><br><span style="color: hsl(0, 100%, 40%);">-       memset(&rohc_comp_field, 0, sizeof(struct gprs_sndcp_comp_field));</span><br><span style="color: hsl(0, 100%, 40%);">-  memset(&v42bis_comp_field, 0, sizeof(struct gprs_sndcp_comp_field));</span><br><span style="color: hsl(0, 100%, 40%);">-        memset(&v44_comp_field, 0, sizeof(struct gprs_sndcp_comp_field));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   /* Setup which NSAPIs shall make use of rfc1144 */</span><br><span style="color: hsl(0, 100%, 40%);">-      rfc1144_params.nsapi[0] = 5;</span><br><span style="color: hsl(0, 100%, 40%);">-    rfc1144_params.nsapi_len = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   /* Setup rfc1144 operating parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-        rfc1144_params.s01 = 7;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Setup rfc1144 compression field */</span><br><span style="color: hsl(0, 100%, 40%);">-   rfc1144_comp_field.p = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-       rfc1144_comp_field.entity = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-  rfc1144_comp_field.algo.pcomp = RFC_1144;</span><br><span style="color: hsl(0, 100%, 40%);">-       rfc1144_comp_field.comp[RFC1144_PCOMP1] = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-    rfc1144_comp_field.comp[RFC1144_PCOMP2] = 2;</span><br><span style="color: hsl(0, 100%, 40%);">-    rfc1144_comp_field.comp_len = RFC1144_PCOMP_NUM;</span><br><span style="color: hsl(0, 100%, 40%);">-        rfc1144_comp_field.rfc1144_params = &rfc1144_params;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        /* Setup which NSAPIs shall make use of rfc1144 */</span><br><span style="color: hsl(0, 100%, 40%);">-      rfc2507_params.nsapi[0] = 6;</span><br><span style="color: hsl(0, 100%, 40%);">-    rfc2507_params.nsapi_len = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   /* Setup rfc2507 operating parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-        rfc2507_params.f_max_period = 256;</span><br><span style="color: hsl(0, 100%, 40%);">-      rfc2507_params.f_max_time = 5;</span><br><span style="color: hsl(0, 100%, 40%);">-  rfc2507_params.max_header = 168;</span><br><span style="color: hsl(0, 100%, 40%);">-        rfc2507_params.tcp_space = 15;</span><br><span style="color: hsl(0, 100%, 40%);">-  rfc2507_params.non_tcp_space = 15;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      /* Setup rfc2507 compression field */</span><br><span style="color: hsl(0, 100%, 40%);">-   rfc2507_comp_field.p = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-       rfc2507_comp_field.entity = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-  rfc2507_comp_field.algo.pcomp = RFC_2507;</span><br><span style="color: hsl(0, 100%, 40%);">-       rfc2507_comp_field.comp[RFC2507_PCOMP1] = 3;</span><br><span style="color: hsl(0, 100%, 40%);">-    rfc2507_comp_field.comp[RFC2507_PCOMP2] = 4;</span><br><span style="color: hsl(0, 100%, 40%);">-    rfc2507_comp_field.comp[RFC2507_PCOMP3] = 5;</span><br><span style="color: hsl(0, 100%, 40%);">-    rfc2507_comp_field.comp[RFC2507_PCOMP4] = 6;</span><br><span style="color: hsl(0, 100%, 40%);">-    rfc2507_comp_field.comp[RFC2507_PCOMP5] = 7;</span><br><span style="color: hsl(0, 100%, 40%);">-    rfc2507_comp_field.comp_len = RFC2507_PCOMP_NUM;</span><br><span style="color: hsl(0, 100%, 40%);">-        rfc2507_comp_field.rfc2507_params = &rfc2507_params;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        /* Setup which NSAPIs shall make use of ROHC */</span><br><span style="color: hsl(0, 100%, 40%);">- rohc_params.nsapi[0] = 5;</span><br><span style="color: hsl(0, 100%, 40%);">-       rohc_params.nsapi[1] = 6;</span><br><span style="color: hsl(0, 100%, 40%);">-       rohc_params.nsapi[2] = 7;</span><br><span style="color: hsl(0, 100%, 40%);">-       rohc_params.nsapi[3] = 8;</span><br><span style="color: hsl(0, 100%, 40%);">-       rohc_params.nsapi[4] = 9;</span><br><span style="color: hsl(0, 100%, 40%);">-       rohc_params.nsapi[5] = 10;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.nsapi[6] = 11;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.nsapi[7] = 12;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.nsapi[8] = 13;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.nsapi[9] = 14;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.nsapi[10] = 15;</span><br><span style="color: hsl(0, 100%, 40%);">-     rohc_params.nsapi_len = 11;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     /* Setup ROHC operating parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-   rohc_params.max_cid = 15;       /* default */</span><br><span style="color: hsl(0, 100%, 40%);">-   rohc_params.max_header = 168;   /* default */</span><br><span style="color: hsl(0, 100%, 40%);">-   rohc_params.profile[0] = ROHC_UNCOMPRESSED;</span><br><span style="color: hsl(0, 100%, 40%);">-     rohc_params.profile[1] = ROHC_RTP;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.profile[2] = ROHCV2_RTP;</span><br><span style="color: hsl(0, 100%, 40%);">-    rohc_params.profile[3] = ROHC_UDP;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.profile[4] = ROHCv2_UDP;</span><br><span style="color: hsl(0, 100%, 40%);">-    rohc_params.profile[5] = ROHC_ESP;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.profile[6] = ROHCV2_ESP;</span><br><span style="color: hsl(0, 100%, 40%);">-    rohc_params.profile[7] = ROHC_IP;</span><br><span style="color: hsl(0, 100%, 40%);">-       rohc_params.profile[8] = ROHCV2_IP;</span><br><span style="color: hsl(0, 100%, 40%);">-     rohc_params.profile[9] = ROHC_LLA;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.profile[10] = ROHC_LLA_WITH_R_MODE;</span><br><span style="color: hsl(0, 100%, 40%);">- rohc_params.profile[11] = ROHC_TCP;</span><br><span style="color: hsl(0, 100%, 40%);">-     rohc_params.profile[12] = ROHC_RTP_UDP_LITE;</span><br><span style="color: hsl(0, 100%, 40%);">-    rohc_params.profile[13] = ROHCV2_RTP_UDP_LITE;</span><br><span style="color: hsl(0, 100%, 40%);">-  rohc_params.profile[14] = ROHC_UDP_LITE;</span><br><span style="color: hsl(0, 100%, 40%);">-        rohc_params.profile[15] = ROHCV2_UDP_LITE;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_params.profile_len = 16;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   /* Setup ROHC compression field */</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_comp_field.p = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-  rohc_comp_field.entity = 2;</span><br><span style="color: hsl(0, 100%, 40%);">-     rohc_comp_field.algo.pcomp = ROHC;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_comp_field.comp[ROHC_PCOMP1] = 8;</span><br><span style="color: hsl(0, 100%, 40%);">-  rohc_comp_field.comp[ROHC_PCOMP2] = 9;</span><br><span style="color: hsl(0, 100%, 40%);">-  rohc_comp_field.comp_len = ROHC_PCOMP_NUM;</span><br><span style="color: hsl(0, 100%, 40%);">-      rohc_comp_field.rohc_params = &rohc_params;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Setup which NSAPIs shall make use of v42bis */</span><br><span style="color: hsl(0, 100%, 40%);">-       v42bis_params.nsapi[0] = 5;</span><br><span style="color: hsl(0, 100%, 40%);">-     v42bis_params.nsapi_len = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    /* Setup v42bis operating parameters */</span><br><span style="color: hsl(0, 100%, 40%);">- v42bis_params.p0 = 3;</span><br><span style="color: hsl(0, 100%, 40%);">-   v42bis_params.p1 = 2048;</span><br><span style="color: hsl(0, 100%, 40%);">-        v42bis_params.p2 = 20;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  /* Setup v42bis compression field */</span><br><span style="color: hsl(0, 100%, 40%);">-    v42bis_comp_field.p = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-        v42bis_comp_field.entity = 3;</span><br><span style="color: hsl(0, 100%, 40%);">-   v42bis_comp_field.algo.dcomp = V42BIS;</span><br><span style="color: hsl(0, 100%, 40%);">-  v42bis_comp_field.comp[V42BIS_DCOMP1] = 10;</span><br><span style="color: hsl(0, 100%, 40%);">-     v42bis_comp_field.comp_len = V42BIS_DCOMP_NUM;</span><br><span style="color: hsl(0, 100%, 40%);">-  v42bis_comp_field.v42bis_params = &v42bis_params;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   /* Setup which NSAPIs shall make use of v44 */</span><br><span style="color: hsl(0, 100%, 40%);">-  v44_params.nsapi[0] = 5;</span><br><span style="color: hsl(0, 100%, 40%);">-        v44_params.nsapi_len = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       /* Setup v44 operating parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-    v44_params.c0 = 0x80;</span><br><span style="color: hsl(0, 100%, 40%);">-   v44_params.p0 = 3;</span><br><span style="color: hsl(0, 100%, 40%);">-      v44_params.p1t = 300;</span><br><span style="color: hsl(0, 100%, 40%);">-   v44_params.p1r = 300;</span><br><span style="color: hsl(0, 100%, 40%);">-   v44_params.p3t = 600;</span><br><span style="color: hsl(0, 100%, 40%);">-   v44_params.p3r = 600;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   /* Setup v44 compression field */</span><br><span style="color: hsl(0, 100%, 40%);">-       v44_comp_field.p = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-   v44_comp_field.entity = 3;</span><br><span style="color: hsl(0, 100%, 40%);">-      v44_comp_field.algo.dcomp = V44;</span><br><span style="color: hsl(0, 100%, 40%);">-        v44_comp_field.comp[V44_DCOMP1] = 10;</span><br><span style="color: hsl(0, 100%, 40%);">-   v44_comp_field.comp[V44_DCOMP2] = 11;</span><br><span style="color: hsl(0, 100%, 40%);">-   v44_comp_field.comp_len = V44_DCOMP_NUM;</span><br><span style="color: hsl(0, 100%, 40%);">-        v44_comp_field.v44_params = &v44_params;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    /* Add compression field(s) to list */</span><br><span style="color: hsl(0, 100%, 40%);">-  llist_add(&v44_comp_field.list, &comp_fields);</span><br><span style="color: hsl(0, 100%, 40%);">-  llist_add(&v42bis_comp_field.list, &comp_fields);</span><br><span style="color: hsl(0, 100%, 40%);">-       llist_add(&rfc1144_comp_field.list, &comp_fields);</span><br><span style="color: hsl(0, 100%, 40%);">-      llist_add(&rfc2507_comp_field.list, &comp_fields);</span><br><span style="color: hsl(0, 100%, 40%);">-      llist_add(&rohc_comp_field.list, &comp_fields);</span><br><span style="color: hsl(0, 100%, 40%);">- printf("Test input data:\n");</span><br><span style="color: hsl(0, 100%, 40%);">- gprs_sndcp_dump_comp_fields(&comp_fields, DSNDCP);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  /* Encode SNDCP-XID fields */</span><br><span style="color: hsl(0, 100%, 40%);">-   rc = gprs_sndcp_compile_xid(xid, xid_len, &comp_fields,</span><br><span style="color: hsl(0, 100%, 40%);">-                                 DEFAULT_SNDCP_VERSION);</span><br><span style="color: hsl(0, 100%, 40%);">-     OSMO_ASSERT(rc > 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- printf("Encoded:  %s (%i bytes)\n", osmo_hexdump_nospc(xid, rc), rc);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Parse and show contained comp fields */</span><br><span style="color: hsl(0, 100%, 40%);">-      comp_fields_dec = gprs_sndcp_parse_xid(NULL, ctx, xid, rc, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-       OSMO_ASSERT(comp_fields_dec);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("Decoded:\n");</span><br><span style="color: hsl(0, 100%, 40%);">- gprs_sndcp_dump_comp_fields(comp_fields_dec, DSNDCP);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   /* Free comp fields */</span><br><span style="color: hsl(0, 100%, 40%);">-  talloc_free(comp_fields_dec);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct log_info_cat gprs_categories[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-  [DSNDCP] = {</span><br><span style="color: hsl(0, 100%, 40%);">-                .name = "DSNDCP",</span><br><span style="color: hsl(0, 100%, 40%);">-             .description =</span><br><span style="color: hsl(0, 100%, 40%);">-                  "GPRS Sub-Network Dependent Control Protocol (SNDCP)",</span><br><span style="color: hsl(0, 100%, 40%);">-                .enabled = 1,.loglevel = LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">-                    }</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct log_info info = {</span><br><span style="color: hsl(0, 100%, 40%);">-  .cat = gprs_categories,</span><br><span style="color: hsl(0, 100%, 40%);">- .num_cat = ARRAY_SIZE(gprs_categories),</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-int main(int argc, char **argv)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-       void *xid_ctx;</span><br><span style="color: hsl(0, 100%, 40%);">-  void *log_ctx;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  xid_ctx = talloc_named_const(NULL, 0, "xid_ctx");</span><br><span style="color: hsl(0, 100%, 40%);">-     log_ctx = talloc_named_const(xid_ctx, 0, "log");</span><br><span style="color: hsl(0, 100%, 40%);">-      osmo_init_logging2(log_ctx, &info);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- test_xid_decode_realworld(xid_ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-     test_xid_encode_decode(xid_ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        printf("Done\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     talloc_report_full(xid_ctx, stderr);</span><br><span style="color: hsl(0, 100%, 40%);">-    talloc_free(log_ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(talloc_total_blocks(xid_ctx) == 1);</span><br><span style="color: hsl(0, 100%, 40%);">- talloc_free(xid_ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-   return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* stubs */</span><br><span style="color: hsl(0, 100%, 40%);">-struct osmo_prim_hdr;</span><br><span style="color: hsl(0, 100%, 40%);">-int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-        abort();</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/tests/sndcp_xid/sndcp_xid_test.ok b/tests/sndcp_xid/sndcp_xid_test.ok</span><br><span>deleted file mode 100644</span><br><span>index f357282..0000000</span><br><span>--- a/tests/sndcp_xid/sndcp_xid_test.ok</span><br><span>+++ /dev/null</span><br><span>@@ -1,11 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-Testing SNDCP XID-Decoder/Encoder (real world data)</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded:</span><br><span style="color: hsl(0, 100%, 40%);">-Result length=54</span><br><span style="color: hsl(0, 100%, 40%);">-Encoded:  000100023182022789ffe0000f00a8000000010101000201020003010300040104000501050006000701070008010880000412004007</span><br><span style="color: hsl(0, 100%, 40%);">-Rencoded: 000100023182022789ffe0000f00a8000000010101000201020003010300040104000501050006000701070008010880000412004007</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Testing SNDCP XID-Encoder/Decoder</span><br><span style="color: hsl(0, 100%, 40%);">-Test input data:</span><br><span style="color: hsl(0, 100%, 40%);">-Encoded:  000100011a83010dab00208003012c012c02580258830007a000200308001402408000041200200781010c3456700040010005a80f000f82022789ffe0000f00a80000000101010002010200030103000401040005010500060007010700080108 (97 bytes)</span><br><span style="color: hsl(0, 100%, 40%);">-Decoded:</span><br><span style="color: hsl(0, 100%, 40%);">-Done</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gbproxy/+/23308">change 23308</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-gbproxy/+/23308"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gbproxy </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I3704760e8936bdd005a3f73727de5f2b3e8774a0 </div>
<div style="display:none"> Gerrit-Change-Number: 23308 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>