<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>