[PATCH] osmo-gsm-manuals[master]: BSC: Add series of message sequence charts about MGCP handling

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

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed May 31 20:21:53 UTC 2017


Review at  https://gerrit.osmocom.org/2816

BSC: Add series of message sequence charts about MGCP handling

Change-Id: Id5948677d23a58ce112b57f91bea953a93baab4c
---
M OsmoBSC/Makefile
A OsmoBSC/aoip-mgw-options-docinfo.xml
A OsmoBSC/aoip-mgw-options.adoc
A OsmoBSC/mgw/classic-bsc.msc
A OsmoBSC/mgw/osmo-bsc-new-mgw-e1.msc
A OsmoBSC/mgw/osmo-bsc-new-mgw.msc
A OsmoBSC/mgw/osmo-bsc-old-sccplite.msc
7 files changed, 353 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/16/2816/1

diff --git a/OsmoBSC/Makefile b/OsmoBSC/Makefile
index e12d3e2..93c7b81 100644
--- a/OsmoBSC/Makefile
+++ b/OsmoBSC/Makefile
@@ -15,13 +15,14 @@
 # htmlcss =
 
 TOPDIR := ..
-ASCIIDOCS := osmobsc-usermanual osmux-reference
+ASCIIDOCS := osmobsc-usermanual osmux-reference aoip-mgw-options
 
 include $(TOPDIR)/build/Makefile.asciidoc.inc
 include $(TOPDIR)/build/Makefile.inc
 
 osmobsc-usermanual.pdf: chapters/*.adoc
 osmux-reference.pdf: osmux-reference.adoc
+aoip-mgw-options.pdf: aoip-mgw-options.adoc
 
 clean:
 	-rm -rf $(cleanfiles)
@@ -29,6 +30,9 @@
 	-rm osmobsc-usermanual__*.svg
 	-rm osmobsc-usermanual*.check
 	-rm osmux-reference*.check
+	-rm aoip-mgw-options*.png
+	-rm aoip-mgw-options*.svg
+	-rm aoip-mgw-options*.check
 
 gen-bsc-vty-docbook: FORCE
 	$(call command,xsltproc -o generated/combined1.xml \
diff --git a/OsmoBSC/aoip-mgw-options-docinfo.xml b/OsmoBSC/aoip-mgw-options-docinfo.xml
new file mode 100644
index 0000000..0809594
--- /dev/null
+++ b/OsmoBSC/aoip-mgw-options-docinfo.xml
@@ -0,0 +1,47 @@
+<revhistory>
+  <revision>
+    <revnumber>0.1</revnumber>
+    <date>31 May 2017</date>
+    <authorinitials>Harald Welte</authorinitials>
+    <revremark>
+       Initial version of the proposal for internal discussion.
+    </revremark>
+  </revision>
+</revhistory>
+
+<authorgroup>
+  <author>
+    <firstname>Harald</firstname>
+    <surname>Welte</surname>
+    <email>hwelte at sysmocom.de</email>
+    <authorinitials>HW</authorinitials>
+    <affiliation>
+      <shortaffil>sysmocom</shortaffil>
+      <orgname>sysmocom - s.f.m.c. GmbH</orgname>
+      <jobtitle>Managing Director</jobtitle>
+    </affiliation>
+  </author>
+</authorgroup>
+
+<copyright>
+  <year>2017</year>
+  <holder>sysmocom - s.f.m.c. GmbH</holder>
+</copyright>
+
+<legalnotice>
+  <para>
+	Permission is granted to copy, distribute and/or modify this
+	document under the terms of the GNU Free Documentation License,
+	Version 1.3 or any later version published by the Free Software
+	Foundation; with the Invariant Sections being just 'Foreword',
+	'Acknowledgements' and 'Preface', with no Front-Cover Texts,
+	and no Back-Cover Texts.  A copy of the license is included in
+	the section entitled "GNU Free Documentation License".
+  </para>
+  <para>
+	The Asciidoc source code of this manual can be found at
+	<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
+		http://git.osmocom.org/osmo-gsm-manuals/
+	</ulink>
+  </para>
+</legalnotice>
diff --git a/OsmoBSC/aoip-mgw-options.adoc b/OsmoBSC/aoip-mgw-options.adoc
new file mode 100644
index 0000000..8ce3b91
--- /dev/null
+++ b/OsmoBSC/aoip-mgw-options.adoc
@@ -0,0 +1,77 @@
+= OsmoBSC A / SCCPlite / 3GPP AoIP Options
+
+== Introduction
+
+This document serves as a paper to illustrate the different
+configurations of OsmoBSC in terms of integration with BTSs and MSCs.
+
+The document should accompany us in the 2017 development cycle which
+includes the _death of the NITB_, i.e. the move away from OsmoNITB to
+having OsmoBSC in all configurations, whether with a
+proprietary/external MSC or with OsmoMSC.
+
+Particular attention is spent on the user plane, including aspects
+such as
+
+* user plane transport address handling
+* use of MGCP (Media Gateway Control Protocol)
+* the (required) evolution of `osmo-bsc_mgcp`
+* not loosing classic TDM (E1/T1) BTS support when moving from
+  OsmoNITB to split OsmoBSC + OsmoMSC setup
+
+
+== Overview
+
+=== Classic GSM RAN with E1 based Abis and E1 A
+
+This configuration was actually never supported by OpenBSC, as E1 BTS
+support was so far for NITB only, but not for OsmoBSC.
+
+[mscgen]
+----
+include::mgw/classic-bsc.msc[]
+----
+
+=== OsmoBSC 2010-2017: IPA-style A over SCCPlite
+
+This configuration was introduced as early as 2010 in OpenBSC.  It
+allowed the use of IP based BTSs (ip.access nanoBTS as well as all the
+OsmoBTS supported BTS models) in combination with third-party MSCs
+implementing a pre-standard, proprietary way of transporting the A
+interface over IP at a time where the 3GPP specifications only allowed
+classic TDM transport.
+
+[mscgen]
+----
+include::mgw/osmo-bsc-old-sccplite.msc[]
+----
+
+
+=== OsmoBSC 2017+: 3GPP AoIP + Abis/IP
+
+Release 7 of 3GPP included an official specification on how an
+interoperable A-over-IP (AoIP) interface shall look like.
+
+As more modern MSCs at operators tend to favor implementing 3GPP AoIP
+rather than the proprietary SCCPlite based A interface, it becomes
+neccessary for OsmoBSC to support this.
+
+At the same time, for compatibility reasons, the classic SCCPlite
+support shall be kept, if possible with reasonable effort.
+
+[mscgen]
+----
+include::mgw/osmo-bsc-new-mgw.msc[]
+----
+
+
+=== OsmoBSC 2017+: 3GPP AoIP + Abis/E1
+
+Since OsmoNITB will soon be deprecated, we will use OsmoBSC in all
+Osmocom GSM ntework setups, requiring the support for classic E1/T1
+based BTSs from OsmoBSC.
+
+[mscgen]
+----
+include::mgw/osmo-bsc-new-mgw-e1.msc[]
+----
diff --git a/OsmoBSC/mgw/classic-bsc.msc b/OsmoBSC/mgw/classic-bsc.msc
new file mode 100644
index 0000000..56d2889
--- /dev/null
+++ b/OsmoBSC/mgw/classic-bsc.msc
@@ -0,0 +1,39 @@
+# MO Call on a classic E1 Abis BTS with classic E1 A BSC
+# not actually supported by OsmoBSC (nor planned), for refrence only
+msc {
+	hscale=2;
+	ms [label="MS"], bts [label="E1 BTS"], bsc[label="OsmoBSC"], trau[label="TRAU"], m_sc[label="MSC"]; 
+
+	ms box m_sc	[label="We assume a SDCCH is already established"];
+	...;
+
+	ms -> m_sc	[label="DTAP CC SETUP"];
+	ms <- m_sc	[label="DTAP CC CALL PROCEEDING"];
+
+	bsc <- m_sc 	[label="BSSAP ASSGN REQ"];
+	bsc box m_sc	[label="E1 TS for PCM specified by CIC"];
+	bts <- bsc 	[label="RSL CHAN ACT"];
+	bts -> bsc 	[label="RSL CHAN ACT ACK"];
+	bts box bsc	[label="E1 TS + 16k sub-slot configured for given lchan"];
+	ms <-> bsc	[label="Assignment"];
+	bsc -> m_sc	[label="BSSAP ASSGN CMPL"];
+
+	...;
+	trau <- m_sc	[label="PCM Audio in full E1 slot"];
+	bts <- trau	[label="A-bis TRAU frames on 16k sub-slot"];
+
+	...;
+	ms <- m_sc	[label="DTAP CC CONNECT"];
+	ms -> m_sc	[label="DTAP CC CONNECT ACK"];
+	trau <-> m_sc	[label="PCM Audio in full E1 slot"];
+	bts <-> trau	[label="A-bis TRAU frames on 16k sub-slot"];
+	---		[label="Voice Call in Progress"];
+	ms <- m_sc	[label="DTAP CC DISCONNET"];
+	ms <- m_sc	[label="DTAP CC RELEASE"];
+	ms <- m_sc	[label="DTAP CC RELEASE COMPL"];
+	...;
+	bsc <- m_sc	[label="BSSMAP CLEAR CMD"];
+	bsc -> m_sc	[label="BSSMAP CLEAR COMPL"];
+	bsc <- m_sc	[label="SCCP RLSD"];
+	bsc -> m_sc	[label="SCCP RLC"];
+}
diff --git a/OsmoBSC/mgw/osmo-bsc-new-mgw-e1.msc b/OsmoBSC/mgw/osmo-bsc-new-mgw-e1.msc
new file mode 100644
index 0000000..7912a73
--- /dev/null
+++ b/OsmoBSC/mgw/osmo-bsc-new-mgw-e1.msc
@@ -0,0 +1,50 @@
+# MO-Call with E1 BTS + OsmoBSC with true 3GPP AoIP (planned
+# osmo-bsc_mgcp has to be extended to true MGW functionality!
+msc {
+	hscale=2;
+	ms [label="MS"], bts [label="E1 BTS"], bsc[label="OsmoBSC"], mgcp[label="osmo-bsc_mgcp"], m_sc[label="MSC"];
+
+	ms box m_sc	[label="We assume a SDCCH is already established"];
+	...;
+
+	ms -> m_sc	[label="DTAP CC SETUP"];
+	ms <- m_sc	[label="DTAP CC CALL PROCEEDING"];
+
+	m_sc box m_sc	[label="Bind arbitrary local port (4000)"];
+	bsc <- m_sc 	[label="BSSAP ASSGN REQ (3GPP AoIP MSC:4000)"];
+	bts <- bsc 	[label="RSL CHAN ACT"];
+	bts -> bsc 	[label="RSL CHAN ACT ACK"];
+	ms <-> bsc	[label="Assignment"];
+	...;
+
+	mgcp <- bsc	[label="MGCP CRCX ts1/ss2 at abis (MSC:4000)"];
+	mgcp box mgcp	[label="Bind to MGW-local RTP Port (3000)\nConnect to MSC:4000"];
+	mgcp -> bsc	[label="MGCP CRCX ts1/ss2 at a OK (MGW:3000)"];
+	...;
+
+	bsc -> m_sc	[label="BSSAP ASSGN CMPL (3GPP AoIP MGW:3000)"];
+	m_sc box m_sc	[label="Connect remote RTP to MGW addr from ASSGN CMPL"];
+	...;
+
+	mgcp <=> m_sc	[label="RTP Audio MGW:3000 MSC:4000"];
+	bts <=> mgcp	[label="TRAU Frame Audio (E1 TS1 SS2)"];
+	ms <=> bts	[label="Um Audio (bidirectional)"];
+	ms <-> m_sc	[label="DTAP CC ALERTING"];
+	...;
+
+	ms <- m_sc	[label="DTAP CC CONNECT"];
+	ms -> m_sc	[label="DTAP CC CONNECT ACK"];
+	---		[label="Voice Call in Progress"];
+	ms <- m_sc	[label="DTAP CC DISCONNET"];
+	ms <- m_sc	[label="DTAP CC RELEASE"];
+	ms <- m_sc	[label="DTAP CC RELEASE COMPL"];
+	...;
+	bsc <- m_sc	[label="BSSMAP CLEAR CMD"];
+	bsc -> m_sc	[label="BSSMAP CLEAR COMPL"];
+	bsc <- m_sc	[label="SCCP RLSD"];
+	bsc -> m_sc	[label="SCCP RLC"];
+	...;
+	mgcp <- bsc	[label="MGCP DLCX ts1/ss2 at a"];
+	mgcp box mgcp	[label="Release MSC-facing local RTP port (3000)"];
+	mgcp -> bsc	[label="MGCP DLCX ts1/ss2 at a OK"];
+}
diff --git a/OsmoBSC/mgw/osmo-bsc-new-mgw.msc b/OsmoBSC/mgw/osmo-bsc-new-mgw.msc
new file mode 100644
index 0000000..2bab84d
--- /dev/null
+++ b/OsmoBSC/mgw/osmo-bsc-new-mgw.msc
@@ -0,0 +1,71 @@
+# MO-Call with OsmoBTS + OsmoBSC with true 3GPP AoIP (planned)
+msc {
+	hscale=2;
+	ms [label="MS"], bts [label="OsmoBTS"], bsc[label="OsmoBSC"], mgcp[label="osmo-bsc_mgcp"], m_sc[label="MSC"];
+
+	ms box m_sc	[label="We assume a SDCCH is already established"];
+	...;
+
+	ms -> m_sc	[label="DTAP CC SETUP"];
+	ms <- m_sc	[label="DTAP CC CALL PROCEEDING"];
+
+	m_sc box m_sc	[label="Bind arbitrary local port (4000)"];
+	bsc <- m_sc 	[label="BSSAP ASSGN REQ (3GPP AoIP MSC:4000)"];
+	bts <- bsc 	[label="RSL CHAN ACT"];
+	bts -> bsc 	[label="RSL CHAN ACT ACK"];
+	ms <-> bsc	[label="Assignment"];
+	...;
+
+	# connect BTS RTP with BSC-MGW RTP
+	bts <- bsc	[label="IPA CRCX"];
+	bts box bts	[label="Bind to BTS-local RTP Port (1000)"];
+	bts -> bsc	[label="IPA CRCX ACK (BTS:1000)"];
+	bsc -> mgcp	[label="MGCP CRCX 2 at abis (BTS:1000)"];
+	mgcp box mgcp	[label="Bind to MGW-local RTP Port (2000)\nConnect to BTS:1000"];
+	bsc <- mgcp	[label="MGCP CRCX 2 at abis OK (MGW:2000)"];
+	bts <- bsc	[label="IPA MDCX 2 at abis (MGW:2000)"];
+	bts box bts	[label="Connect RTP socket to remote (MGW) RTP Port"];
+	bts -> bsc	[label="IPA MDCX 2 at abis ACK"];
+	#bsc -> mgcp	[label="MGCP MDCX 2 at abis (optional)"];
+	#bsc <- mgcp	[label="MGCP MDCX 2 at abis OK (optional)"];
+	...;
+
+	mgcp <- bsc	[label="MGCP CRCX 1 at a (MSC:4000)"];
+	mgcp box mgcp	[label="Bind to MGW-local RTP Port (3000)\nConnect to MSC:4000"];
+	mgcp -> bsc	[label="MGCP CRCX 1 at a OK (MGW:3000)"];
+	...;
+
+	bsc -> m_sc	[label="BSSAP ASSGN CMPL (3GPP AoIP MGW:3000)"];
+	m_sc box m_sc	[label="Connect remote RTP to MGW addr from ASSGN CMPL"];
+	...;
+
+	mgcp <=> m_sc	[label="RTP Audio MGW:3000 MSC:4000"];
+	bts <=> mgcp	[label="RTP Audio BTS:1000 MGW:2000"];
+	ms <=> bts	[label="Um Audio (bidirectional)"];
+	ms <-> m_sc	[label="DTAP CC ALERTING"];
+	...;
+
+	ms <- m_sc	[label="DTAP CC CONNECT"];
+	ms -> m_sc	[label="DTAP CC CONNECT ACK"];
+	---		[label="Voice Call in Progress"];
+	ms <- m_sc	[label="DTAP CC DISCONNET"];
+	ms <- m_sc	[label="DTAP CC RELEASE"];
+	ms <- m_sc	[label="DTAP CC RELEASE COMPL"];
+	...;
+	bsc <- m_sc	[label="BSSMAP CLEAR CMD"];
+	bsc -> m_sc	[label="BSSMAP CLEAR COMPL"];
+	bsc <- m_sc	[label="SCCP RLSD"];
+	bsc -> m_sc	[label="SCCP RLC"];
+	...;
+	mgcp <- bsc	[label="MGCP DLCX 1 at a"];
+	mgcp box mgcp	[label="Release MSC-facing local RTP port (3000)"];
+	mgcp -> bsc	[label="MGCP DLCX 1 at a OK"];
+
+	bsc -> mgcp	[label="MGCP DLCX 2 at abis"];
+	mgcp box mgcp	[label="Release BTS-facing local RTP port (2000)"];
+	bsc <- mgcp	[label="MGCP DLCX 2 at abis OK"];
+
+	bts <- bsc	[label="IPA DLCX"];
+	bts box bts	[label="Release BTS-local RTP port (1000)"];
+	bts -> bsc	[label="IPA DLCX OK"];
+}
diff --git a/OsmoBSC/mgw/osmo-bsc-old-sccplite.msc b/OsmoBSC/mgw/osmo-bsc-old-sccplite.msc
new file mode 100644
index 0000000..f7298bf
--- /dev/null
+++ b/OsmoBSC/mgw/osmo-bsc-old-sccplite.msc
@@ -0,0 +1,64 @@
+# MO-Call with OsmoBTS + OsmoBSC using A/IP with IPA/SCCPlite
+# Supported since 2010 using osmo-bsc + osmo-bsc_nat
+msc {
+	hscale=2;
+	ms [label="MS"], bts [label="OsmoBTS"], bsc[label="OsmoBSC"], mgcp[label="osmo-bsc_mgcp"], m_sc[label="MSC"]; 
+
+	ms box m_sc	[label="We assume a SDCCH is already established"];
+	...;
+
+	ms -> m_sc	[label="DTAP CC SETUP"];
+	ms <- m_sc	[label="DTAP CC CALL PROCEEDING"];
+
+	bsc <- m_sc 	[label="BSSAP ASSGN REQ"];
+	bts <- bsc 	[label="RSL CHAN ACT"];
+	bts -> bsc 	[label="RSL CHAN ACT ACK"];
+	ms <-> bsc	[label="Assignment"];
+	bsc -> m_sc	[label="BSSAP ASSGN CMPL"];
+
+	...;
+	bts <- bsc	[label="IPA CRCX"];
+	bts box bts	[label="Bind to BSC-local RTP Port"];
+	bts -> bsc	[label="IPA CRCX ACK"];
+	bts <- bsc	[label="IPA MDCX"];
+	bts box bts	[label="Connect RTP socket to remote (bsc_mgcp) RTP Port"];
+	bts -> bsc	[label="IPA MDCX ACK"];
+
+	mgcp <- m_sc	[label="MGCP CRCX"];
+	mgcp box mgcp	[label="Bind to BTS-local RTP Port"];
+	mgcp -> m_sc	[label="MGCP CRCX OK"];
+	mgcp <- m_sc	[label="MGCP MDCX (recvonly) "];
+	mgcp box mgcp	[label="Connect RTP socket to remote (MSC) RTP Port"];
+	mgcp -> m_sc	[label="MGCP MDCX OK"];
+	mgcp <= m_sc	[label="RTP Audio"];
+	bts <= mgcp	[label="RTP Audio"];
+	ms <= bts	[label="Um Audio (unidirectional)"];
+	ms <- m_sc	[label="DTAP CC ALERTING"];
+
+	...;
+	mgcp <- m_sc	[label="MGCP MDCX (sndrecv) "];
+	mgcp box mgcp	[label="Switch to bi-directional audio"];
+	mgcp -> m_sc	[label="MGCP MDCX OK"];
+	mgcp <=> m_sc	[label="RTP Audio"];
+	bts <=> mgcp	[label="RTP Audio"];
+	ms <=> bts	[label="Um Audio (bidirectional)"];
+	...;
+	ms <- m_sc	[label="DTAP CC CONNECT"];
+	ms -> m_sc	[label="DTAP CC CONNECT ACK"];
+	mgcp <- m_sc	[label="MGCP MDCX (sndrecv) "];
+	mgcp box mgcp	[label="Why?"];
+	mgcp -> m_sc	[label="MGCP MDCX OK"];
+	---		[label="Voice Call in Progress"];
+	ms <- m_sc	[label="DTAP CC DISCONNET"];
+	ms <- m_sc	[label="DTAP CC RELEASE"];
+	ms <- m_sc	[label="DTAP CC RELEASE COMPL"];
+	...;
+	bsc <- m_sc	[label="BSSMAP CLEAR CMD"];
+	bsc -> m_sc	[label="BSSMAP CLEAR COMPL"];
+	bsc <- m_sc	[label="SCCP RLSD"];
+	bsc -> m_sc	[label="SCCP RLC"];
+	...;
+	mgcp <- m_sc	[label="MGCP DLCX"];
+	mgcp box mgcp	[label="Release local RTP port"];
+	mgcp -> m_sc	[label="MGCP DLCX OK"];
+}

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id5948677d23a58ce112b57f91bea953a93baab4c
Gerrit-PatchSet: 1
Gerrit-Project: osmo-gsm-manuals
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>



More information about the gerrit-log mailing list