[HN Gopher] Open source 5G core network base on 3GPP R15 ___________________________________________________________________ Open source 5G core network base on 3GPP R15 Author : rguiscard Score : 136 points Date : 2022-02-26 12:39 UTC (10 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | exikyut wrote: | Looking at this code, and more broadly speaking the cellular | telephony ecosystem as a whole, the best way to articulate what I | feel is to point at GNS3, the network simulator. | | GNS3 is honestly insane. It lets me run virtualized instances of | the software stacks hiding inside 6..8-figure (!!) network | equipment and then route packets between stuff in exactly the | same way I would get if I had the physical equipment. | | But I personally find absolutely no substitute (as I get | started/oriented) to being able to plonk a switch on a workbench | and reason about it in a tactile manner. | | I think the same argument might be made about flight simulation: | to a point, a flight simulator has nothing on just getting in a | plane and flying around. | | In both cases, a) it's entirely reasonable to do without "the | real thing" and still figure things out, and b) simulation is an | such an exceedingly useful drilling and training aid that the | industry as a whole would be missing something measurable without | it. | | But it still remains that establishing a correctly calibrated | fundamental sense of how everything works and how stuff gets done | can be harder when using a simulator. Things might not | intuitively click right away. Mental models might be a bit (or a | lot) more fragmented. Complex concepts might require more | juggling and mental effort to integrate and understand. | | So you can kind of see my frustration: I'm extremely interested | in wireless communications in general (just broadly speaking) so | being able to stare at all this code is awesome... with the | caveat emptor that _I can 't legally do anything with it in the | real world_. The revolution of software-defined radio might mean | the physical baseband aspect of 3G/4G/5G is more accessible than | ever - a couple thousand now (if that, I think) instead of 5+ | figures - but the relevant spectra are still licensed and locked | down tight pretty much worldwide, and that's not likely to change | anytime in the long term. | | Unlike the "I'll probably never see one of these in person" kit | that I'm content to look at pictures of and tinker with in GNS3 | :) wireless networking/communications does (at least to me) | largely lend itself to being a very tactile subject that you just | _want_ to play with in the real world. | | LoRaWAN is very low bitrate and (to a cursory/long distance | understanding) has a bit of friction around patents/licensing | (although if I can buy premade modules that Just Work(tm) I'm | happy) | | Long-range Wi-Fi is... not really an explicitly supported | configuration because it gets right up at the edge of legal | transmit power limits. | | Wi-MAX... I honestly don't get. I can't tell where it sits on the | relevance spectrum. I remember reading about it years ago but | it's like it disappeared at some point. | | Ham radio cannot be encrypted and thus represents a step down in | terms of present status quo expectations on the public Internet. | | I'm incidentally curious how DJI's drones can get 10km line of | sight. I wonder what transmit power and band(s) they're using to | manage that (ISM 2.4GHz/5.8GHz?). Presumably the video | transmission architecture is an eye-glaze-inducing highly | specialized proprietary mess that's reasonably micro-optimized to | the hilt (?). | | With the above in mind, is there anything up-and-coming, obscure | or whatnot that I (very probably) don't know about in the space? | | And flipping the entire problem domain around, how _can_ I get | interested in the open source work being done in the cellular | space? What interesting things can I do without any sort of base | station equipment? And to what extent _can_ I play around with | cellular-band RF if I were to go shopping? | delabay wrote: | If you're in the US you can play with professional grade | wireless telecom hardware using CBRS spectrum. I have a magma | core and radio on my house to play around with. Some teams are | doing very interesting work in combining crypto incentives to | build private and public networks which modern phones can roam | onto with esims. | withinboredom wrote: | IIRC from my drone days, the antennas were spiral (not linear) | for FPOV flight on the 2.4Ghz or 5Ghz spectrum. This a) | basically prevented interference from WiFi and b) gave good | clean LOS signals for miles. There was still interference, but | it wasn't bad. In Afghanistan (where there were basically no | competing WiFi signals) I could get consumer WiFi to go about | 2km LOS on the 2.4Ghz bands. | chrispeel wrote: | It sounds to me like you want an inexpensive basestation and a | fully-open source software stack (at all layers) to run on it. | And you want to set it up to run in a open band like 3.5 GHz. I | like this vision! | | BTW, WiMax is obsolete :-) | The_rationalist wrote: | What is this for? | zdw wrote: | In a mobile network, there are a lot of parts. This is a "core" | implementation handles the "control plane" - authentication of | client devices, user accounting, etc. | | There's also a "RAN" which manages the radio portions, and a | "user plane" that manages the data flows and protocol | conversion between devices and other upstream networks. | | These all talk to each other and work together to make a 3GPP | wireless network. | yaantc wrote: | Both core and RAN have user and control planes: the control | plane is for configuration and management, and the user plane | for carrying user data. This user data must go through the | radio access network (RAN) and the core too. | | The split between core and RAN allows a single core network | to manage several different access technologies. The main RAN | technologies will be the 3GPP ones (LTE, NR). But it is | possible to hook WiFi networks to a cellular core (there are | public 3GPP specs for this), or even fixed access. The core | part provides the IP access services whatever the RAN type. | unixhero wrote: | I worked for a telco advisory for 3 years. You just described | in more detail than anyone of us or the telcos themselves | could enunciate. Thanks! :) | vardhanw wrote: | Technically the core consists of both UP (User plane) and CP | (Control plane). In 4G this was MME (Mobility management | entity) for CP and the S-GW and P-GW (Serving and packet | gateway - which interfaces to the internet) for UP. In 5G | this has been replaced with VNFs such as AMF and others for | the CP and UPF (User plane function) for UP. The 5G core is | truly distributed and designed from the base to have re- | usable and third party VNFs with well defined (REST based) | APIs so it is really a game changer. | | The RAN (Radio access network) and core split is there since | 2G, where the RAN in LTE is the ENB (E node B) and in 5G is | the GNB (G node B). | onebot wrote: | How does this compare to Magma? | zdw wrote: | Magma is a "throw out a large portion of how 3GPP does things" | approach. | | As a primer, the 3GPP (which is primarily equipment vendors and | large telcos - think ITU and standards like ATM) defines a | bunch of different "splits" of functionality either in code or | implementation, some of which are required, some optional, as | in any "made by committee" standard where everyones pet use | case is in some corner of the standard. An example document | about this from a vendor about splits: | | https://hub.radisys.com/5g-and-iot/exploring-functional-spli... | | Magma (which is Facebook and more computer networking folks) | basically says "Hey, what if we don't do that, and just make | our own stack that works, but ignores all the 3gpp standards". | The upside is that it does exactly what Facebook wants - | wireless using 3GPP technologies without all the baggage. The | downside is that some of that baggage is very useful for | interoperability, and the splits exist for a reason. | makapuf wrote: | The majority of it is written in Go. Not a good or a bad thing | per se, just some info I looked up. | secondcoming wrote: | Seems an add choice of language. Wouldn't GC drop calls? | DaniloDias wrote: | TobTobXX wrote: | Go is known to be quite usable a server programming language | (Caddy is a well-known HTTP server written in Go), so I think | the language choice is quite fit. You wouldn't say a HTTP | server drops requests because it has GC / uses Go, so why | would it drop calls? | wyldfire wrote: | Yes, both unbound heap allocation times and GC pauses could | stall and cause critical timing failures. But you could | theoretically use these features in a system designed for low | latencies. | DarylZero wrote: | Go's GC supposedly never runs longer than 1ms, so no. | iSloth wrote: | Why would GC drop calls? I know a few high volume networks | using .Net based platforms without any issues, Go would run | circles around them performance wise. | withinboredom wrote: | .NET GC is pretty configurable though. I don't know about | the Go one. | Cthulhu_ wrote: | Why would it? It feels like you're making assumptions about a | lot of things. | natch wrote: | Was curious and pulled it down. | | Why does git clone on this repo produce a local copy that is | lacking content in any of the subdirectories of the NFs/ | directory? Looks like a symbolic link issue? | | More importantly, how does one fix the issue? | | Or maybe what I am seeing is references to git submodules? | | Edit: got it, yes, submodules. Instead of git clone <url>, the | trick is to use: git clone --recursive <url> | octocop wrote: | You can also do git submodule update --remote --init | --recursive if you've already cloned it. | CamperBob2 wrote: | I always just download a .zip. Never understood using the | whole "git clone" thing when I just want to look at the repo | without participating in development. | zdw wrote: | The original 5GC codebase hasn't seen much activity recently - | there are more active forks which are moving to newer 3GPP | release levels - for example, the ONF's SD-Core project: | https://docs.sd-core.opennetworking.org with code here: | https://github.com/omec-project | | Full disclosure: I work for ONF, opinions are my own (especially | on HN). | ysnp wrote: | Is there a way or a good place to see an overview of the open- | source projects in this area if we want to support them? | alexk307 wrote: | How is this possible? I was told that these wireless networks are | all closed and proprietary. Is this done by reverse engineering | the protocols? | stagger87 wrote: | The 3gpp specs that define these components are freely | available. | ksec wrote: | > wireless networks are all closed and proprietary. | | From a software and modern open source sense, yes. From the | literal sense, No. The standard ( Core ) is open, and freely | available. Their implementation are not, and subject to royalty | fees. | pid-1 wrote: | This is "just" the core network. The 5G core is IP based, like | in 4G. | | From what I remember, every 4G core funcion already could run | virtualized in regular server farms. So you're limited by | having access to software that implement 3gpp specs. | | Most ISPs run their packet cores on proprietary systems | (Huawei, Ericsson, ZTE). But I believe that has more to do with | their scale than with the complexity of the 3gpp specs. | | I think the real trouble is running radio frequency stuff. | knorker wrote: | 3G too runs on IP, for everything but voice at least. | Technically you probably can run some parts on non-IP, but it | makes everything vastly more expensive so I've personally not | seen it. | | > Most ISPs run their packet cores on proprietary systems | (Huawei, Ericsson, ZTE). But I believe that has more to do | with their scale than with the complexity of the 3gpp specs. | | The core network often runs on bullshit "router looking" | machines, where it would actually be much better if it'd just | be a normal rackmounted server. | | I believe the vendors just want to impress. The deliver this | fancy looking blade chassi, with "packet forwarding line | cards". But turns out those line cards are just Linux boxes | with normal Intel CPUs. | | The line cards often don't even talk across any backplane | (for user data). They have their own NICs. | | Or worse, their implementation is line cards to an existing | Cisco or Juniper router. Ugh. I mean sure if they were fast, | but they're not. | | You can charge so much more if it looks like a magic box, and | not just a rackmounted Linux box in disguise. | | And often the implementations are completely bananas, when | looking at it from a network engineer's point of view. Like | "ok, you speak OSPF over the backplane between line cards. | Can they forward data over those links too? No? Then that's | not how OSPF works. Stop that." | | The reason ISPs buy them is that they interoperate, and can | be integrated into their network. That's 100% a software | problem. And they need a vendor who will come and fix | whatever it is that they want. And the ISP will pay through | the nose for it. | | I've set up OpenGGSN on a real network in an hour, and said I | can replace this multi year project with it running on a | couple of rack mounted Linux boxes. | | Yeah, but will I support it, and guarantee that I implement a | metric tonne of 3GPP specs? Will I prove why I do, when a | roaming partner complains? No. Well, that's where the | millions are going, isn't it? | | > I think the real trouble is running radio frequency stuff. | | Core network is a huge business too, though. | Reventlov wrote: | Please note even the radio protocols have to be standardized | and defined for multiple hardware vendors to make the chips and | antennas and [...]. | | If you want to look at something related, you can look at | srsran / open air interface which are both developing software- | defined solutions for 5G (including the radio/rf parts !) : | | - https://www.srslte.com/ | | - https://openairinterface.org/ | tgflynn wrote: | My guess is that only a small fraction of HN users are going to | be able to figure out what this is for without spending a | significant amount of time doing a deep dive into 5G (I don't | belong to that fraction, btw). | Cthulhu_ wrote: | I've been working in this space for over two years and it's | still Klatchian to me, lol. Our application is built in C, I | just make the configuration interface for it... using Go. | qualudeheart wrote: | Nice. ___________________________________________________________________ (page generated 2022-02-26 23:00 UTC)