<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">rlcmac: introduce initial support for NACC related messages<br><br>Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62<br>---<br>M library/RLCMAC_CSN1_Templates.ttcn<br>M library/RLCMAC_CSN1_Types.ttcn<br>2 files changed, 169 insertions(+), 7 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/58/22058/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/RLCMAC_CSN1_Templates.ttcn b/library/RLCMAC_CSN1_Templates.ttcn</span><br><span>index 64c709a..673a5e5 100644</span><br><span>--- a/library/RLCMAC_CSN1_Templates.ttcn</span><br><span>+++ b/library/RLCMAC_CSN1_Templates.ttcn</span><br><span>@@ -108,6 +108,84 @@</span><br><span> }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ const CCNMesurementReport ccn_meas_rep_def := {</span><br><span style="color: hsl(120, 100%, 40%);">+ rxlev_servig_cell := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+ zero := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ num_meas := 1,</span><br><span style="color: hsl(120, 100%, 40%);">+ meas := {</span><br><span style="color: hsl(120, 100%, 40%);">+ {</span><br><span style="color: hsl(120, 100%, 40%);">+ freq := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+ bsic_presence := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ bsic := 43,</span><br><span style="color: hsl(120, 100%, 40%);">+ rxlev := 23</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 style="color: hsl(120, 100%, 40%);">+ /* TS 44.060 sec 11.2.3a */</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(uint5_t tfi,</span><br><span style="color: hsl(120, 100%, 40%);">+ GsmArfcn arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint6_t bsic,</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) CCNMesurementReport ccn_meas_rep := ccn_meas_rep_def)</span><br><span style="color: hsl(120, 100%, 40%);">+ := {</span><br><span style="color: hsl(120, 100%, 40%);">+ msg_type := PACKET_CELL_CHANGE_NOTIFICATION,</span><br><span style="color: hsl(120, 100%, 40%);">+ u := {</span><br><span style="color: hsl(120, 100%, 40%);">+ cell_chg_notif := {</span><br><span style="color: hsl(120, 100%, 40%);">+ gtfi := {</span><br><span style="color: hsl(120, 100%, 40%);">+ is_dl_tfi := false,</span><br><span style="color: hsl(120, 100%, 40%);">+ tfi := tfi</span><br><span style="color: hsl(120, 100%, 40%);">+ },</span><br><span style="color: hsl(120, 100%, 40%);">+ arfcn_bsic_presence := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ arfcn := arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+ bsic := bsic,</span><br><span style="color: hsl(120, 100%, 40%);">+ ba_psi3_presence := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ ba_used := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ psi3_change_mark := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+ pmo_used := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ pccn_sending := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ ccn_meas_rep := ccn_meas_rep</span><br><span style="color: hsl(120, 100%, 40%);">+ //ccn_meas_rep := omit</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 style="color: hsl(120, 100%, 40%);">+ /* TS 44.060 sec 11.2.2a */</span><br><span style="color: hsl(120, 100%, 40%);">+ template RlcmacDlCtrlMsg tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE(template GlobalTfi tfi := ?)</span><br><span style="color: hsl(120, 100%, 40%);">+ := {</span><br><span style="color: hsl(120, 100%, 40%);">+ msg_type := PACKET_CELL_CHANGE_CONTINUE,</span><br><span style="color: hsl(120, 100%, 40%);">+ u := {</span><br><span style="color: hsl(120, 100%, 40%);">+ cell_chg_continue := {</span><br><span style="color: hsl(120, 100%, 40%);">+ page_mode := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ zero := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ gtfi := tfi,</span><br><span style="color: hsl(120, 100%, 40%);">+ arfcn_bsic_presence := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ arfcn := *,</span><br><span style="color: hsl(120, 100%, 40%);">+ bsic := *,</span><br><span style="color: hsl(120, 100%, 40%);">+ container_id := *</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 style="color: hsl(120, 100%, 40%);">+ /* TS 44.060 sec 11.2.9e */</span><br><span style="color: hsl(120, 100%, 40%);">+ template RlcmacDlCtrlMsg tr_RlcMacDlCtrl_PKT_NEIGH_CELL_DATA(template GlobalTfi tfi := ?)</span><br><span style="color: hsl(120, 100%, 40%);">+ := {</span><br><span style="color: hsl(120, 100%, 40%);">+ msg_type := PACKET_NEIGHBOUR_CELL_DATA,</span><br><span style="color: hsl(120, 100%, 40%);">+ u := {</span><br><span style="color: hsl(120, 100%, 40%);">+ neighbour_cell_data := {</span><br><span style="color: hsl(120, 100%, 40%);">+ page_mode := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ zero := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ gtfi := tfi,</span><br><span style="color: hsl(120, 100%, 40%);">+ container_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ spare := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+ container_index := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ arfcn_bsic_presence := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ arfcn := *,</span><br><span style="color: hsl(120, 100%, 40%);">+ bsic := *,</span><br><span style="color: hsl(120, 100%, 40%);">+ contaner_list := ?</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> private function f_presence_bit_tfi(template uint5_t tfi) return BIT1 {</span><br><span> if (istemplatekind(tfi, "omit")) {</span><br><span> return '0'B;</span><br><span>diff --git a/library/RLCMAC_CSN1_Types.ttcn b/library/RLCMAC_CSN1_Types.ttcn</span><br><span>index 14570bf..b0e8c66 100644</span><br><span>--- a/library/RLCMAC_CSN1_Types.ttcn</span><br><span>+++ b/library/RLCMAC_CSN1_Types.ttcn</span><br><span>@@ -32,6 +32,8 @@</span><br><span> PACKET_TBF_RELEASE ('001000'B),</span><br><span> PACKET_UL_ACK_NACK ('001001'B),</span><br><span> PACKET_UL_ASSIGNMENT ('001010'B),</span><br><span style="color: hsl(120, 100%, 40%);">+ PACKET_CELL_CHANGE_CONTINUE ('001011'B),</span><br><span style="color: hsl(120, 100%, 40%);">+ PACKET_NEIGHBOUR_CELL_DATA ('001100'B),</span><br><span> PACKET_DL_DUMMY_CTRL ('100101'B)</span><br><span> } with { variant "FIELDLENGTH(6)" };</span><br><span> </span><br><span>@@ -49,7 +51,7 @@</span><br><span> PACKET_EGPRS_DL_ACK_NACK ('001000'B),</span><br><span> PACKET_PAUSE ('001001'B),</span><br><span> ADDITIONAL_MS_RA_CAPABILITIES ('001011'B),</span><br><span style="color: hsl(0, 100%, 40%);">- PACKET_CELL_CANGE_NOTIFICATION ('001100'B),</span><br><span style="color: hsl(120, 100%, 40%);">+ PACKET_CELL_CHANGE_NOTIFICATION ('001100'B),</span><br><span> PACKET_SI_STATUS ('001101'B),</span><br><span> PACKET_CS_REQUEST ('001110'B),</span><br><span> MBMS_SERVICE_REQUEST ('001111'B),</span><br><span>@@ -586,6 +588,46 @@</span><br><span> variant (msg) "PRESENCE(msg_escape = '0'B)"</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* 11.2.2a Packet Cell Change Continue */</span><br><span style="color: hsl(120, 100%, 40%);">+ type record PacketCellChangeContinue {</span><br><span style="color: hsl(120, 100%, 40%);">+ PageMode page_mode,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 zero ('0'B),</span><br><span style="color: hsl(120, 100%, 40%);">+ GlobalTfi gtfi,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 arfcn_bsic_presence,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint10_t arfcn optional,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint6_t bsic optional,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint2_t container_id optional</span><br><span style="color: hsl(120, 100%, 40%);">+ } with {</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (arfcn) "PRESENCE(arfcn_bsic_presence = '1'B)"</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (bsic) "PRESENCE(arfcn_bsic_presence = '1'B)"</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (container_id) "PRESENCE(arfcn_bsic_presence = '1'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%);">+ /* 11.2.9e Packet Neighbour Cell Data */</span><br><span style="color: hsl(120, 100%, 40%);">+ type record PacketNeighbourCellDataContainer {</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT3 pd,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint5_t cd_length,</span><br><span style="color: hsl(120, 100%, 40%);">+ octetstring container_data</span><br><span style="color: hsl(120, 100%, 40%);">+ } with {</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (cd_length) "LENGTHTO (container_data)"</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ type record of PacketNeighbourCellDataContainer PacketNeighbourCellDataContainerList</span><br><span style="color: hsl(120, 100%, 40%);">+ type record PacketNeighbourCellData {</span><br><span style="color: hsl(120, 100%, 40%);">+ PageMode page_mode,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 zero ('0'B),</span><br><span style="color: hsl(120, 100%, 40%);">+ GlobalTfi gtfi,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint2_t container_id,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 spare ('0'B),</span><br><span style="color: hsl(120, 100%, 40%);">+ uint5_t container_index,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 arfcn_bsic_presence,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint10_t arfcn optional,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint6_t bsic optional,</span><br><span style="color: hsl(120, 100%, 40%);">+ PacketNeighbourCellDataContainerList contaner_list</span><br><span style="color: hsl(120, 100%, 40%);">+ } with {</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (arfcn) "PRESENCE(arfcn_bsic_presence = '1'B)"</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (bsic) "PRESENCE(arfcn_bsic_presence = '1'B)"</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* 11.2.0.1 */</span><br><span> type union RlcmacDlCtrlUnion {</span><br><span> PacketDlAssignment dl_assignment,</span><br><span>@@ -594,6 +636,8 @@</span><br><span> PacketUlAckNack ul_ack_nack,</span><br><span> PacketDlDummy dl_dummy,</span><br><span> PacketPwrControlTA pwr_ta,</span><br><span style="color: hsl(120, 100%, 40%);">+ PacketCellChangeContinue cell_chg_continue,</span><br><span style="color: hsl(120, 100%, 40%);">+ PacketNeighbourCellData neighbour_cell_data,</span><br><span> octetstring other</span><br><span> } with { variant "" };</span><br><span> </span><br><span>@@ -607,6 +651,8 @@</span><br><span> ul_ack_nack, msg_type = PACKET_UL_ACK_NACK;</span><br><span> dl_dummy, msg_type = PACKET_DL_DUMMY_CTRL;</span><br><span> pwr_ta, msg_type = PACKET_PWR_CONTROL_TA;</span><br><span style="color: hsl(120, 100%, 40%);">+ cell_chg_continue,msg_type = PACKET_CELL_CHANGE_CONTINUE;</span><br><span style="color: hsl(120, 100%, 40%);">+ neighbour_cell_data,msg_type = PACKET_NEIGHBOUR_CELL_DATA;</span><br><span> other, OTHERWISE</span><br><span> )"</span><br><span> };</span><br><span>@@ -755,14 +801,51 @@</span><br><span> variant (sign_var) "PRESENCE(sign_var_presence = '1'B)"</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* 11.2.3a Packet Cell Change Notification */</span><br><span style="color: hsl(120, 100%, 40%);">+ type record NCMeasurementItem {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint6_t freq,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 bsic_presence,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint6_t bsic optional,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint6_t rxlev</span><br><span style="color: hsl(120, 100%, 40%);">+ } with {</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (bsic) "PRESENCE(bsic_presence = '1'B)"</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ type record of NCMeasurementItem NCMeasurements;</span><br><span style="color: hsl(120, 100%, 40%);">+ type record CCNMesurementReport {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint6_t rxlev_servig_cell,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 zero ('0'B),</span><br><span style="color: hsl(120, 100%, 40%);">+ uint3_t num_meas,</span><br><span style="color: hsl(120, 100%, 40%);">+ NCMeasurements meas</span><br><span style="color: hsl(120, 100%, 40%);">+ } with { variant "" };</span><br><span style="color: hsl(120, 100%, 40%);">+ type record PacketCellChangeNotification {</span><br><span style="color: hsl(120, 100%, 40%);">+ GlobalTfi gtfi,</span><br><span style="color: hsl(120, 100%, 40%);">+ /* TODO: support 3g/4g in these bits */</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 arfcn_bsic_presence,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint10_t arfcn optional,</span><br><span style="color: hsl(120, 100%, 40%);">+ uint6_t bsic optional,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 ba_psi3_presence,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 ba_used optional,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT2 psi3_change_mark optional,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 pmo_used,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIT1 pccn_sending,</span><br><span style="color: hsl(120, 100%, 40%);">+ CCNMesurementReport ccn_meas_rep</span><br><span style="color: hsl(120, 100%, 40%);">+ /* TODO: Rel6 additions for 3G support */</span><br><span style="color: hsl(120, 100%, 40%);">+ } with {</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (arfcn) "PRESENCE(arfcn_bsic_presence = '0'B)"</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (bsic) "PRESENCE(arfcn_bsic_presence = '0'B)"</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (ba_used) "PRESENCE(ba_psi3_presence = '0'B)"</span><br><span style="color: hsl(120, 100%, 40%);">+ variant (psi3_change_mark) "PRESENCE(ba_psi3_presence = '1'B)"</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* 11.2.0.2 */</span><br><span> type union RlcmacUlCtrlUnion {</span><br><span style="color: hsl(0, 100%, 40%);">- PacketCtrlAck ctrl_ack,</span><br><span style="color: hsl(0, 100%, 40%);">- PacketDlAckNack dl_ack_nack,</span><br><span style="color: hsl(0, 100%, 40%);">- EgprsPacketDlAckNack dl_ack_nack_egprs,</span><br><span style="color: hsl(0, 100%, 40%);">- PacketUlDummy ul_dummy,</span><br><span style="color: hsl(0, 100%, 40%);">- PacketResourceReq resource_req,</span><br><span style="color: hsl(0, 100%, 40%);">- octetstring other</span><br><span style="color: hsl(120, 100%, 40%);">+ PacketCtrlAck ctrl_ack,</span><br><span style="color: hsl(120, 100%, 40%);">+ PacketDlAckNack dl_ack_nack,</span><br><span style="color: hsl(120, 100%, 40%);">+ EgprsPacketDlAckNack dl_ack_nack_egprs,</span><br><span style="color: hsl(120, 100%, 40%);">+ PacketUlDummy ul_dummy,</span><br><span style="color: hsl(120, 100%, 40%);">+ PacketResourceReq resource_req,</span><br><span style="color: hsl(120, 100%, 40%);">+ PacketCellChangeNotification cell_chg_notif,</span><br><span style="color: hsl(120, 100%, 40%);">+ octetstring other</span><br><span> } with { variant "" };</span><br><span> </span><br><span> type record RlcmacUlCtrlMsg {</span><br><span>@@ -774,6 +857,7 @@</span><br><span> dl_ack_nack_egprs, msg_type = PACKET_EGPRS_DL_ACK_NACK;</span><br><span> ul_dummy, msg_type = PACKET_UL_DUMMY_CTRL;</span><br><span> resource_req, msg_type = PACKET_RESOURCE_REQUEST;</span><br><span style="color: hsl(120, 100%, 40%);">+ cell_chg_notif, msg_type = PACKET_CELL_CHANGE_NOTIFICATION;</span><br><span> other, OTHERWISE</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/+/22058">change 22058</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/+/22058"/><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: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 </div>
<div style="display:none"> Gerrit-Change-Number: 22058 </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>