summaryrefslogtreecommitdiff
path: root/2018/osmodevcon2018-reintroducing_e1/osmodevcon2018-reintroducing_e1.adoc
diff options
context:
space:
mode:
Diffstat (limited to '2018/osmodevcon2018-reintroducing_e1/osmodevcon2018-reintroducing_e1.adoc')
-rw-r--r--2018/osmodevcon2018-reintroducing_e1/osmodevcon2018-reintroducing_e1.adoc121
1 files changed, 121 insertions, 0 deletions
diff --git a/2018/osmodevcon2018-reintroducing_e1/osmodevcon2018-reintroducing_e1.adoc b/2018/osmodevcon2018-reintroducing_e1/osmodevcon2018-reintroducing_e1.adoc
new file mode 100644
index 0000000..2e5bd74
--- /dev/null
+++ b/2018/osmodevcon2018-reintroducing_e1/osmodevcon2018-reintroducing_e1.adoc
@@ -0,0 +1,121 @@
+Re-introducing E1 in OsmoBSC
+============================
+:author: Harald Welte <laforge@gnumonks.org>
+:copyright: 2018 by Harald Welte (License: CC-BY-SA)
+:backend: slidy
+:max-width: 45em
+
+== Intro
+
+* OpenBSC (later OsmoNITB) started with E1 BTS
+* until NITB Split, E1 support remained present
+* even old OsmoBSC (sccplite) never had E1 BTS suport
+* new OsmoBSC also has no E1 BTS support
+* let's change that!
+
+== Classic OsmoNITB with E1-BTS + ext MNCC
+
+image::osmo-userplane1_e1_mncc.svg[width="100%"]
+
+* Abis/E1 with 16k sub-slots in 64k slots
+* E1 device offers 64k timeslots only
+** 16k sub-channel mux/demux done in software
+* TRAU frames in 16k sub-slots decoded (to FR/EFR codec frames)
+* passed next to MNCC signaling over MNCC socket
+
+== Classic OsmoNITB with E1-BTS + ext MNCC + RTP
+
+image::osmo-userplane2-e1_rtp.svg[width="100%"]
+
+* just like previous example, but we generate RTP from TRAU frames
+* MNCC interface is signaling only
+* user voice frames handled via RTP
+
+== Classic OsmoNITB with IP-BTS + ext MNCC + RTP proxy
+
+image::osmo-userplane3-rtp_proxy.svg[width="100%"]
+
+* Abis/IP BTS use RTP transport for speech frames
+* OsmoNITB is asked to provide RTP proxy functionality
+
+== Classic OsmoNITB with IP-BTS + ext MNCC + direct RTP
+
+image::osmo-userplane4-rtp_direct.svg[width="100%"]
+
+* Abis/IP BTS use RTP transport for speech frames
+* OsmoNITB rtp_proxy is disabled
+* RTP data passes directly from BTS to external PBX and vice-versa
+
+== IP-BTS User Plane in post-NITB
+
+When using IP-based BTS like OsmoBTS, this looks like this:
+
+[graphviz]
+----
+digraph G {
+ rankdir=LR;
+
+ BSC [label="OsmoBSC"];
+ MSC [label="OsmoMSC"];
+ MGWb [label="OsmoMGW\n(BSC)"];
+ MGWm [label="OsmoMGW\n(MSC)"];
+
+ { rank=same; BSC; MGWb; };
+ { rank=same; MSC; MGWm; };
+
+ BTS -> BSC [label="A-bis/IP (RSL+OML)"];
+ BSC -> MSC [label="A (BSSAP)"];
+ BTS -> MGWb [label="RTP"];
+ MGWb -> MGWm [label="RTP"];
+ MSC -> PBX [label="MNCC"];
+ MGWm -> PBX [label="RTP"];
+
+ BSC -> MGWb [label="MGCP"];
+ MSC -> MGWm [label="MGCP"];
+}
+----
+
+* RTP to/from the BTS is handled by the BSC-colocated OsmoMGW
+
+
+== E1-BTS User Plane in post-NITB
+
+When using E1-based BTS, it should look like this:
+
+[graphviz]
+----
+digraph G {
+ rankdir=LR;
+
+ BSC [label="OsmoBSC"];
+ MSC [label="OsmoMSC"];
+ MGWb [label="OsmoMGW\n(BSC)"];
+ MGWm [label="OsmoMGW\n(MSC)"];
+
+ { rank=same; BSC; MGWb; };
+ { rank=same; MSC; MGWm; };
+
+ BTS -> BSC [label="A-bis/E1 (RSL+OML)"];
+ BSC -> MSC [label="A (BSSAP)"];
+ BTS -> MGWb [label="TRAU-Frames\nover E1"];
+ MGWb -> MGWm [label="RTP"];
+ MSC -> PBX [label="MNCC"];
+ MGWm -> PBX [label="RTP"];
+
+ BSC -> MGWb [label="MGCP"];
+ MSC -> MGWm [label="MGCP"];
+}
+----
+
+* TRAU frames in 16k E1 sub-slots to/from the BTS are handled by the BSC-colocated OsmoMGW
+* OsmoMGW needs real media gateway functionality from E1 sub-slots to RTP
+* E1 driver needs to support single E1 span (line) that
+** opens RSL/OML LAPDm signaling on one TS from OsmoBSC
+** opens TRAU on other TS from OsmoMGW
+* `osmo-bsc.cfg` states which Um TS maps to which E1 TS/SS
+* `osmo-bsc` uses MGCP EP naming scheme like `E1/Line1/TS4/SS2@mgw`
+
+
+== EOF
+
+End of File
personal git repositories of Harald Welte. Your mileage may vary