Improve the support for the Linux kernel GTP-U plane using netlink socket in my Erlang app

Papa Tana <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <CAGoraXQo1AA+3Lj_CEU0c+U-GwoYoyLrcAowUfhc4nnvCntJ2A@mail.gmail.com>
Hello Erlang Community,

I have an Erlang application communicating with another node using GTP
protocol.
At GTP-C part, everything is ok, no change is needed.
But at GTP-U part, I want to improve my support for the kernel GTP-U plane.

 - I have used Vector Packet Processing as a first prototype, it's a very
amazing platform, but a very big solution for my very small need, I needed
to deploy large resources.
 - I have replaced it with some Linux helper, it's working fine but too
slow, the latency is not acceptable for me.
 - I switched to libgtpnl from Osmo Net Gprs project, it's working great as
well, but I cannot exploit all functionality of my GTP-U; the creator of
the library confirms that I need to manage the socket from my erlang
program to go over these limitations.

Then I have two choices now:
 - Option 1: add native functions for calling this libgtpnl written in C
from Erlang
 - Option 2: speak netlink directly from within Erlang

*As I am a big fan of pure Erlang, I kept the Option 2.*

The below links were my starting point:

 - https://github.com/travelping/gen_netlink
 - https://github.com/Feuerlabs/netlink
 - maybe there is another one that I missed out.....

I understood how to open a raw socket using netlink now, and how to send
some requests to the kernel.
I have tested ip route and it's ok but for GTP-U part, I'm lost around.

Indeed, they do have support for gtpnl, so if anyone has used those
libraries for any GTP-U usage, would be really appreciated to share some
hints please.

Best Regards,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.