##1.基本
/usr/bin/setsid /usr/sbin/pppd pty ‘/usr/sbin/pppoe -p /var/run/pppoe_eth1.pid.pppoe -D /var/run/pppoe_eth1.pid.pppoe.log -I eth1 -T 80 -U -m 1412’ noipdefault noauth default-asyncmap defaultroute hide-password nodetach usepeerdns mtu 1492 mru 1492 noaccomp nodeflate nopcomp novj novjccomp user sugao_pppoe1 lcp-echo-interval 20 lcp-echo-failure 3 debug
##2.选项
##3.代码分析
1.初始化状态机为初始化阶段
2.和syslog,获取主机地址,获取UID;
3.初始化魔法值,协议(LCP,PAP,CHAP等),其中lcp_init中,会将lcp_fsm的回调指向lcp_callbacks
4.初始化tty给the_channel赋值&tty_channel
5.解析选项:包括系统文件选项(/etc/ppp/options),用户选项,命令行参数
6.解析命令行参数
7.检测PPP设备文件"/dev/ppp"的有效性
8.检查选项的有效性和一致性,包括常规选项,系统选项,认证选项和协议选项
9.打开"/dev/null",并通过函数dup将其fd复制给i(目的???)
10.sys_init,主要是打开一个SOCK_DGRAM的套接字
11.检测是否后台运行PPPD
12.设置信号量函数,包括一些hangup,异常,出错处理等;
13