新四季網

一種基於網卡驅動的數據包處理優化方法

2023-05-27 20:20:21 2

一種基於網卡驅動的數據包處理優化方法【專利摘要】本發明公開了一種基於網卡驅動的數據包處理優化方法,該方法包括網絡數據包從網卡進入,由解析引擎解析數據包頭部,得到頭部屬性;得到頭部屬性跟過濾列表中的每一項過濾規則匹配;如果匹配成功,那麼把網絡數據包送入規則中指明的數據緩衝區描述符環;如果沒有匹配成功,就將數據送入一個默認的數據緩衝區描述符環中;等待網卡接收中斷,執行中斷事件處理程序;將匹配規則成功的數據環中的數據提交到上層協議棧,默認環中的數據直接發送至發送環;等待網卡發送中斷,執行中斷事件處理程序;將發送環中的數據發送出去;接下來的數據包重複上述步驟;本發明解決嵌入式設備對不感興趣數據處理,減輕嵌入式設備網卡工作負荷,加快感興趣數據的處理。【專利說明】一種基於網卡驅動的數據包處理優化方法【
技術領域:
】[0001]本發明涉及嵌入式驅動開發【
技術領域:
】,特別涉及一種基於網卡驅動的數據包處理優化方法。【
背景技術:
】[0002]20世紀末,隨著信息技術與網絡技術的迅速發展,計算機技術已經進入後PC時代。大量的計算機應用系統從傳統的辦公管理、科學計算、企業管理等領域,逐漸滲透到人們的日常生活的方方面面,形成當前最熱門的嵌入式系統領域。[0003]經過幾十年的發展,嵌入式系統已經在很大程度改變了人們的生活、工作和娛樂方式,而且這些改變還在加速。嵌入式系統具有無數的種類,每類都具有自己獨特的個性。即使不可見,嵌入式系統也無處不在。嵌入式系統在很多產業中得到了廣泛的應用並逐步改變著這些產業,包括工業自動化、國防、運輸和航天領域。[0004]網絡信息技術的不斷發展,嵌入式網絡設備也層出不窮,各種嵌入式網絡設備根據自身的特點完成特定的任務。由於各種網絡嵌入式設備功能不同,決定了他們各自對網絡數據包的感興趣程度是不同的。按照傳統的網卡驅動來說,網卡接收到數據之後校驗數據包的準確性後就把數據包放入接受緩衝區,然後等待接受中斷事件響應函數把數據送入上層的協議棧,然後由協議棧在判斷數據包是否需要丟棄或者是轉發。這樣一來如果有大量的嵌入式網絡設備部感興趣的數據包進入網卡,那麼之後要花很多的時間和資源區處理這些數據包,這不僅加大了嵌入式網絡設備的負擔,而且對感興趣的數據處理也會有一定的延時。而本發明能夠很好地解決上面的問題。【
發明內容】[0005]本次發明是針對Freescale的eTSEC(enhancedthree-speedEthernetcontroller)提出了一種基於網卡驅動的數據包處理優化方法,其目的在於實現網卡的數據包底層轉發,解決了嵌入式設備對不感興趣數據的處理,減輕嵌入式設備的網卡工作負荷,加快了感興趣數據的處理,從而達到優化的目的。[0006]本發明解決其技術問題所採取的技術方案是:本發明提出了一種基於網卡驅動的數據包處理優化方法,主要針對的是Freescale的eTSEC網絡控制器的驅動程序進行優化,其包括如下步驟:[0007]步驟I)網絡數據包從網卡進入,由解析引擎解析數據包頭部,得到頭部屬性;[0008]步驟2)得到的頭部屬性跟過濾列表中的每一項過濾規則匹配;[0009]步驟3)如果匹配成功,那麼把網絡數據包送入規則中指明的數據緩衝區描述符環;[0010]步驟4)如果沒有匹配成功,就將數據送入一個默認的數據緩衝區描述符環中;[0011]步驟5)等待網卡接收中斷,執行中斷事件處理程序;[0012]步驟6)將匹配規則成功的數據環中的數據提交到上層協議棧,默認環中的數據直接發送至發送環;[0013]步驟7)等待網卡發送中斷,執行中斷事件處理程序;[0014]步驟8)將發送環中的數據發送出去;[0015]步驟9)接下來的數據包重複上述步驟I到步驟8。[0016]本發明將網絡數據一分為二,感興趣和不感興趣數據分開放;本發明把不需要的數據轉發,而不是直接丟棄。[0017]如圖1所示,本發明的數據緩衝區是用來存儲接收和發送的數據幀,數據緩衝區描述符包含了eTSEC發送和接收數據幀的所有必要的信息。每一個緩衝區描述符都包含一個狀態欄位,一個長度欄位和一個指針欄位。數據緩衝區描述符的狀態欄位表示的是數據幀的狀態信息,長度欄位表示的是數據幀的長度信息,指針欄位是數據幀存儲在內存中的實際地址。每個數據緩衝區描述符頭尾相連組成數據緩衝區描述符環,每個發送環或者是接受環至少要有4個緩衝區描述符,對發送環來說每個發送環的最大緩衝區描述符是65536個。狀態欄位有一位是表示的是緩衝區的狀態,其他的位是給eTSEC提供狀態和控制信息的。[0018]由於數據緩衝區描述符中沒有指向下一個數據緩衝區描述符的指針,所以數據緩衝區描述符在內存中存儲必須是按照順序存儲。eTSEC只要每次移動相同的字節數就能讀取下一個緩衝區描述符。在最後一個緩衝區描述符裡需要一個特殊的標識位,當eTSEC讀到這個標識位的時候從新把指針指向第一個緩衝區描述符的地址處。[0019]本發明建立一個過濾表,驅動程序根據數據幀的一些屬性建立一些過濾規則存儲在一個過濾表中,過濾表總共有256個單元,也就是可以容納256條過濾規則。數據幀從網卡進來後先由解析引擎解析協幀頭的各項屬性信息,例如TCP的埠號,或者是VLAN號等等。頭部信息解析出來後就會去匹配過濾表中的規則,從第一條過濾規則開始匹配,一旦匹配成功就停止匹配然後把數據幀放入相應的環中,如果沒有匹配到規則,那麼必須為數據幀分配一個默認的環,把數據放入默認的環中。[0020]把所有的網絡數據都按照過濾規則分類,感興趣的數據和不感興趣的數據分別放在了不同的環中。最後只要在接收中斷處理事件函數中把有感興趣的數據幀提交給上層協議棧,但是不感興趣的數據幀就直接發送至發送環。具體的數據流向如圖2所示。[0021]有益效果:[0022]1、本發明減輕了嵌入式設備的網卡工作負荷。[0023]2、本發明加快了感興趣數據的處理效率。【專利附圖】【附圖說明】[0024]圖1是緩衝區描述符環。[0025]圖2是網絡數據流向示意圖。[0026]圖3是本發明的流程圖。【具體實施方式】[0027]下面通過結合說明書附圖,進一步說明本發明的技術方案。[0028]實施例1[0029]如圖1所示,本發明的數據緩衝區是用來存儲接收和發送的數據幀,數據緩衝區描述符包含了eTSEC發送和接收數據幀的所有必要的信息。每一個緩衝區描述符都包含一個狀態欄位,一個長度欄位和一個指針欄位。數據緩衝區描述符的狀態欄位表示的是數據幀的狀態信息,長度欄位表示的是數據幀的長度信息,指針欄位是數據幀存儲在內存中的實際地址。每個數據緩衝區描述符頭尾相連組成數據緩衝區描述符環,每個發送環或者是接受環至少要有4個緩衝區描述符,對發送環來說每個發送環的最大緩衝區描述符是65536個。狀態欄位有一位是表示的是緩衝區的狀態,其他的位是給eTSEC提供狀態和控制信息的。[0030]由於數據緩衝區描述符中沒有指向下一個數據緩衝區描述符的指針,所以數據緩衝區描述符在內存中存儲必須是按照順序存儲。eTSEC只要每次移動相同的字節數就能讀取下一個緩衝區描述符。在最後一個緩衝區描述符裡需要一個特殊的標識位,當eTSEC讀到這個標識位的時候從新把指針指向第一個緩衝區描述符的地址處。[0031]本發明建立一個過濾表,驅動程序根據數據幀的一些屬性建立一些過濾規則存儲在一個過濾表中,過濾表總共有256個單元,也就是可以容納256條過濾規則。數據幀從網卡進來後先由解析引擎解析協幀頭的各項屬性信息,例如TCP的埠號,或者是VLAN號等等。頭部信息解析出來後就會去匹配過濾表中的規則,從第一條過濾規則開始匹配,一旦匹配成功就停止匹配然後把數據幀放入相應的環中,如果沒有匹配到規則,那麼必須為數據幀分配一個默認的環,把數據放入默認的環中。[0032]把所有的網絡數據都按照過濾規則分類,感興趣的數據和不感興趣的數據分別放在了不同的環中。最後只要在接收中斷處理事件函數中把有感興趣的數據幀提交給上層協議棧,但是不感興趣的數據幀就直接發送至發送環。具體的數據流向如圖2所示。[0033]如圖3所示,本發明提出了一種基於網卡驅動的數據包處理優化方法,其包括如下步驟:[0034]步驟I)網絡數據包從網卡進入,由解析引擎解析數據包頭部,得到頭部屬性;[0035]步驟2)得到的頭部屬性跟過濾列表中的每一項過濾規則匹配;[0036]步驟3)如果匹配成功,那麼把網絡數據包送入規則中指明的數據緩衝區描述符環;[0037]步驟4)如果沒有匹配成功,就將數據送入一個默認的數據緩衝區描述符環中;[0038]步驟5)等待網卡接收中斷,執行中斷事件處理程序;[0039]步驟6)將匹配規則成功的數據環中的數據提交到上層協議棧,默認環中的數據直接發送至發送環;[0040]步驟7)等待網卡發送中斷,執行中斷事件處理程序;[0041]步驟8)將發送環中的數據發送出去;[0042]步驟9)接下來的數據包重複上述步驟I到步驟8。[0043]本發明將網絡數據一分為二,感興趣和不感興趣數據分開放;本發明把不需要的數據轉發,而不是直接丟棄。[0044]實施例2[0045]假設有一臺嵌入式網絡設備,僅對TCP協議的80埠的數據感興趣,其餘的數據都不感興趣,那麼【具體實施方式】為:[0046](I)首先建立過濾表,過濾的數據幀頭屬性是TCP的80埠,只要是TCP埠的數據送[0047]O號環,其餘的數據送I號環:[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.一種基於網卡驅動的數據包處理優化方法,其特徵在於:所述方法包括如下步驟:步驟I)網絡數據包從網卡進入,由解析引擎解析數據包頭部,得到頭部屬性;步驟2)得到的頭部屬性跟過濾列表中的每一項過濾規則匹配;步驟3)如果匹配成功,那麼把網絡數據包送入規則中指明的數據緩衝區描述符環;步驟4)如果沒有匹配成功,就將數據送入一個默認的數據緩衝區描述符環中;步驟5)等待網卡接收中斷,執行中斷事件處理程序;步驟6)將匹配規則成功的數據環中的數據提交到上層協議棧,默認環中的數據直接發送至發送環;步驟7)等待網卡發送中斷,執行中斷事件處理程序;步驟8)將發送環中的數據發送出去;步驟9)接下來的數據包重複上述步驟I到步驟8。2.根據權利要求1所述的一種基於網卡驅動的數據包處理優化方法,其特徵在於:所述方法將網絡數據一分為二,感興趣和不感興趣數據分開放。3.根據權利要求1所述的一種基於網卡驅動的數據包處理優化方法,其特徵在於:所述方法把不需要的數據轉發,而不是直接丟棄。4.根據權利要求1所述的一種基於網卡驅動的數據包處理優化方法,其特徵在於:所述方法的數據緩衝區用來存儲接收和發送的數據幀。5.根據權利要求1所述的一種基於網卡驅動的數據包處理優化方法,其特徵在於:所述方法建立一個過濾表,驅動程序根據數據幀的一些屬性建立一些過濾規則存儲在一個過濾表中,過濾表總共有256個單元。【文檔編號】H04L29/06GK103441951SQ201310360294【公開日】2013年12月11日申請日期:2013年8月19日優先權日:2013年8月19日【發明者】陳丹偉,馬曉丹申請人:南京郵電大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀