nestepc intro

Please see presentation of nextepc developer Sukchan Kim at OsmoDevCon 2019

This talk is about a "behind the scenes" look at the nextepc codebase through the eyes of an Osmocom developer.

Goal is to understand the high-level software architecture, and whether there is any chance for sharing code/infrastructure between the two projects

linked lists

⇒ looks very much compatible to libosmocore logging

logging

⇒ looks very much compatible to libosmocore logging

FSM

FSM usage

⇒ migration to osmo_fsm seems feasible

Events

⇒ nice idea. libosmo* signals and FSM input events are entirely synchronous. This ensures that all related data structures exist while the event is being processed. Having queued events would require very careful code design and possibly refcounting for pretty much all objects :/

packet buffers

memory allocator

message queue

⇒ may be candidate for osmo_it_msgq which si currently WIP. Signaling happens via osmo-select compatible eventfd, not condition variable

string utilities

timers

TLV

freeDiameter

MME

SGW

PGW

HSS

GTPv2C code generation

⇒ I love it :)

S1-AP / ASN.1 PER / asn1c

Tests

Conclusions

Conclusions

If I had a dream…

  1. I would
    • osmo-ify nextepc MME (logging, FSMs, VTY)
    • extend OsmoGGSN with GTPv2 support via the nextepc code generation approach
    • implement a simple DIAMENTER→GSUP translator to use OsmoHLR with nextepc
      • use the kernel-side GTP-U user plane to focus on control plane only in GGSN/G-GW
    • keep S-GW as-is for now, but think about kernel user plane there, too.
    • convert test suite TTCN-3

EOF

End of File