理解openl2tp架构——1

背景介绍:

l2tp有多种实现,即便是开源的linux下就有多个版本,由于工作需要,需要对linux下的l2tp实现做一些定制化工作。为了避免重复发明轮子以及时间上等等多方面全方位的考虑,选择openl2tpd的实现进行阅读,理解其中的实现。openl2tp程序功能强大,本理解采用系列文章,将逐步提交到此处,对于非主要功能将不做探讨。还望各位批评指正。

程序版本:

openl2tp-1.8:(后续简称openl2tp,其中有插件);
ppp-2.4.5:(后续简称ppp,也有插件);
linux内核中的ppp,l2tp等相关驱动模块程序(内核版本不同,主要是是否支持l2tp v3,内核的驱动也有所区别,本系列以老版本的内核驱动为主,特别之处将会指出)。

程序运行整体架构:

openl2tp有默认插件ppp_unix.so,该插件的主要作用是调用内核的l2tp支持,内核只处理l2tp的数据部分,并运行ppp程序。调用ppp程序时,运行插件pppol2tp.so。各个插件的具体实现及目的后续文章中描述。

openl2tp程序目录结构:

主目录下的.c,.h文件是程序应用层的主要部分;
cli目录:该目录里主要包括的是一些命令行接口;
debian和redhat目录:与特定linux发行版发布相关的内容,本系列不做展开;
doc目录:相关的rfc等文档,不做展开;
etc目录:目录下包括了安装时的一些启动,配置相关的脚本,不做进一步展开;
ipsec目录:包括了使用ipsec的一些程序patch和配置文件,本系列中不展开讨论;
plugins目录:包括了openl2tp自身的一些插件,有ppp_unix,ipsec等,将对ppp_unix做详细的解释;
pppd目录:包括了ppp的两个插件openl2tp.so和pppol2tp,主要对pppol2tp进行解释;
test目录:包含了一下tcl程序的测试,不展开;
usl目录:包括了列表、有穷状态机、pid管理等的封装函数(含部分文档),有些是来自其他开源项目的,按情况讨论。

先写这么多吧。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值