diff --git a/lapd/L1CTL_Types.ttcn b/lapd/L1CTL_Types.ttcn
index 2b9219c..e4bbcf1 100644
--- a/lapd/L1CTL_Types.ttcn
+++ b/lapd/L1CTL_Types.ttcn
@@ -301,4 +301,149 @@
 		with { extension "prototype(convert) decode(RAW)" };
 
 
+
+
+	/* for generating RESET_REQ */
+	template L1ctlUlMessage t_L1ctlResetReq(template L1ctlResetType rst_type) := {
+		header := t_L1ctlHeader(L1CTL_RESET_REQ),
+		ul_info := omit,
+		payload := {
+			reset_req := {
+				reset_type := rst_type,
+				padding := '000000'O
+			}
+		}
+	};
+
+	/* for generating FBSB_REQ */
+	template L1ctlUlMessage t_L1CTL_FBSB_REQ(template Arfcn arfcn, template L1ctlFbsbFlags flags, uint8_t sync_info_idx, L1ctlCcchMode ccch_mode, GsmRxLev rxlev_exp) := {
+		header := t_L1ctlHeader(L1CTL_FBSB_REQ),
+		ul_info := omit,
+		payload := {
+			fbsb_req := {
+				arfcn := arfcn,
+				timeout_tdma_frames := 10,
+				freq_err_thresh1 := 10000,
+				freq_err_thresh2 := 800,
+				num_freqerr_avg := 3,
+				flags := flags,
+				sync_info_idx := sync_info_idx,
+				ccch_mode := ccch_mode,
+				rxlev_exp := rxlev_exp
+			}
+		}
+	};
+
+	/* for matching against incoming FBSB_CONF */
+	template L1ctlDlMessage t_L1CTL_FBSB_CONF(template uint8_t result) := {
+		header := t_L1ctlHeader(L1CTL_FBSB_CONF),
+		dl_info := ?,
+		payload := {
+			fbsb_conf := {
+				initial_freq_err := ?,
+				result := result,
+				bsic := ?
+			}
+		}
+	};
+
+	template L1ctlUlMessage t_L1CTL_RACH_REQ(uint8_t ra, uint8_t combined, uint16_t offset) := {
+		header := t_L1ctlHeader(L1CTL_RACH_REQ),
+		ul_info := {
+			chan_nr := t_RslChanNr_RACH(0),
+			link_id := ts_RslLinkID_DCCH(0),
+			padding := '0000'O
+		},
+		payload := {
+			rach_req := {
+				ra := ra,
+				combined := combined,
+				offset := offset
+			}
+		}
+	}
+
+	template L1ctlUlMessage t_L1CTL_DM_EST_REQ(Arfcn arfcn, RslChannelNr chan_nr, GsmTsc tsc) := {
+		header := t_L1ctlHeader(L1CTL_DM_EST_REQ),
+		ul_info := {
+			chan_nr := chan_nr,
+			link_id := ts_RslLinkID_DCCH(0),
+			padding := '0000'O
+		},
+		payload := {
+			dm_est_req := {
+				tsc := tsc,
+				h := 0,
+				arfcn := arfcn,
+				hopping := omit,
+				tch_mode := 0,
+				audio_mode := t_L1CTL_AudioModeNone
+			}
+		}
+	}
+
+	template L1ctlUlMessage t_L1CTL_DM_REL_REQ(RslChannelNr chan_nr) := {
+		header := t_L1ctlHeader(L1CTL_DM_EST_REQ),
+		ul_info := {
+			chan_nr := chan_nr,
+			link_id := ts_RslLinkID_DCCH(0),
+			padding := '0000'O
+		},
+		payload := {
+			other := ''O
+		}
+	}
+
+	template L1ctlUlMessage t_L1CTL_DATA_REQ(template RslChannelNr chan_nr, template RslLinkId link_id, octetstring l2_data) := {
+		header := t_L1ctlHeader(L1CTL_DATA_REQ),
+		ul_info := {
+			chan_nr := chan_nr,
+			link_id := link_id,
+			padding := '0000'O
+		},
+		payload := {
+			other := l2_data
+		}
+	}
+
+	/* for matching against incoming RACH_CONF */
+	template L1ctlDlMessage t_L1CTL_RACH_CONF := {
+		header := t_L1ctlHeader(L1CTL_RACH_CONF),
+		dl_info := ?,
+		payload := ?
+	};
+
+	/* for matching against incoming RACH_CONF */
+	template L1ctlDlMessage t_L1CTL_DATA_IND(template RslChannelNr chan_nr) := {
+		header := t_L1ctlHeader(L1CTL_DATA_IND),
+		dl_info := {
+			chan_nr := chan_nr,
+			link_id := ?,
+			arfcn := ?,
+			frame_nr := ?,
+			rx_level := ?,
+			snr := ?,
+			num_biterr := ?,
+			fire_crc := ?
+		},
+		payload := {
+			data_ind := ?
+		}
+	};
+
+	template GsmRrMessage t_RR_IMM_ASS(uint8_t ra, uint8_t fn) := {
+		header := t_RrHeader(IMMEDIATE_ASSIGNMENT, ?),
+		payload := {
+			imm_ass := {
+				ded_or_tbf := ?,
+				page_mode := ?,
+				chan_desc := ?,
+				pkt_chan_desc := omit,
+				req_ref := f_compute_ReqRef(ra, fn),
+				timing_advance := ?,
+				mobile_allocation := ?
+			}
+		}
+	};
+
 } with { encode "RAW" };
