<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Mo., 6. Juli 2020 um 08:48 Uhr schrieb Papa Tana <<a href="mailto:papa.tana101@gmail.com">papa.tana101@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Yes! I already saw it, it's a really interested one.<br>
<br>
Someone else seems to manage to do it very well, and I'm still on the<br>
ongoing process of exploring this huge source code as well:<br>
<a href="https://github.com/travelping/ergw" rel="noreferrer" target="_blank">https://github.com/travelping/ergw</a></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
But actually, I don't need to create or manipulate, I need to<br>
decapsulate the user-data inside GTP-u (this I can do) and forward<br>
these data packets to external Router, "without changing any<br>
information".<br>
<br>
I am kind of the "default router" for some client equipment who is<br>
sending me packets in GTP-u format, I receive and decapsulate them,<br>
forward and don't have to look what are inside.<br>
<br>
I should have changed the title as "Erlang used as a  Router", but I<br>
wanted to illustrate my real scenario.<br></blockquote><div><br></div><div>That is not an Erlang specific question. Using a user space process as tunnel encap/decap or router would be more appropriate.</div><div><br></div><div>On Linux what you are looking for is called a TUN device (other OSes have different mechanisms). A TUN device is controlled through a socket.</div><div><br></div><div>A quick search on github finds [1] which might or might not do what you want.</div><div><br></div><div>Another option would be to use the Linux kernel GTP module. That module is controlled through netlink messages. A sample of how this can work can be found here [2].</div><div><br></div><div>For your specific use case, the 5G/CUPS way would be to use a UPF instance and talk PFCP to it.</div><div><br></div><div>Regards</div><div>Andreas</div><div><br></div><div>[1]: <a href="https://github.com/msantos/tunctl">https://github.com/msantos/tunctl</a></div><div>[2]: <a href="https://github.com/travelping/gtp_u_kmod">https://github.com/travelping/gtp_u_kmod</a></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
2020-07-06 4:13 UTC+03:00, Matthew Evans <<a href="mailto:mattevans123@hotmail.com" target="_blank">mattevans123@hotmail.com</a>>:<br>
> Have you looked at the procket library? Lots of low-level socket<br>
> manipulation tools..<br>
><br>
> <a href="https://github.com/msantos/procket" rel="noreferrer" target="_blank">https://github.com/msantos/procket</a><br>
><br>
> Sent from my iPhone<br>
><br>
> On Jul 5, 2020, at 8:56 PM, Papa Tana <<a href="mailto:papa.tana101@gmail.com" target="_blank">papa.tana101@gmail.com</a>> wrote:<br>
><br>
> Hi All,<br>
><br>
> I am a node built in Erlang, and I receive lots of GTP-U packets:<br>
><br>
> ---> GTP-U packets ---------> My Node as a Relay ----> Router [using<br>
> NAT]----> Internet<br>
><br>
> As shown above, the Erlang node task is to decapsulate the user data<br>
> (GTP-U Message Type is T-PDU (0xff)) and forward them to the Router,<br>
> without changing any information, just forward it, that's all.<br>
><br>
> I was used to send application message in binary as a Client, just<br>
> using gen_udp and gen_tcp, but now, I am not the Client. And not the<br>
> server because those messages are not for me neither.<br>
><br>
> => Then, after I decapsulate these messages from GTP-U, I would like<br>
> to relay these layer messages to the Router with which I am connected.<br>
> The Router should connect with me with one network interface, using<br>
> the same netmask, let's say a small /30 netmask, it's obvious.<br>
><br>
> The IP addresses (src and dst) in the payload are not "from" me and<br>
> not "for" me.<br>
> Any tips please?<br>
><br>
> Thank you,<br>
> Best Regards,<br>
><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><p><span style="font-family:verdana,geneva,sans-serif;font-size:10pt">Andreas Schultz</span></p>
<p><span style="font-family:verdana,geneva,sans-serif;font-size:10pt">-- </span></p>
<p><span style="font-family:verdana,geneva,sans-serif;font-size:8pt">Principal Engineer</span></p>
<p><span style="font-family:verdana,geneva,sans-serif;font-size:10.6667px">  t: +49 391 819099-224 </span></p>
<p><span style="font-family:verdana,geneva,sans-serif;font-size:8pt"><span style="font-family:verdana,geneva,sans-serif;font-size:10.6667px"></span></span></p>
<p><span style="font-family:verdana,geneva,sans-serif;font-size:8pt">------------------------------- enabling your networks -----------------------------</span></p>
<table style="height:142px;width:550px">
<tbody>
<tr style="height:30px">
<td style="width:146px;height:30px">
<p><span style="font-family:verdana,geneva,sans-serif;color:rgb(34,34,34);font-size:8pt">Travelping GmbH <br></span><span style="font-family:verdana,geneva,sans-serif;color:rgb(34,34,34);font-size:8pt">Roentgenstraße 13<br></span><span style="font-family:verdana,geneva,sans-serif;color:rgb(34,34,34);font-size:8pt">39108 Magdeburg<br></span><span style="font-family:verdana,geneva,sans-serif;color:rgb(34,34,34);font-size:8pt">Germany<br><br></span></p>
</td>
<td style="width:162px;height:30px">
<p style="color:rgb(34,34,34);font-family:Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:small;text-align:justify"><span style="font-family:verdana,geneva,sans-serif;font-size:8pt">t: +49 391 819099-0<br></span><span style="font-family:verdana,geneva,sans-serif;font-size:8pt">f: +49 391 819099-299</span></p>
<p style="color:rgb(34,34,34);font-family:Roboto,RobotoDraft,Helvetica,Arial,sans-serif;font-size:small;text-align:justify"><span style="font-family:verdana,geneva,sans-serif;font-size:8pt">e: <a href="mailto:info@travelping.com" target="_blank">info@travelping.com</a><br></span><span style="font-family:verdana,geneva,sans-serif;font-size:8pt">w: <a href="https://www.travelping.com/" target="_blank">https://www.travelping.com/</a></span></p>
</td>
</tr>
<tr style="height:17px">
<td style="width:146px;height:17px"><span style="font-size:8pt;font-family:verdana,geneva,sans-serif">Company registration: Amtsgericht Stendal <br>Managing Director: Holger Winkelmann<br></span></td>
<td style="width:162px;height:17px"><span style="font-size:8pt;font-family:verdana,geneva,sans-serif">Reg. No.: HRB 10578<br>VAT ID: DE236673780</span></td>
</tr>
</tbody>
</table></div></div>