專利名稱:一種網(wǎng)絡(luò)處理器中維護(hù)ip分組出入順序的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信技術(shù)領(lǐng)域。特別是網(wǎng)絡(luò)處理器中維護(hù)IP分組接收、發(fā)送次序的出入順序的方法。
背景技術(shù):
隨著因特網(wǎng)的普及,各種網(wǎng)絡(luò)應(yīng)用層出不窮,如IP語音(VoIP)、視頻點(diǎn)播(VoD)、點(diǎn)對(duì)點(diǎn)傳輸(P2P)等。此外,用戶對(duì)網(wǎng)絡(luò)服務(wù)質(zhì)量(QoS)及安全性的要求也不斷提高。網(wǎng)絡(luò)應(yīng)用的多樣化要求網(wǎng)絡(luò)設(shè)備具備很高的靈活性。
另一方面,用戶對(duì)網(wǎng)絡(luò)帶寬的需求也在不斷增長。根據(jù)統(tǒng)計(jì),因特網(wǎng)的數(shù)據(jù)流量每六至九個(gè)月就會(huì)增加一倍。這就要求網(wǎng)絡(luò)設(shè)備必須具備更高性能的處理能力。
網(wǎng)絡(luò)處理器是針對(duì)網(wǎng)絡(luò)應(yīng)用領(lǐng)域所設(shè)計(jì)的應(yīng)用專用指令集處理器(ASIP)。與專用集成電路芯片(ASIC)和通用處理器(GPP)相比,網(wǎng)絡(luò)處理器可以相對(duì)均衡地提供高靈活性和高處理性能。
網(wǎng)絡(luò)處理器中由可編程分組處理引擎(PE)來完成對(duì)分組的處理任務(wù)。典型的網(wǎng)絡(luò)處理器中具備多個(gè)分組處理引擎,并行地對(duì)多個(gè)分組進(jìn)行處理。一般地,一個(gè)分組處理引擎可同時(shí)運(yùn)行數(shù)條線程分別地對(duì)不同的分組進(jìn)行處理。
對(duì)于大部分網(wǎng)絡(luò)應(yīng)用,IP分組發(fā)送流和接收流中的分組次序直接影響應(yīng)用系統(tǒng)的行為和性能。因此,對(duì)于可同時(shí)并行處理多個(gè)IP分組的網(wǎng)絡(luò)處理器,應(yīng)具備一定的能力,來維護(hù)IP分組出入順序,保證同一流中的分組發(fā)送次序與接收順序一致。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種應(yīng)用于網(wǎng)絡(luò)處理器中,用以維護(hù)同一IP流中分組接收次序與發(fā)送順序相一致的方法。該方法在網(wǎng)絡(luò)處理器中實(shí)現(xiàn)時(shí),簡(jiǎn)單可行,僅占用較少的硬件資源,所增加的分組額外處理開銷小,并具備處理高速數(shù)據(jù)流的能力。
本發(fā)明的方法具體是這樣實(shí)現(xiàn)的一種應(yīng)用于網(wǎng)絡(luò)處理器中,用以維護(hù)網(wǎng)絡(luò)處理器所接收和發(fā)送的各個(gè)數(shù)據(jù)流中IP分組次序的方法。該方法的特征在于通過分組處理調(diào)度模塊,在將IP分組提交給分組處理引擎處理前,為該分組分配一個(gè)分組處理引擎的空閑線程。同時(shí),根據(jù)分組頭部信息,為每一個(gè)分組產(chǎn)生一個(gè)流標(biāo)識(shí),并在將此標(biāo)識(shí)字段與該分組所欲提交處理的分組處理引擎編號(hào)、分組處理引擎內(nèi)部線程編號(hào)一并成功提交給分組順序校驗(yàn)?zāi)K后,再將此分組交由相應(yīng)線程進(jìn)行處理。在分組順序校驗(yàn)?zāi)K中,維護(hù)一個(gè)全局共用計(jì)數(shù)器,并為每個(gè)分組處理引擎中的每一條線程維護(hù)一條信息,記錄該線程所處理的分組流標(biāo)識(shí),以及從分組處理調(diào)度模塊中接收到流標(biāo)識(shí)符時(shí)的全局計(jì)數(shù)器數(shù)值。當(dāng)分組順序校驗(yàn)?zāi)K從分組處理調(diào)度模塊接收到一條包含分組流標(biāo)識(shí)、分組引擎編號(hào)和線程編號(hào)的完整信息后,在該線程對(duì)應(yīng)記錄中寫入流標(biāo)識(shí)和當(dāng)前計(jì)數(shù)器數(shù)值。全局計(jì)數(shù)器的數(shù)值每從分組處理調(diào)度模塊接收到一條完整信息后執(zhí)行一次加1操作。當(dāng)分組處理線程執(zhí)行完對(duì)當(dāng)前IP分組的處理任務(wù)后,向分組順序校驗(yàn)?zāi)K提交釋放請(qǐng)求。分組順序校驗(yàn)?zāi)K接收到線程釋放請(qǐng)求后,檢查所維護(hù)線程任務(wù)記錄,判斷記錄中線程啟動(dòng)計(jì)數(shù)值為所維護(hù)記錄集中具有相同流標(biāo)識(shí)的記錄集中最小數(shù)值。若是,則允許該線程提交處理完成的分組并釋放當(dāng)前任務(wù);若否,則禁止該線程提交已完成所處理的分組,掛起該線程,直至記錄集中具有相同流標(biāo)識(shí)且計(jì)數(shù)值小于此線程對(duì)應(yīng)記錄中計(jì)數(shù)值的所有線程依次提交并完成釋放。
一種維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,使用分組處理調(diào)度模塊和分組順序校驗(yàn)?zāi)K,在IP分組進(jìn)入網(wǎng)絡(luò)處理器、提交給網(wǎng)絡(luò)處理器中某一線程進(jìn)行處理前,由分組處理調(diào)度模塊為該IP分組產(chǎn)生相應(yīng)流標(biāo)識(shí),并將此標(biāo)識(shí)和該IP分組所分配的線程編號(hào)傳遞給分組順序校驗(yàn)?zāi)K;分組順序校驗(yàn)?zāi)K記錄分組計(jì)數(shù)值并將分組順序信息存入任務(wù)信息記錄表;線程完成對(duì)分組的處理后,將分組交由分組順序校驗(yàn)?zāi)K檢驗(yàn)分組次序;分組順序校驗(yàn)?zāi)K接收到線程釋放請(qǐng)求后,判斷記錄中線程啟動(dòng)計(jì)數(shù)值為所維護(hù)記錄集中具有相同流標(biāo)識(shí)的記錄集中最小數(shù)值,若是則允許該線程提交處理完成的分組并釋放當(dāng)前任務(wù),若否則掛起該線程,直至記錄集中具有相同流標(biāo)識(shí)且計(jì)數(shù)值小于此線程對(duì)應(yīng)記錄中計(jì)數(shù)值的所有線程依次提交并完成釋放。
所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,維護(hù)網(wǎng)絡(luò)處理器同一數(shù)據(jù)流發(fā)送序與接收序相一致的功能是以網(wǎng)絡(luò)處理器中的分組處理調(diào)度模塊和分組順序校驗(yàn)?zāi)K之間的分組信息傳遞為基礎(chǔ)。
所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,分組處理調(diào)度模塊和分組順序校驗(yàn)?zāi)K間的分組信息,分組信息是由分組所屬數(shù)據(jù)流標(biāo)識(shí)號(hào)、處理該分組的分組處理引擎編號(hào)以及引擎內(nèi)部處理該分組的線程編號(hào)三部分組成。
所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,分組順序校驗(yàn)?zāi)K通過從分組處理調(diào)度模塊接收到的分組信息來標(biāo)識(shí)分組所歸屬的數(shù)據(jù)流,并為該分組分配一個(gè)全局統(tǒng)一計(jì)數(shù)值來標(biāo)識(shí)分組在接收數(shù)據(jù)流中的次序;并通過允許線程提交已處理分組并釋放當(dāng)前任務(wù)或掛起線程的不同方式來保持發(fā)送數(shù)據(jù)流中分組序與接收數(shù)據(jù)流中分組序一致。
所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,分組順序校驗(yàn)?zāi)K在其內(nèi)部維護(hù)一個(gè)全局共用計(jì)數(shù)器用以標(biāo)識(shí)分組順序,并為每一條線程維護(hù)一條線程任務(wù)信息記錄用以標(biāo)識(shí)線程當(dāng)前處理分組所屬數(shù)據(jù)流。
所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,線程任務(wù)信息記錄由用以標(biāo)識(shí)線程所處理分組所屬數(shù)據(jù)流的流標(biāo)識(shí)字段和用以標(biāo)識(shí)線程所處理分組接收序的計(jì)數(shù)數(shù)值組成。
圖1為本發(fā)明實(shí)施時(shí)分組的處理流程圖。
圖2為本發(fā)明網(wǎng)絡(luò)處理器中維護(hù)IP分組出入順序的方法實(shí)施的模塊框圖。
圖3為本發(fā)明方法中分組處理調(diào)度模塊向分組順序校驗(yàn)?zāi)K提交分組信息數(shù)據(jù)結(jié)構(gòu)示意圖。
圖4為本發(fā)明方法中分組順序校驗(yàn)?zāi)K所維護(hù)的線程任務(wù)信息記錄數(shù)據(jù)結(jié)構(gòu)圖。
具體實(shí)施例方式
如圖1所示,該方法的實(shí)現(xiàn)分為以下具體步驟1)當(dāng)系統(tǒng)加電或接收到復(fù)位信號(hào)后,系統(tǒng)執(zhí)行復(fù)位操作,分組處理調(diào)度模塊完成初始化工作,準(zhǔn)備接收分組并進(jìn)行IP分組的流標(biāo)簽產(chǎn)生任務(wù);分組順序校驗(yàn)?zāi)K在芯片加電或復(fù)位時(shí)完成初始化工作全局計(jì)數(shù)器歸零、線程任務(wù)記錄集初始化,將所有線程所對(duì)應(yīng)記錄中流標(biāo)識(shí)字段置為全0、計(jì)數(shù)值置為全0,處理模塊復(fù)位后,清除所有線程當(dāng)前任務(wù)并將線程狀態(tài)標(biāo)識(shí)為空閑;2)分組處理調(diào)度模塊從網(wǎng)絡(luò)處理器入口模塊處串行接收IP分組,為每一個(gè)分組根據(jù)其頭部信息產(chǎn)生一個(gè)流標(biāo)識(shí),并為分組尋找合適的分組處理引擎中的處于空閑狀態(tài)的線程,記錄此分組處理引擎編號(hào)和線程編號(hào);3)組處理調(diào)度模塊將當(dāng)前分組所對(duì)應(yīng)的流標(biāo)識(shí)字段、所欲提交的分組處理引擎編號(hào)、線程編號(hào)提交分組順序校驗(yàn)?zāi)K;4)分組順序校驗(yàn)?zāi)K接收到分組處理調(diào)度模塊所提交信息后,將流標(biāo)識(shí)和計(jì)數(shù)器數(shù)值分別寫入線程任務(wù)信息記錄表中對(duì)應(yīng)線程相應(yīng)記錄字段;5)分組處理調(diào)度模塊將分組提交給相應(yīng)分組處理引擎中的正確線程處理;6)線程在完成對(duì)分組處理后,向分組順序校驗(yàn)?zāi)K提交完成請(qǐng)求,請(qǐng)求提交已完成處理的分組、釋放當(dāng)前任務(wù)并標(biāo)記為空閑;7)分組順序校驗(yàn)?zāi)K接收到線程提交完成請(qǐng)求后,檢查線程任務(wù)記錄集合中是否存在與此線程具有相同流標(biāo)識(shí)、且計(jì)數(shù)值小于當(dāng)前線程記錄中計(jì)數(shù)值的線程,若不存在,則轉(zhuǎn)到10);8)分組順序校驗(yàn)?zāi)K拒絕當(dāng)前線程的提交請(qǐng)求,掛起該線程;9)線程被掛起,保存當(dāng)前分組處理任務(wù)信息;并以固定間隔向分組順序校驗(yàn)?zāi)K提交完成請(qǐng)求,繼續(xù)轉(zhuǎn)步驟7)處理;10)分組順序校驗(yàn)?zāi)K允許線程提交已處理完成分組,接收該分組并提交給網(wǎng)絡(luò)處理器發(fā)送模塊。
圖2中本發(fā)明實(shí)施模塊框圖中各模塊功能說明線程任務(wù)調(diào)度模塊的功能為完成從網(wǎng)絡(luò)處理器網(wǎng)絡(luò)接口、交換接口或其他部件接收待處理分組;為每一個(gè)待處理分組尋找一條合適的線程并為待處理分組分配一個(gè)流標(biāo)識(shí);將欲提交線程處理分組所對(duì)應(yīng)的處理引擎號(hào)、引擎內(nèi)部線程編號(hào),以及分組流標(biāo)識(shí)提交至分組順序校驗(yàn)?zāi)K;將待處理分組提交至相應(yīng)線程以進(jìn)行處理。
處理模塊由多個(gè)分組處理微引擎組成,每一個(gè)分組處理微引擎可包含一條或多條獨(dú)立的分組處理線程,每條線程在微引擎內(nèi)部擁有唯一的編號(hào)。處理模塊用以完成對(duì)分組的正常處理操作,如二層交換、三層轉(zhuǎn)發(fā)、過濾等操作。微引擎中的線程處于空閑態(tài)時(shí),獨(dú)立地從線程任務(wù)調(diào)度模塊接收待處分組;當(dāng)線程完成對(duì)分組的處理操作后,向分組順序校驗(yàn)?zāi)K請(qǐng)求提交已處理分組、釋放當(dāng)前任務(wù)請(qǐng)求;當(dāng)線程處于掛起態(tài)時(shí),線程以固定時(shí)間間隔向分組順序校驗(yàn)?zāi)K請(qǐng)求提交已處理分組、釋放當(dāng)前任務(wù)的請(qǐng)求。
分組流標(biāo)識(shí)的產(chǎn)生應(yīng)盡可能的將分組分散至不同數(shù)據(jù)流,即產(chǎn)生不同的流標(biāo)簽,以減少同一數(shù)據(jù)流中因處理速度不同,造成同一數(shù)據(jù)流中分組處理完成次序與接收次序不同,導(dǎo)致大量線程頻繁被掛起,浪費(fèi)處理器處理能力的情況。
分組流標(biāo)識(shí)的產(chǎn)生應(yīng)滿足以下條件1)同一源及目標(biāo)地址的相同應(yīng)用所對(duì)應(yīng)分組,其流標(biāo)識(shí)應(yīng)相同。
2)同一源及目標(biāo)地址的不同應(yīng)用所對(duì)應(yīng)分組,其流標(biāo)識(shí)可以相同,也可不同。
3)不同源及目標(biāo)地址的對(duì)應(yīng)分組,其流標(biāo)識(shí)可以相同,也可以不同。分組順序校驗(yàn)?zāi)K從線程任務(wù)調(diào)度模塊接收由分組流標(biāo)識(shí)、分組所分配至處理引擎號(hào)、引擎內(nèi)部線程編號(hào)組成的分組順序信息,并為標(biāo)識(shí)該分組順序計(jì)數(shù)值為當(dāng)前全局統(tǒng)一計(jì)數(shù)器計(jì)數(shù)值。分組順序校驗(yàn)?zāi)K在內(nèi)部為每一條線程維護(hù)一條記錄,用以記錄該線程當(dāng)前處理分組的流標(biāo)識(shí)、分組順序計(jì)數(shù)數(shù)值。分組順序校驗(yàn)?zāi)K在接收到某一線程所發(fā)送的提交已處理分組請(qǐng)求后,通過對(duì)模塊內(nèi)部所維護(hù)線程任務(wù)信息記錄表的檢索,斷記錄中線程啟動(dòng)計(jì)數(shù)值為所維護(hù)記錄集中具有相同流標(biāo)識(shí)的記錄集中最小數(shù)值,若是則允許該線程提交處理完成的分組并釋放當(dāng)前任務(wù),若否則掛起該線程,直至記錄集中具有相同流標(biāo)識(shí)且計(jì)數(shù)值小于此線程對(duì)應(yīng)記錄中計(jì)數(shù)值的所有線程依次提交并完成釋放。
順序校驗(yàn)?zāi)K在初始化時(shí),將計(jì)數(shù)器置為初值0。處于正常工作狀態(tài)時(shí),每從分組處理調(diào)度模塊接收到一條完整分組流標(biāo)識(shí)、欲分配分組處理引擎號(hào)、引擎內(nèi)部線程編號(hào)信息后,計(jì)數(shù)器執(zhí)行一次加1操作,并將此數(shù)值寫入線程任務(wù)信息記錄表中對(duì)應(yīng)線程相應(yīng)記錄字段中。
圖3中分組信息數(shù)據(jù)結(jié)構(gòu)由分組處理引擎號(hào)、引擎內(nèi)部線程編號(hào)、以及分組所屬數(shù)據(jù)流標(biāo)識(shí)三部分構(gòu)成。處理引擎號(hào)與引擎內(nèi)部線程編號(hào)可以區(qū)分該分組被分配至哪一條線進(jìn)行處理;流標(biāo)識(shí)說明該分組屬于哪一個(gè)數(shù)據(jù)流。
圖4分組順序校驗(yàn)?zāi)K中線程任務(wù)信息記錄表為每一線程維護(hù)一條由分組流標(biāo)識(shí)和分組計(jì)數(shù)值構(gòu)成的記錄。分組流標(biāo)識(shí)用以標(biāo)識(shí)此線程當(dāng)前處理分組所屬數(shù)據(jù)流,分組計(jì)數(shù)值用以記錄該分組在所屬數(shù)據(jù)流中到達(dá)網(wǎng)絡(luò)處理器的順序。
具體實(shí)施本方法時(shí),根據(jù)帶寬、流量及其他實(shí)際應(yīng)用情況選定分組流標(biāo)識(shí)字段的位寬。對(duì)于高帶寬、大流量或復(fù)雜應(yīng)用環(huán)境,應(yīng)選用較大位寬,以提供更多流標(biāo)識(shí)數(shù)值容量,區(qū)分各類不同應(yīng)用或不同用戶數(shù)據(jù)流。
分組順序校驗(yàn)?zāi)K中計(jì)數(shù)器的位寬可設(shè)為32比特或更高,以減少因計(jì)數(shù)器溢出引起計(jì)數(shù)數(shù)值返零,從計(jì)數(shù)數(shù)值判定分組接收次序錯(cuò)誤的情況。
分組順序校驗(yàn)?zāi)K中線程任務(wù)記錄的流標(biāo)識(shí)字段位寬應(yīng)與分組處理調(diào)度模塊選定的流標(biāo)識(shí)位寬相同。
權(quán)利要求
1.一種維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,其特征在于使用分組處理調(diào)度模塊和分組順序校驗(yàn)?zāi)K,在IP分組進(jìn)入網(wǎng)絡(luò)處理器、提交給網(wǎng)絡(luò)處理器中某一線程進(jìn)行處理前,由分組處理調(diào)度模塊為該IP分組產(chǎn)生相應(yīng)流標(biāo)識(shí),并將此標(biāo)識(shí)和該IP分組所分配的線程編號(hào)傳遞給分組順序校驗(yàn)?zāi)K;分組順序校驗(yàn)?zāi)K記錄分組計(jì)數(shù)值并將分組順序信息存入任務(wù)信息記錄表;線程完成對(duì)分組的處理后,將分組交由分組順序校驗(yàn)?zāi)K檢驗(yàn)分組次序;分組順序校驗(yàn)?zāi)K接收到線程釋放請(qǐng)求后,判斷記錄中線程啟動(dòng)計(jì)數(shù)值為所維護(hù)記錄集中具有相同流標(biāo)識(shí)的記錄集中最小數(shù)值,若是則允許該線程提交處理完成的分組并釋放當(dāng)前任務(wù),若否則掛起該線程,直至記錄集中具有相同流標(biāo)識(shí)且計(jì)數(shù)值小于此線程對(duì)應(yīng)記錄中計(jì)數(shù)值的所有線程依次提交并完成釋放。
2.根據(jù)權(quán)利要求1所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,其特征在于維護(hù)網(wǎng)絡(luò)處理器同一數(shù)據(jù)流發(fā)送序與接收序相一致的功能是以網(wǎng)絡(luò)處理器中的分組處理調(diào)度模塊和分組順序校驗(yàn)?zāi)K之間的分組信息傳遞為基礎(chǔ)。
3.根據(jù)權(quán)利要求1或2所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,其特征在于,分組處理調(diào)度模塊和分組順序校驗(yàn)?zāi)K間的分組信息,分組信息是由分組所屬數(shù)據(jù)流標(biāo)識(shí)號(hào)、處理該分組的分組處理引擎編號(hào)以及引擎內(nèi)部處理該分組的線程編號(hào)三部分組成。
4.根據(jù)權(quán)利要求1所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,其特征在于分組順序校驗(yàn)?zāi)K通過從分組處理調(diào)度模塊接收到的分組信息來標(biāo)識(shí)分組所歸屬的數(shù)據(jù)流,并為該分組分配一個(gè)全局統(tǒng)一計(jì)數(shù)值來標(biāo)識(shí)分組在接收數(shù)據(jù)流中的次序;并通過允許線程提交已處理分組并釋放當(dāng)前任務(wù)或掛起線程的不同方式來保持發(fā)送數(shù)據(jù)流中分組序與接收數(shù)據(jù)流中分組序一致。
5.根據(jù)權(quán)利要求4所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,其特征在于,分組順序校驗(yàn)?zāi)K在其內(nèi)部維護(hù)一個(gè)全局共用計(jì)數(shù)器用以標(biāo)識(shí)分組順序,并為每一條線程維護(hù)一條線程任務(wù)信息記錄用以標(biāo)識(shí)線程當(dāng)前處理分組所屬數(shù)據(jù)流。
6.根據(jù)權(quán)利要求5所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,其特征在于,線程任務(wù)信息記錄由用以標(biāo)識(shí)線程所處理分組所屬數(shù)據(jù)流的流標(biāo)識(shí)字段和用以標(biāo)識(shí)線程所處理分組接收序的計(jì)數(shù)數(shù)值組成。
7.根據(jù)權(quán)利要求1所述的維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法,其具體步驟如下1)當(dāng)系統(tǒng)加電或接收到復(fù)位信號(hào)后,系統(tǒng)執(zhí)行復(fù)位操作,分組處理調(diào)度模塊完成初始化工作,準(zhǔn)備接收分組并進(jìn)行IP分組的流標(biāo)簽產(chǎn)生任務(wù);分組順序校驗(yàn)?zāi)K在芯片加電或復(fù)位時(shí)完成初始化工作全局計(jì)數(shù)器歸零、線程任務(wù)記錄集初始化,將所有線程所對(duì)應(yīng)記錄中流標(biāo)識(shí)字段置為全0、計(jì)數(shù)值置為全0,處理模塊復(fù)位后,清除所有線程當(dāng)前任務(wù)并將線程狀態(tài)標(biāo)識(shí)為空閑;2)分組處理調(diào)度模塊從網(wǎng)絡(luò)處理器入口模塊處串行接收IP分組,為每一個(gè)分組根據(jù)其頭部信息產(chǎn)生一個(gè)流標(biāo)識(shí),并為分組尋找合適的分組處理引擎中的處于空閑狀態(tài)的線程,記錄此分組處理引擎編號(hào)和線程編號(hào);3)組處理調(diào)度模塊將當(dāng)前分組所對(duì)應(yīng)的流標(biāo)識(shí)字段、所欲提交的分組處理引擎編號(hào)、線程編號(hào)提交分組順序校驗(yàn)?zāi)K;4)分組順序校驗(yàn)?zāi)K接收到分組處理調(diào)度模塊所提交信息后,將流標(biāo)識(shí)和計(jì)數(shù)器數(shù)值分別寫入線程任務(wù)信息記錄表中對(duì)應(yīng)線程相應(yīng)記錄字段;5)分組處理調(diào)度模塊將分組提交給相應(yīng)分組處理引擎中的正確線程處理;6)線程在完成對(duì)分組處理后,向分組順序校驗(yàn)?zāi)K提交完成請(qǐng)求,請(qǐng)求提交已完成處理的分組、釋放當(dāng)前任務(wù)并標(biāo)記為空閑;7)分組順序校驗(yàn)?zāi)K接收到線程提交完成請(qǐng)求后,檢查線程任務(wù)記錄集合中是否存在與此線程具有相同流標(biāo)識(shí)、且計(jì)數(shù)值小于當(dāng)前線程記錄中計(jì)數(shù)值的線程,若不存在,則轉(zhuǎn)到10;8)分組順序校驗(yàn)?zāi)K拒絕當(dāng)前線程的提交請(qǐng)求,掛起該線程;9)線程被掛起,保存當(dāng)前分組處理任務(wù)信息;并以固定間隔向分組順序校驗(yàn)?zāi)K提交完成請(qǐng)求,繼續(xù)轉(zhuǎn)步驟7處理;10)分組順序校驗(yàn)?zāi)K允許線程提交已處理完成分組,接收該分組并提交給網(wǎng)絡(luò)處理器發(fā)送模塊。
全文摘要
本發(fā)明涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,一種維護(hù)IP分組進(jìn)、出網(wǎng)絡(luò)處理器的順序的方法。該方法使用分組處理調(diào)度模塊和分組順序校驗(yàn)?zāi)K,在IP分組進(jìn)入網(wǎng)絡(luò)處理器后,提交給網(wǎng)絡(luò)處理器中某一線程進(jìn)行處理前,由分組處理調(diào)度模塊為該IP分組產(chǎn)生相應(yīng)流標(biāo)識(shí),并將此標(biāo)識(shí)和該IP分組所分配的線程編號(hào)傳遞給分組順序校驗(yàn)?zāi)K;當(dāng)線程完成對(duì)分組的處理后,將分組交由分組順序校驗(yàn)?zāi)K檢驗(yàn)分組次序。最后將該分組發(fā)送至網(wǎng)絡(luò)處理器發(fā)送模塊。
文檔編號(hào)H04L12/56GK1964312SQ20051008684
公開日2007年5月16日 申請(qǐng)日期2005年11月10日 優(yōu)先權(quán)日2005年11月10日
發(fā)明者徐宇鋒, 李華偉 申請(qǐng)人:中國科學(xué)院計(jì)算技術(shù)研究所