我正在构建一个使用 GTPv1 隧道与名为 SGSN 的节点进行通信的应用程序。
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
SGSN -----(GTPv1)-----> (my_App)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
GTP-C 端(控制平面)一切顺利。
SGSN 和 my_App 正在成功共享所有所需信息:
- 控制平面的 GSN 地址/端口
- 用户平面的 GSN 地址/端口
- CONTROL_PLANE 的 TEID(对等/本地)
- DATA I 的 TEID(对等/本地)
- ETC...
但是在用户平面,当SGSN实际尝试与我建立相关的GTP隧道时,我不知道如何接受这一点GTP隧道。
我开始了Linux GTP.ko但找不到相关技术文档。
IP_GRE 模块有很好的文档记录并且工作得很好,但对我的小项目没有帮助。
任何人都可以提供一些关于 GTP 隧道的线索或提示,或一些步骤吗?
多谢,
此致,
答案1
由于我的目标是从用户空间建立和管理 GTP 隧道:
- 我推荐了 GTP.ko
- 但我最近也发现了矢量包处理,这似乎是一个不错的方法
VPP是一个强大的平台,具有多种令人惊叹的功能,并且可以通过低级接口驱动(适用于C语言)。
此致,