亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法

文檔序號:8004591閱讀:338來源:國知局
一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法【專利摘要】本發(fā)明公開了一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法,該方法包括網(wǎng)絡數(shù)據(jù)包從網(wǎng)卡進入,由解析引擎解析數(shù)據(jù)包頭部,得到頭部屬性;得到頭部屬性跟過濾列表中的每一項過濾規(guī)則匹配;如果匹配成功,那么把網(wǎng)絡數(shù)據(jù)包送入規(guī)則中指明的數(shù)據(jù)緩沖區(qū)描述符環(huán);如果沒有匹配成功,就將數(shù)據(jù)送入一個默認的數(shù)據(jù)緩沖區(qū)描述符環(huán)中;等待網(wǎng)卡接收中斷,執(zhí)行中斷事件處理程序;將匹配規(guī)則成功的數(shù)據(jù)環(huán)中的數(shù)據(jù)提交到上層協(xié)議棧,默認環(huán)中的數(shù)據(jù)直接發(fā)送至發(fā)送環(huán);等待網(wǎng)卡發(fā)送中斷,執(zhí)行中斷事件處理程序;將發(fā)送環(huán)中的數(shù)據(jù)發(fā)送出去;接下來的數(shù)據(jù)包重復上述步驟;本發(fā)明解決嵌入式設備對不感興趣數(shù)據(jù)處理,減輕嵌入式設備網(wǎng)卡工作負荷,加快感興趣數(shù)據(jù)的處理。【專利說明】一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法【
技術領域
】[0001]本發(fā)明涉及嵌入式驅(qū)動開發(fā)【
技術領域
】,特別涉及一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法。【
背景技術
】[0002]20世紀末,隨著信息技術與網(wǎng)絡技術的迅速發(fā)展,計算機技術已經(jīng)進入后PC時代。大量的計算機應用系統(tǒng)從傳統(tǒng)的辦公管理、科學計算、企業(yè)管理等領域,逐漸滲透到人們的日常生活的方方面面,形成當前最熱門的嵌入式系統(tǒng)領域。[0003]經(jīng)過幾十年的發(fā)展,嵌入式系統(tǒng)已經(jīng)在很大程度改變了人們的生活、工作和娛樂方式,而且這些改變還在加速。嵌入式系統(tǒng)具有無數(shù)的種類,每類都具有自己獨特的個性。即使不可見,嵌入式系統(tǒng)也無處不在。嵌入式系統(tǒng)在很多產(chǎn)業(yè)中得到了廣泛的應用并逐步改變著這些產(chǎn)業(yè),包括工業(yè)自動化、國防、運輸和航天領域。[0004]網(wǎng)絡信息技術的不斷發(fā)展,嵌入式網(wǎng)絡設備也層出不窮,各種嵌入式網(wǎng)絡設備根據(jù)自身的特點完成特定的任務。由于各種網(wǎng)絡嵌入式設備功能不同,決定了他們各自對網(wǎng)絡數(shù)據(jù)包的感興趣程度是不同的。按照傳統(tǒng)的網(wǎng)卡驅(qū)動來說,網(wǎng)卡接收到數(shù)據(jù)之后校驗數(shù)據(jù)包的準確性后就把數(shù)據(jù)包放入接受緩沖區(qū),然后等待接受中斷事件響應函數(shù)把數(shù)據(jù)送入上層的協(xié)議棧,然后由協(xié)議棧在判斷數(shù)據(jù)包是否需要丟棄或者是轉(zhuǎn)發(fā)。這樣一來如果有大量的嵌入式網(wǎng)絡設備部感興趣的數(shù)據(jù)包進入網(wǎng)卡,那么之后要花很多的時間和資源區(qū)處理這些數(shù)據(jù)包,這不僅加大了嵌入式網(wǎng)絡設備的負擔,而且對感興趣的數(shù)據(jù)處理也會有一定的延時。而本發(fā)明能夠很好地解決上面的問題。【
發(fā)明內(nèi)容】[0005]本次發(fā)明是針對Freescale的eTSEC(enhancedthree-speedEthernetcontroller)提出了一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法,其目的在于實現(xiàn)網(wǎng)卡的數(shù)據(jù)包底層轉(zhuǎn)發(fā),解決了嵌入式設備對不感興趣數(shù)據(jù)的處理,減輕嵌入式設備的網(wǎng)卡工作負荷,加快了感興趣數(shù)據(jù)的處理,從而達到優(yōu)化的目的。[0006]本發(fā)明解決其技術問題所采取的技術方案是:本發(fā)明提出了一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法,主要針對的是Freescale的eTSEC網(wǎng)絡控制器的驅(qū)動程序進行優(yōu)化,其包括如下步驟:[0007]步驟I)網(wǎng)絡數(shù)據(jù)包從網(wǎng)卡進入,由解析引擎解析數(shù)據(jù)包頭部,得到頭部屬性;[0008]步驟2)得到的頭部屬性跟過濾列表中的每一項過濾規(guī)則匹配;[0009]步驟3)如果匹配成功,那么把網(wǎng)絡數(shù)據(jù)包送入規(guī)則中指明的數(shù)據(jù)緩沖區(qū)描述符環(huán);[0010]步驟4)如果沒有匹配成功,就將數(shù)據(jù)送入一個默認的數(shù)據(jù)緩沖區(qū)描述符環(huán)中;[0011]步驟5)等待網(wǎng)卡接收中斷,執(zhí)行中斷事件處理程序;[0012]步驟6)將匹配規(guī)則成功的數(shù)據(jù)環(huán)中的數(shù)據(jù)提交到上層協(xié)議棧,默認環(huán)中的數(shù)據(jù)直接發(fā)送至發(fā)送環(huán);[0013]步驟7)等待網(wǎng)卡發(fā)送中斷,執(zhí)行中斷事件處理程序;[0014]步驟8)將發(fā)送環(huán)中的數(shù)據(jù)發(fā)送出去;[0015]步驟9)接下來的數(shù)據(jù)包重復上述步驟I到步驟8。[0016]本發(fā)明將網(wǎng)絡數(shù)據(jù)一分為二,感興趣和不感興趣數(shù)據(jù)分開放;本發(fā)明把不需要的數(shù)據(jù)轉(zhuǎn)發(fā),而不是直接丟棄。[0017]如圖1所示,本發(fā)明的數(shù)據(jù)緩沖區(qū)是用來存儲接收和發(fā)送的數(shù)據(jù)幀,數(shù)據(jù)緩沖區(qū)描述符包含了eTSEC發(fā)送和接收數(shù)據(jù)幀的所有必要的信息。每一個緩沖區(qū)描述符都包含一個狀態(tài)字段,一個長度字段和一個指針字段。數(shù)據(jù)緩沖區(qū)描述符的狀態(tài)字段表示的是數(shù)據(jù)幀的狀態(tài)信息,長度字段表示的是數(shù)據(jù)幀的長度信息,指針字段是數(shù)據(jù)幀存儲在內(nèi)存中的實際地址。每個數(shù)據(jù)緩沖區(qū)描述符頭尾相連組成數(shù)據(jù)緩沖區(qū)描述符環(huán),每個發(fā)送環(huán)或者是接受環(huán)至少要有4個緩沖區(qū)描述符,對發(fā)送環(huán)來說每個發(fā)送環(huán)的最大緩沖區(qū)描述符是65536個。狀態(tài)字段有一位是表示的是緩沖區(qū)的狀態(tài),其他的位是給eTSEC提供狀態(tài)和控制信息的。[0018]由于數(shù)據(jù)緩沖區(qū)描述符中沒有指向下一個數(shù)據(jù)緩沖區(qū)描述符的指針,所以數(shù)據(jù)緩沖區(qū)描述符在內(nèi)存中存儲必須是按照順序存儲。eTSEC只要每次移動相同的字節(jié)數(shù)就能讀取下一個緩沖區(qū)描述符。在最后一個緩沖區(qū)描述符里需要一個特殊的標識位,當eTSEC讀到這個標識位的時候從新把指針指向第一個緩沖區(qū)描述符的地址處。[0019]本發(fā)明建立一個過濾表,驅(qū)動程序根據(jù)數(shù)據(jù)幀的一些屬性建立一些過濾規(guī)則存儲在一個過濾表中,過濾表總共有256個單元,也就是可以容納256條過濾規(guī)則。數(shù)據(jù)幀從網(wǎng)卡進來后先由解析引擎解析協(xié)幀頭的各項屬性信息,例如TCP的端口號,或者是VLAN號等等。頭部信息解析出來后就會去匹配過濾表中的規(guī)則,從第一條過濾規(guī)則開始匹配,一旦匹配成功就停止匹配然后把數(shù)據(jù)幀放入相應的環(huán)中,如果沒有匹配到規(guī)則,那么必須為數(shù)據(jù)幀分配一個默認的環(huán),把數(shù)據(jù)放入默認的環(huán)中。[0020]把所有的網(wǎng)絡數(shù)據(jù)都按照過濾規(guī)則分類,感興趣的數(shù)據(jù)和不感興趣的數(shù)據(jù)分別放在了不同的環(huán)中。最后只要在接收中斷處理事件函數(shù)中把有感興趣的數(shù)據(jù)幀提交給上層協(xié)議棧,但是不感興趣的數(shù)據(jù)幀就直接發(fā)送至發(fā)送環(huán)。具體的數(shù)據(jù)流向如圖2所示。[0021]有益效果:[0022]1、本發(fā)明減輕了嵌入式設備的網(wǎng)卡工作負荷。[0023]2、本發(fā)明加快了感興趣數(shù)據(jù)的處理效率。【專利附圖】【附圖說明】[0024]圖1是緩沖區(qū)描述符環(huán)。[0025]圖2是網(wǎng)絡數(shù)據(jù)流向示意圖。[0026]圖3是本發(fā)明的流程圖?!揪唧w實施方式】[0027]下面通過結合說明書附圖,進一步說明本發(fā)明的技術方案。[0028]實施例1[0029]如圖1所示,本發(fā)明的數(shù)據(jù)緩沖區(qū)是用來存儲接收和發(fā)送的數(shù)據(jù)幀,數(shù)據(jù)緩沖區(qū)描述符包含了eTSEC發(fā)送和接收數(shù)據(jù)幀的所有必要的信息。每一個緩沖區(qū)描述符都包含一個狀態(tài)字段,一個長度字段和一個指針字段。數(shù)據(jù)緩沖區(qū)描述符的狀態(tài)字段表示的是數(shù)據(jù)幀的狀態(tài)信息,長度字段表示的是數(shù)據(jù)幀的長度信息,指針字段是數(shù)據(jù)幀存儲在內(nèi)存中的實際地址。每個數(shù)據(jù)緩沖區(qū)描述符頭尾相連組成數(shù)據(jù)緩沖區(qū)描述符環(huán),每個發(fā)送環(huán)或者是接受環(huán)至少要有4個緩沖區(qū)描述符,對發(fā)送環(huán)來說每個發(fā)送環(huán)的最大緩沖區(qū)描述符是65536個。狀態(tài)字段有一位是表示的是緩沖區(qū)的狀態(tài),其他的位是給eTSEC提供狀態(tài)和控制信息的。[0030]由于數(shù)據(jù)緩沖區(qū)描述符中沒有指向下一個數(shù)據(jù)緩沖區(qū)描述符的指針,所以數(shù)據(jù)緩沖區(qū)描述符在內(nèi)存中存儲必須是按照順序存儲。eTSEC只要每次移動相同的字節(jié)數(shù)就能讀取下一個緩沖區(qū)描述符。在最后一個緩沖區(qū)描述符里需要一個特殊的標識位,當eTSEC讀到這個標識位的時候從新把指針指向第一個緩沖區(qū)描述符的地址處。[0031]本發(fā)明建立一個過濾表,驅(qū)動程序根據(jù)數(shù)據(jù)幀的一些屬性建立一些過濾規(guī)則存儲在一個過濾表中,過濾表總共有256個單元,也就是可以容納256條過濾規(guī)則。數(shù)據(jù)幀從網(wǎng)卡進來后先由解析引擎解析協(xié)幀頭的各項屬性信息,例如TCP的端口號,或者是VLAN號等等。頭部信息解析出來后就會去匹配過濾表中的規(guī)則,從第一條過濾規(guī)則開始匹配,一旦匹配成功就停止匹配然后把數(shù)據(jù)幀放入相應的環(huán)中,如果沒有匹配到規(guī)則,那么必須為數(shù)據(jù)幀分配一個默認的環(huán),把數(shù)據(jù)放入默認的環(huán)中。[0032]把所有的網(wǎng)絡數(shù)據(jù)都按照過濾規(guī)則分類,感興趣的數(shù)據(jù)和不感興趣的數(shù)據(jù)分別放在了不同的環(huán)中。最后只要在接收中斷處理事件函數(shù)中把有感興趣的數(shù)據(jù)幀提交給上層協(xié)議棧,但是不感興趣的數(shù)據(jù)幀就直接發(fā)送至發(fā)送環(huán)。具體的數(shù)據(jù)流向如圖2所示。[0033]如圖3所示,本發(fā)明提出了一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法,其包括如下步驟:[0034]步驟I)網(wǎng)絡數(shù)據(jù)包從網(wǎng)卡進入,由解析引擎解析數(shù)據(jù)包頭部,得到頭部屬性;[0035]步驟2)得到的頭部屬性跟過濾列表中的每一項過濾規(guī)則匹配;[0036]步驟3)如果匹配成功,那么把網(wǎng)絡數(shù)據(jù)包送入規(guī)則中指明的數(shù)據(jù)緩沖區(qū)描述符環(huán);[0037]步驟4)如果沒有匹配成功,就將數(shù)據(jù)送入一個默認的數(shù)據(jù)緩沖區(qū)描述符環(huán)中;[0038]步驟5)等待網(wǎng)卡接收中斷,執(zhí)行中斷事件處理程序;[0039]步驟6)將匹配規(guī)則成功的數(shù)據(jù)環(huán)中的數(shù)據(jù)提交到上層協(xié)議棧,默認環(huán)中的數(shù)據(jù)直接發(fā)送至發(fā)送環(huán);[0040]步驟7)等待網(wǎng)卡發(fā)送中斷,執(zhí)行中斷事件處理程序;[0041]步驟8)將發(fā)送環(huán)中的數(shù)據(jù)發(fā)送出去;[0042]步驟9)接下來的數(shù)據(jù)包重復上述步驟I到步驟8。[0043]本發(fā)明將網(wǎng)絡數(shù)據(jù)一分為二,感興趣和不感興趣數(shù)據(jù)分開放;本發(fā)明把不需要的數(shù)據(jù)轉(zhuǎn)發(fā),而不是直接丟棄。[0044]實施例2[0045]假設有一臺嵌入式網(wǎng)絡設備,僅對TCP協(xié)議的80端口的數(shù)據(jù)感興趣,其余的數(shù)據(jù)都不感興趣,那么【具體實施方式】為:[0046](I)首先建立過濾表,過濾的數(shù)據(jù)幀頭屬性是TCP的80端口,只要是TCP端口的數(shù)據(jù)送[0047]O號環(huán),其余的數(shù)據(jù)送I號環(huán):[0048]LOCALSTATUSetsecFilerLoad(VXB_DEVICEJDpDcv)IETSECDRVCTRL:i:pDrvCtrl;ETSECFILERENTRYlabic[4];ETSEC—FILER—ENTRY*p;pDrvClrl=pDcv->pDrvCtrl;bzero((char”table,Sizeof(Lablc));p=:&tablc[0];P-XllcrEnable=ETSECFILERENABLE;p->rqrar.details.tablelndex=0;p->rqfcr.val=0x0000028B;p->rqfpr.val=0x00000006;/*PlaccTCPportequalsto80IralTicinqueue0*/p=&tablc[l];`P-XllcrEnablc=ETSECFILERENABLE;p->rqfar.details.tablclndcx=I;[0049]【權利要求】1.一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法,其特征在于:所述方法包括如下步驟:步驟I)網(wǎng)絡數(shù)據(jù)包從網(wǎng)卡進入,由解析引擎解析數(shù)據(jù)包頭部,得到頭部屬性;步驟2)得到的頭部屬性跟過濾列表中的每一項過濾規(guī)則匹配;步驟3)如果匹配成功,那么把網(wǎng)絡數(shù)據(jù)包送入規(guī)則中指明的數(shù)據(jù)緩沖區(qū)描述符環(huán);步驟4)如果沒有匹配成功,就將數(shù)據(jù)送入一個默認的數(shù)據(jù)緩沖區(qū)描述符環(huán)中;步驟5)等待網(wǎng)卡接收中斷,執(zhí)行中斷事件處理程序;步驟6)將匹配規(guī)則成功的數(shù)據(jù)環(huán)中的數(shù)據(jù)提交到上層協(xié)議棧,默認環(huán)中的數(shù)據(jù)直接發(fā)送至發(fā)送環(huán);步驟7)等待網(wǎng)卡發(fā)送中斷,執(zhí)行中斷事件處理程序;步驟8)將發(fā)送環(huán)中的數(shù)據(jù)發(fā)送出去;步驟9)接下來的數(shù)據(jù)包重復上述步驟I到步驟8。2.根據(jù)權利要求1所述的一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法,其特征在于:所述方法將網(wǎng)絡數(shù)據(jù)一分為二,感興趣和不感興趣數(shù)據(jù)分開放。3.根據(jù)權利要求1所述的一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法,其特征在于:所述方法把不需要的數(shù)據(jù)轉(zhuǎn)發(fā),而不是直接丟棄。4.根據(jù)權利要求1所述的一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法,其特征在于:所述方法的數(shù)據(jù)緩沖區(qū)用來存儲接收和發(fā)送的數(shù)據(jù)幀。5.根據(jù)權利要求1所述的一種基于網(wǎng)卡驅(qū)動的數(shù)據(jù)包處理優(yōu)化方法,其特征在于:所述方法建立一個過濾表,驅(qū)動程序根據(jù)數(shù)據(jù)幀的一些屬性建立一些過濾規(guī)則存儲在一個過濾表中,過濾表總共有256個單元。【文檔編號】H04L29/06GK103441951SQ201310360294【公開日】2013年12月11日申請日期:2013年8月19日優(yōu)先權日:2013年8月19日【發(fā)明者】陳丹偉,馬曉丹申請人:南京郵電大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1