From 4c9264e0bab05e583b3a321e2c723f0470abcb43 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Wed, 14 Sep 2022 14:14:19 +0200 Subject: [PATCH] Document osmux use in Abis interface Related: SYS#5987 Change-Id: Ic02d379f35f29f633d0fb14da3597481a0b8b8ba --- common/chapters/osmux/mo_call_osmux_abis.msc | 54 ++++++++++++++++++++ common/chapters/osmux/network_osmux_abis.dot | 32 ++++++++++++ common/chapters/osmux/osmux.adoc | 20 ++++++++ 3 files changed, 106 insertions(+) create mode 100644 common/chapters/osmux/mo_call_osmux_abis.msc create mode 100644 common/chapters/osmux/network_osmux_abis.dot diff --git a/common/chapters/osmux/mo_call_osmux_abis.msc b/common/chapters/osmux/mo_call_osmux_abis.msc new file mode 100644 index 0000000..5c281a0 --- /dev/null +++ b/common/chapters/osmux/mo_call_osmux_abis.msc @@ -0,0 +1,54 @@ +# MO-call with Osmux enable on 3GPP AoIP +msc { + hscale=2; + ms [label="MS"], bts [label="OsmoBTS"], bsc[label="OsmoBSC"], mgw_bsc[label="OsmoMGW(bsc)"], m_sc[label="MSC"], mgw_msc[label="OsmoMGW(msc)"]; + + bsc <- m_sc [label="BSSMAP RESET (with extension IE: Osmux Support)"]; + bsc -> m_sc [label="BSSMAP RESET ACK (with extension IE: Osmux Support)"]; + ...; + ms box mgw_msc [label="We assume a SDCCH is already established"]; + ...; + + ms -> bsc [label="DTAP CM Service Request"]; + bsc -> m_sc [label="Complete Layer 3 Information DTAP CM Service Request"]; + + # Allocate MGW/MSC Osmux endpoint + m_sc -> mgw_msc [label="MGCP CRCX rtpbridge/*@mgw, X-Osmux: *"]; + mgw_msc box mgw_msc [label="Bind to MGW-local RTP Port (5000)\nAllocate new endpoint 1"]; + mgw_msc -> m_sc [label="MGCP CRCX rtpbridge/1@mgw OK (MGW:5000)"]; + + bsc <- m_sc [label="BSSAP ASSGN REQ"]; + bts <- bsc [label="RSL CHAN ACT"]; + bts -> bsc [label="RSL CHAN ACT ACK"]; + ms <- bsc [label="Assignment Command"]; + ms -> bsc [label="Assignment Complete"]; + ...; + + # connect BTS RTP with BSC-MGW RTP + bsc -> mgw_bsc [label="MGCP CRCX rtpbridge/*@mgw, X-Osmux: *"]; + mgw_bsc box mgw_bsc [label="Bind to MGW-local Osmux Port (1984)\n\nAllocate new endpoint 2, MGW's local CID 5"]; + bsc <- mgw_bsc [label="MGCP CRCX rtpbridge/2@mgw OK (MGW:1984, X-Osmux: 5)"]; + bts <- bsc [label="IPA CRCX (Extension IE Osmux-CID 5)"]; + bts box bts [label="Bind to BTS-local Osmux Port (1985), Allocate new BTS's local CID 7"]; + bts -> bsc [label="IPA CRCX ACK (BTS:1985, Extension IE Osmux-CID 7)"]; + bsc -> mgw_bsc [label="MGCP MDCX rtpbridge/2@mgw (BTS:1985, X-Osmux: 7)"]; + mgw_bsc box mgw_bsc [label="\nConnect to BTS:1985 MGW's remote CID 7"]; + bsc <- mgw_bsc [label="MGCP CRCX rtpbridge/2@mgw OK (MGW:1984, X-Osmux: 5)"]; + ...; + + mgw_bsc <- bsc [label="MGCP CRCX rtpbridge/2@mgw (MSC:5000)"]; + mgw_bsc box mgw_bsc [label="Bind to MGW-local RTP Port (2000)\nConnect to MSC:5000"]; + mgw_bsc -> bsc [label="MGCP CRCX rtpbridge/2@mgw OK (MGW:2000)"]; + ...; + + bsc -> m_sc [label="BSSAP ASSGN CMPL (3GPP AoIP MGW:2000)"]; + m_sc box m_sc [label="Connect remote RTP to MGW addr from ASSGN CMPL"]; + m_sc -> mgw_msc [label="MGCP MDCX rtpbridge/1@mgw (MGW:2000)"]; + m_sc <- mgw_msc [label="MGCP MDCX rtpbridge/1@mgw OK"]; + ...; + + mgw_bsc <=> mgw_msc [label="RTP Audio MGW:2000 MSC:5000"]; + bts <=> mgw_bsc [label="Osmux Audio BTS:1985 MGW:1984, CID(uplink):5, CID(downlink):7"]; + ms <=> bts [label="Um Audio (bidirectional)"]; + ms <-> m_sc [label="DTAP CC ALERTING"]; +} diff --git a/common/chapters/osmux/network_osmux_abis.dot b/common/chapters/osmux/network_osmux_abis.dot new file mode 100644 index 0000000..578e0d1 --- /dev/null +++ b/common/chapters/osmux/network_osmux_abis.dot @@ -0,0 +1,32 @@ +digraph G { + rankdir = LR; + subgraph cluster_RAN { + OsmoBTS1 [label="OsmoBTS"]; + OsmoBTS2 [label="OsmoBTS"]; + OsmoBSC; + OsmoMGW [label="OsmoMGW\n(for BSC)"]; + + OsmoBTS1 -> OsmoBSC [label="Abis/IP", dir="both"]; + OsmoBTS2 -> OsmoBSC [label="Abis/IP", dir="both"]; + OsmoBSC -> OsmoMGW [label="MGCP", dir="both"]; + { rank = same; OsmoBSC; OsmoMGW } + + OsmoBTS1 -> OsmoMGW [label="Osmux", dir="both", color=red]; + OsmoBTS2 -> OsmoMGW [label="RTP", dir="both"]; + + label = "RAN"; + } + subgraph cluster_CN { + OsmoMGW1 [label="OsmoMGW\n(for MSC)"]; + OsmoMSC [label="MSC\ne.g. OsmoMSC"]; + Core [label="Other CN Elements"]; + OsmoMSC -> Core [label="MAP/ISUP/SIP/GSUP", dir="both"]; + OsmoMSC -> OsmoMGW1 [label="MGCP", dir="both"]; + { rank = same; OsmoMSC; OsmoMGW1 } + OsmoMGW -> OsmoMGW1 [label="RTP", dir="both"]; + OsmoMGW1 -> Core [label="RTP", dir="both"]; + label = "CN"; + } + + OsmoBSC -> OsmoMSC [label="3GPP AoIP\nvia SIGTRAN/STP", dir="both"]; +} diff --git a/common/chapters/osmux/osmux.adoc b/common/chapters/osmux/osmux.adoc index ca1acd5..24dc446 100644 --- a/common/chapters/osmux/osmux.adoc +++ b/common/chapters/osmux/osmux.adoc @@ -18,6 +18,11 @@ multiplex payload audio streams from call legs between OsmoBSC and OsmoMSC (or OsmoBSCNAT). The MGW attached those components need of course also be aware of `Osmux` existence in order to properly set up the audio data plane. +Under some specific circumstances, the operator may decide to set up the network +with a bandwidth-limited (e.g. satellite) link between BTS and BSC. Hence, use of +the `Osmux` protocol is also possible between an Osmux capable BTS (like +OsmoBTS) and OsmoBSC (and its co-located MGW). + === Osmux and NAT It is quite usual for satellite based links to use NATs, which means any or both @@ -139,3 +144,18 @@ include::mo_call_osmux_sccplite_nat.msc[] ---- include::mgcp_extension_osmux.adoc[] + +=== Abis setup with Osmux + +[[fig-network-osmux-aoip]] +.Sample node diagram of Osmux enabled in the Abis interface +[graphviz] +---- +include::network_osmux_abis.dot[] +---- + +.MO-call with Osmux enabled on Abis +[mscgen] +---- +include::mo_call_osmux_abis.msc[] +----