library/L1CTL_PortType: refactor L1CTL channel establishment

  - Get rid of f_L1CTL_DM_EST_REQ, it's not really needed.
  - Derive ts_L1CTL_DM_EST_REQ_H0 from ts_L1CTL_DM_EST_REQ.
    - Turn all its params into (value) templates.
    - Turn it into a (value) template itself.
  - Pass GsmArfcn directly to ts_L1CTL_DM_EST_REQ_H0.

Change-Id: I4f275e22d4309a23b4ed301a0779c4ecb92023a8
Related: OS#4546
diff --git a/library/L1CTL_Types.ttcn b/library/L1CTL_Types.ttcn
index e939f72..0870a20 100644
--- a/library/L1CTL_Types.ttcn
+++ b/library/L1CTL_Types.ttcn
@@ -548,7 +548,9 @@
 		}
 	}
 
-	template L1ctlUlMessage ts_L1CTL_DM_EST_REQ(Arfcn arfcn, RslChannelNr chan_nr, GsmTsc tsc) := {
+	/* Base template to be inherited by ts_L1CTL_DM_EST_REQ_H0 and ts_L1CTL_DM_EST_REQ_H1 */
+	private template (value) L1ctlUlMessage ts_L1CTL_DM_EST_REQ(template (value) RslChannelNr chan_nr,
+								    template (value) GsmTsc tsc) := {
 		header := ts_L1ctlHeader(L1CTL_DM_EST_REQ),
 		ul_info := {
 			chan_nr := chan_nr,
@@ -560,15 +562,25 @@
 		payload := {
 			dm_est_req := {
 				tsc := tsc,
-				h := 0,
-				arfcn := arfcn,
-				hopping := omit,
 				tch_mode := 0,
 				audio_mode := t_L1CTL_AudioModeNone
 			}
 		}
 	}
 
+	template (value) L1ctlUlMessage ts_L1CTL_DM_EST_REQ_H0(template (value) RslChannelNr chan_nr,
+							       template (value) GsmTsc tsc,
+							       template (value) GsmArfcn arfcn)
+	modifies ts_L1CTL_DM_EST_REQ := {
+		payload := {
+			dm_est_req := {
+				h := 0,
+				arfcn := { false, arfcn },
+				hopping := omit
+			}
+		}
+	}
+
 	template L1ctlUlMessage ts_L1CTL_DM_REL_REQ(RslChannelNr chan_nr) := {
 		header := ts_L1ctlHeader(L1CTL_DM_REL_REQ),
 		ul_info := {