<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21146">View Change</a></p><div style="white-space:pre-wrap">Approvals:
laforge: Looks good to me, approved
pespin: Looks good to me, but someone else must approve
Jenkins Builder: Verified
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">library/L1CTL_Types: add missing template restrictions<br><br>The template restrictions are quite useful, becaue they give hints<br>to the TTCN-3 compiler, so it can spot more bugs. For example,<br>the lack of thereof would not prevent one from passing 'omit' to<br>a template, that assigns a value to a non-optional field, so that<br>might lead to a DTE at run-time in some cases.<br><br>Since adding 'template (restriction) ' to each template parameter<br>obviously makes templates look more cumbersome, let's move the<br>part with template name and arguments onto a separate line, just<br>like it's sometimes done for function definitions in C.<br><br>Change-Id: I7e6846381e0b3fb611059fcfbafb19bd6c15cfd8<br>---<br>M library/L1CTL_Types.ttcn<br>1 file changed, 92 insertions(+), 60 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 03ec23f..fe375ef 100644</span><br><span>--- a/library/L1CTL_Types.ttcn</span><br><span>+++ b/library/L1CTL_Types.ttcn</span><br><span>@@ -105,13 +105,15 @@</span><br><span> OCT2 padding</span><br><span> } with { variant "" };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlHeader tr_L1ctlHeader(template L1ctlMsgType msg_type) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template L1ctlHeader</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_L1ctlHeader(template (present) L1ctlMsgType msg_type) := {</span><br><span> msg_type := msg_type,</span><br><span> flags := ?,</span><br><span> padding := ?</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlHeader ts_L1ctlHeader(L1ctlMsgType msg_type) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlHeader</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1ctlHeader(template (value) L1ctlMsgType msg_type) := {</span><br><span> msg_type := msg_type,</span><br><span> flags := { padding := '0000000'B, f_done := false },</span><br><span> padding := '0000'O</span><br><span>@@ -459,7 +461,8 @@</span><br><span> </span><br><span> </span><br><span> /* for generating RESET_REQ */</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage t_L1ctlResetReq(L1ctlResetType rst_type) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ t_L1ctlResetReq(template (value) L1ctlResetType rst_type) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_RESET_REQ),</span><br><span> ul_info := omit,</span><br><span> ul_info_tbf := omit,</span><br><span>@@ -473,10 +476,12 @@</span><br><span> };</span><br><span> </span><br><span> /* for generating FBSB_REQ */</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_FBSB_REQ(Arfcn arfcn, L1ctlFbsbFlags flags,</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t sync_info_idx,</span><br><span style="color: hsl(0, 100%, 40%);">- L1ctlCcchMode ccch_mode,</span><br><span style="color: hsl(0, 100%, 40%);">- GsmRxLev rxlev_exp) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_FBSB_REQ(template (value) Arfcn arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlFbsbFlags flags,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint8_t sync_info_idx,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlCcchMode ccch_mode,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) GsmRxLev rxlev_exp) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_FBSB_REQ),</span><br><span> ul_info := omit,</span><br><span> ul_info_tbf := omit,</span><br><span>@@ -497,7 +502,8 @@</span><br><span> };</span><br><span> </span><br><span> /* for matching against incoming FBSB_CONF */</span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlDlMessage tr_L1CTL_FBSB_CONF(template uint8_t result) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template L1ctlDlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_L1CTL_FBSB_CONF(template (present) uint8_t result) := {</span><br><span> header := tr_L1ctlHeader(L1CTL_FBSB_CONF),</span><br><span> dl_info := ?,</span><br><span> payload := {</span><br><span>@@ -509,7 +515,8 @@</span><br><span> }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_CCCH_MODE_REQ(L1ctlCcchMode ccch_mode) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_CCCH_MODE_REQ(template (value) L1ctlCcchMode ccch_mode) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_CCCH_MODE_REQ),</span><br><span> ul_info := omit,</span><br><span> ul_info_tbf := omit,</span><br><span>@@ -541,7 +548,8 @@</span><br><span> };</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlDlMessage tr_L1CTL_MsgType(template L1ctlMsgType msg_type) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template L1ctlDlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_L1CTL_MsgType(template (present) L1ctlMsgType msg_type) := {</span><br><span> header := tr_L1ctlHeader(msg_type),</span><br><span> dl_info := *,</span><br><span> payload := *</span><br><span>@@ -549,9 +557,12 @@</span><br><span> </span><br><span> template L1ctlDlMessage tr_L1CTL_CCCH_MODE_CONF := tr_L1CTL_MsgType(L1CTL_CCCH_MODE_CONF);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlUlMessage ts_L1CTL_RACH_REQ(uint8_t ra, uint8_t combined, uint16_t offset,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) RslChannelNr chan_nr := ts_RslChanNr_RACH(0),</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) RslLinkId link_id := ts_RslLinkID_DCCH(0)) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_RACH_REQ(template (value) uint8_t ra,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint8_t combined,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint16_t offset,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) RslChannelNr chan_nr := ts_RslChanNr_RACH(0),</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) RslLinkId link_id := ts_RslLinkID_DCCH(0)) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_RACH_REQ),</span><br><span> ul_info := {</span><br><span> chan_nr := chan_nr,</span><br><span>@@ -569,10 +580,11 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlUlMessage ts_L1CTL_EXT_RACH_REQ(</span><br><span style="color: hsl(0, 100%, 40%);">- uint16_t ra11, L1ctlRachSynchSeq seq,</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t combined, uint16_t offset</span><br><span style="color: hsl(0, 100%, 40%);">- ) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_EXT_RACH_REQ(template (value) uint16_t ra11,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlRachSynchSeq seq,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint8_t combined,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint16_t offset) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_EXT_RACH_REQ),</span><br><span> ul_info := {</span><br><span> /* FIXME: both RSL chan_nr and link_id should be configurable */</span><br><span>@@ -592,7 +604,9 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlUlMessage ts_L1CTL_PAR_REQ(uint8_t ta, uint8_t tx_power) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_PAR_REQ(template (value) uint8_t ta,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint8_t tx_power) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_PARAM_REQ),</span><br><span> ul_info := {</span><br><span> chan_nr := t_RslChanNr_RACH(0),</span><br><span>@@ -611,8 +625,9 @@</span><br><span> }</span><br><span> </span><br><span> /* Base template to be inherited by ts_L1CTL_DM_EST_REQ_H0 and ts_L1CTL_DM_EST_REQ_H1 */</span><br><span style="color: hsl(0, 100%, 40%);">- private template (value) L1ctlUlMessage ts_L1CTL_DM_EST_REQ(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) GsmTsc tsc) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ private template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_DM_EST_REQ(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) GsmTsc tsc) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_DM_EST_REQ),</span><br><span> ul_info := {</span><br><span> chan_nr := chan_nr,</span><br><span>@@ -630,9 +645,10 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_DM_EST_REQ_H0(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) GsmTsc tsc,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) GsmArfcn arfcn)</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_DM_EST_REQ_H0(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) GsmTsc tsc,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) GsmArfcn arfcn)</span><br><span> modifies ts_L1CTL_DM_EST_REQ := {</span><br><span> payload := {</span><br><span> dm_est_req := {</span><br><span>@@ -647,11 +663,12 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_DM_EST_REQ_H1(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) GsmTsc tsc,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) uint6_t hsn,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) uint6_t maio,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlMA ma)</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_DM_EST_REQ_H1(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) GsmTsc tsc,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint6_t hsn,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint6_t maio,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlMA ma)</span><br><span> modifies ts_L1CTL_DM_EST_REQ := {</span><br><span> payload := {</span><br><span> dm_est_req := {</span><br><span>@@ -671,7 +688,8 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlUlMessage ts_L1CTL_DM_REL_REQ(RslChannelNr chan_nr) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_DM_REL_REQ(template (value) RslChannelNr chan_nr) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_DM_REL_REQ),</span><br><span> ul_info := {</span><br><span> chan_nr := chan_nr,</span><br><span>@@ -685,9 +703,10 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_DATA_REQ(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) RslLinkId link_id,</span><br><span style="color: hsl(0, 100%, 40%);">- octetstring l2_data) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_DATA_REQ(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) RslLinkId link_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ octetstring l2_data) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_DATA_REQ),</span><br><span> ul_info := {</span><br><span> chan_nr := chan_nr,</span><br><span>@@ -704,10 +723,11 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_DATA_REQ_SACCH(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) RslLinkId link_id,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) SacchL1Header l1h,</span><br><span style="color: hsl(0, 100%, 40%);">- octetstring l2_data) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_DATA_REQ_SACCH(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) RslLinkId link_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) SacchL1Header l1h,</span><br><span style="color: hsl(120, 100%, 40%);">+ octetstring l2_data) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_DATA_REQ),</span><br><span> ul_info := {</span><br><span> chan_nr := chan_nr,</span><br><span>@@ -724,9 +744,10 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_TRAFFIC_REQ(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- template (value) RslLinkId link_id,</span><br><span style="color: hsl(0, 100%, 40%);">- octetstring frame) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_TRAFFIC_REQ(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) RslLinkId link_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ octetstring frame) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_TRAFFIC_REQ),</span><br><span> ul_info := {</span><br><span> chan_nr := chan_nr,</span><br><span>@@ -742,7 +763,9 @@</span><br><span> }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_TBF_CFG_REQ(boolean is_uplink, TfiUsfArr tfi_usf) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_TBF_CFG_REQ(template (value) boolean is_uplink,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) TfiUsfArr tfi_usf) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_TBF_CFG_REQ),</span><br><span> ul_info := omit,</span><br><span> ul_info_tbf := omit,</span><br><span>@@ -757,7 +780,8 @@</span><br><span> }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlDlMessage tr_L1CTL_TBF_CFG_CONF(template boolean is_uplink) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template L1ctlDlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_L1CTL_TBF_CFG_CONF(template (present) boolean is_uplink) := {</span><br><span> header := tr_L1ctlHeader(L1CTL_TBF_CFG_CONF),</span><br><span> dl_info := omit,</span><br><span> payload := {</span><br><span>@@ -770,9 +794,10 @@</span><br><span> }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_DATA_TBF_REQ(octetstring l2_data,</span><br><span style="color: hsl(0, 100%, 40%);">- L1ctlGprsCs cs := L1CTL_CS1,</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t tbf_nr := 0) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_DATA_TBF_REQ(octetstring l2_data,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlGprsCs cs := L1CTL_CS1,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint8_t tbf_nr := 0) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_DATA_TBF_REQ),</span><br><span> ul_info := omit,</span><br><span> ul_info_tbf := {</span><br><span>@@ -786,10 +811,13 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_DATA_ABS_REQ(octetstring l2_data, Arfcn arfcn,</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t ts, GsmFrameNumber fn,</span><br><span style="color: hsl(0, 100%, 40%);">- L1ctlGprsCs cs := L1CTL_CS1,</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t tbf_nr := 0) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_DATA_ABS_REQ(octetstring l2_data,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) Arfcn arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint8_t ts,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) GsmFrameNumber fn,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlGprsCs cs := L1CTL_CS1,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint8_t tbf_nr := 0) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_DATA_ABS_REQ),</span><br><span> ul_info := omit,</span><br><span> ul_info_tbf := omit,</span><br><span>@@ -816,11 +844,12 @@</span><br><span> };</span><br><span> </span><br><span> /* for matching against incoming DATA_IND */</span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlDlMessage tr_L1CTL_DATA_IND(template RslChannelNr chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- template RslLinkId link_id := ?,</span><br><span style="color: hsl(0, 100%, 40%);">- template octetstring l2_data := ?,</span><br><span style="color: hsl(0, 100%, 40%);">- template uint8_t num_biterr := 0,</span><br><span style="color: hsl(0, 100%, 40%);">- template uint8_t fire_crc := 0) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template L1ctlDlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_L1CTL_DATA_IND(template (present) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) RslLinkId link_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) octetstring l2_data := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) uint8_t num_biterr := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) uint8_t fire_crc := 0) := {</span><br><span> header := tr_L1ctlHeader(L1CTL_DATA_IND),</span><br><span> dl_info := {</span><br><span> chan_nr := chan_nr,</span><br><span>@@ -840,11 +869,12 @@</span><br><span> };</span><br><span> </span><br><span> /* for matching against incoming TRAFFIC_IND */</span><br><span style="color: hsl(0, 100%, 40%);">- template L1ctlDlMessage tr_L1CTL_TRAFFIC_IND(template RslChannelNr chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- template RslLinkId link_id := ?,</span><br><span style="color: hsl(0, 100%, 40%);">- template octetstring frame := ?,</span><br><span style="color: hsl(0, 100%, 40%);">- template uint8_t num_biterr := ?,</span><br><span style="color: hsl(0, 100%, 40%);">- template uint8_t fire_crc := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template L1ctlDlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ tr_L1CTL_TRAFFIC_IND(template (present) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) RslLinkId link_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) octetstring frame := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) uint8_t num_biterr := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (present) uint8_t fire_crc := ?) := {</span><br><span> header := tr_L1ctlHeader(L1CTL_TRAFFIC_IND),</span><br><span> dl_info := {</span><br><span> chan_nr := chan_nr,</span><br><span>@@ -863,8 +893,10 @@</span><br><span> }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- template (value) L1ctlUlMessage ts_L1CTL_CRYPTO_REQ(RslChannelNr chan_nr, uint8_t algo,</span><br><span style="color: hsl(0, 100%, 40%);">- octetstring key) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) L1ctlUlMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_L1CTL_CRYPTO_REQ(template (value) RslChannelNr chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) uint8_t algo,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) octetstring key) := {</span><br><span> header := ts_L1ctlHeader(L1CTL_CRYPTO_REQ),</span><br><span> ul_info := {</span><br><span> chan_nr := chan_nr,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21146">change 21146</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/+/21146"/><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: I7e6846381e0b3fb611059fcfbafb19bd6c15cfd8 </div>
<div style="display:none"> Gerrit-Change-Number: 21146 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </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>