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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">RLCMAC_Templates: Add functions to convert HeaderType<->MCS<->CPS<br><br>They will be used by tests, templates and RLCMAC_EncDec.cc itself.<br><br>MCS HEader Type 1 and 2 to CPS conversion lefts as a TODO with<br>placeholder functions to easily implement when needed.<br><br>Change-Id: I18ff55a8067165bf081bf21473b4f88af955bf5b<br>---<br>M library/RLCMAC_Templates.ttcn<br>M library/RLCMAC_Types.ttcn<br>2 files changed, 177 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn</span><br><span>index 8fb6b0c..d2174d7 100644</span><br><span>--- a/library/RLCMAC_Templates.ttcn</span><br><span>+++ b/library/RLCMAC_Templates.ttcn</span><br><span>@@ -29,6 +29,22 @@</span><br><span>          return 0;</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ function f_rlcmac_mcs2headertype(CodingScheme mcs) return EgprsHeaderType {</span><br><span style="color: hsl(120, 100%, 40%);">+           select (mcs) {</span><br><span style="color: hsl(120, 100%, 40%);">+                case (MCS_0) { return RLCMAC_HDR_TYPE_3; }</span><br><span style="color: hsl(120, 100%, 40%);">+            case (MCS_1) { return RLCMAC_HDR_TYPE_3; }</span><br><span style="color: hsl(120, 100%, 40%);">+            case (MCS_2) { return RLCMAC_HDR_TYPE_3; }</span><br><span style="color: hsl(120, 100%, 40%);">+            case (MCS_3) { return RLCMAC_HDR_TYPE_3; }</span><br><span style="color: hsl(120, 100%, 40%);">+            case (MCS_4) { return RLCMAC_HDR_TYPE_3; }</span><br><span style="color: hsl(120, 100%, 40%);">+            case (MCS_5) { return RLCMAC_HDR_TYPE_2; }</span><br><span style="color: hsl(120, 100%, 40%);">+            case (MCS_6) { return RLCMAC_HDR_TYPE_2; }</span><br><span style="color: hsl(120, 100%, 40%);">+            case (MCS_7) { return RLCMAC_HDR_TYPE_1; }</span><br><span style="color: hsl(120, 100%, 40%);">+            case (MCS_8) { return RLCMAC_HDR_TYPE_1; }</span><br><span style="color: hsl(120, 100%, 40%);">+            case (MCS_9) { return RLCMAC_HDR_TYPE_1; }</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+             return RLCMAC_HDR_TYPE_3;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  function f_rlcmac_cs_mcs2block_len(CodingScheme cs_mcs) return uint32_t {</span><br><span>            select (cs_mcs) {</span><br><span>            case (CS_1) { return 23; }</span><br><span>@@ -72,6 +88,166 @@</span><br><span>             return CS_1;</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* Coding and Puncturing Scheme indicator field for Header type 1 in EGPRS TBF or EC TBF or downlink EGPRS2 TBF */</span><br><span style="color: hsl(120, 100%, 40%);">+    function f_rlcmac_cps_htype1_to_mcs(uint3_t cps) return CodingScheme {</span><br><span style="color: hsl(120, 100%, 40%);">+                var CodingSchemeArray egprs_Header_type1_coding_puncturing_scheme_to_mcs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCS_9 /* 0x00, "(MCS-9/P1 ; MCS-9/P1)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_9 /* 0x01, "(MCS-9/P1 ; MCS-9/P2)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_9 /* 0x02, "(MCS-9/P1 ; MCS-9/P3)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_0 /* 0x03, "reserved" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                       MCS_9 /* 0x04, "(MCS-9/P2 ; MCS-9/P1)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_9 /* 0x05, "(MCS-9/P2 ; MCS-9/P2)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_9 /* 0x06, "(MCS-9/P2 ; MCS-9/P3)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_0 /* 0x07, "reserved" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                       MCS_9 /* 0x08, "(MCS-9/P3 ; MCS-9/P1)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_9 /* 0x09, "(MCS-9/P3 ; MCS-9/P2)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_9 /* 0x0A, "(MCS-9/P3 ; MCS-9/P3)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_8 /* 0x0B, "(MCS-8/P1 ; MCS-8/P1)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_8 /* 0x0C, "(MCS-8/P1 ; MCS-8/P2)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_8 /* 0x0D, "(MCS-8/P1 ; MCS-8/P3)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_8 /* 0x0E, "(MCS-8/P2 ; MCS-8/P1)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_8 /* 0x0F, "(MCS-8/P2 ; MCS-8/P2)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_8 /* 0x10, "(MCS-8/P2 ; MCS-8/P3)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_8 /* 0x11, "(MCS-8/P3 ; MCS-8/P1)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_8 /* 0x12, "(MCS-8/P3 ; MCS-8/P2)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_8 /* 0x13, "(MCS-8/P3 ; MCS-8/P3)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_7 /* 0x14, "(MCS-7/P1 ; MCS-7/P1)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_7 /* 0x15, "(MCS-7/P1 ; MCS-7/P2)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_7 /* 0x16, "(MCS-7/P1 ; MCS-7/P3)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_7 /* 0x17, "(MCS-7/P2 ; MCS-7/P1)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_7 /* 0x18, "(MCS-7/P2 ; MCS-7/P2)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_7 /* 0x19, "(MCS-7/P2 ; MCS-7/P3)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_7 /* 0x1A, "(MCS-7/P3 ; MCS-7/P1)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_7 /* 0x1B, "(MCS-7/P3 ; MCS-7/P2)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_7 /* 0x1C, "(MCS-7/P3 ; MCS-7/P3)" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCS_0 /* 0x1D, "reserved" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                       MCS_0 /* 0x1E, "reserved" */,</span><br><span style="color: hsl(120, 100%, 40%);">+                       MCS_0 /* 0x1F, "reserved" */</span><br><span style="color: hsl(120, 100%, 40%);">+                };</span><br><span style="color: hsl(120, 100%, 40%);">+            return egprs_Header_type1_coding_puncturing_scheme_to_mcs[cps];</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%);">+   /* Coding and Puncturing Scheme indicator field for Header type 2 in (EC-)EGPRS TBF or uplink EGPRS2-A TBF */</span><br><span style="color: hsl(120, 100%, 40%);">+ function f_rlcmac_cps_htype2_to_mcs(uint3_t cps) return CodingScheme {</span><br><span style="color: hsl(120, 100%, 40%);">+                var CodingSchemeArray egprs_Header_type2_coding_puncturing_scheme_to_mcs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCS_6 /* {0x00, "MCS-6/P1"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_6 /* {0x01, "MCS-6/P2"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_6 /* {0x02, "MCS-6/P1 with 6 octet padding"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCS_6 /* {0x03, "MCS-6/P2 with 6 octet padding "} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                       MCS_5 /* {0x04, "MCS-5/P1"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_5 /* {0x05, "MCS-5/P2"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_5 /* {0x06, "MCS-6/P1 with 10 octet padding "} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                      MCS_5 /* {0x07, "MCS-6/P2 with 10 octet padding "} */</span><br><span style="color: hsl(120, 100%, 40%);">+                };</span><br><span style="color: hsl(120, 100%, 40%);">+            return egprs_Header_type2_coding_puncturing_scheme_to_mcs[cps];</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%);">+   /* Coding and Puncturing Scheme indicator field for Header type 3 */</span><br><span style="color: hsl(120, 100%, 40%);">+  function f_rlcmac_cps_htype3_to_mcs(uint3_t cps) return CodingScheme {</span><br><span style="color: hsl(120, 100%, 40%);">+                var CodingSchemeArray egprs_Header_type3_coding_puncturing_scheme_to_mcs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCS_4 /* {0x00, "MCS-4/P1"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_4 /* {0x01, "MCS-4/P2"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_4 /* {0x02, "MCS-4/P3"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_3 /* {0x03, "MCS-3/P1"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_3 /* {0x04, "MCS-3/P2"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_3 /* {0x05, "MCS-3/P3"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_3 /* {0x06, "MCS-3/P1 with padding"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCS_3 /* {0x07, "MCS-3/P2 with padding"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCS_3 /* {0x08, "MCS-3/P3 with padding"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCS_2 /* {0x09, "MCS-2/P1"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_2 /* {0x0A, "MCS-2/P2"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_1 /* {0x0B, "MCS-1/P1"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_1 /* {0x0C, "MCS-1/P2"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCS_2 /* {0x0D, "MCS-2/P1 with padding"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCS_2 /* {0x0E, "MCS-2/P2 with padding"} */,</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCS_0 /* {0x0F, "MCS-0"} */</span><br><span style="color: hsl(120, 100%, 40%);">+         };</span><br><span style="color: hsl(120, 100%, 40%);">+            return egprs_Header_type3_coding_puncturing_scheme_to_mcs[cps];</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%);">+   function f_rlcmac_cps_htype_to_mcs(uint3_t cps, EgprsHeaderType htype) return CodingScheme {</span><br><span style="color: hsl(120, 100%, 40%);">+          select (htype) {</span><br><span style="color: hsl(120, 100%, 40%);">+              case (RLCMAC_HDR_TYPE_1) { return f_rlcmac_cps_htype1_to_mcs(cps); }</span><br><span style="color: hsl(120, 100%, 40%);">+          case (RLCMAC_HDR_TYPE_2) { return f_rlcmac_cps_htype2_to_mcs(cps); }</span><br><span style="color: hsl(120, 100%, 40%);">+          case (RLCMAC_HDR_TYPE_3) { return f_rlcmac_cps_htype3_to_mcs(cps); }</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span style="color: hsl(120, 100%, 40%);">+             //TODO: return error here.</span><br><span style="color: hsl(120, 100%, 40%);">+            return CS_1;</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%);">+   function f_rlcmac_mcs_to_cps_htype1(CodingScheme mcs, uint2_t part, boolean with_padding) return uint5_t {</span><br><span style="color: hsl(120, 100%, 40%);">+            //TODO: implement similar to f_rlcmac_mcs_to_cps_htype3()</span><br><span style="color: hsl(120, 100%, 40%);">+             //TODO: return error here.</span><br><span style="color: hsl(120, 100%, 40%);">+            return 0;</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%);">+   function f_rlcmac_mcs_to_cps_htype2(CodingScheme mcs, uint2_t part, boolean with_padding) return uint5_t {</span><br><span style="color: hsl(120, 100%, 40%);">+            //TODO: implement similar to f_rlcmac_mcs_to_cps_htype3()</span><br><span style="color: hsl(120, 100%, 40%);">+             //TODO: return error here.</span><br><span style="color: hsl(120, 100%, 40%);">+            return 0;</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%);">+   function f_rlcmac_mcs_to_cps_htype3(CodingScheme mcs, uint2_t part, boolean with_padding) return uint5_t {</span><br><span style="color: hsl(120, 100%, 40%);">+            select (mcs) {</span><br><span style="color: hsl(120, 100%, 40%);">+                case (MCS_4) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                select (part) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               case (1) { return 0; /* {0x00, "MCS-4/P1"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                             case (2) { return 1; /* {0x01, "MCS-4/P2"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                             case (3) { return 2; /* {0x01, "MCS-4/P2"} */ }</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%);">+             case (MCS_3) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                if (not with_padding) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       select (part) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       case (1) { return 3; /* {0x03, "MCS-3/P1"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     case (2) { return 4; /* {0x04, "MCS-3/P2"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     case (3) { return 5; /* {0x05, "MCS-3/P3"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }</span><br><span style="color: hsl(120, 100%, 40%);">+                             } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      select (part) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       case (1) { return 6; /* {0x06, "MCS-3/P1 with padding"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                                        case (2) { return 7; /* {0x07, "MCS-3/P2 with padding"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                                        case (3) { return 8; /* {0x08, "MCS-3/P3 with padding"} */ }</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%);">+             case (MCS_2) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                if (not with_padding) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       select (part) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       case (1) { return 9; /* {0x09, "MCS-2/P1"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     case (2) { return 10; /* {0x0A, "MCS-2/P2"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }</span><br><span style="color: hsl(120, 100%, 40%);">+                             } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      select (part) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       case (1) { return 13; /* {0x0D, "MCS-2/P1 with padding"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                                       case (2) { return 14; /* {0x0E, "MCS-2/P2 with padding"} */}</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%);">+             case (MCS_1) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                select (part) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               case (1) { return 11; /* {0x0B, "MCS-1/P1"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+                            case (2) { return 12; /* {0x0C, "MCS-1/P2"} */ }</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%);">+             case (MCS_0) { return 15;  /* {0x0F, "MCS-0"} */ }</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span style="color: hsl(120, 100%, 40%);">+             //TODO: return error here.</span><br><span style="color: hsl(120, 100%, 40%);">+            return 0;</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%);">+   function f_rlcmac_mcs_to_cps(CodingScheme mcs, uint2_t part, boolean with_padding := false) return uint5_t {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                var EgprsHeaderType htype := f_rlcmac_mcs2headertype(mcs);</span><br><span style="color: hsl(120, 100%, 40%);">+            select (htype) {</span><br><span style="color: hsl(120, 100%, 40%);">+              case (RLCMAC_HDR_TYPE_1) { return f_rlcmac_mcs_to_cps_htype1(mcs, part, with_padding); }</span><br><span style="color: hsl(120, 100%, 40%);">+              case (RLCMAC_HDR_TYPE_2) { return f_rlcmac_mcs_to_cps_htype2(mcs, part, with_padding); }</span><br><span style="color: hsl(120, 100%, 40%);">+              case (RLCMAC_HDR_TYPE_3) { return f_rlcmac_mcs_to_cps_htype3(mcs, part, with_padding); }</span><br><span style="color: hsl(120, 100%, 40%);">+              }</span><br><span style="color: hsl(120, 100%, 40%);">+             //TODO: return error here.</span><br><span style="color: hsl(120, 100%, 40%);">+            return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  template (value) RlcmacUlBlock ts_RLC_UL_CTRL_ACK(RlcmacUlCtrlMsg ctrl,</span><br><span>                                                      MacPayloadType pt := MAC_PT_RLCMAC_NO_OPT,</span><br><span>                                                   boolean retry := false) := {</span><br><span>diff --git a/library/RLCMAC_Types.ttcn b/library/RLCMAC_Types.ttcn</span><br><span>index 27c1805..96b8a64 100644</span><br><span>--- a/library/RLCMAC_Types.ttcn</span><br><span>+++ b/library/RLCMAC_Types.ttcn</span><br><span>@@ -55,6 +55,7 @@</span><br><span>            //MCS5_7, ?</span><br><span>          // MCS6_9 ?</span><br><span>  };</span><br><span style="color: hsl(120, 100%, 40%);">+    type record of CodingScheme CodingSchemeArray;</span><br><span> </span><br><span>   /* Partof DL RLC data block and DL RLC/MAC ctrl block */</span><br><span>     type record DlMacHeader {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17991">change 17991</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/+/17991"/><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: I18ff55a8067165bf081bf21473b4f88af955bf5b </div>
<div style="display:none"> Gerrit-Change-Number: 17991 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@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-MessageType: merged </div>