新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于Linux內(nèi)核模式的PPPoE優(yōu)化與實(shí)現(xiàn)

基于Linux內(nèi)核模式的PPPoE優(yōu)化與實(shí)現(xiàn)

作者: 時(shí)間:2010-09-13 來(lái)源:網(wǎng)絡(luò) 收藏


2.4 核心代碼實(shí)現(xiàn)
整個(gè)PPPoE內(nèi)核模式撥號(hào)的核心代碼主要集中在內(nèi)核模塊上,該模塊主要功能有proc文件讀寫(xiě)、數(shù)據(jù)包的封裝、解包等操作,下面是這個(gè)內(nèi)核模塊的包封裝的部分程序。


以上只是部分代碼,由于代碼太多,而且很多代碼和項(xiàng)目的硬件抽象層模塊(HAL)息息相關(guān),所以在此不再詳細(xì)闡述。具體可以參考Lin-ux內(nèi)核中pppoe模塊里面的代碼,雖然工作的層次有點(diǎn)不一樣,但是總體的思路是一樣的,本文的實(shí)現(xiàn)代碼基本上也是參考的Linux內(nèi)核中PP-PoE的代碼。

3 結(jié)束語(yǔ)
本文主要描述了PPPoE內(nèi)核模式撥號(hào)的設(shè)計(jì)與實(shí)現(xiàn),該模式將封包動(dòng)作從用戶空間轉(zhuǎn)移到內(nèi)核空間,從而大大降低了內(nèi)核空間與用戶空間切換的次數(shù),目前這種內(nèi)核模式下的撥號(hào)已經(jīng)大量地應(yīng)用于各種網(wǎng)關(guān)產(chǎn)品中。雖然PPPoE是一種非常成熟的技術(shù),Linux內(nèi)核也已開(kāi)始支持PP-PoE內(nèi)核態(tài)撥號(hào),同時(shí)由卡耐基梅隆大學(xué)開(kāi)發(fā)的PPPD開(kāi)源項(xiàng)目已經(jīng)廣泛應(yīng)用于各種網(wǎng)關(guān)產(chǎn)品中,但是熟悉整個(gè)內(nèi)核態(tài)撥號(hào)的流程是非常重要的,同時(shí)PPPD目前還存在一些BUG,在項(xiàng)目開(kāi)發(fā)的過(guò)程中還需做大量修改。本文提供解決方案有別于傳統(tǒng)的通過(guò)PPP虛擬接口來(lái)傳輸數(shù)據(jù)的方案,在某種程度上也降低了路由模塊的工作任務(wù),尤其是需要實(shí)現(xiàn)多路PPPoE的時(shí)候。另外該設(shè)計(jì)方案在Linux2.6.18上已經(jīng)成功通過(guò)測(cè)試,并投入使用。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 收發(fā)器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉