<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20755">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">library/L1CTL_Types: fix definition of L1ctlDmEstReq<br><br>In osmocom-bb 'struct l1ctl_dm_est_req' is defined as follows:<br><br>  struct l1ctl_dm_est_req {<br>    uint8_t tsc;<br>    uint8_t h;<br>    union {<br>      struct l1ctl_h0 h0;<br>      struct l1ctl_h1 h1;<br>    },<br>    uint8_t tch_mode;<br>    uint8_t audio_mode;<br>  } __attribute__((packed));<br><br>so the overall size of the union is size of the biggest member:<br><br>  sizeof(struct l1ctl_h0) is 2<br>  sizeof(struct l1ctl_h1) is 132<br><br>Therefore we need to fix our definitions:<br><br>  - introduce 'record L1ctlH0' (with padding),<br>  - introduce 'union L1ctlH0H1':<br>    - move hopping indicator to L1ctl{H0,H1},<br>    - use it as 'TAG' in 'union L1ctlH0H1'.<br><br>Change-Id: I53964f794260f0676cc2771a7acbb679befb06d5<br>Related: OS#4799<br>---<br>M library/L1CTL_Types.ttcn<br>1 file changed, 32 insertions(+), 18 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/L1CTL_Types.ttcn b/library/L1CTL_Types.ttcn</span><br><span>index 5c90966..00503e6 100644</span><br><span>--- a/library/L1CTL_Types.ttcn</span><br><span>+++ b/library/L1CTL_Types.ttcn</span><br><span>@@ -296,8 +296,15 @@</span><br><span>              octetstring     l2_payload</span><br><span>   } with { variant "" };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  type record L1ctlH0 {</span><br><span style="color: hsl(120, 100%, 40%);">+         uint8_t         h,</span><br><span style="color: hsl(120, 100%, 40%);">+            Arfcn           arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+                octetstring     padding length(130)</span><br><span style="color: hsl(120, 100%, 40%);">+   } with { variant "" };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   type record length(0..64) of Arfcn L1ctlMA;</span><br><span>  type record L1ctlH1 {</span><br><span style="color: hsl(120, 100%, 40%);">+         uint8_t         h,</span><br><span>           uint8_t         hsn,</span><br><span>                 uint8_t         maio,</span><br><span>                uint8_t         n,</span><br><span>@@ -314,15 +321,17 @@</span><br><span>            * variant (ma) "PADDING(128)" */</span><br><span>  };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        type union L1ctlH0H1 {</span><br><span style="color: hsl(120, 100%, 40%);">+                L1ctlH0         h0,</span><br><span style="color: hsl(120, 100%, 40%);">+           L1ctlH1         h1</span><br><span style="color: hsl(120, 100%, 40%);">+    } with { variant "TAG(h0, h = 0; h1, h = 1)" };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  type record L1ctlDmEstReq {</span><br><span>          GsmTsc          tsc,</span><br><span style="color: hsl(0, 100%, 40%);">-            uint8_t         h,</span><br><span style="color: hsl(0, 100%, 40%);">-              Arfcn           arfcn optional,</span><br><span style="color: hsl(0, 100%, 40%);">-         L1ctlH1         hopping optional,</span><br><span style="color: hsl(120, 100%, 40%);">+             L1ctlH0H1       h0h1,</span><br><span>                L1ctlTchMode    tch_mode,</span><br><span>            L1ctlAudioMode  audio_mode</span><br><span style="color: hsl(0, 100%, 40%);">-      } with { variant (arfcn) "PRESENCE(h = 0)"</span><br><span style="color: hsl(0, 100%, 40%);">-             variant (hopping) "PRESENCE(h = 1)" };</span><br><span style="color: hsl(120, 100%, 40%);">+     } with { variant "" };</span><br><span> </span><br><span>         type record L1ctlReset {</span><br><span>             L1ctlResetType  reset_type,</span><br><span>@@ -590,9 +599,13 @@</span><br><span>   modifies ts_L1CTL_DM_EST_REQ := {</span><br><span>            payload := {</span><br><span>                         dm_est_req := {</span><br><span style="color: hsl(0, 100%, 40%);">-                         h := 0,</span><br><span style="color: hsl(0, 100%, 40%);">-                         arfcn := { false, arfcn },</span><br><span style="color: hsl(0, 100%, 40%);">-                              hopping := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                               h0h1 := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                     h0 := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                               h := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               arfcn := { false, arfcn },</span><br><span style="color: hsl(120, 100%, 40%);">+                                            padding := f_pad_oct(''O, 130, '00'O)</span><br><span style="color: hsl(120, 100%, 40%);">+                                 }</span><br><span style="color: hsl(120, 100%, 40%);">+                             }</span><br><span>                    }</span><br><span>            }</span><br><span>    }</span><br><span>@@ -605,16 +618,17 @@</span><br><span>    modifies ts_L1CTL_DM_EST_REQ := {</span><br><span>            payload := {</span><br><span>                         dm_est_req := {</span><br><span style="color: hsl(0, 100%, 40%);">-                         h := 1,</span><br><span style="color: hsl(0, 100%, 40%);">-                         arfcn := omit,</span><br><span style="color: hsl(0, 100%, 40%);">-                          hopping := {</span><br><span style="color: hsl(0, 100%, 40%);">-                                    hsn := hsn,</span><br><span style="color: hsl(0, 100%, 40%);">-                                     maio := maio,</span><br><span style="color: hsl(0, 100%, 40%);">-                                   n := sizeof(ma),</span><br><span style="color: hsl(0, 100%, 40%);">-                                        spare := '00'O,</span><br><span style="color: hsl(0, 100%, 40%);">-                                 ma := ma,</span><br><span style="color: hsl(0, 100%, 40%);">-                                       /* See https://bugs.eclipse.org/bugs/show_bug.cgi?id=562849 */</span><br><span style="color: hsl(0, 100%, 40%);">-                                  padding := f_pad_oct(''O, (64 - sizeof(ma)) * 2, '00'O)</span><br><span style="color: hsl(120, 100%, 40%);">+                               h0h1 := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                     h1 := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                               h := 1,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               hsn := hsn,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           maio := maio,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         n := sizeof(ma),</span><br><span style="color: hsl(120, 100%, 40%);">+                                              spare := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               ma := ma,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             /* See https://bugs.eclipse.org/bugs/show_bug.cgi?id=562849 */</span><br><span style="color: hsl(120, 100%, 40%);">+                                                padding := f_pad_oct(''O, (64 - sizeof(ma)) * 2, '00'O)</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }</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-ttcn3-hacks/+/20755">change 20755</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/+/20755"/><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: I53964f794260f0676cc2771a7acbb679befb06d5 </div>
<div style="display:none"> Gerrit-Change-Number: 20755 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>