From f24009998c02732aab2471d38656597bf28b7126 Mon Sep 17 00:00:00 2001
From: Harald Welte <laforge@gnumonks.org>
Date: Mon, 26 Aug 2019 19:42:13 +0200
Subject: slides from cccamp2019 about 'how the camp LTE works'

---
 .../how_the_camp_lte_works.adoc                    | 131 +++++++++++++++++++++
 1 file changed, 131 insertions(+)
 create mode 100644 2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.adoc

(limited to '2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.adoc')

diff --git a/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.adoc b/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.adoc
new file mode 100644
index 0000000..faae09b
--- /dev/null
+++ b/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.adoc
@@ -0,0 +1,131 @@
+How the CCC Camp 2019 LTE network works
+=======================================
+:author:	Harald Welte <laforge@gnumonks.org>
+:copyright:	2019 by Harald Welte (License: CC-BY-SA)
+:backend:	slidy
+:max-width:	45em
+
+== Intro
+
+* we had GSM networks at CCC events since 2008
+** Initially using proprietary, E1-attached Siemens BTS and OpenBSC (later OsmoBSC)
+* we had GSM networks at European Hacker Camps since 2009 (HAR)
+* we had UMTS (3G) for a few years now, too
+** using Osmocom stack with OsmoHNBGW / OsmoMSC / OsmoSGSN
+
+== LTE
+
+* new network elements with new acronyms
+
+[graphviz]
+----
+digraph {
+  rankdir = LR;
+  eNB -> MME [label="S1AP"];
+  MME -> HSS [label="DIAMETER"];
+  MME -> SGW [label="GTPv2C"];
+  SGW -> PGW [label="GTPv2C"];
+  PGW -> PCRF [label="DIAMETER"];
+  eNB -> SGW [label="GTP-U"];
+  SGW -> PGW [label="GTP-U"];
+
+  { rank = same; HSS; PCRF; }
+}
+----
+
+== LTE
+
+* new protocols on all layers of all interfaces
+** S1AP between eNodeB and MME
+** GTPv2C between MME and SGW and SGW and PGW
+** DIAMETER between everyone and HSS
+
+== FOSS LTE software
+
+* srsLTE for eNodeB and UE
+** main focus on UE; eNodeB features somewhat limited
+** super simplistic srsEPC suitable for only the scarcest of use cases
+* OpenAirInterface
+** obscure code base; difficult to build; "
+** very research oriented
+** RAN part under non-free, non-opensource but 'source available' license
+* nextepc
+
+== nextepc
+
+* Implements all key LTE network (EPC) elements
+** MME
+** SGW
+** PGW
+** HSS
+** PCRF
+
+== interfacing with Osmocom 2G/3G core
+
+* shared subscriber (and key) database
+** LTE: HSS, speaking DIAMETER
+** 2G/3G: HLR, speaking MAP (Osmocom:GSUP)
+* We need a so-called 'inter-working function (IWF)
+** translate from DIAMETER to GSUP and vice-versa
+
+== osmo_dia2gsup
+
+* Best FOSS DIAMETER support contained in Erlang/OTP
+* Fairwaves contributed GSUP protocol codec in Erlang
+* I wrote a translator for the two minimal procedures
+** AuthInfo (Obtain authentication tuples)
+** UpdateLocation (registration)
+
+== Network layout
+
+[graphviz]
+----
+digraph G {
+  rankdir = LR;
+
+  { rank = same; eNB0; eNB1; eNB2; eNB3; eNB4; eNB5 };
+
+  eNB0 -> eNB1 [label="X2"];
+  eNB1 -> eNB2 [label="X2"];
+  eNB2 -> eNB3 [label="X2"];
+  eNB3 -> eNB4 [label="X2"];
+  eNB4 -> eNB5 [label="X2"];
+
+ eNB0 [label="eNB (RBS6402)"];
+ eNB1 [label="eNB (RBS6402)"];
+ eNB2 [label="eNB (RBS6402)"];
+ eNB3 [label="eNB (RBS6402)"];
+ eNB4 [label="eNB (RBS6402)"];
+ eNB5 [label="eNB (RBS6402)"];
+
+ { rank = same; MME; SGW; };
+
+ MME [label="MME (nextepc)"];
+ SGW [label="SGW (nextepc)"];
+
+ eNB0 -> MME [label="S1AP"];
+ eNB1 -> MME [label="S1AP"];
+ eNB2 -> MME [label="S1AP"];
+ eNB3 -> MME [label="S1AP"];
+ eNB4 -> MME [label="S1AP"];
+ eNB5 -> MME [label="S1AP"];
+
+ MME -> dia2gsup [label="DIAMETER"];
+
+ eNB0 -> SGW [label="GTP1U"];
+ eNB1 -> SGW [label="GTP1U"];
+ eNB2 -> SGW [label="GTP1U"];
+ eNB3 -> SGW [label="GTP1U"];
+ eNB4 -> SGW [label="GTP1U"];
+ eNB5 -> SGW [label="GTP1U"];
+
+ SGW -> PGW [label="GTP1U"];
+ SGW -> PGW [label="GTPv2C"];
+
+ dia2gsup -> OsmoHLR [label="GSUP"];
+}
+----
+
+== EOF
+
+End of File
-- 
cgit v1.2.3

