因為公網和
230專案的
pppoe
都已調通,而應用於
1800
專案的pppoe
沒有做大的變動,故
pppoe
**流程不會出問題。
建立撥號後,附著,然後撥號,失敗,撥號始終顯示『正在連線,通過
wan微型埠』,通過
etherale
抓pppoed
包顯示,客戶端一直在發
padi
廣播包,而我們的
server
**沒有回
pado
包,此時根據
console
視窗log
列印查到我們解析
padi
包時,根據其協議域值
switch
處理時進入了
default
分支(異常分支例
default
分支一定要加列印,便於追根溯源),重跑,列印解析出的
padi
包協議域值是
0x6388
,而實際發現階段包的協議域值是
0x8863
,懷疑是大小端問題,
pppoe
的**一直是大端**沒有轉過,故
arm板卡是小端的。
230專案的板卡也是
arm的,故
230的
pppoe
大小端轉換可以參考。
**中,組包時,
uint8
字段不用轉,
uint16
和uint32
字段需要用
ntohs
和ntohl
進行轉換,主要是
packet payload
長度和type
值等,需對比所有原始檔,開始只對比了
pppoe_attach.cpp
,而忽略了
fsm.cpp
,lcp.cpp
和ipcp.cpp
,不全面對比只是想當然地改一點跑一次肯定會事倍功半!
轉過padi
包的協議域值為大端後,
padi
包處理函式處理錯誤,在各錯誤分支增加列印後,發現函式入口處判斷當前未附著,原因是
dm**在附著成功後沒設
pppoe
裡的附著標誌位。
修改後,撥號仍失敗,抓包顯示
lcp發的配置請求都被拒絕了,檢視
lcp配置請求包的值,發現包淨荷的長度值異常,有
2000
多位元組,超過最大值,原因為
fsm.cpp
中此值未轉大端。
修改後,撥號成功但無任何圖示顯示,需要在網路連線裡重新整理才能看到已連線,檢視抓包發現在
ipcp
協商完成後,我們會異常收到乙個
ccp包,不知是否因此產生影響,原因未知。
檢視撥號成功後的
ip位址資訊顯示,發現為
3.1.168.192
,與核心網分配的(
pppoe從dm
讀取的)
192.168.1.3
正相反,仍是大小端問題,故在
ipcp_init
處轉此ip
值為大端後,顯示正確。
遺留問題:
1,蒙奇奇大小端轉換巨集
2,dm
在debugtools
裡不列印
3,撥號成功後的
ccp包
4,為什麼必須重新整理後才能顯示已連線
5,230pppoe
**修改點
**學習:
1,列印乙個結構體變數的碼流,只需定乙個指標指向它,然後列印指標即可
Debian 下 PPPOE撥號設定
3.8.6 ppp 拔號設定 安裝 pppconfig 軟體包,設定 ppp 撥號訪問。apt get install pppconfig pppconfig 按提示配置 ppp 撥號 adduser user name dip 允許 user name 進行 ppp 撥號訪問 使用者 user n...
ubuntu下的pppoe撥號工具
作者 yu tao ubuntu下,沒有fc自己帶的system config network工具,設定起adsl撥號比較麻煩。ubuntu下目前的撥號方式主要有 1 pppoeconf apt get install pppoeconf pppoeconf 然後進入console模式的配置項,輸入...
華為PPPoe撥號上網實驗
華為配置pppoe 配置裝置名字 配置pppoe客戶的使用者名稱和密碼 local user xiaoming service type ppp 配置使用者的接入型別為ppp inte ce virtual template0 進入虛模板介面 ppp authentication mode chap...