一種快速處理錯誤包的方法
【技術領域】
[0001]本發明涉及報文數據處理技術領域,特別涉及一種快速處理錯誤包的方法。
【背景技術】
[0002]在基于FPGA(Field — Programmable Gate Array,即現場可編程門陣列)的以太網數據加密設計中,報文數據是以包為單位進行處理的,從網絡上傳送過來的數據包,經過接口邏輯,打上包頭包尾標簽后,傳送給數據轉發邏輯,查找策略表之后,根據查找的策略做加密/明通/丟棄處理,加密報文的包尾存放認證碼,方便解密方進行認證。
[0003]基于上述機制,數據轉發邏輯收到來自接口邏輯的錯誤報文,如果無包頭,則轉發邏輯將無法取出關鍵字信息,如果無包尾,則轉發邏輯可能會將下一報文包尾的認證碼取出,導致解密認證失敗。因此需要在轉發邏輯之前,加入容錯模塊,將無包頭、無包尾的報文識別出來并丟棄。
[0004]在容錯模塊中,接收的報文都存放在FIF0(First Input First Output的縮寫,先入先出隊列)中,收到包尾數據后,判讀此包是正常包還是錯誤包,如果是正常包,則從FIFO中取出,送往下一模塊;如果是無包頭的錯誤包,則從FIFO中取出并丟棄;如果是無包尾的錯誤包,只有收到下一包頭數據,才能判斷上一包是無包尾的錯誤包,此時才能將錯誤包從FIFO中取出丟棄。在容錯模塊中,使用“接收報文,緩存報文,檢查報文,發送報文”的方式。這樣的方法,每次只能處理一個報文,必將導致數據轉發效率降低。
【發明內容】
[0005]為了解決現有技術的問題,本發明提供了一種快速處理錯誤包的方法,其額外增加一個錯誤包指示寄存器,根據FIFO中已存放的包數,錯誤包指示寄存器在動態的改變,當從FIFO中取出報文時,可以從錯誤包指示器中取出相應的操作,使用本方法,可以在取錯誤包的同時接收新的報文,從而大大提高數據轉發效率。
[0006]本發明所采用的技術方案如下:
一種快速處理錯誤包的方法,是在數據轉發邏輯之前設置的容錯模塊中,增加一個錯誤包指示寄存器,所述的錯誤包指示寄存器用以實現錯誤包的FIFO的同步存放和取出。
[0007]方法具體包括:
A、FIF0的輸入端連續接收前級模塊傳過來的數據,每接收完一個報文,將相應包的處理操作代碼寫入錯誤包指示寄存器;
B、FIF0的輸出端,每發送一個報文之前,都在錯誤包指示寄存器中讀取當前包狀態及處理操作代碼;
C、根據讀出來的處理操作代碼,對待發送報文進行相應的操作。
[0008]本發明提供的技術方案帶來的有益效果是:
本發明的一種快速處理錯誤包的方法,其額外增加一個錯誤包指示寄存器,根據FIFO中已存放的包數,錯誤包指示寄存器在動態的改變,當從FIFO中取出報文時,可以從錯誤包指示器中取出相應的操作,使用本方法,可以在取錯誤包的同時接收新的報文,從而大大提高數據轉發效率。
【附圖說明】
[0009]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0010]圖1為本發明的一種快速處理錯誤包的方法的工作原理圖。
【具體實施方式】
[0011]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0012]實施例一
如附圖1所示,一種快速處理錯誤包的方法,是在數據轉發邏輯之前設置的容錯模塊中,增加一個錯誤包指示寄存器,所述的錯誤包指示寄存器用以實現錯誤包的FIFO的同步存放和取出。
[0013]本方法具體包括:
A、FIF0的輸入端連續接收前級模塊傳過來的數據,每接收完一個報文,將相應包的處理操作代碼寫入錯誤包指示寄存器;
B、FIF0的輸出端,每發送一個報文之前,都在錯誤包指示寄存器中讀取當前包狀態及處理操作代碼;
C、根據讀出來的處理操作代碼,對待發送報文進行相應的操作。
[0014]以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【主權項】
1.一種快速處理錯誤包的方法,是在數據轉發邏輯之前設置的容錯模塊中,增加一個錯誤包指示寄存器,所述的錯誤包指示寄存器用以實現錯誤包的FIFO的同步存放和取出。2.根據權利要求1所述的一種快速處理錯誤包的方法,其特征在于,所述的方法具體包括: A、FIF0的輸入端連續接收前級模塊傳過來的數據,每接收完一個報文,將相應包的處 理操作代碼寫入錯誤包指示寄存器; B、FIF0的輸出端,每發送一個報文之前,都在錯誤包指示寄存器中讀取當前包狀態及 處理操作代碼; C、根據讀出來的處理操作代碼,對待發送報文進行相應的操作。
【專利摘要】本發明涉及報文數據處理技術領域,特別涉及一種快速處理錯誤包的方法。本發明的一種快速處理錯誤包的方法,其額外增加一個錯誤包指示寄存器,根據FIFO中已存放的包數,錯誤包指示寄存器在動態的改變,當從FIFO中取出報文時,可以從錯誤包指示器中取出相應的操作,使用本方法,可以在取錯誤包的同時接收新的報文,從而大大提高數據轉發效率。
【IPC分類】H04L12/863
【公開號】CN105450544
【申請號】CN201510743644
【發明人】畢研山, 于治樓, 姜凱
【申請人】浪潮集團有限公司
【公開日】2016年3月30日
【申請日】2015年11月5日