<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/21590">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gbproxy: Delete gbproxy_test<br><br>The test is actually performing invalid operations such as<br>sending empty NS packets without even a BSSGP header - and assumes<br>that gbproxy should route those.<br><br>Given that we have a much more comprehensive tset suite in<br>GBProxy_Tests.ttcn in osmo-ttch3-hacks.git, it makes sense to remove<br>the testsuite.  It may contain many more wrong assumptions, or<br>assumptions that no longer hold true with the "gbproxy 2020".<br><br>Change-Id: I053aebab6bf5d0ee955f2221bf27925b36140cf3<br>---<br>M configure.ac<br>M tests/Makefile.am<br>D tests/gbproxy/Makefile.am<br>D tests/gbproxy/gbproxy_test.c<br>D tests/gbproxy/gbproxy_test.ok<br>M tests/testsuite.at<br>6 files changed, 0 insertions(+), 1,487 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/90/21590/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 0ed36b8..0c8a73f 100644</span><br><span>--- a/configure.ac</span><br><span>+++ b/configure.ac</span><br><span>@@ -261,7 +261,6 @@</span><br><span>     tests/Makefile</span><br><span>     tests/atlocal</span><br><span>     tests/gprs/Makefile</span><br><span style="color: hsl(0, 100%, 40%);">-    tests/gbproxy/Makefile</span><br><span>     tests/sgsn/Makefile</span><br><span>     tests/gtphub/Makefile</span><br><span>     tests/xid/Makefile</span><br><span>diff --git a/tests/Makefile.am b/tests/Makefile.am</span><br><span>index a23d931..4a9449a 100644</span><br><span>--- a/tests/Makefile.am</span><br><span>+++ b/tests/Makefile.am</span><br><span>@@ -1,6 +1,5 @@</span><br><span> SUBDIRS = \</span><br><span>        gprs \</span><br><span style="color: hsl(0, 100%, 40%);">-  gbproxy \</span><br><span>    gtphub \</span><br><span>     sgsn \</span><br><span>       xid \</span><br><span>diff --git a/tests/gbproxy/Makefile.am b/tests/gbproxy/Makefile.am</span><br><span>deleted file mode 100644</span><br><span>index 180ccee..0000000</span><br><span>--- a/tests/gbproxy/Makefile.am</span><br><span>+++ /dev/null</span><br><span>@@ -1,49 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-AM_CPPFLAGS = \</span><br><span style="color: hsl(0, 100%, 40%);">-      $(all_includes) \</span><br><span style="color: hsl(0, 100%, 40%);">-       -I$(top_srcdir)/include \</span><br><span style="color: hsl(0, 100%, 40%);">-       $(NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AM_CFLAGS = \</span><br><span style="color: hsl(0, 100%, 40%);">-    -Wall \</span><br><span style="color: hsl(0, 100%, 40%);">- -ggdb3 \</span><br><span style="color: hsl(0, 100%, 40%);">-        $(LIBOSMOCORE_CFLAGS) \</span><br><span style="color: hsl(0, 100%, 40%);">- $(LIBOSMOGSM_CFLAGS) \</span><br><span style="color: hsl(0, 100%, 40%);">-  $(LIBOSMOABIS_CFLAGS) \</span><br><span style="color: hsl(0, 100%, 40%);">- $(NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AM_LDFLAGS = \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(COVERAGE_LDFLAGS) \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-EXTRA_DIST = \</span><br><span style="color: hsl(0, 100%, 40%);">-   gbproxy_test.ok \</span><br><span style="color: hsl(0, 100%, 40%);">-       $(NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-noinst_PROGRAMS = \</span><br><span style="color: hsl(0, 100%, 40%);">-      gbproxy_test \</span><br><span style="color: hsl(0, 100%, 40%);">-  $(NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-gbproxy_test_SOURCES = \</span><br><span style="color: hsl(0, 100%, 40%);">- gbproxy_test.c \</span><br><span style="color: hsl(0, 100%, 40%);">-        $(NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-gbproxy_test_LDFLAGS = \</span><br><span style="color: hsl(0, 100%, 40%);">- -Wl,--wrap=osmo_get_rand_id \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-gbproxy_test_LDADD = \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(top_builddir)/src/gbproxy/gb_proxy.o \</span><br><span style="color: hsl(0, 100%, 40%);">-        $(top_builddir)/src/gbproxy/gb_proxy_peer.o \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(top_builddir)/src/gprs/gprs_gb_parse.o \</span><br><span style="color: hsl(0, 100%, 40%);">-      $(top_builddir)/src/gprs/gprs_llc_parse.o \</span><br><span style="color: hsl(0, 100%, 40%);">-     $(top_builddir)/src/gprs/crc24.o \</span><br><span style="color: hsl(0, 100%, 40%);">-      $(top_builddir)/src/gprs/gprs_utils.o \</span><br><span style="color: hsl(0, 100%, 40%);">- $(LIBOSMOCORE_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(LIBOSMOGB_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-     $(LIBOSMOGSM_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-    $(LIBOSMOVTY_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-    $(LIBOSMOABIS_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(LIBRARY_DL) \</span><br><span style="color: hsl(0, 100%, 40%);">- $(LIBRARY_DLSYM) \</span><br><span style="color: hsl(0, 100%, 40%);">-      -lrt \</span><br><span style="color: hsl(0, 100%, 40%);">-  $(NULL)</span><br><span>diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c</span><br><span>deleted file mode 100644</span><br><span>index d7479cc..0000000</span><br><span>--- a/tests/gbproxy/gbproxy_test.c</span><br><span>+++ /dev/null</span><br><span>@@ -1,759 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-/* test routines for gbproxy</span><br><span style="color: hsl(0, 100%, 40%);">- * send NS messages to the gbproxy and dumps what happens</span><br><span style="color: hsl(0, 100%, 40%);">- * (C) 2013-2020 by sysmocom s.f.m.c. GmbH</span><br><span style="color: hsl(0, 100%, 40%);">- * Author: Jacob Erlbeck <jerlbeck@sysmocom.de></span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-#undef _GNU_SOURCE</span><br><span style="color: hsl(0, 100%, 40%);">-#define _GNU_SOURCE</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 <stdlib.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <stdint.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <string.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <getopt.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <dlfcn.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <time.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <sys/types.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <sys/socket.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <talloc.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/msgb.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/application.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/utils.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/logging.h></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/signal.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/socket.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/rate_ctr.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/gsm/tlv.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/gsm/gsm_utils.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/gsm/protocol/gsm_04_08_gprs.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/gprs/gprs_msgb.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/gprs/gprs_ns2.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/gprs/gprs_bssgp.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/core/prim.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/vty/command.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gb_proxy.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gprs_utils.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gprs_llc.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <osmocom/sgsn/gprs_gb_parse.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%);">-#define REMOTE_BSS_ADDR 0x01020304</span><br><span style="color: hsl(0, 100%, 40%);">-#define REMOTE_SGSN_ADDR 0x05060708</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define SGSN_NSEI 0x0100</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define REMOTE_SGSN2_ADDR 0x15161718</span><br><span style="color: hsl(0, 100%, 40%);">-#define SGSN2_NSEI 0x0102</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define MATCH_ANY (-1)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-void *tall_sgsn_ctx = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct gbproxy_config gbcfg = {0};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct llist_head *received_messages = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* override, requires '-Wl,--wrap=osmo_get_rand_id' */</span><br><span style="color: hsl(0, 100%, 40%);">-int __real_osmo_get_rand_id(uint8_t *data, size_t len);</span><br><span style="color: hsl(0, 100%, 40%);">-int mock_osmo_get_rand_id(uint8_t *data, size_t len);</span><br><span style="color: hsl(0, 100%, 40%);">-int (*osmo_get_rand_id_cb)(uint8_t *, size_t) =</span><br><span style="color: hsl(0, 100%, 40%);">-  &mock_osmo_get_rand_id;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-int __wrap_osmo_get_rand_id(uint8_t *buf, size_t num)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     return (*osmo_get_rand_id_cb)(buf, num);</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 int rand_seq_num = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-int mock_osmo_get_rand_id(uint8_t *buf, size_t num)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-       uint32_t val;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(num == sizeof(val));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        val = 0x00dead00 + rand_seq_num;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        rand_seq_num++;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- memcpy(buf, &val, num);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     return 1;</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 void cleanup_test()</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   rand_seq_num = 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%);">-static int dump_global(FILE *stream, int indent)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     unsigned int i;</span><br><span style="color: hsl(0, 100%, 40%);">- const struct rate_ctr_group_desc *desc;</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%);">- rc = fprintf(stream, "%*sGbproxy global:\n", indent, "");</span><br><span style="color: hsl(0, 100%, 40%);">-   if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-          return rc;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      desc = gbcfg.ctrg->desc;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     for (i = 0; i < desc->num_ctr; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-             struct rate_ctr *ctr = &gbcfg.ctrg->ctr[i];</span><br><span style="color: hsl(0, 100%, 40%);">-              if (ctr->current) {</span><br><span style="color: hsl(0, 100%, 40%);">-                  rc = fprintf(stream, "%*s    %s: %llu\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                                  indent, "",</span><br><span style="color: hsl(0, 100%, 40%);">-                                   desc->ctr_desc[i].description,</span><br><span style="color: hsl(0, 100%, 40%);">-                               (long long)ctr->current);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                       if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                          return rc;</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%);">-       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%);">-static int dump_peers(FILE *stream, int indent, time_t now,</span><br><span style="color: hsl(0, 100%, 40%);">-                 struct gbproxy_config *cfg)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-      struct gbproxy_nse *nse;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gprs_ra_id raid;</span><br><span style="color: hsl(0, 100%, 40%);">- unsigned int i, _nse;</span><br><span style="color: hsl(0, 100%, 40%);">-   const struct rate_ctr_group_desc *desc;</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%);">- rc = fprintf(stream, "%*sPeers:\n", indent, "");</span><br><span style="color: hsl(0, 100%, 40%);">-    if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-          return rc;</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%);">-      hash_for_each(cfg->bss_nses, _nse, nse, list) {</span><br><span style="color: hsl(0, 100%, 40%);">-              struct gbproxy_bvc *peer;</span><br><span style="color: hsl(0, 100%, 40%);">-               int _peer;</span><br><span style="color: hsl(0, 100%, 40%);">-              hash_for_each(nse->bvcs, _peer, peer, list) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        gsm48_parse_ra(&raid, peer->ra);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                 rc = fprintf(stream, "%*s  NSEI %u, BVCI %u, %sblocked, RAI %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                                 indent, "",</span><br><span style="color: hsl(0, 100%, 40%);">-                                   nse->nsei, peer->bvci,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    peer->blocked ? "" : "not ",</span><br><span style="color: hsl(0, 100%, 40%);">-                                     osmo_rai_name(&raid));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                 if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                          return rc;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                      desc = peer->ctrg->desc;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                  for (i = 0; i < desc->num_ctr; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-                             struct rate_ctr *ctr = &peer->ctrg->ctr[i];</span><br><span style="color: hsl(0, 100%, 40%);">-                           if (ctr->current) {</span><br><span style="color: hsl(0, 100%, 40%);">-                                  rc = fprintf(stream, "%*s    %s: %llu\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                                                  indent, "",</span><br><span style="color: hsl(0, 100%, 40%);">-                                                   desc->ctr_desc[i].description,</span><br><span style="color: hsl(0, 100%, 40%);">-                                               (long long)ctr->current);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                                       if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                                          return rc;</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%);">-               }</span><br><span style="color: hsl(0, 100%, 40%);">-       }</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%);">-const uint8_t *convert_ra(struct gprs_ra_id *raid)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   static struct gsm48_ra_id r;</span><br><span style="color: hsl(0, 100%, 40%);">-    gsm48_encode_ra(&r, raid);</span><br><span style="color: hsl(0, 100%, 40%);">-  return (const uint8_t *)&r;</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%);">-#define NS_ALLOC_HEADROOM       128</span><br><span style="color: hsl(0, 100%, 40%);">-#define NS_ALLOC_SIZE        3072</span><br><span style="color: hsl(0, 100%, 40%);">-static int gprs_ns2_callback(struct osmo_prim_hdr *oph, void *ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-static void send_ns_unitdata(struct gprs_ns2_inst *nsi, const char *text,</span><br><span style="color: hsl(0, 100%, 40%);">-                             uint16_t nsei, uint16_t nsbvci,</span><br><span style="color: hsl(0, 100%, 40%);">-                         const unsigned char *bssgp_msg, size_t bssgp_msg_size)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    struct msgb *msg;</span><br><span style="color: hsl(0, 100%, 40%);">-       struct osmo_gprs_ns2_prim nsp = {};</span><br><span style="color: hsl(0, 100%, 40%);">-     nsp.nsei = nsei;</span><br><span style="color: hsl(0, 100%, 40%);">-        nsp.bvci = nsbvci;</span><br><span style="color: hsl(0, 100%, 40%);">-      //nsp.u.unitdata.change</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if (bssgp_msg_size > NS_ALLOC_SIZE - NS_ALLOC_HEADROOM) {</span><br><span style="color: hsl(0, 100%, 40%);">-            fprintf(stderr, "message too long: %zu\n", bssgp_msg_size);</span><br><span style="color: hsl(0, 100%, 40%);">-           return;</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%);">-       msg = msgb_alloc_headroom(NS_ALLOC_SIZE, NS_ALLOC_HEADROOM,</span><br><span style="color: hsl(0, 100%, 40%);">-                                            "GPRS/NS");</span><br><span style="color: hsl(0, 100%, 40%);">-    OSMO_ASSERT(msg);</span><br><span style="color: hsl(0, 100%, 40%);">-       memmove(msg->data, bssgp_msg, bssgp_msg_size);</span><br><span style="color: hsl(0, 100%, 40%);">-       msgb_bssgph(msg) = msg->data;</span><br><span style="color: hsl(0, 100%, 40%);">-        msg->l2h = msg->data;</span><br><span style="color: hsl(0, 100%, 40%);">-     msg->l3h = msg->data;</span><br><span style="color: hsl(0, 100%, 40%);">-     msgb_put(msg, bssgp_msg_size);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  printf("PROCESSING %s from NSEI %d\n%s\n\n",</span><br><span style="color: hsl(0, 100%, 40%);">-         text, nsei,</span><br><span style="color: hsl(0, 100%, 40%);">-             osmo_hexdump(bssgp_msg, bssgp_msg_size));</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%);">-        //gprs_process_message(nsi, text ? text : "UNITDATA", nsei, msg, bssgp_msg_size + 4);</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA,</span><br><span style="color: hsl(0, 100%, 40%);">-                 PRIM_OP_INDICATION, msg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       gprs_ns2_callback(&nsp.oph, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-static int gbprox_test_bssgp_send_cb(void *ctx, struct msgb *msg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* wrap */</span><br><span style="color: hsl(0, 100%, 40%);">-int gprs_ns2_recv_prim(struct gprs_ns2_inst *nsi, struct osmo_prim_hdr *oph)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  struct osmo_gprs_ns2_prim *nsp;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if (oph->sap != SAP_NS)</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%);">-       nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        if (oph->operation != PRIM_OP_REQUEST) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOGP(DPCU, LOGL_NOTICE, "NS: %s Unknown prim %d from NS\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                get_value_string(osmo_prim_op_names, oph->operation),</span><br><span style="color: hsl(0, 100%, 40%);">-                oph->operation);</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%);">-       switch (oph->primitive) {</span><br><span style="color: hsl(0, 100%, 40%);">-    case PRIM_NS_UNIT_DATA:</span><br><span style="color: hsl(0, 100%, 40%);">-         /* hand the message into the BSSGP implementation */</span><br><span style="color: hsl(0, 100%, 40%);">-            msgb_bssgph(oph->msg) = oph->msg->l3h;</span><br><span style="color: hsl(0, 100%, 40%);">-         msgb_bvci(oph->msg) = nsp->bvci;</span><br><span style="color: hsl(0, 100%, 40%);">-          msgb_nsei(oph->msg) = nsp->nsei;</span><br><span style="color: hsl(0, 100%, 40%);">-          printf("NS2 UD REQUEST, prim %d, msg length %zu, bvci 0x%04x\n%s\n\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                        oph->primitive, msgb_bssgp_len(oph->msg), nsp->bvci,</span><br><span style="color: hsl(0, 100%, 40%);">-                   osmo_hexdump(msgb_l3(oph->msg), msgb_l3len(oph->msg)));</span><br><span style="color: hsl(0, 100%, 40%);">-           return gbprox_test_bssgp_send_cb(&gbcfg, oph->msg);</span><br><span style="color: hsl(0, 100%, 40%);">-              break;</span><br><span style="color: hsl(0, 100%, 40%);">-  default:</span><br><span style="color: hsl(0, 100%, 40%);">-                printf("NS2 REQUEST, prim %d, bvci 0x%04x\n\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                       oph->primitive, nsp->bvci);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-               break;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</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%);">-static void send_bssgp_reset(struct gprs_ns2_inst *nsi,</span><br><span style="color: hsl(0, 100%, 40%);">-                            uint16_t nsei, uint16_t bvci)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     /* GPRS Network Service, PDU type: NS_UNITDATA, BVCI 0</span><br><span style="color: hsl(0, 100%, 40%);">-   * BSSGP RESET */</span><br><span style="color: hsl(0, 100%, 40%);">-       unsigned char msg[18] = {</span><br><span style="color: hsl(0, 100%, 40%);">-               0x22, 0x04, 0x82, 0x4a,</span><br><span style="color: hsl(0, 100%, 40%);">-         0x2e, 0x07, 0x81, 0x08, 0x08, 0x88, 0x11, 0x22,</span><br><span style="color: hsl(0, 100%, 40%);">-         0x33, 0x40, 0x50, 0x60, 0x10, 0x00</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%);">-      msg[3] = bvci / 256;</span><br><span style="color: hsl(0, 100%, 40%);">-    msg[4] = bvci % 256;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    send_ns_unitdata(nsi, "BVC_RESET", nsei, 0, msg, sizeof(msg));</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 void send_bssgp_reset_ack(struct gprs_ns2_inst *nsi,</span><br><span style="color: hsl(0, 100%, 40%);">-                             uint16_t nsei, uint16_t bvci)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- /* GPRS Network Service, PDU type: NS_UNITDATA, BVCI 0</span><br><span style="color: hsl(0, 100%, 40%);">-   * BSSGP RESET_ACK */</span><br><span style="color: hsl(0, 100%, 40%);">-   static unsigned char msg[5] = {</span><br><span style="color: hsl(0, 100%, 40%);">-         0x23, 0x04, 0x82, 0x00,</span><br><span style="color: hsl(0, 100%, 40%);">-         0x00</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%);">-      msg[3] = bvci / 256;</span><br><span style="color: hsl(0, 100%, 40%);">-    msg[4] = bvci % 256;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    send_ns_unitdata(nsi, "BVC_RESET_ACK", nsei, 0, msg, sizeof(msg));</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%);">-/* STATUS indications */</span><br><span style="color: hsl(0, 100%, 40%);">-static void send_ns_avail(struct gprs_ns2_inst *nsi,</span><br><span style="color: hsl(0, 100%, 40%);">-                         uint16_t sgsn_nsei)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  struct osmo_gprs_ns2_prim nsp = {};</span><br><span style="color: hsl(0, 100%, 40%);">-     nsp.nsei = sgsn_nsei;</span><br><span style="color: hsl(0, 100%, 40%);">-   nsp.bvci = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-   nsp.u.status.cause = NS_AFF_CAUSE_RECOVERY;</span><br><span style="color: hsl(0, 100%, 40%);">-     nsp.u.status.transfer = -1;</span><br><span style="color: hsl(0, 100%, 40%);">-     nsp.u.status.first = true;</span><br><span style="color: hsl(0, 100%, 40%);">-      osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_STATUS,</span><br><span style="color: hsl(0, 100%, 40%);">-                    PRIM_OP_INDICATION, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      gprs_ns2_callback(&nsp.oph, &gbcfg);</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 void setup_ns(struct gprs_ns2_inst *nsi,</span><br><span style="color: hsl(0, 100%, 40%);">-                 uint16_t nsei)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    printf("Setup NS-VC: "</span><br><span style="color: hsl(0, 100%, 40%);">-               "NSEI 0x%04x(%d)\n\n",</span><br><span style="color: hsl(0, 100%, 40%);">-        nsei, nsei);</span><br><span style="color: hsl(0, 100%, 40%);">-     send_ns_avail(nsi, nsei);</span><br><span style="color: hsl(0, 100%, 40%);">-       send_bssgp_reset(nsi, nsei, 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%);">-static void setup_bssgp(struct gprs_ns2_inst *nsi,</span><br><span style="color: hsl(0, 100%, 40%);">-                   uint16_t nsei, uint16_t bvci)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("Setup BSSGP: "</span><br><span style="color: hsl(0, 100%, 40%);">-               "BVCI 0x%04x(%d)\n\n",</span><br><span style="color: hsl(0, 100%, 40%);">-        bvci, bvci);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     send_bssgp_reset(nsi, nsei, bvci);</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 void connect_sgsn(struct gprs_ns2_inst *nsi,</span><br><span style="color: hsl(0, 100%, 40%);">-                   uint32_t sgsn_nsei)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_avail(nsi, sgsn_nsei);</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%);">-/* Function used to send a BSSGP message through NS */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gbprox_test_bssgp_send_cb(void *ctx, struct msgb *msg)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- int rc;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gbproxy_config *cfg = (struct gbproxy_config *) ctx;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     uint16_t nsei = msgb_nsei(msg);</span><br><span style="color: hsl(0, 100%, 40%);">- uint16_t bvci = msgb_bvci(msg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if (received_messages) {</span><br><span style="color: hsl(0, 100%, 40%);">-                struct msgb *msg_copy;</span><br><span style="color: hsl(0, 100%, 40%);">-          msg_copy = bssgp_msgb_copy(msg, "received_messages");</span><br><span style="color: hsl(0, 100%, 40%);">-         llist_add_tail(&msg_copy->list, received_messages);</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%);">-       if (nsei == cfg->nsip_sgsn_nsei)</span><br><span style="color: hsl(0, 100%, 40%);">-             printf("Message for SGSN");</span><br><span style="color: hsl(0, 100%, 40%);">-   else</span><br><span style="color: hsl(0, 100%, 40%);">-            printf("Message for BSS");</span><br><span style="color: hsl(0, 100%, 40%);">-    printf(" (NSEI=%d BVCI=%d):\n%s\n\n", nsei, bvci, msgb_hexdump(msg));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- rc = msgb_length(msg);</span><br><span style="color: hsl(0, 100%, 40%);">-  msgb_free(msg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- return rc;</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 void gprs_ns2_test_prim_status_cb(struct gbproxy_config *cfg, struct osmo_gprs_ns2_prim *nsp)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-        enum gprs_ns2_affecting_cause cause = nsp->u.status.cause;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   switch (cause) {</span><br><span style="color: hsl(0, 100%, 40%);">-                case NS_AFF_CAUSE_RECOVERY:</span><br><span style="color: hsl(0, 100%, 40%);">-                     LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei);</span><br><span style="color: hsl(0, 100%, 40%);">-                        break;</span><br><span style="color: hsl(0, 100%, 40%);">-          case NS_AFF_CAUSE_FAILURE:</span><br><span style="color: hsl(0, 100%, 40%);">-                      LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei);</span><br><span style="color: hsl(0, 100%, 40%);">-                      break;</span><br><span style="color: hsl(0, 100%, 40%);">-          case NS_AFF_CAUSE_VC_RECOVERY:</span><br><span style="color: hsl(0, 100%, 40%);">-                  LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d NS-VC %s became available\n", nsp->nsei, nsp->u.status.nsvc);</span><br><span style="color: hsl(0, 100%, 40%);">-                        break;</span><br><span style="color: hsl(0, 100%, 40%);">-          case NS_AFF_CAUSE_VC_FAILURE:</span><br><span style="color: hsl(0, 100%, 40%);">-                   LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d NS-VC %s became unavailable\n", nsp->nsei, nsp->u.status.nsvc);</span><br><span style="color: hsl(0, 100%, 40%);">-                      break;</span><br><span style="color: hsl(0, 100%, 40%);">-          default:</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGP(DPCU, LOGL_NOTICE, "Unhandled status %d (NS-NSE %d)\n", cause, nsp->nsei);</span><br><span style="color: hsl(0, 100%, 40%);">-                    break;</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%);">-int gprs_ns2_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%);">-/* override */</span><br><span style="color: hsl(0, 100%, 40%);">-static int gprs_ns2_callback(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%);">-  struct osmo_gprs_ns2_prim *nsp;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gbproxy_config *cfg = (struct gbproxy_config *) ctx;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     if (oph->sap != SAP_NS)</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%);">-       nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        if (oph->operation != PRIM_OP_INDICATION) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOGP(DPCU, LOGL_NOTICE, "NS: %s Unknown prim %d from NS\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                get_value_string(osmo_prim_op_names, oph->operation),</span><br><span style="color: hsl(0, 100%, 40%);">-                oph->operation);</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%);">-       switch (oph->primitive) {</span><br><span style="color: hsl(0, 100%, 40%);">-    case PRIM_NS_UNIT_DATA:</span><br><span style="color: hsl(0, 100%, 40%);">-         /* hand the message into the BSSGP implementation */</span><br><span style="color: hsl(0, 100%, 40%);">-            msgb_bssgph(oph->msg) = oph->msg->l3h;</span><br><span style="color: hsl(0, 100%, 40%);">-         msgb_bvci(oph->msg) = nsp->bvci;</span><br><span style="color: hsl(0, 100%, 40%);">-          msgb_nsei(oph->msg) = nsp->nsei;</span><br><span style="color: hsl(0, 100%, 40%);">-          printf("NS2 CALLBACK, prim %d, msg length %zu, bvci 0x%04x\n%s\n\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                  oph->primitive, msgb_bssgp_len(oph->msg), nsp->bvci,</span><br><span style="color: hsl(0, 100%, 40%);">-                   osmo_hexdump(msgb_l2(oph->msg), msgb_l2len(oph->msg)));</span><br><span style="color: hsl(0, 100%, 40%);">-           break;</span><br><span style="color: hsl(0, 100%, 40%);">-  case PRIM_NS_STATUS:</span><br><span style="color: hsl(0, 100%, 40%);">-            gprs_ns2_test_prim_status_cb(cfg, nsp);</span><br><span style="color: hsl(0, 100%, 40%);">- default:</span><br><span style="color: hsl(0, 100%, 40%);">-                printf("NS2 CALLBACK, prim %d, bvci 0x%04x\n\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                      oph->primitive, nsp->bvci);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-               break;</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%);">-       /* Hand off to gbproxy which will free the msg */</span><br><span style="color: hsl(0, 100%, 40%);">-       return gprs_ns2_prim_cb(oph, ctx);</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 void test_gbproxy()</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  struct gprs_ns2_inst *nsi = gprs_ns2_instantiate(tall_sgsn_ctx, gprs_ns2_callback, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">- uint16_t bss_nsei[2] = {0x1000, 0x2000};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        gbcfg.nsi = nsi;</span><br><span style="color: hsl(0, 100%, 40%);">-        gbcfg.nsip_sgsn_nsei = SGSN_NSEI;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       bssgp_set_bssgp_callback(gbprox_test_bssgp_send_cb, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        printf("=== %s ===\n", __func__);</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("--- Initialise SGSN ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        connect_sgsn(nsi, SGSN_NSEI);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Initialise BSS 1 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       setup_ns(nsi, bss_nsei[0]);</span><br><span style="color: hsl(0, 100%, 40%);">-     setup_bssgp(nsi, bss_nsei[0], 0x1002);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Initialise BSS 2 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       setup_ns(nsi, bss_nsei[1]);</span><br><span style="color: hsl(0, 100%, 40%);">-     setup_bssgp(nsi, bss_nsei[1], 0x2002);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x2002);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Reset BSS 1 with a new BVCI ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    setup_bssgp(nsi, bss_nsei[0], 0x1012);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1012);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Reset BSS 1 with the old BVCI ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  setup_bssgp(nsi, bss_nsei[0], 0x1002);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Reset BSS 1 with the old BVCI again ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    setup_bssgp(nsi, bss_nsei[0], 0x1002);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Send message from BSS 1 to SGSN, BVCI 0x1012 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x1012, (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Send message from SGSN to BSS 1, BVCI 0x1012 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x1012, (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x1012, (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Send message from SGSN to BSS 1, BVCI 0x1002 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x1012, (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("--- Send message from BSS 2 to SGSN, BVCI 0x2002 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x2002, (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Send message from SGSN to BSS 2, BVCI 0x2002 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x2002, (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("--- Reset BSS 1 with the old BVCI on BSS2's link ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       setup_bssgp(nsi, bss_nsei[0], 0x1002);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   dump_global(stdout, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- send_bssgp_reset_ack(nsi, SGSN_NSEI, 0x1002);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_unitdata(nsi, NULL, bss_nsei[0], 0x1012, (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Send message from SGSN to BSS 1, BVCI 0x1002 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x1012, (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("--- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- send_ns_unitdata(nsi, NULL, SGSN_NSEI, 0x10ff, (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     /* Find peer */</span><br><span style="color: hsl(0, 100%, 40%);">- OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0xeeee) == NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0x1000) == NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(gbproxy_bvc_by_bvci(&gbcfg, 0x1012) != NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0xeeee) == NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0x1012) == NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(gbproxy_bvc_by_nsei(&gbcfg, 0x1000) != NULL);</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%);">-   /* Cleanup */</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0, 0) == 0);</span><br><span style="color: hsl(0, 100%, 40%);">-       OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0xeeee) == 0);</span><br><span style="color: hsl(0, 100%, 40%);">-     OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0, 0x1002) == 0);</span><br><span style="color: hsl(0, 100%, 40%);">-  OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0x1012) == 1);</span><br><span style="color: hsl(0, 100%, 40%);">-     OSMO_ASSERT(gbproxy_cleanup_bvcs(&gbcfg, 0x1000, 0x1012) == 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   dump_global(stdout, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- gbprox_reset(&gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-       gprs_ns2_free(nsi);</span><br><span style="color: hsl(0, 100%, 40%);">-     nsi = NULL;</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 void test_gbproxy_ident_changes()</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   struct gprs_ns2_inst *nsi = gprs_ns2_instantiate(tall_sgsn_ctx, gprs_ns2_callback, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">- uint16_t bss_nsei[2] = {0x1000, 0x2000};</span><br><span style="color: hsl(0, 100%, 40%);">-        uint16_t bvci[4] = {0x1002, 0x2002, 0x3002};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    gbcfg.nsi = nsi;</span><br><span style="color: hsl(0, 100%, 40%);">-        gbcfg.nsip_sgsn_nsei = SGSN_NSEI;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       bssgp_set_bssgp_callback(gbprox_test_bssgp_send_cb, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        printf("=== %s ===\n", __func__);</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("--- Initialise SGSN ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        connect_sgsn(nsi, SGSN_NSEI);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Initialise BSS 1 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       setup_ns(nsi, bss_nsei[0]);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("--- Setup BVCI 1 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   setup_bssgp(nsi, bss_nsei[0], bvci[0]);</span><br><span style="color: hsl(0, 100%, 40%);">- send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[0]);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Setup BVCI 2 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   setup_bssgp(nsi, bss_nsei[0], bvci[1]);</span><br><span style="color: hsl(0, 100%, 40%);">- send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[1]);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Send message from BSS 1 to SGSN and back, BVCI 1 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       send_ns_unitdata(nsi, NULL, bss_nsei[0], bvci[0], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-  send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[0], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    printf("--- Send message from BSS 1 to SGSN and back, BVCI 2 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       send_ns_unitdata(nsi, NULL, bss_nsei[0], bvci[1], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-  send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[1], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    printf("--- Change NSEI ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    setup_ns(nsi, bss_nsei[1]);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("--- Setup BVCI 1 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   setup_bssgp(nsi, bss_nsei[1], bvci[0]);</span><br><span style="color: hsl(0, 100%, 40%);">- send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[0]);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Setup BVCI 3 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   setup_bssgp(nsi, bss_nsei[1], bvci[2]);</span><br><span style="color: hsl(0, 100%, 40%);">- send_bssgp_reset_ack(nsi, SGSN_NSEI, bvci[2]);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Send message from BSS 1 to SGSN and back, BVCI 1 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       send_ns_unitdata(nsi, NULL, bss_nsei[1], bvci[0], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-  send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[0], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    printf("--- Send message from BSS 1 to SGSN and back, BVCI 2 "</span><br><span style="color: hsl(0, 100%, 40%);">-               " (should fail) ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     send_ns_unitdata(nsi, NULL, bss_nsei[1], bvci[1], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-  dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-   send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[1], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-    dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   printf("--- Send message from BSS 1 to SGSN and back, BVCI 3 ---\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       send_ns_unitdata(nsi, NULL, bss_nsei[0], bvci[2], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-  send_ns_unitdata(nsi, NULL, SGSN_NSEI, bvci[2], (uint8_t *)"", 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    dump_global(stdout, 0);</span><br><span style="color: hsl(0, 100%, 40%);">- dump_peers(stdout, 0, 0, &gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   gbprox_reset(&gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-       gprs_ns2_free(nsi);</span><br><span style="color: hsl(0, 100%, 40%);">-     nsi = NULL;</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%);">-/* See OS#3178 "gbproxy: failed to parse invalid BSSGP-UNITDATA message" */</span><br><span style="color: hsl(0, 100%, 40%);">-static void test_gbproxy_parse_bssgp_unitdata()</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-       const char *hex = "0000239401e155cfea000004088872f4801018009c4000800e000601c0416c4338";</span><br><span style="color: hsl(0, 100%, 40%);">-       struct msgb *msg = msgb_alloc(1034, "bssgp_unitdata");</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gprs_gb_parse_context parse_ctx;</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(&parse_ctx, 0, sizeof(parse_ctx));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(msg);</span><br><span style="color: hsl(0, 100%, 40%);">-       msgb_bssgph(msg) = msg->head;</span><br><span style="color: hsl(0, 100%, 40%);">-        msgb_put(msg, osmo_hexparse(hex, msg->head, msgb_tailroom(msg)));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    parse_ctx.to_bss = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-   parse_ctx.peer_nsei = msgb_nsei(msg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   rc = gprs_gb_parse_bssgp(msg->data, msg->len, &parse_ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-    if (!rc)</span><br><span style="color: hsl(0, 100%, 40%);">-                fprintf(stderr, "%s: Test passed; Failed to parse invalid message %s\n", __func__, msgb_hexdump(msg));</span><br><span style="color: hsl(0, 100%, 40%);">-        else</span><br><span style="color: hsl(0, 100%, 40%);">-            fprintf(stderr, "%s: Test failed; invalid message was accepted by parser: %s\n", __func__, msgb_hexdump(msg));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        OSMO_ASSERT(!rc);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       /* Manually decoded message according to:</span><br><span style="color: hsl(0, 100%, 40%);">-          ETSI TS 148 018 V10.6.0 (2012 07) 96</span><br><span style="color: hsl(0, 100%, 40%);">-    3GPP TS 48.018 version 10.6.0 Release 10</span><br><span style="color: hsl(0, 100%, 40%);">-        Table 10.2.2: UL-UNITDATA PDU content</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        00      - PDU type UL-UNITDATA (ok)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-             11.3.35 Temporary logical link Identity (TLLI)</span><br><span style="color: hsl(0, 100%, 40%);">-  00      - TLLI[0]</span><br><span style="color: hsl(0, 100%, 40%);">-       23      - TLLI[1]</span><br><span style="color: hsl(0, 100%, 40%);">-       94      - TLLI[2]</span><br><span style="color: hsl(0, 100%, 40%);">-       01      - TLLI[3]</span><br><span style="color: hsl(0, 100%, 40%);">-                 TLLI == "00239401"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  e1      - QOS[0] (bit rate MSB)</span><br><span style="color: hsl(0, 100%, 40%);">- 55      - QOS[1] (bit rate LSB)</span><br><span style="color: hsl(0, 100%, 40%);">-           bit rate = "57685" (57685*100000 bit/s per PBRG)</span><br><span style="color: hsl(0, 100%, 40%);">-    cf      - QOS[2] PBRG = 11 (bit rate is expressed in 100000 bit/s increments),</span><br><span style="color: hsl(0, 100%, 40%);">-                  C/R 0 (contains LLC ACK/SACK),</span><br><span style="color: hsl(0, 100%, 40%);">-                  T 0 (contains signalling),</span><br><span style="color: hsl(0, 100%, 40%);">-                      A 1 (radio if uses MAC/UNITDATA,</span><br><span style="color: hsl(0, 100%, 40%);">-                        Precedence 111 (reserved value)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- ea      - CELL_ID[0] (TLV IEI: wrong, should be 0x08)</span><br><span style="color: hsl(0, 100%, 40%);">-   00      - CELL_ID[1] (length 1)</span><br><span style="color: hsl(0, 100%, 40%);">- 00      - CELL_ID[2] (length 2)</span><br><span style="color: hsl(0, 100%, 40%);">-         lenth == 0</span><br><span style="color: hsl(0, 100%, 40%);">-      04      -- CELL_ID[3]</span><br><span style="color: hsl(0, 100%, 40%);">-   08      -- CELL_ID[4]</span><br><span style="color: hsl(0, 100%, 40%);">-   88      -- CELL_ID[5]</span><br><span style="color: hsl(0, 100%, 40%);">-   72      -- CELL_ID[6]</span><br><span style="color: hsl(0, 100%, 40%);">-   f4      -- CELL_ID[7]</span><br><span style="color: hsl(0, 100%, 40%);">-   80      -- CELL_ID[8]</span><br><span style="color: hsl(0, 100%, 40%);">-   10      -- CELL_DI[9]</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   18      -- QOSP[0] OoS Profile IEI</span><br><span style="color: hsl(0, 100%, 40%);">-              not allowed in BSSGP Userdata</span><br><span style="color: hsl(0, 100%, 40%);">-   00      -- QOSP[1]</span><br><span style="color: hsl(0, 100%, 40%);">-      9c      -- QOSP[2]</span><br><span style="color: hsl(0, 100%, 40%);">-      40      -- QOSP[3]</span><br><span style="color: hsl(0, 100%, 40%);">-      00      -- QOSP[4]</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      80      -- IEI for "E-UTRAN Inter RAT Handover Info"</span><br><span style="color: hsl(0, 100%, 40%);">-          not allowed in BSSGP Userdata</span><br><span style="color: hsl(0, 100%, 40%);">-   0e      -- length (14 bytes -- only 8 bytes remain)</span><br><span style="color: hsl(0, 100%, 40%);">-     00 06 01 c0 41 6c 43 38 */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      msgb_free(msg);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- cleanup_test();</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%);">-        [DGPRS] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             .name = "DGPRS",</span><br><span style="color: hsl(0, 100%, 40%);">-              .description = "GPRS Packet Service",</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%);">-      [DNS] = {</span><br><span style="color: hsl(0, 100%, 40%);">-               .name = "DNS",</span><br><span style="color: hsl(0, 100%, 40%);">-                .description = "GPRS Network Service (NS)",</span><br><span style="color: hsl(0, 100%, 40%);">-           .enabled = 1, .loglevel = LOGL_INFO,</span><br><span style="color: hsl(0, 100%, 40%);">-    },</span><br><span style="color: hsl(0, 100%, 40%);">-      [DBSSGP] = {</span><br><span style="color: hsl(0, 100%, 40%);">-            .name = "DBSSGP",</span><br><span style="color: hsl(0, 100%, 40%);">-             .description = "GPRS BSS Gateway Protocol (BSSGP)",</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%);">-       talloc_enable_leak_report();</span><br><span style="color: hsl(0, 100%, 40%);">-    tall_sgsn_ctx = talloc_named_const(NULL, 0, "gbproxy_test");</span><br><span style="color: hsl(0, 100%, 40%);">-  void *log_ctx = talloc_named_const(tall_sgsn_ctx, 0, "log");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  msgb_talloc_ctx_init(tall_sgsn_ctx, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_init_logging2(log_ctx, &info);</span><br><span style="color: hsl(0, 100%, 40%);">- log_set_use_color(osmo_stderr_target, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-       log_set_print_filename(osmo_stderr_target, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-  log_set_log_level(osmo_stderr_target, LOGL_DEBUG);</span><br><span style="color: hsl(0, 100%, 40%);">-      log_set_all_filter(osmo_stderr_target, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      rate_ctr_init(tall_sgsn_ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   setlinebuf(stdout);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     printf("===== GbProxy test START\n");</span><br><span style="color: hsl(0, 100%, 40%);">- gbproxy_init_config(&gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-        test_gbproxy();</span><br><span style="color: hsl(0, 100%, 40%);">- test_gbproxy_ident_changes();</span><br><span style="color: hsl(0, 100%, 40%);">-   test_gbproxy_parse_bssgp_unitdata();</span><br><span style="color: hsl(0, 100%, 40%);">-    gbprox_reset(&gbcfg);</span><br><span style="color: hsl(0, 100%, 40%);">-       /* gbprox_reset() frees the rate_ctr, but re-allocates it again. */</span><br><span style="color: hsl(0, 100%, 40%);">-     rate_ctr_group_free(gbcfg.ctrg);</span><br><span style="color: hsl(0, 100%, 40%);">-        printf("===== GbProxy test END\n\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- talloc_free(log_ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-   /* expecting root and msgb ctx, empty */</span><br><span style="color: hsl(0, 100%, 40%);">-        OSMO_ASSERT(talloc_total_blocks(tall_sgsn_ctx) == 2);</span><br><span style="color: hsl(0, 100%, 40%);">-   talloc_free(tall_sgsn_ctx);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-     return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/tests/gbproxy/gbproxy_test.ok b/tests/gbproxy/gbproxy_test.ok</span><br><span>deleted file mode 100644</span><br><span>index 75bea98..0000000</span><br><span>--- a/tests/gbproxy/gbproxy_test.ok</span><br><span>+++ /dev/null</span><br><span>@@ -1,671 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-===== GbProxy test START</span><br><span style="color: hsl(0, 100%, 40%);">-=== test_gbproxy ===</span><br><span>---- Initialise SGSN ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 2, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Initialise BSS 1 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup NS-VC: NSEI 0x1000(4096)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 2, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 4096</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=4096 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 00 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x1002(4098)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 4096</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=4096 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Initialise BSS 2 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup NS-VC: NSEI 0x2000(8192)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 2, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 8192</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=8192 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 00 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x2002(8194)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 8192</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 20 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 20 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 20 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=8192 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 20 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Reset BSS 1 with a new BVCI ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x1012(4114)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 4096</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 12 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 12 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 12 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=4096 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 10 12 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Reset BSS 1 with the old BVCI ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x1002(4098)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 4096</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=4096 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Reset BSS 1 with the old BVCI again ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x1002(4098)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 4096</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=4096 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from BSS 1 to SGSN, BVCI 0x1012 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 4096</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012</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%);">-Message for SGSN (NSEI=256 BVCI=4114):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from SGSN to BSS 1, BVCI 0x1012 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012</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%);">-Message for BSS (NSEI=4096 BVCI=4114):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from BSS 1 to SGSN, BVCI 0x1002 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 4096</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012</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%);">-Message for SGSN (NSEI=256 BVCI=4114):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from SGSN to BSS 1, BVCI 0x1002 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012</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%);">-Message for BSS (NSEI=4096 BVCI=4114):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from BSS 2 to SGSN, BVCI 0x2002 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 4096</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002</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%);">-Message for SGSN (NSEI=256 BVCI=8194):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from SGSN to BSS 2, BVCI 0x2002 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002</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%);">-Message for BSS (NSEI=8192 BVCI=8194):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Reset BSS 1 with the old BVCI on BSS2's link ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x1002(4098)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 4096</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-Gbproxy global:</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=4096 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from BSS 1 to SGSN, BVCI 0x1002 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 4096</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012</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%);">-Message for SGSN (NSEI=256 BVCI=4114):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from SGSN to BSS 1, BVCI 0x1002 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1012</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1012</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%);">-Message for BSS (NSEI=4096 BVCI=4114):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x10ff</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%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-41 07 81 05 04 82 10 ff 15 80 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-Gbproxy global:</span><br><span style="color: hsl(0, 100%, 40%);">-    Invalid BVC Identifier          : 1</span><br><span style="color: hsl(0, 100%, 40%);">-=== test_gbproxy_ident_changes ===</span><br><span>---- Initialise SGSN ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 2, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Initialise BSS 1 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup NS-VC: NSEI 0x1000(4096)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 2, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 4096</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=4096 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 00 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Setup BVCI 1 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x1002(4098)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 4096</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=4096 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span>---- Setup BVCI 2 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x2002(8194)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 4096</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 20 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 20 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 20 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=4096 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 20 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span>---- Send message from BSS 1 to SGSN and back, BVCI 1 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 4096</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002</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%);">-Message for SGSN (NSEI=256 BVCI=4098):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002</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%);">-Message for BSS (NSEI=4096 BVCI=4098):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from BSS 1 to SGSN and back, BVCI 2 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 4096</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002</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%);">-Message for SGSN (NSEI=256 BVCI=8194):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002</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%);">-Message for BSS (NSEI=4096 BVCI=8194):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Change NSEI ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup NS-VC: NSEI 0x2000(8192)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 2, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 8192</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=8192 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 00 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Setup BVCI 1 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x1002(4098)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 8192</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=8192 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 10 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span>---- Setup BVCI 3 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Setup BSSGP: BVCI 0x3002(12290)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET from NSEI 8192</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 18, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for SGSN (NSEI=256 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING BVC_RESET_ACK from NSEI 256</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 30 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 CALLBACK, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 30 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NS2 UD REQUEST, prim 0, msg length 5, bvci 0x0000</span><br><span style="color: hsl(0, 100%, 40%);">-23 04 82 30 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Message for BSS (NSEI=8192 BVCI=0):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> 23 04 82 30 02 </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span>---- Send message from BSS 1 to SGSN and back, BVCI 1 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 8192</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002</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%);">-Message for SGSN (NSEI=256 BVCI=4098):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x1002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x1002</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%);">-Message for BSS (NSEI=8192 BVCI=4098):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>---- Send message from BSS 1 to SGSN and back, BVCI 2  (should fail) ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 8192</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002</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%);">-Message for SGSN (NSEI=256 BVCI=8194):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x2002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x2002</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%);">-Message for BSS (NSEI=4096 BVCI=8194):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span>---- Send message from BSS 1 to SGSN and back, BVCI 3 ---</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 4096</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x3002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x3002</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%);">-Message for SGSN (NSEI=256 BVCI=12290):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PROCESSING (null) from NSEI 256</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%);">-NS2 CALLBACK, prim 0, msg length 0, bvci 0x3002</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%);">-NS2 UD REQUEST, prim 0, msg length 0, bvci 0x3002</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%);">-Message for BSS (NSEI=8192 BVCI=12290):</span><br><span style="color: hsl(0, 100%, 40%);">-[L2]> [L3]> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Gbproxy global:</span><br><span style="color: hsl(0, 100%, 40%);">-Peers:</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-  NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96</span><br><span style="color: hsl(0, 100%, 40%);">-    NSEI mismatch                   : 1</span><br><span style="color: hsl(0, 100%, 40%);">-===== GbProxy test END</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>diff --git a/tests/testsuite.at b/tests/testsuite.at</span><br><span>index d30115e..637d853 100644</span><br><span>--- a/tests/testsuite.at</span><br><span>+++ b/tests/testsuite.at</span><br><span>@@ -7,12 +7,6 @@</span><br><span> AT_CHECK([$abs_top_builddir/tests/gprs/gprs_test], [], [expout], [ignore])</span><br><span> AT_CLEANUP</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-AT_SETUP([gbproxy])</span><br><span style="color: hsl(0, 100%, 40%);">-AT_KEYWORDS([gbproxy])</span><br><span style="color: hsl(0, 100%, 40%);">-cat $abs_srcdir/gbproxy/gbproxy_test.ok > expout</span><br><span style="color: hsl(0, 100%, 40%);">-AT_CHECK([$abs_top_builddir/tests/gbproxy/gbproxy_test], [], [expout], [ignore])</span><br><span style="color: hsl(0, 100%, 40%);">-AT_CLEANUP</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> AT_SETUP([sgsn])</span><br><span> AT_KEYWORDS([sgsn])</span><br><span> AT_CHECK([test "$enable_sgsn_test" != no || exit 77])</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/21590">change 21590</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-sgsn/+/21590"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-sgsn </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I053aebab6bf5d0ee955f2221bf27925b36140cf3 </div>
<div style="display:none"> Gerrit-Change-Number: 21590 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>