slides from cccamp2019 about 'how the camp LTE works'
This commit is contained in:
parent
9c21188a59
commit
f24009998c
|
@ -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
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
Loading…
Reference in New Issue