<p>Neels Hofmeyr <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/13118">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add osmo_sccp_addr_cmp(), osmo_sccp_addr_ri_cmp()<br><br>osmo-msc identifies its BSC and RNC peers by SCCP address, and compares those<br>by memcmp(), which is not really accurate. Rather provide a meaningful<br>osmo_sccp_addr_cmp() API to determine whether SCCP addresses are identical.<br><br>Go for a full cmp that would also allow sorting.<br><br>Change-Id: Ie9e2add7bbfae651c04e230d62e37cebeb91b0f5<br>---<br>M include/osmocom/sigtran/sccp_sap.h<br>M src/sccp_user.c<br>M tests/xua/xua_test.c<br>M tests/xua/xua_test.ok<br>4 files changed, 392 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/sigtran/sccp_sap.h b/include/osmocom/sigtran/sccp_sap.h</span><br><span>index f64b7aa..9d285eb 100644</span><br><span>--- a/include/osmocom/sigtran/sccp_sap.h</span><br><span>+++ b/include/osmocom/sigtran/sccp_sap.h</span><br><span>@@ -276,5 +276,8 @@</span><br><span>                                 uint32_t ssn);</span><br><span> </span><br><span> bool osmo_sccp_check_addr(struct osmo_sccp_addr *addr, uint32_t presence);</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_sccp_addr_cmp(const struct osmo_sccp_addr *a, const struct osmo_sccp_addr *b, uint32_t presence_criteria);</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_sccp_addr_ri_cmp(const struct osmo_sccp_addr *a, const struct osmo_sccp_addr *b);</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_sccp_gt_cmp(const struct osmo_sccp_gt *a, const struct osmo_sccp_gt *b);</span><br><span> </span><br><span> const char *osmo_sccp_user_name(struct osmo_sccp_user *scu);</span><br><span>diff --git a/src/sccp_user.c b/src/sccp_user.c</span><br><span>index 8a98e46..63eba2a 100644</span><br><span>--- a/src/sccp_user.c</span><br><span>+++ b/src/sccp_user.c</span><br><span>@@ -293,6 +293,124 @@</span><br><span>      return true;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/*! Compare two SCCP Global Titles.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] a  left side.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] b  right side.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \return -1 if a < b, 1 if a > b, and 0 if a == b.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_sccp_gt_cmp(const struct osmo_sccp_gt *a, const struct osmo_sccp_gt *b)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   if (a == b)</span><br><span style="color: hsl(120, 100%, 40%);">+           return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     if (!a)</span><br><span style="color: hsl(120, 100%, 40%);">+               return -1;</span><br><span style="color: hsl(120, 100%, 40%);">+    if (!b)</span><br><span style="color: hsl(120, 100%, 40%);">+               return 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     return memcmp(a, b, sizeof(*a));</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/*! Compare two SCCP addresses by given presence criteria.</span><br><span style="color: hsl(120, 100%, 40%);">+ * Any OSMO_SCCP_ADDR_T_* type not set in presence_criteria is ignored.</span><br><span style="color: hsl(120, 100%, 40%);">+ * In case all bits are set in presence_criteria, the comparison is in the order of:</span><br><span style="color: hsl(120, 100%, 40%);">+ * OSMO_SCCP_ADDR_T_GT, OSMO_SCCP_ADDR_T_PC, OSMO_SCCP_ADDR_T_IPv4, OSMO_SCCP_ADDR_T_IPv6, OSMO_SCCP_ADDR_T_SSN.</span><br><span style="color: hsl(120, 100%, 40%);">+ * The SCCP addresses' Routing Indicator is not compared, see osmo_sccp_addr_ri_cmp().</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] a  left side.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] b  right side.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] presence_criteria  A bitmask of OSMO_SCCP_ADDR_T_* values, or 0xffffffff to compare all parts, except the</span><br><span style="color: hsl(120, 100%, 40%);">+ *                               routing indicator.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \return -1 if a < b, 1 if a > b, and 0 if all checked values match.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_sccp_addr_cmp(const struct osmo_sccp_addr *a, const struct osmo_sccp_addr *b, uint32_t presence_criteria)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     int rc;</span><br><span style="color: hsl(120, 100%, 40%);">+       if (a == b)</span><br><span style="color: hsl(120, 100%, 40%);">+           return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     if (!a)</span><br><span style="color: hsl(120, 100%, 40%);">+               return -1;</span><br><span style="color: hsl(120, 100%, 40%);">+    if (!b)</span><br><span style="color: hsl(120, 100%, 40%);">+               return 1;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (presence_criteria & OSMO_SCCP_ADDR_T_GT) {</span><br><span style="color: hsl(120, 100%, 40%);">+            if ((a->presence & OSMO_SCCP_ADDR_T_GT) != (b->presence & OSMO_SCCP_ADDR_T_GT))</span><br><span style="color: hsl(120, 100%, 40%);">+                 return (b->presence & OSMO_SCCP_ADDR_T_GT) ? -1 : 1;</span><br><span style="color: hsl(120, 100%, 40%);">+           rc = osmo_sccp_gt_cmp(&a->gt, &b->gt);</span><br><span style="color: hsl(120, 100%, 40%);">+          if (rc)</span><br><span style="color: hsl(120, 100%, 40%);">+                       return rc;</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (presence_criteria & OSMO_SCCP_ADDR_T_PC) {</span><br><span style="color: hsl(120, 100%, 40%);">+            if ((a->presence & OSMO_SCCP_ADDR_T_PC) != (b->presence & OSMO_SCCP_ADDR_T_PC))</span><br><span style="color: hsl(120, 100%, 40%);">+                 return (b->presence & OSMO_SCCP_ADDR_T_PC) ? -1 : 1;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         if ((a->presence & OSMO_SCCP_ADDR_T_PC)</span><br><span style="color: hsl(120, 100%, 40%);">+                    && a->pc != b->pc)</span><br><span style="color: hsl(120, 100%, 40%);">+                  return (a->pc < b->pc)? -1 : 1;</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (presence_criteria & OSMO_SCCP_ADDR_T_IPv4) {</span><br><span style="color: hsl(120, 100%, 40%);">+          if ((a->presence & OSMO_SCCP_ADDR_T_IPv4) != (b->presence & OSMO_SCCP_ADDR_T_IPv4))</span><br><span style="color: hsl(120, 100%, 40%);">+                     return (b->presence & OSMO_SCCP_ADDR_T_IPv4) ? -1 : 1;</span><br><span style="color: hsl(120, 100%, 40%);">+         rc = memcmp(&a->ip.v4, &b->ip.v4, sizeof(a->ip.v4));</span><br><span style="color: hsl(120, 100%, 40%);">+         if (rc)</span><br><span style="color: hsl(120, 100%, 40%);">+                       return rc;</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (presence_criteria & OSMO_SCCP_ADDR_T_IPv6) {</span><br><span style="color: hsl(120, 100%, 40%);">+          if ((a->presence & OSMO_SCCP_ADDR_T_IPv6) != (b->presence & OSMO_SCCP_ADDR_T_IPv6))</span><br><span style="color: hsl(120, 100%, 40%);">+                     return (b->presence & OSMO_SCCP_ADDR_T_IPv6) ? -1 : 1;</span><br><span style="color: hsl(120, 100%, 40%);">+         rc = memcmp(&a->ip.v6, &b->ip.v6, sizeof(a->ip.v6));</span><br><span style="color: hsl(120, 100%, 40%);">+         if (rc)</span><br><span style="color: hsl(120, 100%, 40%);">+                       return rc;</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (presence_criteria & OSMO_SCCP_ADDR_T_SSN) {</span><br><span style="color: hsl(120, 100%, 40%);">+           if ((a->presence & OSMO_SCCP_ADDR_T_SSN) != (b->presence & OSMO_SCCP_ADDR_T_SSN))</span><br><span style="color: hsl(120, 100%, 40%);">+                       return (b->presence & OSMO_SCCP_ADDR_T_SSN) ? -1 : 1;</span><br><span style="color: hsl(120, 100%, 40%);">+          if (a->ssn != b->ssn)</span><br><span style="color: hsl(120, 100%, 40%);">+                   return (a->ssn < b->ssn) ? -1 : 1;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/*! Compare the routing information of two SCCP addresses.</span><br><span style="color: hsl(120, 100%, 40%);">+ * Compare the ri of a and b, and, if equal, return osmo_sccp_addr_cmp() with presence criteria selected according to</span><br><span style="color: hsl(120, 100%, 40%);">+ * ri.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] a  left side.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param[in] b  right side.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \return -1 if a < b, 1 if a > b, and 0 if a == b.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_sccp_addr_ri_cmp(const struct osmo_sccp_addr *a, const struct osmo_sccp_addr *b)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   uint32_t presence_criteria;</span><br><span style="color: hsl(120, 100%, 40%);">+   if (a == b)</span><br><span style="color: hsl(120, 100%, 40%);">+           return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     if (!a)</span><br><span style="color: hsl(120, 100%, 40%);">+               return -1;</span><br><span style="color: hsl(120, 100%, 40%);">+    if (!b)</span><br><span style="color: hsl(120, 100%, 40%);">+               return 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     if (a->ri != b->ri)</span><br><span style="color: hsl(120, 100%, 40%);">+             return (a->ri < b->ri) ? -1 : 1;</span><br><span style="color: hsl(120, 100%, 40%);">+     switch (a->ri) {</span><br><span style="color: hsl(120, 100%, 40%);">+   case OSMO_SCCP_RI_NONE:</span><br><span style="color: hsl(120, 100%, 40%);">+               return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     case OSMO_SCCP_RI_GT:</span><br><span style="color: hsl(120, 100%, 40%);">+         presence_criteria = OSMO_SCCP_ADDR_T_GT;</span><br><span style="color: hsl(120, 100%, 40%);">+              break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case OSMO_SCCP_RI_SSN_PC:</span><br><span style="color: hsl(120, 100%, 40%);">+             presence_criteria = OSMO_SCCP_ADDR_T_SSN | OSMO_SCCP_ADDR_T_PC;</span><br><span style="color: hsl(120, 100%, 40%);">+               break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case OSMO_SCCP_RI_SSN_IP:</span><br><span style="color: hsl(120, 100%, 40%);">+             /* Pick IPv4 or v6 depending on what a->presence indicates. */</span><br><span style="color: hsl(120, 100%, 40%);">+             presence_criteria = OSMO_SCCP_ADDR_T_SSN | (a->presence & (OSMO_SCCP_ADDR_T_IPv4 | OSMO_SCCP_ADDR_T_IPv6));</span><br><span style="color: hsl(120, 100%, 40%);">+            break;</span><br><span style="color: hsl(120, 100%, 40%);">+        default:</span><br><span style="color: hsl(120, 100%, 40%);">+              return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   return osmo_sccp_addr_cmp(a, b, presence_criteria);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! Compose a human readable string to describe the SCCP user's connection.</span><br><span>  * The output follows ['<scu.name>':]<local-sccp-addr>, e.g.  "'OsmoHNBW':RI=SSN_PC,PC=0.23.5,SSN=RANAP",</span><br><span>  * or just "RI=SSN_PC,PC=0.23.5,SSN=RANAP" if no scu->name is set.</span><br><span>diff --git a/tests/xua/xua_test.c b/tests/xua/xua_test.c</span><br><span>index 37ba645..77daa56 100644</span><br><span>--- a/tests/xua/xua_test.c</span><br><span>+++ b/tests/xua/xua_test.c</span><br><span>@@ -569,6 +569,32 @@</span><br><span>        talloc_free(xua);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void test_sccp_addr_cmp()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      int ai;</span><br><span style="color: hsl(120, 100%, 40%);">+       int bi;</span><br><span style="color: hsl(120, 100%, 40%);">+       int rc;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     printf("\n%s()\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     for (ai = 0; ai < ARRAY_SIZE(enc_cases); ai++) {</span><br><span style="color: hsl(120, 100%, 40%);">+           for (bi = 0; bi < ARRAY_SIZE(enc_cases); bi++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   struct osmo_sccp_addr a = enc_cases[ai].addr_in;</span><br><span style="color: hsl(120, 100%, 40%);">+                      struct osmo_sccp_addr b = enc_cases[bi].addr_in;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                    rc = osmo_sccp_addr_cmp(&a, &b, a.presence);</span><br><span style="color: hsl(120, 100%, 40%);">+                  rc = OSMO_MIN(1, OSMO_MAX(-1, rc));</span><br><span style="color: hsl(120, 100%, 40%);">+                   printf(" [%2d] vs. [%2d]: %2d = osmo_sccp_addr_cmp( %s ,", ai, bi, rc, osmo_sccp_addr_dump(&a));</span><br><span style="color: hsl(120, 100%, 40%);">+                        printf(" %s, 0x%x )\n", osmo_sccp_addr_dump(&b), a.presence);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                 rc = osmo_sccp_addr_ri_cmp(&a, &b);</span><br><span style="color: hsl(120, 100%, 40%);">+                   rc = OSMO_MIN(1, OSMO_MAX(-1, rc));</span><br><span style="color: hsl(120, 100%, 40%);">+                   printf("                %2d = osmo_sccp_addr_ri_cmp( %s ,", rc, osmo_sccp_addr_dump(&a));</span><br><span style="color: hsl(120, 100%, 40%);">+                       printf(" %s )\n", osmo_sccp_addr_dump(&b));</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> static const struct log_info_cat default_categories[] = {</span><br><span>     [0] = {</span><br><span>@@ -598,6 +624,7 @@</span><br><span>        test_sccp2sua();</span><br><span>     test_rkm();</span><br><span>  test_sccp_addr_encdec();</span><br><span style="color: hsl(120, 100%, 40%);">+      test_sccp_addr_cmp();</span><br><span> </span><br><span>    printf("All tests passed.\n");</span><br><span>     return 0;</span><br><span>diff --git a/tests/xua/xua_test.ok b/tests/xua/xua_test.ok</span><br><span>index 83b8b8d..f93b41e 100644</span><br><span>--- a/tests/xua/xua_test.ok</span><br><span>+++ b/tests/xua/xua_test.ok</span><br><span>@@ -205,4 +205,248 @@</span><br><span> expected addr: 10031204a1fb</span><br><span> decod addr: RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test_sccp_addr_cmp()</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 0]:  0 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=2,PC=1024, 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 1]: -1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=2,PC=16383, 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 2]: -1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=2,PC=16383,SSN=90, 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 3]: -1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=2,PC=16383,GTI=1,GT=(), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=1,GTI=1,GT=(), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 5]:  1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=1,GTI=2,GT=(TT=3,DIG=), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 6]:  1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 7]:  1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 8]:  1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [ 9]:  1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=1,GTI=23,GT=(DIG=1234), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 0] vs. [10]:  1 = osmo_sccp_addr_cmp( RI=2,PC=1024 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=1024 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=2,PC=1024, 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 1]:  0 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=2,PC=16383, 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 2]:  0 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=2,PC=16383,SSN=90, 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 3]:  0 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=2,PC=16383,GTI=1,GT=(), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=1,GTI=1,GT=(), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 5]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=1,GTI=2,GT=(TT=3,DIG=), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 6]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 7]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 8]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [ 9]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=1,GTI=23,GT=(DIG=1234), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 1] vs. [10]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x2 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=2,PC=1024, 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 1]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=2,PC=16383, 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 2]:  0 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=2,PC=16383,SSN=90, 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 3]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=2,PC=16383,GTI=1,GT=(), 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=1,GT=(), 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 5]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=2,GT=(TT=3,DIG=), 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 6]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 7]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 8]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [ 9]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=23,GT=(DIG=1234), 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 2] vs. [10]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x6 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,SSN=90 , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=2,PC=1024, 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 1]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=2,PC=16383, 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 2]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=2,PC=16383,SSN=90, 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 3]:  0 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=2,PC=16383,GTI=1,GT=(), 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=1,GT=(), 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 5]: -1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=2,GT=(TT=3,DIG=), 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 6]: -1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 7]: -1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 8]: -1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [ 9]: -1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=23,GT=(DIG=1234), 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 3] vs. [10]: -1 = osmo_sccp_addr_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x3 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=2,PC=16383,GTI=1,GT=() , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=2,PC=1024, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 1]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=2,PC=16383, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 2]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=2,PC=16383,SSN=90, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 3]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=2,PC=16383,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 4]:  0 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 5]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=2,GT=(TT=3,DIG=), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 6]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 7]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 8]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [ 9]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=23,GT=(DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 4] vs. [10]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=1,GT=() , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=2,PC=1024, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 1]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=2,PC=16383, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 2]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=2,PC=16383,SSN=90, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 3]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=2,PC=16383,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 5]:  0 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=2,GT=(TT=3,DIG=), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 6]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 7]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 8]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [ 9]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=23,GT=(DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 5] vs. [10]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=2,GT=(TT=3,DIG=) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=2,PC=1024, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 1]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=2,PC=16383, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 2]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=2,PC=16383,SSN=90, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 3]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=2,PC=16383,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 5]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=2,GT=(TT=3,DIG=), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 6]:  0 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 7]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 8]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [ 9]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=23,GT=(DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 6] vs. [10]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=2,PC=1024, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 1]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=2,PC=16383, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 2]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=2,PC=16383,SSN=90, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 3]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=2,PC=16383,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 5]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=2,GT=(TT=3,DIG=), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 6]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 7]:  0 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 8]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [ 9]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=23,GT=(DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 7] vs. [10]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=2,PC=1024, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 1]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=2,PC=16383, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 2]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=2,PC=16383,SSN=90, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 3]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=2,PC=16383,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 5]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=2,GT=(TT=3,DIG=), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 6]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 7]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 8]:  0 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [ 9]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=23,GT=(DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 8] vs. [10]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=2,PC=1024, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 1]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=2,PC=16383, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 2]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=2,PC=16383,SSN=90, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 3]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=2,PC=16383,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 5]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=2,GT=(TT=3,DIG=), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 6]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 7]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 8]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [ 9]:  0 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=23,GT=(DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [ 9] vs. [10]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=23,GT=(DIG=1234) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 0]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=2,PC=1024, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=2,PC=1024 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 1]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=2,PC=16383, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=2,PC=16383 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 2]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=2,PC=16383,SSN=90, 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=2,PC=16383,SSN=90 )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 3]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=2,PC=16383,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=2,PC=16383,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 4]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=1,GT=(), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=1,GT=() )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 5]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=2,GT=(TT=3,DIG=), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=2,GT=(TT=3,DIG=) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 6]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=123) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 7]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=3,GT=(TT=3,NPL=1,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 8]:  1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [ 9]: -1 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=23,GT=(DIG=1234), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                -1 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=23,GT=(DIG=1234) )</span><br><span style="color: hsl(120, 100%, 40%);">+ [10] vs. [10]:  0 = osmo_sccp_addr_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF), 0x1 )</span><br><span style="color: hsl(120, 100%, 40%);">+                 0 = osmo_sccp_addr_ri_cmp( RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) , RI=1,GTI=4,GT=(TT=3,NPL=1,NAI=4,DIG=1ABF) )</span><br><span> All tests passed.</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13118">change 13118</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/13118"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmo-sccp </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ie9e2add7bbfae651c04e230d62e37cebeb91b0f5 </div>
<div style="display:none"> Gerrit-Change-Number: 13118 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Max <suraev@alumni.ntnu.no> </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>