From f24009998c02732aab2471d38656597bf28b7126 Mon Sep 17 00:00:00 2001 From: Harald Welte 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 + .../how_the_camp_lte_works.html | 4099 ++++++++++++++++++++ .../how_the_camp_lte_works__1.png | Bin 0 -> 30797 bytes .../how_the_camp_lte_works__2.png | Bin 0 -> 124451 bytes 4 files changed, 4230 insertions(+) create mode 100644 2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.adoc create mode 100644 2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.html create mode 100644 2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works__1.png create mode 100644 2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works__2.png 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 +: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 diff --git a/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.html b/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.html new file mode 100644 index 0000000..9a7c834 --- /dev/null +++ b/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works.html @@ -0,0 +1,4099 @@ + + + + +How the CCC Camp 2019 LTE network works + + + + + + + + +
+

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 + +
  • +
+
+
+how_the_camp_lte_works__1.png +
+
+
+
+
+

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

+
+
+
+how_the_camp_lte_works__2.png +
+
+
+
+
+

EOF

+
+

End of File

+
+
+ + diff --git a/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works__1.png b/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works__1.png new file mode 100644 index 0000000..be633ac Binary files /dev/null and b/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works__1.png differ diff --git a/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works__2.png b/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works__2.png new file mode 100644 index 0000000..890afdf Binary files /dev/null and b/2019/cccamp2019-how_camp_lte_works/how_the_camp_lte_works__2.png differ -- cgit v1.2.3