<div dir="ltr">Hi,<br><br>An update as promised, I tried my workaround:<br><br> - sniff from userspace the echo-request sent by peer SGSN to libgtpnl: OK<br> - craft a message (echo-response) and send it to SGSN: OK from another port, but NOK from 2152<br> Whatever I tried (bind to low level socket, Linux helper, etc...), it was impossible because the SGSN only accepts the message that he recognize that he has sent, and wait for the exact pair {ip, port} so, it was impossible for me since it was owned by libgtpnl when I invoke  "gtp-link add".<br><br>The previous suggestion is really interesting to me:<br><b> - speak netlink directly to the GTP-U module.</b> <br><br>Yes, there is some library that can speak netlink, but since I want to learn first how to do it without using a library, I have learned how to speak netlink to Linux Module (libnl-genl).<br>I have checked out the message structure(headers, length, type, flags, sequence number, pid, Command, Data, ....).<br>I have monitored some stuff by using "nlmon".<br>And now, I can create a netlink socket as a File Descriptor, craft some Netlink Message manually, flush it to the kernel and receive some response from a sample kernel module.<br><br>But my question is, and what I need help with, what data does GTP.ko expect from me when I need to request an add or delete tunnel, since I cannot see any documentation about Linux GTP module interface.<br>I'm not requesting a code, but only the message or binary I need to transport in my netlink socket towards GTP-U Linux module.<br><br>Thanks for any help or hint,<br><div>Best Regards,</div><div><br></div></div>