<p>pespin <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/15165">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  lynxis lazus: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Introduce define TLLI_UNASSIGNED<br><br>Change-Id: Ib8be5af2a5e92a7403505b73ce4c1751832de40d<br>---<br>M include/osmocom/sgsn/gprs_llc.h<br>M src/gprs/gprs_gmm.c<br>M src/gprs/gprs_llc.c<br>M src/gprs/gprs_sgsn.c<br>4 files changed, 18 insertions(+), 15 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/sgsn/gprs_llc.h b/include/osmocom/sgsn/gprs_llc.h</span><br><span>index 5b12248..8a0b9ef 100644</span><br><span>--- a/include/osmocom/sgsn/gprs_llc.h</span><br><span>+++ b/include/osmocom/sgsn/gprs_llc.h</span><br><span>@@ -192,6 +192,9 @@</span><br><span> </span><br><span> #define GPRS_LLME_RESET_AGE (0)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* 3GPP TS 44.064 ยง 8.3 TLLI assignment procedures */</span><br><span style="color: hsl(120, 100%, 40%);">+#define TLLI_UNASSIGNED (0xffffffff)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> extern struct llist_head gprs_llc_llmes;</span><br><span> </span><br><span> /* LLC low level types */</span><br><span>diff --git a/src/gprs/gprs_gmm.c b/src/gprs/gprs_gmm.c</span><br><span>index 5a6ea28..c8bc0f7 100644</span><br><span>--- a/src/gprs/gprs_gmm.c</span><br><span>+++ b/src/gprs/gprs_gmm.c</span><br><span>@@ -2077,7 +2077,7 @@</span><br><span>                  /* Unassign the old TLLI */</span><br><span>                  mmctx->gb.tlli = mmctx->gb.tlli_new;</span><br><span>                   gprs_llme_copy_key(mmctx, mmctx->gb.llme);</span><br><span style="color: hsl(0, 100%, 40%);">-                   gprs_llgmm_assign(mmctx->gb.llme, 0xffffffff,</span><br><span style="color: hsl(120, 100%, 40%);">+                      gprs_llgmm_assign(mmctx->gb.llme, TLLI_UNASSIGNED,</span><br><span>                                          mmctx->gb.tlli_new);</span><br><span>            }</span><br><span>            mmctx->gmm_state = GMM_REGISTERED_NORMAL;</span><br><span>@@ -2102,7 +2102,7 @@</span><br><span>                 if (mmctx->ran_type == MM_CTX_T_GERAN_Gb) {</span><br><span>                       /* Unassign the old TLLI */</span><br><span>                  mmctx->gb.tlli = mmctx->gb.tlli_new;</span><br><span style="color: hsl(0, 100%, 40%);">-                      gprs_llgmm_assign(mmctx->gb.llme, 0xffffffff,</span><br><span style="color: hsl(120, 100%, 40%);">+                      gprs_llgmm_assign(mmctx->gb.llme, TLLI_UNASSIGNED,</span><br><span>                                          mmctx->gb.tlli_new);</span><br><span>            }</span><br><span>            mmctx->gmm_state = GMM_REGISTERED_NORMAL;</span><br><span>@@ -2125,7 +2125,7 @@</span><br><span>                 if (mmctx->ran_type == MM_CTX_T_GERAN_Gb) {</span><br><span>                       /* Unassign the old TLLI */</span><br><span>                  mmctx->gb.tlli = mmctx->gb.tlli_new;</span><br><span style="color: hsl(0, 100%, 40%);">-                      //gprs_llgmm_assign(mmctx->gb.llme, 0xffffffff, mmctx->gb.tlli_new, GPRS_ALGO_GEA0, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+                      //gprs_llgmm_assign(mmctx->gb.llme, TLLI_UNASSIGNED, mmctx->gb.tlli_new, GPRS_ALGO_GEA0, NULL);</span><br><span>                }</span><br><span>            rc = 0;</span><br><span>              break;</span><br><span>diff --git a/src/gprs/gprs_llc.c b/src/gprs/gprs_llc.c</span><br><span>index acf4b54..a301a63 100644</span><br><span>--- a/src/gprs/gprs_llc.c</span><br><span>+++ b/src/gprs/gprs_llc.c</span><br><span>@@ -527,7 +527,7 @@</span><br><span>                lle = &llme->lle[sapi];</span><br><span>               return lle;</span><br><span>  }</span><br><span style="color: hsl(0, 100%, 40%);">-       </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   LOGP(DLLC, LOGL_NOTICE,</span><br><span>              "unknown TLLI(0x%08x)/SAPI(%d): Silently dropping\n",</span><br><span>              tlli, sapi);</span><br><span>@@ -556,7 +556,7 @@</span><br><span>           return NULL;</span><br><span> </span><br><span>     llme->tlli = tlli;</span><br><span style="color: hsl(0, 100%, 40%);">-   llme->old_tlli = 0xffffffff;</span><br><span style="color: hsl(120, 100%, 40%);">+       llme->old_tlli = TLLI_UNASSIGNED;</span><br><span>         llme->state = GPRS_LLMS_UNASSIGNED;</span><br><span>       llme->age_timestamp = GPRS_LLME_RESET_AGE;</span><br><span>        llme->cksn = GSM_KEY_SEQ_INVAL;</span><br><span>@@ -1042,19 +1042,19 @@</span><br><span> {</span><br><span>    unsigned int i;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     if (old_tlli == 0xffffffff && new_tlli != 0xffffffff) {</span><br><span style="color: hsl(120, 100%, 40%);">+       if (old_tlli == TLLI_UNASSIGNED && new_tlli != TLLI_UNASSIGNED) {</span><br><span>            /* TLLI Assignment 8.3.1 */</span><br><span>          /* New TLLI shall be assigned and used when (re)transmitting LLC frames */</span><br><span style="color: hsl(0, 100%, 40%);">-              /* If old TLLI != 0xffffffff was assigned to LLME, then TLLI</span><br><span style="color: hsl(120, 100%, 40%);">+          /* If old TLLI != TLLI_UNASSIGNED was assigned to LLME, then TLLI</span><br><span>             * old is unassigned.  Only TLLI new shall be accepted when</span><br><span>           * received from peer. */</span><br><span style="color: hsl(0, 100%, 40%);">-               if (llme->old_tlli != 0xffffffff) {</span><br><span style="color: hsl(0, 100%, 40%);">-                  llme->old_tlli = 0xffffffff;</span><br><span style="color: hsl(120, 100%, 40%);">+               if (llme->old_tlli != TLLI_UNASSIGNED) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   llme->old_tlli = TLLI_UNASSIGNED;</span><br><span>                         llme->tlli = new_tlli;</span><br><span>            } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        /* If TLLI old == 0xffffffff was assigned to LLME, then this is</span><br><span style="color: hsl(120, 100%, 40%);">+                       /* If TLLI old == TLLI_UNASSIGNED was assigned to LLME, then this is</span><br><span>                          * TLLI assignmemt according to 8.3.1 */</span><br><span style="color: hsl(0, 100%, 40%);">-                        llme->old_tlli = 0xffffffff;</span><br><span style="color: hsl(120, 100%, 40%);">+                       llme->old_tlli = TLLI_UNASSIGNED;</span><br><span>                         llme->tlli = new_tlli;</span><br><span>                    llme->state = GPRS_LLMS_ASSIGNED;</span><br><span>                         /* 8.5.3.1 For all LLE's */</span><br><span>@@ -1066,14 +1066,14 @@</span><br><span>                            /* FIXME Set parameters according to table 9 */</span><br><span>                      }</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-       } else if (old_tlli != 0xffffffff && new_tlli != 0xffffffff) {</span><br><span style="color: hsl(120, 100%, 40%);">+        } else if (old_tlli != TLLI_UNASSIGNED && new_tlli != TLLI_UNASSIGNED) {</span><br><span>             /* TLLI Change 8.3.2 */</span><br><span>              /* Both TLLI Old and TLLI New are assigned; use New when</span><br><span>              * (re)transmitting.  Accept both Old and New on Rx */</span><br><span>               llme->old_tlli = old_tlli;</span><br><span>                llme->tlli = new_tlli;</span><br><span>            llme->state = GPRS_LLMS_ASSIGNED;</span><br><span style="color: hsl(0, 100%, 40%);">-    } else if (old_tlli != 0xffffffff && new_tlli == 0xffffffff) {</span><br><span style="color: hsl(120, 100%, 40%);">+        } else if (old_tlli != TLLI_UNASSIGNED && new_tlli == TLLI_UNASSIGNED) {</span><br><span>             /* TLLI Unassignment 8.3.3) */</span><br><span>               llme->tlli = llme->old_tlli = 0;</span><br><span>               llme->state = GPRS_LLMS_UNASSIGNED;</span><br><span>@@ -1091,7 +1091,7 @@</span><br><span> /* TLLI unassignment */</span><br><span> int gprs_llgmm_unassign(struct gprs_llc_llme *llme)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   return gprs_llgmm_assign(llme, llme->tlli, 0xffffffff);</span><br><span style="color: hsl(120, 100%, 40%);">+    return gprs_llgmm_assign(llme, llme->tlli, TLLI_UNASSIGNED);</span><br><span> }</span><br><span> </span><br><span> /* Chapter 7.2.1.2 LLGMM-RESET.req */</span><br><span>diff --git a/src/gprs/gprs_sgsn.c b/src/gprs/gprs_sgsn.c</span><br><span>index 9a5de41..e01bc5c 100644</span><br><span>--- a/src/gprs/gprs_sgsn.c</span><br><span>+++ b/src/gprs/gprs_sgsn.c</span><br><span>@@ -362,7 +362,7 @@</span><br><span> </span><br><span>     if (llme) {</span><br><span>          /* TLLI unassignment, must be called after sgsn_mm_ctx_free */</span><br><span style="color: hsl(0, 100%, 40%);">-          gprs_llgmm_assign(llme, tlli, 0xffffffff);</span><br><span style="color: hsl(120, 100%, 40%);">+            gprs_llgmm_assign(llme, tlli, TLLI_UNASSIGNED);</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/15165">change 15165</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/+/15165"/><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: Ib8be5af2a5e92a7403505b73ce4c1751832de40d </div>
<div style="display:none"> Gerrit-Change-Number: 15165 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>