
Open source 5G core network - polymorph1sm
https://github.com/free5gc/free5gc
======
Jhsto
For those interested, this project seems to be a rewrite of
[https://nextepc.org/](https://nextepc.org/) into Go. Alternative projects
include
[https://github.com/facebookincubator/magma](https://github.com/facebookincubator/magma)
and
[https://github.com/openairinterface](https://github.com/openairinterface).

You can start your own telenetwork with these projects (but of course doing
such would be highly illegal without a spectrum license), but first, you need
a gNB or eNodeB which is lingo for a base station. It is possible to buy an
SDR and use software like
[https://github.com/srsLTE/srsLTE](https://github.com/srsLTE/srsLTE) to make
the SDR receive and broadcast LTE/5G connections. After this, you need to have
blank SIM cards to code. For example, this post instructs how to do so:
[https://cyberloginit.com/2018/05/03/build-a-lte-network-
with...](https://cyberloginit.com/2018/05/03/build-a-lte-network-with-srslte-
and-program-your-own-usim-card.html). You might also consider writing eSIMs
[https://github.com/bagyenda/njiwa](https://github.com/bagyenda/njiwa).

After this, you should be able to use a commercial phone to connect to the
network.

In general, these networks function quite well even on commodity hardware.
Some tests I worked on produced end-to-end latency of around 20ms on LTE, and
throughput of around 7MB/s. This was using NextEPC on a 400 euro computer with
a 50 euro router and a Nokia base station. Further, it was possible to make
the system to work in a Heroku like manner by exposing PaaS endpoints and
running Kubernetes in the access network:
[https://www.semanticscholar.org/paper/Open-source-RANs-in-
Pr...](https://www.semanticscholar.org/paper/Open-source-RANs-in-
Practice%3A-an-Over-The-Air-for-Haavisto-
Arif/38aa0fcd59646de9cf54fdae812349def01fb02a)

I think it's quite likely that sooner or later we will have 5G networks with
intra-services running as edge-services, providing us low-latency. It's worth
noting that with the latest LTE versions 5G and LTE access latency is
virtually the same. The real latency-optimization would be, at least to my
perspective, to allow software to be deployed _into_ these cellular networks
to minimize network hops.

~~~
newhouseb
I'm not an expert, but there are variants of LTE and 5G (LTE-U and 5G NR-U)
that support operating in the unlicensed 5Ghz band.

That said, I'm not sure a commercial handset would connect to anything in that
range. You could probably get an SDR-based UE (UE is telecom-speak for "thing
that connects to a cell network") to work.

~~~
bluishscreen
[https://translate.google.com/translate?sl=auto&tl=en&u=https...](https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fprkele.prk.tky.fi%2Fwiki%2FHamLTE)

Apparently, there are overlaps between common LTE bands and both ham radio
bands and unlicensed (... low-power) ones... the above page states that any
device with the right bands will work (... and they even got them working
presumably?)

~~~
drmpeg
Newer iPhones support band 42 TDD, which is 3400 to 3600 MHz. The amateur
radio 9 cm band in the US is 3300 to 3500 MHz, so you could have a setup
contained in single ham band. However, the open source eNodeB products
typically don't support TDD.

~~~
g_p
This is the CBRS band, and the idea behind CBRS is that people should be able
to gain access to it on an ad-hoc basis by making a request for it, when it
isn't being used for marine radar on the US coast.

I believe OpenAirInterface can handle TDD, although it was firmly "research
grade" code last time I looked at it.

The positive from CBRS is that it should (or at least is intended to) spawn a
new generation of lower cost small cell base stations, using this band, and
speaking the CBRS "protocol" for spectrum access coordination. And that has
potential to help reduce prices of radio equipment.

Handset compatibility is coming on this band quicker because some existing
mobile operators have purchased PALs (priority access licenses) for CBRS
spectrum, and intend to use this for some extra capacity.

P.S. just as a very minor technical correction, CBRS is defined for band 48,
rather than 42, although with some overlap. B48 is 3550 to 3700 MHz, while B42
is 3.4 to 3.6 GHz as you said. Therefore when looking for devices, it's best
to look for B48 (although at a push, if you're doing your own R&D, B42 will be
fine for use in the lower 50 MHz section of the band).

------
ComodoHacker
Can't find where COVID-19 infection code is. Is it not implemented yet?

~~~
14k12j41j211
Let's hope nobody finds out about Presidential Alerts. Basically, it lets you
send Tweets to any mobile user.

~~~
g_p
Fairly straightforward to use these in other core networks. Not sure if this
one implements the signalling for it.

Fun fact though - if a phone is without signal on its home network, it will
attempt to join any valid 3GPP network it sees, and the cell
broadcast/emergency alert will be triggered on the handset (even without a
valid SIM) - no authentication takes place.

~~~
14k12j41j211
I think this vulnerability potentially has the biggest real-world impact. This
has been shown in a couple of proof-of-concepts… Merging this into public
repos would have zero positive impact, I think.

~~~
g_p
I'm inclined to agree with you there. Anyone that wanted to do it could figure
it out anyway from the standards docs and broadcast the right data in the
SIBs, but it is probably better not available as a "click and run" type setup.

Although in saying that, this is unlikely to change any time soon, as the idea
of CB/PWS is to provide an emergency message that can be highly time sensitive
in some scenarios (earthquake, tsunami, etc.) without delays due to
authentication etc. Failing to show the message could be higher risk than
showing a false message in a very localised area (based on what someone with
an SDR can send.)

------
rob-olmos
Somewhat related recent curiosity: Is there anything new about 5G
tower/backhaul infrastructure for edge computing that wasn't already feasible
for 4G?

~~~
g_p
Nothing hugely different to "late stage 4G" (Release 14). The main difference
with 5G (that was available in Rel14 but not widely used by anyone) is control
and user plane separation, which means some network traffic can leave the user
plane at the base station, and go elsewhere, rather than be routed all the way
back to the core network.

That enables edge computing by allowing traffic for the edge computing node to
be routed to the local edge node directly, without it going down the backhaul.

This is very much a software change though in the implementation of the base
station.

~~~
foobiekr
exactly, control-userplane separation is the primary differentiator for "5g."
the whole point is to eliminate backhaul and allow closer CDNs and caches..

~~~
martinald
Is it? So Netflix is going to install a massive rack of storage in every cell
tower, with expensive power and cooling and risk of vandalism and theft? Even
if you cached the enterity of netflix, it's still only 10% of Internet
traffic.

Backhaul is becoming less and less of a problem as more and more sites get
fibre backhaul. Point to point links can easily do 10gig/sec now even if they
don't have fibre (to another tower with fibre). That is almost certainly as
much if not more than the total capacity of most cell towers even with a
stupendous amount of spectrum allocated.

~~~
foobiekr
The userplane doesn't run on the cell tower. The mobile network backhaul is
multiple stages, and the tower is just the first hop.

The problem with backhaul isn't the availability of fiber, it's the
_concentration of bandwidth_.

------
castratikron
So will this let me run a 5G baseband? I've read about Osmocom but I've never
tried it out.

~~~
oddeyed
Not quite, this is the "core network" which handles things like handset
authz/authn, billing, base station attachement etc.

A 5G basestation is called a gNB, and a handset is called a UE. This project
doesn't involve the radio interface of 5G, so neither of those are included.
There's another comment on the post outlining how you might go about standing
up an actual network using this.

------
chvid
Is this really what constitutes a "5G core network"? Does it mean that I can
buy Huawei for the rest of it and set it up in the UK?

~~~
g_p
This is a few components that make up the very baseline of some aspects of a
standalone 5G core.

If you want to add commercial base stations to it, you'll find you're missing
a few non-standardised things missing from all "open source" solutions - you'd
need base station orchestration and control, to handle configuring and
managing the base stations and getting them to behave in the ways you want.

For one or two base stations you might cope without it, if you can figure out
how to configure the radios, and they happen to work. But generally, there's a
load of integration to be done that isn't part of the standards, and that
you'll need in addition to this. You'll also need to handle scaling up and
clustering some of the components that need to scale up with traffic.

------
tpmx
This won't have a chance to win unless e.g. Cisco/Google/Apple/FB somehow
decides to fund a few thousand developers each yearly. And they won't do that
unless there's clear incentive for them.

In a way I really hope they won't. How could anything good come out of that?

From an engineering perspective: the software stack is conceptually (if you
squint enough) a bit like webkit/chromium, but on top of that you also need
cutting edge radio/antenna development.

