<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21124">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">RLCMAC_EncDec: Implement decoding of Egprs Dl Data block HeaderType 2 and 1<br><br>Change-Id: I3b8199711e08bc128821e02c626ded1bc6aa30d7<br>---<br>M library/RLCMAC_EncDec.cc<br>1 file changed, 41 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/24/21124/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/RLCMAC_EncDec.cc b/library/RLCMAC_EncDec.cc</span><br><span>index 16291de..ac60b37 100644</span><br><span>--- a/library/RLCMAC_EncDec.cc</span><br><span>+++ b/library/RLCMAC_EncDec.cc</span><br><span>@@ -207,17 +207,23 @@</span><br><span>                return CodingScheme::MCS__3;</span><br><span>         case 49:</span><br><span>             return CodingScheme::MCS__4;</span><br><span style="color: hsl(120, 100%, 40%);">+  case 60: /* fall through */</span><br><span>  case 61:</span><br><span>             return CodingScheme::MCS__5;</span><br><span style="color: hsl(120, 100%, 40%);">+  case 78: /* fall through */</span><br><span>  case 79:</span><br><span>             return CodingScheme::MCS__6;</span><br><span style="color: hsl(120, 100%, 40%);">+  case 118: /* fall through */</span><br><span>         case 119:</span><br><span>            return CodingScheme::MCS__7;</span><br><span style="color: hsl(0, 100%, 40%);">-    case 142:</span><br><span style="color: hsl(120, 100%, 40%);">+     case 142: /* fall through */</span><br><span style="color: hsl(120, 100%, 40%);">+  case 143:</span><br><span>            return CodingScheme::MCS__8;</span><br><span style="color: hsl(120, 100%, 40%);">+  case 154: /* fall through */</span><br><span>         case 155:</span><br><span>            return CodingScheme::MCS__9;</span><br><span>         default:</span><br><span style="color: hsl(120, 100%, 40%);">+              fprintf(stderr, "ERROR: Unknown CodingSCheme for payload_len=%zu\n", payload_len);</span><br><span>                 return CodingScheme::CS__1;</span><br><span>  }</span><br><span> }</span><br><span>@@ -520,20 +526,52 @@</span><br><span> static</span><br><span> EgprsDlMacDataHeader dec__EgprsDlMacDataHeader_type1(const OCTETSTRING& stream)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+  TTCN_Buffer ttcn_buffer(stream);</span><br><span>     EgprsDlMacDataHeader ret_val;</span><br><span style="color: hsl(120, 100%, 40%);">+ const struct gprs_rlc_dl_header_egprs_1 *egprs1;</span><br><span style="color: hsl(120, 100%, 40%);">+      uint8_t tmp;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        fprintf(stderr, "FIXME: Not implemented! %s (%s:%u)\n", __func__, __FILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+      egprs1 = static_cast<const struct gprs_rlc_dl_header_egprs_1 *></span><br><span style="color: hsl(120, 100%, 40%);">+         ((const void *)ttcn_buffer.get_data());</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   ret_val.header__type() = EgprsHeaderType::RLCMAC__HDR__TYPE__1;</span><br><span style="color: hsl(120, 100%, 40%);">+       ret_val.tfi() = egprs1->tfi_lo << 1 | egprs1->tfi_hi << 0;</span><br><span style="color: hsl(120, 100%, 40%);">+  ret_val.rrbp() = egprs1->rrbp;</span><br><span style="color: hsl(120, 100%, 40%);">+     tmp = egprs1->es_p;</span><br><span style="color: hsl(120, 100%, 40%);">+        ret_val.esp() = BITSTRING(2, &tmp);</span><br><span style="color: hsl(120, 100%, 40%);">+       ret_val.usf() = egprs1->usf;</span><br><span style="color: hsl(120, 100%, 40%);">+       ret_val.bsn1() = egprs1->bsn1_lo << 10 | egprs1->bsn1_mid << 2 | egprs1->bsn1_hi;</span><br><span style="color: hsl(120, 100%, 40%);">+        ret_val.bsn2__offset() = egprs1->bsn2_lo << 7 | egprs1->bsn2_hi;</span><br><span style="color: hsl(120, 100%, 40%);">+  ret_val.pr() = egprs1->pr;</span><br><span style="color: hsl(120, 100%, 40%);">+ ret_val.cps() = egprs1->cps;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     ttcn_buffer.increase_pos(sizeof(*egprs1));</span><br><span>   return ret_val;</span><br><span> }</span><br><span> </span><br><span> static</span><br><span> EgprsDlMacDataHeader dec__EgprsDlMacDataHeader_type2(const OCTETSTRING& stream)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+        TTCN_Buffer ttcn_buffer(stream);</span><br><span>     EgprsDlMacDataHeader ret_val;</span><br><span style="color: hsl(120, 100%, 40%);">+ const struct gprs_rlc_dl_header_egprs_2 *egprs2;</span><br><span style="color: hsl(120, 100%, 40%);">+      uint8_t tmp;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        fprintf(stderr, "FIXME: Not implemented! %s (%s:%u)\n", __func__, __FILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+      egprs2 = static_cast<const struct gprs_rlc_dl_header_egprs_2 *></span><br><span style="color: hsl(120, 100%, 40%);">+         ((const void *)ttcn_buffer.get_data());</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   ret_val.header__type() = EgprsHeaderType::RLCMAC__HDR__TYPE__2;</span><br><span style="color: hsl(120, 100%, 40%);">+       ret_val.tfi() = egprs2->tfi_lo << 1 | egprs2->tfi_hi << 0;</span><br><span style="color: hsl(120, 100%, 40%);">+  ret_val.rrbp() = egprs2->rrbp;</span><br><span style="color: hsl(120, 100%, 40%);">+     tmp = egprs2->es_p;</span><br><span style="color: hsl(120, 100%, 40%);">+        ret_val.esp() = BITSTRING(2, &tmp);</span><br><span style="color: hsl(120, 100%, 40%);">+       ret_val.usf() = egprs2->usf;</span><br><span style="color: hsl(120, 100%, 40%);">+       ret_val.bsn1() = egprs2->bsn1_lo << 10 | egprs2->bsn1_mid << 2 | egprs2->bsn1_hi;</span><br><span style="color: hsl(120, 100%, 40%);">+        ret_val.bsn2__offset() = 0; /*TODO: mark optional and not set ? */</span><br><span style="color: hsl(120, 100%, 40%);">+    ret_val.pr() = egprs2->pr;</span><br><span style="color: hsl(120, 100%, 40%);">+ ret_val.cps() = egprs2->cps;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     ttcn_buffer.increase_pos(sizeof(*egprs2));</span><br><span>   return ret_val;</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21124">change 21124</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-ttcn3-hacks/+/21124"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I3b8199711e08bc128821e02c626ded1bc6aa30d7 </div>
<div style="display:none"> Gerrit-Change-Number: 21124 </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-MessageType: newchange </div>