美文网首页
pppoe-server源代码阅读

pppoe-server源代码阅读

作者: jrglinux | 来源:发表于2017-06-12 14:17 被阅读0次

pppoe-server.c

一、从main()函数入手:

1、main()函数调用getopt()函数,进行命令参数词法分析

getopt
2、然后main()函数开始检查一些参数(好多参数,暂时不知道有何用),初始化random cookie,还有对session的操作
3、打开所有的Interface接口,creat event selector,创建接口事件处理函数,调用InterfaceHandler
event handler
在进入InterfaceHandler之后,会经过一个过程:
PADI
PADO
PADR
PADS
StartPPPD
4、main()函数在InterfaceHandler整个调用过程后,开始UNIX Network Programming
Unix network programming
二、进入main()中的InterfaceHandler()
InterfaceHandler

InterfaceHandler()函数调用serverProcessPacket()函数

三、serverProcessPacket()函数
serverProcessPacket

根据packet.code来选择处理函数


image.png

其中PPPoEPacket定义如下:


PPPoEPacket定义 PPPoE codes
四、processPADI函数

在判断客户端发送的广播请求的address、session、MAC没有问题并能够提供客户端所需的service后,server主机准备发送PADO


PADO准备

最后调用sendPacket函数发送PADO包


sendPacket

五、processPADR函数
当主机能够提供服务后,给客户端发送PADO,客户端选择一个能够提供服务的主机发送PADR包,当主机接收到PADR后,就可以准备发起一个PPP会话


startPPPD

六、startPPPD函数
进入startPPPD后,又分为两种


startPPPD

一个是startPPPDLinuxKernelMode,另一个是startPPPDUserMode

七、startPPPD之后
不管是startPPPDLinuxKernelMode还是startPPPDUserMode,如果其过程顺利执行,到最后都是以下面两个函数结尾退出


退出startPPPD

相关文章

网友评论

      本文标题:pppoe-server源代码阅读

      本文链接:https://www.haomeiwen.com/subject/arwyfxtx.html