PPPOE流程分析3---pppoe native程序包
来源:互联网 发布:js do while循环 编辑:程序博客网 时间:2024/06/06 07:06
1. 相关文件
主要源码目录是, android/external/ppp/pppoe, 其中核心的是4个shell script, 和一个bin
1.1 Android.mk
此编译脚本主要用来指明编译pppoe这个binary时的规则.
1.2 Script/Pppoe-connect
执行pppoe拨号脚本
1.3 Script/Pppoe-disconnect
杀掉pppoe程序掉本
1.3 Ip-up-pppoe
连接成功, 配置route, dns等信息
1.4 Ip-down-pppoe
连接断开, 删除route, dns等信息
2 Ip-up-pppoe
此文件在pppoe拨号成功后会被调用, 是被pppd程序调用, 主要功能是设置dns/local-ip/remote-ip/net-pppoe-reason/net-pppoe-interface/route, 核心脚本代码如下,
/system/bin/setprop "net.$NAME.dns1" "$DNS1" // $NAME为ppp0, 设置dns1
/system/bin/setprop "net.$NAME.dns2" "$DNS2" // 设置dns2
/system/bin/setprop "net.$NAME.local-ip" "$IPLOCAL" // 设置本地IP
/system/bin/setprop "net.$NAME.remote-ip" "$IPREMOTE" // 设置远程服务器IP
/system/bin/setprop "net.pppoe.reason" "running" // 设置当前pppoe状态
/system/bin/setprop "net.pppoe.interface" "$1" // 设置当前pppoe网卡节点, ppp0
/system/bin/setprop "net.dns1" "$DNS1" // 设置默认dns1, 最终net.dns1和net.ppp0.dns1应该相同
/system/bin/setprop "net.dns2" "$DNS2" // 设置辅助dns2
#del the route table
// 下面这里比较重要, 首先要删除已经设置了的default route
while true
do
i=`/system/bin/busybox route | /system/bin/busybox grep default -c`
if /system/bin/busybox test $i = 0
then
break
fi
`/system/bin/busybox route del default`
done
#add the pppoe remote ip to route table
// 删除完成后, 设置pppoe的remote-ip和网卡接口为默认路由
/system/bin/busybox route add -net 0.0.0.0 gw "$IPREMOTE" netmask 0.0.0.0 dev "$NAME"
此脚本的调用我找了很久都没有发现, 后来还是问了下耕哥, 这块本来是他负责开发, 是在pppd程序中被调用, 按照他当时的介绍, vpn/3g dongle都会使用到pppd, pppoe和他们相似, 所以对于vpn会有一个ip-up-vpn, 对于3G dongle会有ip-up, 这些相关的脚本是放在了android/device/softwinner/common/rild目录下, 1. 在android/device/softwinner/common/sw-common中指定了一些和3G data card 有关的文件, 列表如下, 耕哥说的pppoe中ip-up-pppoe和3G dongle相似, 应该就是这个意思了, 这里也有ip-down, ip-up等, 也都是各种脚本.
16 #YUNOS BEGIN
17 # 3G Data Card Configuration Flie
18 #PRODUCT_COPY_FILES += \
19 # device/softwinner/common/rild/ip-down:system/etc/ppp/ip-down \
20 # device/softwinner/common/rild/ip-up:system/etc/ppp/ip-up \
21 # device/softwinner/common/rild/call-pppd:system/etc/ppp/call-pppd \
22 # device/softwinner/common/rild/3g_dongle.cfg:system/etc/3g_dongle.cfg \
23 # device/softwinner/common/rild/usb_modeswitch:system/bin/usb_modeswitch \
24 # device/softwinner/common/rild/usb_modeswitch.sh:system/bin/usb_modeswitch.sh \
25 # device/softwinner/common/rild/apns-conf_sdk.xml:system/etc/apns-conf.xml \
26 # device/softwin
shanxiaoxi@allwinnertech.com: 以前写在有道云笔记中, 在这里分享出来
- PPPOE流程分析3---pppoe native程序包
- pppoe流程
- [PPPOE]RP-PPPOE脚本分析
- [PPPOE]RP-PPPOE源码分析
- pppoe
- PPPoE
- pppoe
- PPPoE
- PPPOE
- PPPOE
- pppoe
- PPPOE
- PPPoE
- PPPoE
- PPPOE
- PPPoE
- PPPOE流程分析2 --PPPoEService系统应用
- pppoe 流程解读
- windows 下 连接VM虚拟机中redhat linux的网络设置
- 15--2杨辉三角
- HDU 1251 统计难题(字典树)
- 数字在数组中出现的次数
- java 打印各种 图形
- PPPOE流程分析3---pppoe native程序包
- java读取excel
- 十四周遗漏题----整理字符串
- Ubuntu 1204 创建桌面快捷方式(设置启动器到桌面)
- JAVA视屏笔记(day3)
- 机器学习 混合高斯模型再述
- Windows游戏加速外挂-变速齿轮 学习笔记-【第一篇】
- man后面括号的含义
- linux ls -l 详解