<div dir="ltr">Hello Erlang Community,<br><br>I have an Erlang application communicating with another node using GTP protocol.<br>At GTP-C part, everything is ok, no change is needed.<br>But at GTP-U part, I want to improve my support for the kernel GTP-U plane.<br><br> - 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.<br> - I have replaced it with some Linux helper, it's working fine but too slow, the latency is not acceptable for me.<br><div> - 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.</div><div><br></div><div>Then I have two choices now:</div> - Option 1: add native functions for calling this libgtpnl written in C from Erlang<br> - Option 2: speak netlink directly from within Erlang<br><br><b>As I am a big fan of pure Erlang, I kept the Option 2.</b><br><br>The below links were my starting point:<br><br> - <a href="https://github.com/travelping/gen_netlink">https://github.com/travelping/gen_netlink</a><br> - <a href="https://github.com/Feuerlabs/netlink">https://github.com/Feuerlabs/netlink</a><br> - maybe there is another one that I missed out.....<br><br>I understood how to open a raw socket using netlink now, and how to send some requests to the kernel.<br>I have tested ip route and it's ok but for GTP-U part, I'm lost around.<br><br>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.<br><br>Best Regards,</div>