[PATCH] osmo-gsm-manuals[master]: rtp-amr.adoc: Fixes to Message Sequence Charts

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

Max gerrit-no-reply at lists.osmocom.org
Thu Nov 3 13:22:04 UTC 2016


Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/1190

to look at the new patch set (#2).

rtp-amr.adoc: Fixes to Message Sequence Charts

Nutaq added these clarifications/extensions/fixes tothe message sequence
charts.

Change-Id: Ic699bda828947ff616c3d80783026e21d853f962
---
M OsmoBTS/abis/rtp-amr.adoc
1 file changed, 188 insertions(+), 71 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/90/1190/2

diff --git a/OsmoBTS/abis/rtp-amr.adoc b/OsmoBTS/abis/rtp-amr.adoc
index 889a032..f601303 100644
--- a/OsmoBTS/abis/rtp-amr.adoc
+++ b/OsmoBTS/abis/rtp-amr.adoc
@@ -65,11 +65,11 @@
 	...;
 	---		[label="Last AMR Speech (end of talk-spurt) and SID"];
 
-	ms => phy	[label="L1 burst (sub-block 5 of speech frame N-1, sub-block 1 of SID_FIRST)"];
-	ms => phy	[label="L1 burst (sub-block 6 of speech frame N-1, sub-block 2 of SID_FIRST)"];
-	ms => phy	[label="L1 burst (sub-block 7 of speech frame N-1, sub-block 3 of SID_FIRST)"];
-	ms => phy	[label="L1 burst (sub-block 8 of speech frame N-1, sub-block 4 of SID_FIRST)", id="ULSF2"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
+	ms => phy	[label="L1 burst (sub-block 5 of speech frame N, sub-block 1 of SID_FIRST)"];
+	ms => phy	[label="L1 burst (sub-block 6 of speech frame N, sub-block 2 of SID_FIRST)"];
+	ms => phy	[label="L1 burst (sub-block 7 of speech frame N, sub-block 3 of SID_FIRST)"];
+	ms => phy	[label="L1 burst (sub-block 8 of speech frame N, sub-block 4 of SID_FIRST)", id="ULSF2"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N)"];
 	bts => mgw	[label="RTP (AMR FT=0..7,Q=1)"];
 
 	ms -x phy	[label="Suppressed L1 burst"];
@@ -79,28 +79,36 @@
 	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_FIRST)"];
 	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
 
-	ms -x phy	[label="Suppressed L1 burst"];
-	ms -x phy	[label="Suppressed L1 burst"];
-	ms -x phy	[label="Suppressed L1 burst"];
-	ms -x phy	[label="Suppressed L1 burst"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_NA"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
 	bts -x mgw	[label="Suppressed RTP frame"];
 
 	ms => phy	[label="L1 burst (sub-block 1+2 of SID_UPDATE)", id="ULSU2"];
 	ms => phy	[label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
 	ms => phy	[label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
 	ms => phy	[label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr"];
-	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
 
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
+	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
 }
 ----
 
-ULSF2:: The sub-blocks 5-8 of SID_FIRST are not transmitted, as all
-information bits are contained in sub-blocks 1-4 only.
+ULSF2:: As per 3GPP TS 05.03 section 3.9.2.4 The last 4 bursts shall not be transmitted unless
+the SID_FIRST frame is immediately followed by a speech frame. It has been observed that some phone
+does not transmit the last 4 bursts even if it is not followed by a speech frame.
 
-ULSU2:: There must be exactly two suppressed voice frames between the
-SID_FIRST and the SID_UPDATE, i.e. 60ms between SID_FIRST and
+ULSU2:: There must be exactly two supressed voice frames between the
+SID_FIRST and the SID_UPDATE, i.e. there's 60ms between SID_FIRST and
 SID_UPDATE.
 
 ==== TCH/AFS Uplink: During Silence
@@ -125,7 +133,70 @@
 	ms => phy	[label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
 	ms => phy	[label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
 	ms => phy	[label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
+	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms => phy	[label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
+	ms => phy	[label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
+	ms => phy	[label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
+	ms => phy	[label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
 	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
 }
 ----
@@ -480,14 +551,15 @@
 
 	bts <= mgw	[label="RTP (AMR FT=0..7,Q=1) MARKER=1"];
 	phy => bts	[label="PH-RTS.ind (TCH)"];
-	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr_Onset", id="DLOS2"];
-	ms <= phy	[label="L1 burst (sub-block 5 of SID_ONSET + sub-block 1 of speech frame N)"];
-	ms <= phy	[label="L1 burst (sub-block 6 of SID_ONSET + sub-block 2 of speech frame N)"];
-	ms <= phy	[label="L1 burst (sub-block 7 of SID_ONSET + sub-block 3 of speech frame N)"];
-	ms <= phy	[label="L1 burst (sub-block 8 of SID_ONSET + sub-block 4 of speech frame N)"];
+	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr_Onset"];
+	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr (N)"];
+	ms <= phy	[label="L1 burst (block 1 of SID_ONSET + sub-block 1 of speech frame N)"];
+	ms <= phy	[label="L1 burst (block 2 of SID_ONSET + sub-block 2 of speech frame N)"];
+	ms <= phy	[label="L1 burst (block 3 of SID_ONSET + sub-block 3 of speech frame N)"];
+	ms <= phy	[label="L1 burst (block 4 of SID_ONSET + sub-block 4 of speech frame N)"];
 	bts <= mgw	[label="RTP (AMR FT=0..7,Q=1)"];
 	phy => bts	[label="PH-RTS.ind (TCH)"];
-	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr"];
+	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr (N+1)"];
 	ms <= phy	[label="L1 burst (sub-block 5 of speech frame N + sub-block 1 of speech frame N+1)"];
 	ms <= phy	[label="L1 burst (sub-block 6 of speech frame N + sub-block 2 of speech frame N+1)"];
 	ms <= phy	[label="L1 burst (sub-block 7 of speech frame N + sub-block 2 of speech frame N+1)"];
@@ -603,10 +675,14 @@
 
 	ms => phy	[label="L1 burst (sub-block 3 of speech frame N-1 + sub-block 1 of speech frame N)"];
 	ms => phy	[label="L1 burst (sub-block 4 of speech frame N-1 + sub-block 2 of speech frame N)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N-2)"];
 	bts => mgw	[label="RTP (AMR FT=0..7,Q=1)"];
 	ms => phy	[label="L1 burst (sub-block 3 of speech frame N + sub-block 1 of speech frame N+1)"];
 	ms => phy	[label="L1 burst (sub-block 4 of speech frame N + sub-block 2 of speech frame N+1)"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
+	bts => mgw	[label="RTP (AMR FT=0..7,Q=1)"];
+	ms => phy	[label="L1 burst (sub-block 3 of speech frame N+1 + sub-block 1 of speech frame N+2)"];
+	ms => phy	[label="L1 burst (sub-block 4 of speech frame N+1 + sub-block 2 of speech frame N+2)"];
 	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N)"];
 	bts => mgw	[label="RTP (AMR FT=0..7,Q=1)"];
 }
@@ -636,43 +712,44 @@
 	...;
 	---		[label="Last AMR Speech (end of talk-spurt) and SID P1/P2"];
 
-	ms => phy	[label="L1 burst (sub-block 3 of speech frame N-1, sub-block 1 of SID_FIRST_P1)"];
-	ms => phy	[label="L1 burst (sub-block 4 of speech frame N-1, sub-block 2 of SID_FIRST_P1)"];
+	ms => phy	[label="L1 burst (sub-block 3 of speech frame N, sub-block 1 of SID_FIRST_P1)"];
+	ms => phy	[label="L1 burst (sub-block 4 of speech frame N, sub-block 2 of SID_FIRST_P1)"];
 	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
 	bts => mgw	[label="RTP (AMR FT=0..7,Q=1)"];
+
 	ms => phy	[label="L1 burst (sub-block 3 of SID_FIRST_P1, sub-block 1 of SID_FIRST_P2)"];
 	ms => phy	[label="L1 burst (sub-block 4 of SID_FIRST_P1, sub-block 2 of SID_FIRST_P2)"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N)"];
+	bts => mgw	[label="RTP (AMR FT=0..7,Q=1)"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
 	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP1", id="ULSF1"];
 	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
-	ms -x phy	[label="Suppressed L1 burst"];
-	ms -x phy	[label="Suppressed L1 burst"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP2"];
-	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
-
-	ms -x phy	[label="Suppressed L1 burst"];
-	ms -x phy	[label="Suppressed L1 burst"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_NA"];
 
 	ms => phy	[label="L1 burst (sub-block 1+2 of SID_UPDATE)", id="ULSU1"];
 	ms => phy	[label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_NA"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP2", id="NOTE"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
 	ms => phy	[label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
 	ms => phy	[label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr"];
-	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
 
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
+	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
 }
 ----
 
-ULSF1:: There are two separate indications for P1 and P2, despite both
-P1 and P2 being multiplexed together in one batch of four bursts. Not
-sure why they result in two separate PH-DATA.ind. Based on what we
-know: If the MS sends P1 and P2, the PHY should receive SidFirstP1 and
-SidFirstP2 indications immediately after each other, both for the same
-GSM frame number.
+ULSF1:: Only SID_FIRST_P1 contains information so it must be the only one transmitted over RTP. 
 
-ULSU1:: There must be exactly two suppressed voice frames between the
-SID_FIRST and the SID_UPDATE, i.e. 60ms between SID_FIRST and
+NOTE:: It has been observed that not all phones transmit SID_FIRST_P2 so the PH-DATA.ind GsmL1_TchPlType_Amr_SidFirstP2 is not guaranteed to be sent to the BTS.
+
+ULSU1:: There must be exactly two supressed voice frames between the
+SID_FIRST and the SID_UPDATE, i.e. there's 60ms between SID_FIRST and
 SID_UPDATE.
 
 ==== TCH/AFS Uplink: During Silence
@@ -695,10 +772,55 @@
 
 	ms => phy	[label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
 	ms => phy	[label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_NA"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
 	ms => phy	[label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
 	ms => phy	[label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
+	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms => phy	[label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
+	ms => phy	[label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+	ms => phy	[label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
+	ms => phy	[label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms -x phy	[label="Supressed L1 burst"];
+	ms -x phy	[label="Supressed L1 burst"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (SID_UPDATE)"];
 	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
 }
 ----
@@ -822,26 +944,27 @@
 	ms [label="MS"], phy [label="BTS-PHY"], bts [label="BTS"], mgw [label="MGW"];
 
 	...;
-	ms .. mgw	[label="pre-empted SID Update (during silence period)"];
+	ms .. mgw	[label="Inhibited SID Update (during silence period)"];
 
 	ms => phy	[label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
 	ms => phy	[label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_NA"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
 	bts -x mgw	[label="Suppressed RTP frame"];
 
-	ms => phy	[label="L1 burst (sub-block 3 of SID_UPD_INH + sub-block 1 of speech frame N-1)", id="SFU1"];
-	ms => phy	[label="L1 burst (sub-block 4 of SID_UPD_INH + sub-block 2 of speech frame N-1)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr_SidUpdateInH", id="SFU2"];
-	bts => bts	[label="lchan_set_marker() and store CMI from SID_UPD_INH"];
+	ms => phy	[label="L1 burst (block 1 of SID_UPD_INH + sub-block 1 of speech frame N)", id="SFU1"];
+	ms => phy	[label="L1 burst (block 2 of SID_UPD_INH + sub-block 2 of speech frame N)"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
 	bts -x mgw	[label="Suppressed RTP frame"];
-
-	ms => phy	[label="L1 burst (sub-block 3 of speech frame N-1 + sub-block 1 of speech frame N)"];
-	ms => phy	[label="L1 burst (sub-block 4 of speech frame N-1 + sub-block 2 of speech frame N)"];
-	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N-1)"];
-	bts => mgw	[label="RTP (AMR FT=0..7,Q=1), MARKER=1"];
 
 	ms => phy	[label="L1 burst (sub-block 3 of speech frame N + sub-block 1 of speech frame N+1)"];
 	ms => phy	[label="L1 burst (sub-block 4 of speech frame N + sub-block 2 of speech frame N+1)"];
+	phy -x bts	[label="No PH-DATA.ind sent[BFI]"];
+	bts -x mgw	[label="Suppressed RTP frame"];
+
+	ms => phy	[label="L1 burst (sub-block 3 of speech frame N+1 + sub-block 1 of speech frame N+2)"];
+	ms => phy	[label="L1 burst (sub-block 4 of speech frame N+1 + sub-block 2 of speech frame N+2)"];
+	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr_SidUpdateInH", id="SFU2"];
+	bts => bts	[label="lchan_set_marker() and store CMI from SID_UPD_INH"];
 	phy => bts	[label="PH-DATA.ind GsmL1_TchPlType_Amr (N)"];
 	bts => mgw	[label="RTP (AMR FT=0..7,Q=1) MARKER=1"];
 }
@@ -925,7 +1048,7 @@
 	ms <= phy	[label="L1 burst (sub-block 4 of speech frame N-1 + sub-block 2 of speech frame N)"];
 	mgw => bts	[label="RTP (AMR FT=0..7,Q=1)"];
 	phy => bts	[label="PH-RTS.ind (TCH)"];
-	bts => phy	[label="PH-DATA.req GsmL1_TchPlType_Amr (N)"];
+	bts => phy	[label="PH-DATA.req GsmL1_TchPlType_Amr (N+1)"];
 	ms <= phy	[label="L1 burst (sub-block 3 of speech frame N + sub-block 1 of speech frame N+1)"];
 	ms <= phy	[label="L1 burst (sub-block 4 of speech frame N + sub-block 2 of speech frame N+1)"];
 }
@@ -985,11 +1108,12 @@
 	ms x- phy	[label="Suppressed burst"];
 	ms x- phy	[label="Suppressed burst"];
 
+	bts <= mgw	[label="RTP (AMR FT=SID,Q=1)"];
 	phy => bts	[label="PH-RTS.ind (TCH)"];
 	bts => phy	[label="PH-DATA.req GsmL1_TchPlType_Amr (SID_UPDATE)", id="ULSU2"];
 	ms <= phy	[label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
 	ms <= phy	[label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
-	phy => bts	[label="PH-RTS.ind (TCH)", id="RTDSU1"];
+	phy => bts	[label="PH-RTS.ind (TCH)"];
 	phy <= bts	[label="PH-EMPTY-FRAME.req"];
 	ms <= phy	[label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
 	ms <= phy	[label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
@@ -1004,9 +1128,6 @@
 ULSU2:: The SID_UPDATE must be sent exactly three voice frames (60ms)
 after the SID_FIRST, resulting in two suppressed voice frame periods of
 empty bursts in between.
-
-RTDSU1:: Not sure whether BTS-PHY actually sends PH-RTS.ind during the
-"double-length" SID-UPDATE?
 
 ==== TCH/AHS Downlink: During Silence
 
@@ -1039,20 +1160,15 @@
 	bts => phy	[label="PH-DATA.req GsmL1_TchPlType_Amr (SID_UPDATE)"];
 	ms <= phy	[label="L1 burst (sub-block 1+2 of SID_UPDATE)"];
 	ms <= phy	[label="L1 burst (sub-block 3+4 of SID_UPDATE)"];
-	phy => bts	[label="PH-RTS.ind (TCH)", id="RTDSU2"];
+	phy => bts	[label="PH-RTS.ind (TCH)"];
 	phy <= bts	[label="PH-EMPTY-FRAME.req"];
 	ms <= phy	[label="L1 burst (sub-block 5+6 of SID_UPDATE)"];
 	ms <= phy	[label="L1 burst (sub-block 7+8 of SID_UPDATE)"];
-	phy => bts	[label="PH-DATA.req GsmL1_TchPlType_Amr"];
-	bts => mgw	[label="RTP (AMR FT=SID,Q=1)"];
 }
 ----
 
 8VF:: This happens every 8 *voice frames* (160ms), not every 8 GSM
 TDMA frames!
-
-RTDSU2:: Not sure whether BTS-PHY actually sends PH-RTS.ind during the
-"double-length" SID-UPDATE?
 
 [[ahs-dl-onset]]
 ==== TCH/AHS Downlink: End of Silence; Start of Voice
@@ -1076,12 +1192,13 @@
 
 	bts <= mgw	[label="RTP (AMR FT=0..7,Q=1) MARKER=1"];
 	phy => bts	[label="PH-RTS.ind (TCH)"];
-	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr_Onset", id="DLOS2"];
+	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr_Onset"];
+	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr (N)"];
 	ms <= phy	[label="L1 burst (sub-block 3 of SID_ONSET + sub-block 1 of speech frame N)"];
 	ms <= phy	[label="L1 burst (sub-block 4 of SID_ONSET + sub-block 2 of speech frame N)"];
 	bts <= mgw	[label="RTP (AMR FT=0..7,Q=1)"];
 	phy => bts	[label="PH-RTS.ind (TCH)"];
-	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr"];
+	phy <= bts	[label="PH-DATA.req GsmL1_TchPlType_Amr (N+1)"];
 	ms <= phy	[label="L1 burst (sub-block 3 of speech frame N + sub-block 1 of speech frame N+1)"];
 	ms <= phy	[label="L1 burst (sub-block 4 of speech frame N + sub-block 2 of speech frame N+1)"];
 }

-- 
To view, visit https://gerrit.osmocom.org/1190
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ic699bda828947ff616c3d80783026e21d853f962
Gerrit-PatchSet: 2
Gerrit-Project: osmo-gsm-manuals
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list