osmodevcon: welcome, SD-E1, retrospective
This commit is contained in:
parent
0e89fdc9fd
commit
8fe4bb6805
|
@ -0,0 +1,180 @@
|
|||
Year 2017 Osmocom retrospective
|
||||
===============================
|
||||
:author: Harald Welte <laforge@gnumonks.org>
|
||||
:copyright: 2018 by Harald Welte (License: CC-BY-SA)
|
||||
:backend: slidy
|
||||
:max-width: 45em
|
||||
|
||||
== 2017 - a year of change
|
||||
|
||||
Osmocom CNI (Cellular Network Infrastructure) has changed a lot:
|
||||
|
||||
* software changes
|
||||
* team / developer changes
|
||||
* sysmocom company focus changes
|
||||
|
||||
== 2017 - CNI Software changes
|
||||
|
||||
* OsmoBSC migration from SCCPlite to 3GPP AoIP
|
||||
* OsmoMGW as integral part of both BSC and MSC
|
||||
* NITB split into separate MSC, HLR, BSC
|
||||
* 3G (IuCS, IuPS) goes mainline
|
||||
|
||||
== 2016/2017/2018 - Team changes
|
||||
|
||||
* Q1 2016: Jacob Erlbeck leaves sysmocom
|
||||
** unfortunately a complete loss to Osmocom, particularly OsmoPCU
|
||||
* 2017: Holger Freyther leaves sysmocom
|
||||
** unfortunately also shift of focus away from Osmocom :(
|
||||
** immense loss to the project in terms of skill and capacity
|
||||
* Q1 2018: Max Suraev leaves sysmocom
|
||||
** another loss of lots of Osmocom knowledge
|
||||
|
||||
== sysmocom changes
|
||||
|
||||
* we used to have to do lots of non-Osmocom work to cross-subsidize Osmocom
|
||||
** big distraction of resources in 2014/2015, now gone
|
||||
* we used to cross-subsidize Osmocom development by hardware sales
|
||||
** not happening as much anymore
|
||||
* we now work almost 100% on Osmocom
|
||||
** R&D projects, support contracts and grants
|
||||
|
||||
== split NITB aftermath (the good parts)
|
||||
|
||||
* biggest architectural change since we started in 2008
|
||||
* lots of good reasons and design improvements
|
||||
** finite state machines with proper timeouts / clean-up
|
||||
** proper 3GPP AoIP with interoperability tesing
|
||||
** no synchronous HLR database access
|
||||
** HLR access from OsmoMSC and OsmoSGSN
|
||||
** 2G/3G authentication over GERAN and UTRAN
|
||||
|
||||
== split NITB aftermath (the bad parts)
|
||||
|
||||
[role="incremental"]
|
||||
* never-ending list of breakage
|
||||
** actual regressions of things that used to work before
|
||||
** things that were _known omissions_ during the restructuring
|
||||
* some commercial users stuck with SCCPlite and thus old @osmo-bsc-sccplite@
|
||||
** almost none of the new features or bug fixes there
|
||||
** no automatic testing
|
||||
** back-ports time-consuming
|
||||
|
||||
== split NITB aftermath (lessons learned)
|
||||
|
||||
* overall complexity of Osomcoom cellular is quite stunning now
|
||||
* absence of proper functional testing has caused massive fall-out
|
||||
* the split architecture allows for betteer testing of smaller parts of the system
|
||||
* my personal main focus of the last 5+ months:
|
||||
[role="incremental"]
|
||||
** testing, testing, testing, testing
|
||||
** testing, testing, testing, testing
|
||||
** some more testing
|
||||
** even more testing
|
||||
|
||||
|
||||
== Osmocom CNI testing (1/2)
|
||||
|
||||
[role="incremental"]
|
||||
* unit test (autotest, like we always had)
|
||||
** test individual functions / APIs of libraries / programs
|
||||
** executed during "make check" and hence before any patch can get merged
|
||||
* automatized functional tests in TTCN-3
|
||||
** test _external_ visible behavior on interfaces such as Abis, A, GSUP, GTP, MNCC, PCUIF, CTRL, VTY, ...
|
||||
** executed nightly by Jenkins (could be more frequently)
|
||||
|
||||
== Osmocom CNI testing (2/2)
|
||||
|
||||
[role="incremental"]
|
||||
* osmo-gsm-tester
|
||||
** tests entire Osmoocom network with BTS/BSC/MSC/HLR/PCU/SGSN/GGSN/...
|
||||
** uses real BTS + MS hardware (over coaxial cable)
|
||||
** automatic execution multiple times per day
|
||||
* interop tests
|
||||
** against NG40 RAN + CN simulator from NG4% (A / Gb / Iu level)
|
||||
** not fully automatized yet
|
||||
|
||||
|
||||
== Osmocom project health (CNI)
|
||||
|
||||
[role="incremental"]
|
||||
* lots of funded developments, *but*
|
||||
** primarily _enterprise features_ required by professional users
|
||||
* dominance of sysmocom is problematic
|
||||
** sustainable FOSS has no single point of failure!
|
||||
* we need more contributions from third parties
|
||||
** particularly those that benefit commercially from Osmocom
|
||||
|
||||
== Osmocom project health (other projects)
|
||||
|
||||
[role="incremental"]
|
||||
* OsmocomTETRA dead since 2012, occasional small fixes
|
||||
* No OsmocomBB ports to other PHY/chip yet
|
||||
* OsmocomDECT completely dead
|
||||
* Erlang core network projects dead
|
||||
* Smalltalk projects dead (AFAICT)
|
||||
* SIMtrace dead for years, about to be resurrected
|
||||
|
||||
== Osmocom project health (other projects)
|
||||
|
||||
[role="incremental"]
|
||||
* gr-osmosdr very low commit ratio
|
||||
* rtl-sdr no commits in 2015-2017
|
||||
* but it's not that bad... (see next slide)
|
||||
|
||||
== Osmocom project health (other projects)
|
||||
|
||||
[role="incremental"]
|
||||
* gr-gsm, fake_trx and trxcon a welcome change in OsmocomBB
|
||||
* osmocom-analog (jolly to the rescue)
|
||||
* osmo-fl2k (soon! now! this year!)
|
||||
|
||||
== Osmocom status (CNI)
|
||||
|
||||
[role="incremental"]
|
||||
* CS RAN (BTS, BSC) is quite strong/complete these days
|
||||
** ready to be used with 3rd party CN
|
||||
* PS RAN (PCU) suffers from lack of attention
|
||||
** lack of automatic testsuite with decent coverage
|
||||
** lack of uplink multi-slot any many EGPRS features
|
||||
* CS CN (MSC, HLR)
|
||||
** in halthy state, but lack of TCAP/MAP interface limits us to non-roaming networks
|
||||
* PS CN (SGSN, GGSN)
|
||||
** in good health, now with IPv6 supoprt and kernel GTP acceleration
|
||||
|
||||
== Osmocom outlook (CNI)
|
||||
|
||||
* 2G still in demand by lots of use cases (rural, maritime, ...)
|
||||
** if we had TCAP/MAP interface, many more deployments possible
|
||||
* 3G has some users but lack of FOSS RNC limits us to femtocells
|
||||
* 4G is deployed in parallel to 2G in many scenarios
|
||||
** Osmocom 2G stack needs 2G-4G integration (SGs, DIAMETER)
|
||||
** Osmocom needs to contribute to FOSS 4G projects (nextepc, srsLTE)
|
||||
* irony: Now that it's possible to do properly funded Osmocom development, we have less people involved than in the early days :(
|
||||
|
||||
If we don't manage to focus on 4G soon, interest in 2G will diminish soon
|
||||
|
||||
== Osmocom outlook (other projects)
|
||||
|
||||
[role="incremental"]
|
||||
* activity of original/traditional Osmocom developers decreased
|
||||
* without attracting more developers, a lot of projects will remain dormant and/or never realize their potential
|
||||
* I'd love to work on TETRA, DMR or other mobile communications technology
|
||||
** but lack of developers and contributors even for 2G makes me stuck in 2G CNI land :(
|
||||
|
||||
== Personal Request
|
||||
|
||||
[role="incremental"]
|
||||
* Osmocom needs you!
|
||||
* we've lost too many friends already
|
||||
* please don't leave Osmocom; please don't leave me
|
||||
|
||||
== Further Reading
|
||||
|
||||
See my detailed 2017 review:
|
||||
|
||||
* http://osmocom.org/news/84
|
||||
|
||||
== EOF
|
||||
|
||||
End of File
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,163 @@
|
|||
Software Defined E1
|
||||
===================
|
||||
:author: Harald Welte <laforge@gnumonks.org>
|
||||
:copyright: 2018 by Harald Welte (License: CC-BY-SA)
|
||||
:backend: slidy
|
||||
:max-width: 45em
|
||||
|
||||
== E1 / T1 / TDM
|
||||
|
||||
* good old ISDN technology
|
||||
* 2 Mbits/s (E1) or 1.54 Mbits/s (T1) synchronous, full-duplex
|
||||
* not used much anymore in telephony (everything moves to SIP/IP)
|
||||
* still used quite a bit in 2G/3G cellular networks, even in 2018!
|
||||
|
||||
== E1/T1/TDM in 2G/3G networks
|
||||
|
||||
traditionally all interfaces over E1/T1
|
||||
|
||||
* Abis (RSL/OML over LAPDm) from BTS to BSC
|
||||
* A (BSSAP/SCCP/MTP) from BSC to MSC
|
||||
* ISUP/MTP for calls between MSCs and from/to PSTN
|
||||
* MAP/TCAP/SCCP/MTP between MSC/VLR, SGSN, HLR, GW-MSC, IW-MSC, ...
|
||||
* Gb (BSSGP/NS/FR) betewen PCU and SGSN
|
||||
* Iub (Inverse ATM multiplex) over 4xE1 to RNC
|
||||
|
||||
== E1/T1/TDM in 2G/3G networks today: Abis
|
||||
|
||||
* TDM based Abis on decline
|
||||
** back-haul networks increasingly switch TDM to IP as 4G is co-located with 2G
|
||||
** but: Lots of BTSs still have physical E1
|
||||
** Equipment like Ericsson SIU used to convert E1 to IP (proprietary protocols)
|
||||
** TDM link remains between BTS and SIU-style converter
|
||||
|
||||
== E1/T1/TDM in 2G/3G networks today: A
|
||||
|
||||
* TDM based A on the decline
|
||||
** 3GPP has an official interoperable protocol: AoIP
|
||||
** adopted by many more modern MSCs
|
||||
** OsmoBSC supports 3GPP AoIP (yay!)
|
||||
|
||||
== E1/T1/TDM in 2G/3G networks today: Core
|
||||
|
||||
* TDM based core network connections still prevalent
|
||||
** lots of legacy switches (MSCs) and STPs around
|
||||
** signaling interconnect among MNOs and MVNOs often still TDM
|
||||
** full MAP+CAP over TCAP/SCCP/MTP stack required
|
||||
|
||||
== E1/T1/TDM interfacing from Linux / Osmocom
|
||||
|
||||
* we've had E1/T1 based Abis for ages
|
||||
* **libosmo-abis** supports mISDN + DAHDI drivers
|
||||
** PCI + PCIe cards readily available
|
||||
** still extremely expensive (OK in CN, not next to each BTS)
|
||||
** PCI cards of course require a rather large (ATX, ITX, ...) computer
|
||||
|
||||
[graphviz]
|
||||
----
|
||||
digraph G {
|
||||
rankdir = LR;
|
||||
XFMR [label="Magnetics"];
|
||||
BTS -> XFMR [label="E1"];
|
||||
subgraph cluster_A {
|
||||
label = "Classic E1/T1 Adapter (PCI/PCIe)";
|
||||
XFMR -> LIU [label="E1 (HDB3)"];
|
||||
LIU -> TDMCTRL;
|
||||
TDMCTRL -> Bridge [label="Parallel Bus"];
|
||||
}
|
||||
Bridge -> CPU [label="PCI / PCIe"];
|
||||
}
|
||||
----
|
||||
|
||||
* TDMCTRL implements equalizer, elastic buffer, CRC, framing, HDLC, ...
|
||||
|
||||
|
||||
== Osmocom E1/T1/TDM interfacing use-case
|
||||
|
||||
* many E1/T1 based BTSs decommissioned around the world
|
||||
* refurbished traders have quantities in stock for *very* low price
|
||||
* using those BTSs with OsmoBSC + friends is an inexpensive way of
|
||||
** deploying carrier-grade tier-1 BTS equipment
|
||||
** with excellent environmental, RF sensitiviy, RF power and high MTBF
|
||||
** for very low cost
|
||||
* but: The E1/T1 card + associated PC are more expensive than your BTS :(
|
||||
|
||||
== E1/T1/TDM interfacing wishlist
|
||||
|
||||
* in 2018, you just want a very small E1/USB or E1/Ethernet adapter
|
||||
* can be used with laptop when on the road, debugging something
|
||||
* can be used with Raspberry Pi, Beaglebone or whatever other mall, inexpensive embedded Linux board
|
||||
* you want to pay a realistic price, not some fantasy price (Digium & co)
|
||||
|
||||
== Building an E1/T1 adapter
|
||||
|
||||
Ok, so let's build an E1 adapter using existing chips...
|
||||
|
||||
* existing E1/T1 controllers
|
||||
** many (including Infineon) already EOL due to the demise of ISDN
|
||||
** have arcane bus interfaces (parallel Intel/Motorola bus like 1980)
|
||||
** are ridiculously expensive
|
||||
** come in very large acane packages
|
||||
|
||||
== The SD-TDM Plan [tm]
|
||||
|
||||
The road to software-defined E1:
|
||||
|
||||
* Simply use a LIU (Line Interface Unit) + Magnetics
|
||||
** this converts the HDB3 ternary signal to a serial bit-stream
|
||||
* serialize/deserialize that stream from a microcontroller
|
||||
* do everything else in software, including framing, CRC4, ...
|
||||
|
||||
[graphviz]
|
||||
----
|
||||
digraph G {
|
||||
rankdir = LR;
|
||||
XFMR [label="Magnetics"];
|
||||
BTS -> XFMR [label="E1"];
|
||||
subgraph cluster_A {
|
||||
label = "Software Defined E1 Adapter";
|
||||
XFMR -> LIU [label="E1 (HDB3)"];
|
||||
LIU -> uC [label="E1 (Serial Bits)"];
|
||||
}
|
||||
uC -> Linux [label="Buffers of bits over\nUSB or Ethernet"];
|
||||
}
|
||||
----
|
||||
|
||||
== Hardware Option A: TI PRU
|
||||
|
||||
* TI processors like the AM335x on the Beagleboard have PRU cores
|
||||
** PRU: _Programmable Realtime Unit_
|
||||
* PRU allows high-speed "real time" bit banging
|
||||
* PRU can serialize/deserialize and provide buffers to ARM core with Linux
|
||||
* E1 adapter could be a beaglebone cape
|
||||
* Beaglebone could actually run entire OsmoBSC + OsmoMGW, too, using 3gPP AoIP over back-haul
|
||||
|
||||
== Hardware Option B: XMOS
|
||||
|
||||
* XMOS has a very unusual microcontroller architecture
|
||||
* RISC CPU core @ 500 MHz with programmable serdes
|
||||
** except USB + Ethenet, no other hard peripherals
|
||||
** all peripherals (including I2C, SPI, ..) implemented in software!
|
||||
** could be a simple / small E1/T1 to USB or to Ethernet converter
|
||||
|
||||
== Hardware Option C: Programmable Logic
|
||||
|
||||
* Using FPGA or CPLD one can of course synthesize a E1 core
|
||||
* but that's not really _software defined_ anymore
|
||||
* toolchain trouble (except yosys/arachne/ice40)
|
||||
* just seems like overkill for a slow 2 Mbits/s signal
|
||||
|
||||
== Further Reading
|
||||
|
||||
* http://osmocom.org/projects/e1-t1-adapter
|
||||
** http://osmocom.org/issues/2484
|
||||
* XMOS
|
||||
** https://www.xmos.com/download/private/Introduction-to-XS1-ports%281.0%29.pdf
|
||||
** https://www.xmos.com/download/private/XMOS-Programming-Guide-%28documentation%29%28E%29.pdf
|
||||
* TI PRU
|
||||
** http://processors.wiki.ti.com/index.php/Programmable_Realtime_Unit_Subsystem
|
||||
** http://processors.wiki.ti.com/images/1/18/PRUSS_Training_Slides.pdf
|
||||
|
||||
== EOF
|
||||
|
||||
End of File
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
|
@ -0,0 +1,85 @@
|
|||
Welcome to OsmoDevCon 2018
|
||||
==========================
|
||||
:author: Harald Welte <laforge@gnumonks.org>
|
||||
:copyright: 2018 by Harald Welte (License: CC-BY-SA)
|
||||
:backend: slidy
|
||||
:max-width: 45em
|
||||
|
||||
== Welcome
|
||||
|
||||
* 2018 marks the 7th incarnation of OsmoDevCon
|
||||
* Great to see all of you (again)
|
||||
* Great to see some new faces, too!
|
||||
|
||||
== OsmoDevCon
|
||||
|
||||
[role="incremental"]
|
||||
* by developers for developers
|
||||
* as technical as it gets
|
||||
* at least as much about the people involved than the topics
|
||||
* feel free to present things beyond classic Osmocom
|
||||
* any reasonably advanced technical topic is welcome
|
||||
* ... as far as time permits
|
||||
|
||||
== Venue
|
||||
|
||||
* Three rooms that we can use
|
||||
** main room
|
||||
** the _rear room_ (this year with table)
|
||||
** the _PC room_ in the back
|
||||
* two washrooms/toilets
|
||||
** use load-balancing algorithm
|
||||
* basement kitchen
|
||||
** we'll put up foot catering there
|
||||
|
||||
== Beverages / Coffee / Tea
|
||||
|
||||
Help yourself with:
|
||||
|
||||
* our own [filter] coffee + milk to use with the existing machine
|
||||
* tea making facilities
|
||||
* variety of beverages in the fridce
|
||||
** please keep a tally of how many bottles you consume
|
||||
** make sure to settle the total amount before you leave!
|
||||
* snacks (sweets) available on top of fridge
|
||||
** same rules as for beverages
|
||||
* cookies spread out on the meeting table(s)
|
||||
|
||||
== Internet Access
|
||||
|
||||
* WiFi login / password marked on inner side of door
|
||||
* Ethernet switches available around venue, just plug in + DHCP
|
||||
** don't cause Ethernet loops (no STP!)
|
||||
|
||||
== Important Rules
|
||||
|
||||
* *DO NOT USE THE TAP (water) OR DISHWASHER IN THE BASEMENT*
|
||||
** you will cause a flooding if you do it anyway
|
||||
** instead, use dishwasher in the bathroom at the far back of the venue
|
||||
* be excellent to each other
|
||||
|
||||
== Changes from 2017
|
||||
|
||||
criticism from last year:
|
||||
|
||||
* need more time for hacking / chat
|
||||
* one day less was not such a good idea (so back to 4 days)
|
||||
* let's try to make use of the _rear room_ for hacking
|
||||
* we have pretalx and a real schedule!
|
||||
* we have video recordings
|
||||
|
||||
== Sponsoring / Thanks
|
||||
|
||||
* Lunch sponsored by sysmocom
|
||||
* Dinner sponsored by sysmocom
|
||||
* venue + internet provided by IN-Berlin e.V.
|
||||
* video recording by c3voc
|
||||
* presentations by our amazing Osmocom community
|
||||
* guest presentations by
|
||||
** Sukchan Lee (nextepc)
|
||||
** B. Jovanovic and D. Webster (LimeSDR adaptive digital predistortion)
|
||||
* 10x LimeSDR mini donated by Lime Microsystems
|
||||
|
||||
== EOF
|
||||
|
||||
End of File
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue