Change in osmo-ttcn3-hacks[master]: library/L1CTL_Types: add missing template restrictions

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

fixeria gerrit-no-reply at lists.osmocom.org
Sat Nov 14 11:44:10 UTC 2020


fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21146 )


Change subject: library/L1CTL_Types: add missing template restrictions
......................................................................

library/L1CTL_Types: add missing template restrictions

The template restrictions are quite useful, becaue they give hints
to the TTCN-3 compiler, so it can spot more bugs.  For example,
the lack of thereof would not prevent one from passing 'omit' to
a template, that assigns a value to a non-optional field, so that
might lead to a DTE at run-time in some cases.

Since adding 'template (restriction) ' to each template parameter
obviously makes templates look more cumbersome, let's move the
part with template name and arguments onto a separate line, just
like it's sometimes done for function definitions in C.

Change-Id: I7e6846381e0b3fb611059fcfbafb19bd6c15cfd8
---
M library/L1CTL_Types.ttcn
1 file changed, 92 insertions(+), 60 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/21146/1

diff --git a/library/L1CTL_Types.ttcn b/library/L1CTL_Types.ttcn
index 03ec23f..fe375ef 100644
--- a/library/L1CTL_Types.ttcn
+++ b/library/L1CTL_Types.ttcn
@@ -105,13 +105,15 @@
 		OCT2		padding
 	} with { variant "" };
 
-	template L1ctlHeader tr_L1ctlHeader(template L1ctlMsgType msg_type) := {
+	template L1ctlHeader
+	tr_L1ctlHeader(template (present) L1ctlMsgType msg_type) := {
 		msg_type := msg_type,
 		flags := ?,
 		padding := ?
 	};
 
-	template (value) L1ctlHeader ts_L1ctlHeader(L1ctlMsgType msg_type) := {
+	template (value) L1ctlHeader
+	ts_L1ctlHeader(template (value) L1ctlMsgType msg_type) := {
 		msg_type := msg_type,
 		flags := { padding := '0000000'B, f_done := false },
 		padding := '0000'O
@@ -459,7 +461,8 @@
 
 
 	/* for generating RESET_REQ */
-	template (value) L1ctlUlMessage t_L1ctlResetReq(L1ctlResetType rst_type) := {
+	template (value) L1ctlUlMessage
+	t_L1ctlResetReq(template (value) L1ctlResetType rst_type) := {
 		header := ts_L1ctlHeader(L1CTL_RESET_REQ),
 		ul_info := omit,
 		ul_info_tbf := omit,
@@ -473,10 +476,12 @@
 	};
 
 	/* for generating FBSB_REQ */
-	template (value) L1ctlUlMessage ts_L1CTL_FBSB_REQ(Arfcn arfcn, L1ctlFbsbFlags flags,
-							  uint8_t sync_info_idx,
-							  L1ctlCcchMode ccch_mode,
-							  GsmRxLev rxlev_exp) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_FBSB_REQ(template (value) Arfcn arfcn,
+			  template (value) L1ctlFbsbFlags flags,
+			  template (value) uint8_t sync_info_idx,
+			  template (value) L1ctlCcchMode ccch_mode,
+			  template (value) GsmRxLev rxlev_exp) := {
 		header := ts_L1ctlHeader(L1CTL_FBSB_REQ),
 		ul_info := omit,
 		ul_info_tbf := omit,
@@ -497,7 +502,8 @@
 	};
 
 	/* for matching against incoming FBSB_CONF */
-	template L1ctlDlMessage tr_L1CTL_FBSB_CONF(template uint8_t result) := {
+	template L1ctlDlMessage
+	tr_L1CTL_FBSB_CONF(template (present) uint8_t result) := {
 		header := tr_L1ctlHeader(L1CTL_FBSB_CONF),
 		dl_info := ?,
 		payload := {
@@ -509,7 +515,8 @@
 		}
 	};
 
-	template (value) L1ctlUlMessage ts_L1CTL_CCCH_MODE_REQ(L1ctlCcchMode ccch_mode) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_CCCH_MODE_REQ(template (value) L1ctlCcchMode ccch_mode) := {
 		header := ts_L1ctlHeader(L1CTL_CCCH_MODE_REQ),
 		ul_info := omit,
 		ul_info_tbf := omit,
@@ -541,7 +548,8 @@
 	};
 
 
-	template L1ctlDlMessage tr_L1CTL_MsgType(template L1ctlMsgType msg_type) := {
+	template L1ctlDlMessage
+	tr_L1CTL_MsgType(template (present) L1ctlMsgType msg_type) := {
 		header := tr_L1ctlHeader(msg_type),
 		dl_info := *,
 		payload := *
@@ -549,9 +557,12 @@
 
 	template L1ctlDlMessage tr_L1CTL_CCCH_MODE_CONF := tr_L1CTL_MsgType(L1CTL_CCCH_MODE_CONF);
 
-	template L1ctlUlMessage ts_L1CTL_RACH_REQ(uint8_t ra, uint8_t combined, uint16_t offset,
-						  template (value) RslChannelNr chan_nr := ts_RslChanNr_RACH(0),
-						  template (value) RslLinkId link_id := ts_RslLinkID_DCCH(0)) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_RACH_REQ(template (value) uint8_t ra,
+			  template (value) uint8_t combined,
+			  template (value) uint16_t offset,
+			  template (value) RslChannelNr chan_nr := ts_RslChanNr_RACH(0),
+			  template (value) RslLinkId link_id := ts_RslLinkID_DCCH(0)) := {
 		header := ts_L1ctlHeader(L1CTL_RACH_REQ),
 		ul_info := {
 			chan_nr := chan_nr,
@@ -569,10 +580,11 @@
 		}
 	}
 
-	template L1ctlUlMessage ts_L1CTL_EXT_RACH_REQ(
-		uint16_t ra11, L1ctlRachSynchSeq seq,
-		uint8_t combined, uint16_t offset
-	) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_EXT_RACH_REQ(template (value) uint16_t ra11,
+			      template (value) L1ctlRachSynchSeq seq,
+			      template (value) uint8_t combined,
+			      template (value) uint16_t offset) := {
 		header := ts_L1ctlHeader(L1CTL_EXT_RACH_REQ),
 		ul_info := {
 			/* FIXME: both RSL chan_nr and link_id should be configurable */
@@ -592,7 +604,9 @@
 		}
 	}
 
-	template L1ctlUlMessage ts_L1CTL_PAR_REQ(uint8_t ta, uint8_t tx_power) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_PAR_REQ(template (value) uint8_t ta,
+			 template (value) uint8_t tx_power) := {
 		header := ts_L1ctlHeader(L1CTL_PARAM_REQ),
 		ul_info := {
 			chan_nr := t_RslChanNr_RACH(0),
@@ -611,8 +625,9 @@
 	}
 
 	/* 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) := {
+	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,
@@ -630,9 +645,10 @@
 		}
 	}
 
-	template (value) L1ctlUlMessage ts_L1CTL_DM_EST_REQ_H0(template (value) RslChannelNr chan_nr,
-							       template (value) GsmTsc tsc,
-							       template (value) GsmArfcn arfcn)
+	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 := {
@@ -647,11 +663,12 @@
 		}
 	}
 
-	template (value) L1ctlUlMessage ts_L1CTL_DM_EST_REQ_H1(template (value) RslChannelNr chan_nr,
-							       template (value) GsmTsc tsc,
-							       template (value) uint6_t hsn,
-							       template (value) uint6_t maio,
-							       template (value) L1ctlMA ma)
+	template (value) L1ctlUlMessage
+	ts_L1CTL_DM_EST_REQ_H1(template (value) RslChannelNr chan_nr,
+			       template (value) GsmTsc tsc,
+			       template (value) uint6_t hsn,
+			       template (value) uint6_t maio,
+			       template (value) L1ctlMA ma)
 	modifies ts_L1CTL_DM_EST_REQ := {
 		payload := {
 			dm_est_req := {
@@ -671,7 +688,8 @@
 		}
 	}
 
-	template L1ctlUlMessage ts_L1CTL_DM_REL_REQ(RslChannelNr chan_nr) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_DM_REL_REQ(template (value) RslChannelNr chan_nr) := {
 		header := ts_L1ctlHeader(L1CTL_DM_REL_REQ),
 		ul_info := {
 			chan_nr := chan_nr,
@@ -685,9 +703,10 @@
 		}
 	}
 
-	template (value) L1ctlUlMessage ts_L1CTL_DATA_REQ(template (value) RslChannelNr chan_nr,
-							 template (value) RslLinkId link_id,
-							 octetstring l2_data) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_DATA_REQ(template (value) RslChannelNr chan_nr,
+			  template (value) RslLinkId link_id,
+			  octetstring l2_data) := {
 		header := ts_L1ctlHeader(L1CTL_DATA_REQ),
 		ul_info := {
 			chan_nr := chan_nr,
@@ -704,10 +723,11 @@
 		}
 	}
 
-	template (value) L1ctlUlMessage ts_L1CTL_DATA_REQ_SACCH(template (value) RslChannelNr chan_nr,
-							 template (value) RslLinkId link_id,
-							 template (value) SacchL1Header l1h,
-							 octetstring l2_data) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_DATA_REQ_SACCH(template (value) RslChannelNr chan_nr,
+				template (value) RslLinkId link_id,
+				template (value) SacchL1Header l1h,
+				octetstring l2_data) := {
 		header := ts_L1ctlHeader(L1CTL_DATA_REQ),
 		ul_info := {
 			chan_nr := chan_nr,
@@ -724,9 +744,10 @@
 		}
 	}
 
-	template (value) L1ctlUlMessage ts_L1CTL_TRAFFIC_REQ(template (value) RslChannelNr chan_nr,
-							     template (value) RslLinkId link_id,
-							     octetstring frame) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_TRAFFIC_REQ(template (value) RslChannelNr chan_nr,
+			     template (value) RslLinkId link_id,
+			     octetstring frame) := {
 		header := ts_L1ctlHeader(L1CTL_TRAFFIC_REQ),
 		ul_info := {
 			chan_nr := chan_nr,
@@ -742,7 +763,9 @@
 		}
 	};
 
-	template (value) L1ctlUlMessage ts_L1CTL_TBF_CFG_REQ(boolean is_uplink, TfiUsfArr tfi_usf) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_TBF_CFG_REQ(template (value) boolean is_uplink,
+			     template (value) TfiUsfArr tfi_usf) := {
 		header := ts_L1ctlHeader(L1CTL_TBF_CFG_REQ),
 		ul_info := omit,
 		ul_info_tbf := omit,
@@ -757,7 +780,8 @@
 		}
 	};
 
-	template L1ctlDlMessage tr_L1CTL_TBF_CFG_CONF(template boolean is_uplink) := {
+	template L1ctlDlMessage
+	tr_L1CTL_TBF_CFG_CONF(template (present) boolean is_uplink) := {
 		header := tr_L1ctlHeader(L1CTL_TBF_CFG_CONF),
 		dl_info := omit,
 		payload := {
@@ -770,9 +794,10 @@
 		}
 	};
 
-	template (value) L1ctlUlMessage ts_L1CTL_DATA_TBF_REQ(octetstring l2_data,
-							     L1ctlGprsCs cs := L1CTL_CS1,
-							     uint8_t tbf_nr := 0) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_DATA_TBF_REQ(octetstring l2_data,
+			      template (value) L1ctlGprsCs cs := L1CTL_CS1,
+			      template (value) uint8_t tbf_nr := 0) := {
 		header := ts_L1ctlHeader(L1CTL_DATA_TBF_REQ),
 		ul_info := omit,
 		ul_info_tbf := {
@@ -786,10 +811,13 @@
 		}
 	}
 
-	template (value) L1ctlUlMessage ts_L1CTL_DATA_ABS_REQ(octetstring l2_data, Arfcn arfcn,
-						     uint8_t ts, GsmFrameNumber fn,
-						     L1ctlGprsCs cs := L1CTL_CS1,
-						     uint8_t tbf_nr := 0) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_DATA_ABS_REQ(octetstring l2_data,
+			      template (value) Arfcn arfcn,
+			      template (value) uint8_t ts,
+			      template (value) GsmFrameNumber fn,
+			      template (value) L1ctlGprsCs cs := L1CTL_CS1,
+			      template (value) uint8_t tbf_nr := 0) := {
 		header := ts_L1ctlHeader(L1CTL_DATA_ABS_REQ),
 		ul_info := omit,
 		ul_info_tbf := omit,
@@ -816,11 +844,12 @@
 	};
 
 	/* for matching against incoming DATA_IND */
-	template L1ctlDlMessage tr_L1CTL_DATA_IND(template RslChannelNr chan_nr,
-						 template RslLinkId link_id := ?,
-						 template octetstring l2_data := ?,
-						 template uint8_t num_biterr := 0,
-						 template uint8_t fire_crc := 0) := {
+	template L1ctlDlMessage
+	tr_L1CTL_DATA_IND(template (present) RslChannelNr chan_nr,
+			  template (present) RslLinkId link_id := ?,
+			  template (present) octetstring l2_data := ?,
+			  template (present) uint8_t num_biterr := 0,
+			  template (present) uint8_t fire_crc := 0) := {
 		header := tr_L1ctlHeader(L1CTL_DATA_IND),
 		dl_info := {
 			chan_nr := chan_nr,
@@ -840,11 +869,12 @@
 	};
 
 	/* for matching against incoming TRAFFIC_IND */
-	template L1ctlDlMessage tr_L1CTL_TRAFFIC_IND(template RslChannelNr chan_nr,
-						     template RslLinkId link_id := ?,
-						     template octetstring frame := ?,
-						     template uint8_t num_biterr := ?,
-						     template uint8_t fire_crc := ?) := {
+	template L1ctlDlMessage
+	tr_L1CTL_TRAFFIC_IND(template (present) RslChannelNr chan_nr,
+			     template (present) RslLinkId link_id := ?,
+			     template (present) octetstring frame := ?,
+			     template (present) uint8_t num_biterr := ?,
+			     template (present) uint8_t fire_crc := ?) := {
 		header := tr_L1ctlHeader(L1CTL_TRAFFIC_IND),
 		dl_info := {
 			chan_nr := chan_nr,
@@ -863,8 +893,10 @@
 		}
 	};
 
-	template (value) L1ctlUlMessage ts_L1CTL_CRYPTO_REQ(RslChannelNr chan_nr, uint8_t algo,
-							    octetstring key) := {
+	template (value) L1ctlUlMessage
+	ts_L1CTL_CRYPTO_REQ(template (value) RslChannelNr chan_nr,
+			    template (value) uint8_t algo,
+			    template (value) octetstring key) := {
 		header := ts_L1ctlHeader(L1CTL_CRYPTO_REQ),
 		ul_info := {
 			chan_nr := chan_nr,

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21146
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I7e6846381e0b3fb611059fcfbafb19bd6c15cfd8
Gerrit-Change-Number: 21146
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201114/2eb1fa56/attachment.htm>


More information about the gerrit-log mailing list