summaryrefslogtreecommitdiff
path: root/2016
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-12-27 14:43:53 +0100
committerHarald Welte <laforge@gnumonks.org>2017-12-27 14:43:53 +0100
commit842948b8d2309c600786b8bf6147b460862512ff (patch)
treead4584b171451f2d48590bd396b516ddb4cf422c /2016
parenta0ab9dea57b6a6b17bd6bf0c2edd6d3d732a8f32 (diff)
update, final version before presentation
Diffstat (limited to '2016')
-rw-r--r--2016/netdevconf-osmocom/running-foss-gsm.adoc185
1 files changed, 6 insertions, 179 deletions
diff --git a/2016/netdevconf-osmocom/running-foss-gsm.adoc b/2016/netdevconf-osmocom/running-foss-gsm.adoc
index 53be318..dadfdfd 100644
--- a/2016/netdevconf-osmocom/running-foss-gsm.adoc
+++ b/2016/netdevconf-osmocom/running-foss-gsm.adoc
@@ -12,9 +12,8 @@ Running FOSS Cellular Networks on Linux
[role="incremental"]
* Implementing GSM/GPRS network elements as FOSS
-* Applied Protocol Archeology
+* Applied Protocol Archaeology
* Doing all of that on top of Linux (in userspace)
-* If you expeccted kernel stuff, you'll be disappointed
== Running your own Internet-style network
@@ -216,10 +215,11 @@ image::osmo-bts.svg[]
** `osmo-bts-octphy`: Octasic OCTBTS hardware / OCTSDR-2G PHY
** `osmo-bts-litecell15`: Nutaq Litecell 1.5 hardware/PHY
+See separate talk about BTS hardware options later today.
== Configuring Osmocom software
-* all Osmo* GSM infrastructure programs share common architecture, as
+* all _native_ Osmo* GSM infrastructure programs share common architecture, as
defined by various libraries 'libosmo{core,gsm,vty,abis,netif,...}'
* part of this is configuration handling
** interactive configuration via command line interface (*vty*), similar
@@ -260,6 +260,7 @@ BTS settings are configured in the BSC/NITB configuration file.
source tree / git repository
* just your usual `git clone && autoreconf -fi && ./configure && make install`
** (in reality, the `libosmo*` dependencies are required first...)
+* nightly packages for Debian 8, Ubuntu 16.04 and 16.10 available
* 'OsmoNITB' runs on any Linux system, like your speakers' laptop
** you can actually also run it on the ARM/Linux of the 'sysmoBTS' itself,
having a literal 'Network In The Box' with power as only external
@@ -445,7 +446,7 @@ digraph G {
PCU->SGSN [label="Gb"]
SGSN->GGSN [label="GTP"]
}
-}
+
----
* 'PCU': Packet Control Unit. Runs RLC+MAC
@@ -517,168 +518,6 @@ digraph G {
We need to configure those additional components to provide GPRS
services.
-== Simplified OsmoNITB network with GPRS
-
-image::osmocom-gprs.svg[width=750]
-
-//* show IP addresses at nodes
-//* show GSM functional elements, Osmocom programs and hardware
-
-
-== Configuring OsmoPCU
-
-We assume we have obtained and compiled the `osmo-pcu` from
-git://git.osmocom.org/osmo-pcu
-
-* 'OsmoPCU' runs co-located with 'OsmoBTS' to access/share the same PHY + Radio
-* 'OsmoPCU' is primarily configured from 'OsmoBTS'
-* 'OsmoBTS' receives relevant config via A-bis OML
-* 'OsmoNITB' sends those OML messages to OsmoBTS
-** we thus need to set the PCU configuration in the NITB config file!
-
-
-== BTS config for GPRS (in OsmoNITB)
-
-----
- bts 0
- gprs mode gprs <1>
- gprs nsei 1234 <2>
- gprs nsvc 0 nsvci 1234 <3>
- gprs nsvc 0 local udp port 23000 <4>
- gprs nsvc 0 remote ip 192.168.1.11 <5>
- gprs nsvc 0 remote udp port 23000 <6>
-----
-<1> enable `gprs` or `egprs` mode
-<2> NSEI for the NS protocol layer (unique for each PCU in SGSN)
-<3> NSVCI for the NS protocol layer (unique for each PCU in SGSN)
-<4> UDP port on PCU side of Gb connection
-<5> IP address of SGSN side of Gb connection
-<6> UDP port on SGSN side of Gb connection
-
-
-== Configuring OsmoSGSN (Gb and GTP)
-
-----
-ns
- encapsulation udp local-ip 192.168.100.11 <1>
- encapsulation udp local-port 23000 <2>
-sgsn
- gtp local-ip 127.0.0.2 <3>
- ggsn 0 remote-ip 127.0.0.1 <4>
- ggsn 0 gtp-version 1 <5>
- apn * ggsn 0 <6>
-----
-<1> SGSN-local IP address for Gb connection from PCUs
-<2> SGSN-local UDP port number for Gb connection from PCUs
-<3> SGSN-local IP address for GTP connection to GGSN
-<4> remote IP address for GTP connection to GGSN
-<5> GTP protocol version for this GGSN
-<6> route all APN names to GGSN 0
-
-
-== Configuring OsmoSGSN (subscribers)
-
-'OsmoSGSN' (still) has no access to the 'OsmoNITB' HLR, thus all IMSIs
-permitted to use GPRS services need to be explicitly configured.
-
-----
-sgsn
- auth-policy closed <1>
- imsi-acl add 262778026147135 <2>
-----
-<1> only allow explicitly authorized/white-listed subscribers
-<2> add given IMSI to the white-list of subscribers
-
-
-== Setting up OpenGGSN
-
-In `ggsn.cfg` we need to set:
-
-----
-listen 172.0.0.1 <1>
-net 10.23.24.0/24 <2>
-dynip 10.23.42.0/24 <3>
-pcodns1 8.8.8.8 <4>
-----
-<1> IP address to bind GSN to.
-<2> network/mask of `tun` device
-<3> pool of dynamic IP addresses allocated to PDP contexts
-<4> IP address of DNS server (communicated to MS via signalling)
-
-
-== Testing GPRS
-
-* Check if `osmo-pcu`, `osmo-sgsn`, `openggsn` are running
-* Check if NS and BSSGP protocols are UNBLOCKED at SGSN
-** If not, check your NS/BSSGP configuration
-* Check for GPRS registration using `logging level mm info` in SGSN
-
-
-== Osmocom beyond GSM/GPRS RAN + NITB
-
-* Smalltalk implementation of SIGTRAN + TCAP/MAP
-* Erlang implementation of SIGTRAN + TCAP/MAP
-* Lots of special-purpose protocol mangling
-** `bsc-nat` to introduce NAT-like functionality on A (BSSAP/BSSMAP)
-** `mgw-nat` to transparently re-write MAP/ISUP/SCCP
-* GSMTAP pseudo-header for feeding non-IP protocols into wireshark
-* SIM card protocol tracer hardware + software
-* Lots of non-GSM projects from hardware to protocol stacks (TETRA, GMR, DECT, OP25)
-* check http://git.osmocom.org/ for full project list
-
-
-== So... I heard about OpenBTS?
-
-* OpenBTS is completely unrelated to the Osmocom stack
-* was independently developed by David Burgess & Harvind Simra
-** Kestrel Signal Processing -> Range Networks
-* doesn't follow GSM system architecture at all
-** no Abis, BSC, PCU, SGSN, GGSN
-* is a bridge of the GSM air interface (Um) to SIP
-* Osmocom follows classic GSM interfaces / system architecture
-* 'OsmoTRX' forked 'OpenBTS' SDR code to use 'OsmoBTS' with SDR hardware
-
-
-== Outlook on FOSS 2.75G (EDGE)
-
-* EDGE extends GPRS with higher data rates
-** 8PSK instead of GMSK modulation
-** lots of new MAC/RLC features (larger windows, incremental redundancy)
-** No changes required in 'OmsoSGSN' and 'OsmoGGSN'
-* 'OsmoPCU' is extended with EDGE support
-* First working minimal subset published last week
-
-
-== Outlook on FOSS 3G (UMTS/WCDMA)
-
-* UMTS very similar to GSM/GPRS in principle
-** still, almost every interface and protocol stack has changed
-** all elements have been renamed -> more acronyms to learn
-* UMTS is ridiculously complex, particular PHY + Layer 2
-** however, control plane L3 (MM/CC/CM/SM/GMM) mostly the same
-* Implementing all of that from scratch is a long journey
-* We've already reached 'Peak 3G'
-* Osmocom 3G support strategy
-** Implement Iu interface in NITB and SGSN
-** Implement HNB-GW to offer Iuh interface
-** Use existing femtocell / small cell hardware with proprietary PHY, RLC and MAC
-** Status: Started in October 2015, WIP. Overall completion > 50%.
-
-
-== Outlook on FOSS 4G (LTE)
-
-* LTE has nothing in common with 2G/3G
-* various FOSS activities
-** 'OpenAirInterface' has some code for a software eNodeB
-*** but they switched from GPLv3 to 'non-free' license :(
-** 'srsLTE' (main focus on UE side, but large parts usable for eNodeB side)
-** 'OpenLTE' is another active FOSS project
-* No Osmocom involvement so far
-** team is small, project scope of cellular infrastructure is gigantic
-** most customer funding currently still on GSM/GPRS/EDGE
-** if we'd start, we'd start implementing MME + S-GW and use existing LTE cells
-
-
== The End
* so long, and thanks for all the fish
@@ -688,16 +527,4 @@ pcodns1 8.8.8.8 <4>
* have fun exploring mobile technologies using Osmocom
* interested in working with more acronyms? Come join the project!
-* Check out http://openbsc.osmocom.org/ and openbsc@lists.osmocom.org
-
-== Thanks to
-
-* Pablo for running netdevconf and inviting me
-* the entire Osmocom team for what they have achieved
-** notably Dieter Spaar, Holger Freyther, Andreas Eversberg, Sylvain Munaut
-* last but not least: CEPT for making the GSM specs English
-** (who'd want to read French specs anyway?)
-
-
-
-
+* Check out https://osmocom.org/ and openbsc@lists.osmocom.org
personal git repositories of Harald Welte. Your mileage may vary