欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

支持多核處理器的sdn多級流表并行查找的系統(tǒng)及方法_5

文檔序號:9471527閱讀:來源:國知局
原本關(guān)聯(lián)到默認(rèn)表項的快表感知多級流表的表項發(fā)生變更,自動解除流表與默認(rèn)表項的關(guān)聯(lián),重新綁定新增的流表表項。2.如權(quán)利要求1所述的支持多核處理器的SDN多級流表并行查找的系統(tǒng),其特征在于:所述快表的表項成員中包括三個用于記錄數(shù)據(jù)流匹配的多級表項指針,每個輸入的數(shù)據(jù)報文提取報文頭部的關(guān)鍵字,進(jìn)行哈希運(yùn)算,根據(jù)哈希值的不同將數(shù)據(jù)包劃分到不同的快表表項桶Bucket中,每個Bucket中含有8個表項成員,根據(jù)表項中的指針地址找到匹配的表項,執(zhí)行相關(guān)的動作; 所述表項設(shè)計單元定義以下名詞: 關(guān)鍵字的集合Key = {k[l], k[2], k[3],...,k[n]},k[n]屬于集合Key,k表示關(guān)鍵字的字段,字段有多個,根據(jù)SDN的版本不同有所區(qū)別,η是變量,k[n]是一條表項中的關(guān)鍵字字段第η個匹配字段,k[n]是數(shù)據(jù)報文中IP頭部、用戶數(shù)據(jù)報協(xié)議UDP頭部信息或傳輸控制協(xié)議TCP頭部信息; 關(guān)鍵字掩碼的集合Mask = {m[l], m[2], m[3],…,m[n]},m[n]屬于集合Mask,m表示掩碼,字段對應(yīng)的掩碼有多個,η是變量,m[n]是一條表項中的條件字段第η個匹配字段的掩碼;動作的集合 Act1n = {a[l], a[2], a[3],...,a[i]},a[i]屬于集合 Act1n,a 表示執(zhí)行的動作,執(zhí)行的動作有多個,i是變量,a[i]是一條流表表項中第i個需要執(zhí)行的動作;流表的集合L[X] = {r[l], r[2], r[3],…,r[j]},L是流表的集合,X是變量,L[x]表示第X張流表;r表示流表的表項,j是變量,r[j]屬于流表集合L[X],r[j]是流表第x張流表L的第j條表項; 快表的集合F = {b[l],b[2], b[3],…,b[n]},F(xiàn)表不快表的集合,b表不快表表項,η是變量,b [η]屬于快表集合F,b [η]是快表F的第η條表項,快表表項Bucket的最大值Bucket_Max,表示快表F中容納的最大表項數(shù); 網(wǎng)絡(luò)上所有可能的出現(xiàn)的數(shù)據(jù)包的集合P = {P [I],P [2],P [3],…,P [ j]},P表示數(shù)據(jù)報文的集合,j是變量,P [j]表示具有同一特征類型的數(shù)據(jù)報文; 所述表項設(shè)計單元設(shè)計快表表項時,為快表表項的每個成員設(shè)計以下數(shù)據(jù)域: Validl:第一有效位,用于表示該條表項的有效性; Pending:狀態(tài)位,用于表示該條表項的可用性; Key:關(guān)鍵字,表項的關(guān)鍵字字段,是該表項的特征值; Flag:標(biāo)志位,表示后面數(shù)據(jù)域三個指針的有效性; Ptrl:第一指針,用于指向第一級流表表項的指針; Ptr2:第二指針,用于指向第二級流表表項的指針; Ptr3:第三指針,用于指向第三級流表表項的指針; 流表的表項包括: Prev:鏈表前向指針,用于指向前一個表項結(jié)構(gòu)體的指針; Pr1:優(yōu)先級字段,表示該表項的優(yōu)先級高低,數(shù)值越大優(yōu)先級越高,反之越??; Key:關(guān)鍵字; Mask:掩碼,表示訪問控制列表的表項中的掩碼,用于與數(shù)據(jù)流信息的條件字段進(jìn)行與運(yùn)算; Ref:引用計數(shù),用于記錄當(dāng)前正在使用該表項的成員個數(shù); Valid2:第二有效位,用于表示該表項的有效性; Lock:結(jié)構(gòu)體資源鎖,用于多個核間并行執(zhí)行時,對表項資源的同步和互斥; Act1n:執(zhí)行動作,流表定義的執(zhí)行動作; Nextl:第一鏈表后向指針,用于指向后一個表項結(jié)構(gòu)體的指針,整個流表表項通過該指針以雙鏈表的方式進(jìn)行邏輯存儲; 流表的表頭包括: Table_Id,表不流表的表號; Conut,表示當(dāng)前流表中含有多少個表項; Lock:結(jié)構(gòu)體資源鎖; Next2:第二鏈表后向指針,指向流表的第一個表項結(jié)構(gòu); 所述流表表項的存儲結(jié)構(gòu)為鏈表方式、樹形結(jié)構(gòu)或圖形結(jié)構(gòu); 所述快表中一個成員的第一有效位被置為1,表示滿足該成員關(guān)鍵字條件的數(shù)據(jù)報文,通過該成員直接找到多級流表需要執(zhí)行的表項,成員中的標(biāo)志位=7,二進(jìn)制為111,表示在三級流表中分別找到三個能匹配的表項,指向流表表項的三個指針Ptrl、Ptr2和Ptr3有效; 所述表項設(shè)計單元在流表的數(shù)據(jù)結(jié)構(gòu)設(shè)計過程中,在每個流表的尾端增加一個默認(rèn)表項,標(biāo)記為r[d],其優(yōu)先級為0,默認(rèn)表項是在流表初始化過程中自動加入的,掩碼全部成員都為0,各種類型的數(shù)據(jù)報文都能匹配上這條默認(rèn)表項;數(shù)據(jù)報文在依次匹配流表的表項,如果前面的表項都不能匹配,則匹配到默認(rèn)表項。3.如權(quán)利要求2所述的支持多核處理器的SDN多級流表并行查找的系統(tǒng),其特征在于:所述快表建立單元建立快表時執(zhí)行以下步驟: SlOU多核處理器的核從數(shù)據(jù)報文p[j]中提取報文中對應(yīng)的條件字段k[l], k[2], k[3],..., k[n]進(jìn)行哈希運(yùn)算,獲得32位的哈希值Hash_Value ; S102、在快表用上面計算的哈希值取余快表表項桶最大值Bucket_Max,得到b[Hash_Value % Bucket_Max]表項,標(biāo)記為b [ j],%表示取余運(yùn)算,在b [ j]的8個成員中尋找第一有效位為1的成員,根據(jù)表項條件字段1^[1]沐[2],1^[3],...,!^!!]與數(shù)據(jù)報文提取的條件字段匹配進(jìn)行匹配,如果沒有匹配到,說明該數(shù)據(jù)流在快表中尚未建立表項信息,則轉(zhuǎn)到步驟S103,否則轉(zhuǎn)到步驟S108 ; S103、建立報文的數(shù)據(jù)流信息:將數(shù)據(jù)報文提取全部條件字段k[l],k[2],k[3],...,k[n]作為流的重要信息填入到空閑快表表項成員的關(guān)鍵字中,該表項的第一有效位=O,填寫完成關(guān)鍵字后,將該表項的第一有效位置為1、狀態(tài)位置為I,表示該表項正在被使用,但是表項信息尚沒有完善,目前不可用; S104、關(guān)聯(lián)當(dāng)前快表表項與第一張流表:如果標(biāo)志位“與”001為“真”,則直接轉(zhuǎn)到步驟S106,表明快表與第一張流表表項已經(jīng)關(guān)聯(lián);否則執(zhí)行如下步驟:將數(shù)據(jù)報文提取的信息關(guān)鍵字與第一張流表的表項進(jìn)行逐一匹配,匹配過程是:將數(shù)據(jù)報文提取的關(guān)鍵字首先同流表表項r[j]中的掩碼進(jìn)行“與”運(yùn)算,再將其結(jié)果與流表表項r[j]中的關(guān)鍵字進(jìn)行“等于”判斷,如果結(jié)果為真,則表明當(dāng)前的表項被匹配上,直接轉(zhuǎn)到步驟S105 ;否則繼續(xù)下一條流表表項的匹配,直到匹配最后一條掩碼為全O的默認(rèn)表項為止; S105、將快表表項成員中的第一指針Ptrl指向流表表項r[j],將表項r [j]結(jié)構(gòu)體的引用計數(shù)增加1,并將標(biāo)志位邏輯運(yùn)算“或”上001,此時完成了當(dāng)前快表表項與第一張流表表項的關(guān)聯(lián),如果表項r[j]上動作需要跳轉(zhuǎn)到指定第二張流表,則轉(zhuǎn)到步驟S106 ;動作需要跳轉(zhuǎn)到第三張流表,則轉(zhuǎn)到步驟S107 ;動作需要直接跳出查找,則轉(zhuǎn)到步驟S108 ;動作無跳轉(zhuǎn),則默認(rèn)轉(zhuǎn)到步驟S106,繼續(xù)進(jìn)行流表查找; S106、關(guān)聯(lián)當(dāng)前快表表項與第二張流表:同步驟S104,如果標(biāo)志位“與”010為“真”,則直接轉(zhuǎn)到步驟S107,表明快表與第二張流表表項已經(jīng)關(guān)聯(lián);否則執(zhí)行如下步驟:將數(shù)據(jù)報文提取的信息關(guān)鍵字與第二張流表的表項進(jìn)行逐一匹配,匹配完成后同步驟S105,將快表表項成員中的第二指針Ptr2指向流表表項r[j],將表項r[j]結(jié)構(gòu)體的引用計數(shù)增加1,并將標(biāo)志位邏輯運(yùn)算“或”上010,此時完成了當(dāng)前快表快項與第二張流表表項的關(guān)聯(lián),如果表項r [j]上動作需要跳轉(zhuǎn)到指定第三張流表,則轉(zhuǎn)到步驟S107 ;動作需要直接跳出查找,則轉(zhuǎn)到步驟S108 ;動作無跳轉(zhuǎn),則默認(rèn)轉(zhuǎn)到步驟S107,繼續(xù)進(jìn)行流表查找; 5107、關(guān)聯(lián)當(dāng)前快表表項與第三張流表:同步驟S104,如果標(biāo)志位“與”100為“真”,則直接轉(zhuǎn)到步驟S108,表明快表與第三張流表表項已經(jīng)關(guān)聯(lián);否則執(zhí)行如下步驟:將數(shù)據(jù)報文提取的信息關(guān)鍵字與第三張流表的表項進(jìn)行逐一匹配,匹配完成后同步驟S105,將快表表項成員中的第三指針Ptr3指向流表表項r[j],將表項r[j]結(jié)構(gòu)體的引用計數(shù)增加1,并將標(biāo)志位邏輯運(yùn)算“或”上100,此時完成了當(dāng)前快表快項與第三張流表表項的關(guān)聯(lián); S108、首先檢測快表表項成員的第一有效位是否為1,如果不為1,將其設(shè)置為I;檢測狀態(tài)位是否為0,如果不為0,將其設(shè)置為0,至此表明該數(shù)據(jù)流快表表項信息全部建立完成; S109、數(shù)據(jù)報文在快表中匹配上表項成員,并且表項第一有效位為1,狀態(tài)位為0,根據(jù)成員中的指針,直接找到三張流表表項中匹配的表項,并找到流表表項中需要執(zhí)行的動作,動作包含:修改數(shù)據(jù)報文頭部信息、指定出端口、丟棄、跳轉(zhuǎn)到指定的流表或容許通過;如果表項第一有效位為1,狀態(tài)位為1,表明當(dāng)前快表表項處于在建過程中,快表與流表關(guān)聯(lián)信息需要進(jìn)一步完善,返回步驟S104。4.如權(quán)利要求3所述的支持多核處理器的SDN多級流表并行查找的系統(tǒng),其特征在于:如果三張流表上的某一張流表L[x]上某一條表項r[j]被刪除,流表表項刪除單元執(zhí)行以下步驟: S201、在流表上找到待刪除的流表表項r[j],將表項r[j]從鏈表中刪除,然后將流表表頭中的Count值減I ; S202、將該表項中的第二有效位設(shè)置成無效,如果r[j]的引用計數(shù)不大于0,轉(zhuǎn)到步驟S203 ;否則轉(zhuǎn)到步驟S204 ; S203、如果r[j]的引用計數(shù)不大于0,說明當(dāng)前已經(jīng)沒有快表指向該結(jié)構(gòu)體空間,直接釋放表項r[j]結(jié)構(gòu)體內(nèi)存; S204、數(shù)據(jù)報文在使用快表表項成員的過程中,通過指針找流表的表項r[j],首先要對表項r[j]的第二有效位進(jìn)行判斷,如果第二有效位被設(shè)置成無效,則表明該訪問列表已經(jīng)被刪除,表明需要執(zhí)行的動作已經(jīng)失效,轉(zhuǎn)到步驟S205 ; S205、將r[j]中的引用計數(shù)減1,如果r[j]的引用計數(shù)不大于0,則直接釋放r[j]結(jié)構(gòu)體內(nèi)存,并且將當(dāng)前快表表項成員中的對應(yīng)的標(biāo)志位清除,將狀態(tài)位置為I ;如果r[j]的引用計數(shù)大于0,后來的數(shù)據(jù)報文將重復(fù)步驟S204的操作,直到r[j]的引用計數(shù)不大于0,內(nèi)存被釋放為止。5.如權(quán)利要求3所述的支持多核處理器的SDN多級流表并行查找的系統(tǒng),其特征在于:如果三張流表上的某一張流表L[x]上增加一條表項r[j],流表表項添加單元執(zhí)行以下步驟: S301、在雙鏈表上增加新表項r[j],表項添加的位置根據(jù)優(yōu)先級字段比較來確定,要求插入的節(jié)點r[j-l]的優(yōu)先級不低于新表項r[j]的優(yōu)先級,完成插入操作后將將流表表頭中的Count值加I ; S302、重新刪除并添加該流表上從r[j+l]到尾部默認(rèn)表項之間的全部表項;S303、數(shù)據(jù)報文在使用快表表項成員的過程中,通過指針?biāo)饕搅鞅淼谋眄梤[j+l]時,如果發(fā)現(xiàn)表項r[j+l]的第二有效位被設(shè)置成無效,則表明該訪問列表已經(jīng)被刪除,表明需要執(zhí)行的動作已經(jīng)失效,將快表表項成員中對應(yīng)的標(biāo)志位置為0,狀態(tài)位置為I ; S304、數(shù)據(jù)報文重新構(gòu)建快表表項,新建的快表表項成員匹配默認(rèn)表項r[d]、優(yōu)先級較低的r[j+l]表項或新增優(yōu)先級更高的表項。6.一種支持多核處理器的SDN多級流表并行查找的方法,其特征在于,包括以下步驟: 前期的數(shù)據(jù)流進(jìn)入多級流表查找時,自動在多級流表中增設(shè)一個基于數(shù)據(jù)流關(guān)鍵字的快表,記錄每一級流表匹配的表項結(jié)果,將各類輸入數(shù)據(jù)包頭部的關(guān)鍵字哈希到眾多快表上,進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)規(guī)則獲取和轉(zhuǎn)發(fā),優(yōu)化多核處理器的并行執(zhí)行;數(shù)據(jù)流通過快表直接與SDN設(shè)備中的多級流表的表項關(guān)聯(lián)起來; 后期的數(shù)據(jù)流從快表中直接獲取多級流表中的轉(zhuǎn)發(fā)規(guī)則信息,直接通過快表找到多級流表中待匹配的表項和執(zhí)行的動作,將SDN多級流表中進(jìn)行的多次匹配轉(zhuǎn)化為快表中的單次匹配; 在多級流表匹配數(shù)據(jù)流的過程中,在快表表項中建立數(shù)據(jù)流的快表信息;在每一個多級流表的尾端增加一條默認(rèn)表項; 刪除流表表項時,讓原本關(guān)聯(lián)到默認(rèn)表項的快表感知多級流表的表項發(fā)生變更,自動解除流表與默認(rèn)表項的關(guān)聯(lián),讓快表表項重新去關(guān)聯(lián)沒有被刪除的流表表項; 添加流表表項時,讓原本關(guān)聯(lián)到默認(rèn)表項的快表感知多級流表的表項發(fā)生變更,自
當(dāng)前第5頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
常德市| 高雄县| 越西县| 锦屏县| 昌乐县| 库车县| 平泉县| 永清县| 沛县| 河北省| 奇台县| 西青区| 达拉特旗| 闻喜县| 通渭县| 清涧县| 武清区| 乌兰浩特市| 女性| 尤溪县| 三原县| 怀集县| 抚松县| 广饶县| 余干县| 泗阳县| 内黄县| 平果县| 个旧市| 水富县| 芒康县| 福建省| 松桃| 广州市| 霸州市| 昭苏县| 宣化县| 通化市| 青海省| 阿城市| 巴林右旗|