[發明專利]基于FPGA的匹配動作表的處理方法、邏輯電路和設備有效
| 申請號: | 202110349960.9 | 申請日: | 2021-03-31 |
| 公開(公告)號: | CN113037634B | 公開(公告)日: | 2022-12-06 |
| 發明(設計)人: | 李遠平 | 申請(專利權)人: | 深圳市芯源網絡科技有限公司 |
| 主分類號: | H04L45/7453 | 分類號: | H04L45/7453;H04L69/22 |
| 代理公司: | 深圳市科吉華烽知識產權事務所(普通合伙) 44248 | 代理人: | 胡吉科 |
| 地址: | 518000 廣東省深圳市寶安區西鄉*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 fpga 匹配 動作 處理 方法 邏輯電路 設備 | ||
1.一種基于FPGA的匹配動作表的處理方法,其特征在于:
所述基于FPGA的匹配動作表的輸入信號包括包頭信息、元組數據信息;所述元組數據信息包含數據包的輸入端口號、輸出端口號、包長、優先級、多播組號以及用戶自定義的包信息;
所述基于FPGA的匹配動作表的處理方法包括:
CPU配置查找表項;計算P4程序中的查找關鍵字、動作碼以及動作數據的位寬,定義相同位寬的查找表模塊寫數據信號和讀數據信號;計算表項大小的位寬,定義相同位寬的表項索引信號;
當一個網絡包的包頭信息、元組數據信息被輸入后,從包頭信息和元組數據信息提取查找關鍵字;
將關鍵字送入查找表進行匹配查找;計算P4程序中的查找關鍵字的位寬,定義相同位寬的查找關鍵字信號;根據P4程序定義的查找關鍵字,將包頭協議字段或者某個元組數據字段賦值給查找關鍵字信號;根據P4程序中的查找算法選擇語句,選擇對應的查找表模塊進行實例化,計算P4程序中的查找關鍵字的位寬,定義相同位寬的查找關鍵字輸入信號;計算P4程序中的動作數據和動作執行單元數量的位寬,定義相同位寬的匹配結果數據輸出信號;
查找完成后,查找表輸出匹配成功或失敗的信號、以及匹配結果數據;
如果匹配成功,則按照匹配結果中的動作碼選擇一個動作執行單元執行動作,動作執行單元是將每一個動作的P4語句轉換為動作執行單元的Verilog語句,對包頭協議字段和元組數據進行邏輯運算、算術運算和修改、添加操作,最后將新產生的包頭協議字段、元組數據送給下級匹配動作表,進行后續包處理。
2.根據權利要求1所述的基于FPGA的匹配動作表的處理方法,其特征在于:還包括:對輸入的包頭信息和元組數據寄存器打拍,將打拍后輸出的包頭信息和元組數據與查找表模塊輸出的匹配結果信號時序對齊。
3.根據權利要求2所述的基于FPGA的匹配動作表的處理方法,其特征在于:所述CPU配置查找表項,先將需要配置的表項內容寫入CPU配置模塊內部的寫數據寄存器,然后寫CPU配置模塊的表項索引寄存器和讀寫選擇寄存器,最后寫CPU配置模塊的表項訪問啟動標志位;其中所述表項內容包括查找關鍵字、動作碼和動作數據。
4.根據權利要求1所述的基于FPGA的匹配動作表的處理方法,其特征在于:所述包頭信息包含前級報文解析器解析出的包頭各協議層的協議字段,以及協議字段的有效標志位。
5.一種基于FPGA的匹配動作表的邏輯電路,其特征在于:所述基于FPGA的匹配動作表的輸入信號包括包頭信息、元組數據信息;所述元組數據信息包含數據包的輸入端口號、輸出端口號、包長、優先級、多播組號以及用戶自定義的包信息;
所述基于FPGA的匹配動作表的邏輯電路包括:
CPU配置模塊,用于對查找表項的配置,包括對查找表模塊的讀操作和寫操作;計算P4程序中的查找關鍵字、動作碼以及動作數據的位寬,定義相同位寬的查找表模塊寫數據信號和讀數據信號;計算表項大小的位寬,定義相同位寬的表項索引信號;
查找關鍵字構造模塊,用于產生查表關鍵字,并將查找關鍵字輸出給查找表模塊;當一個網絡包的包頭信息、元組數據信息被輸入后,從包頭信息和元組數據信息提取查找關鍵字;計算P4程序中的查找關鍵字的位寬,定義相同位寬的查找關鍵字信號;根據P4程序定義的查找關鍵字,將包頭協議字段或者某個元組數據字段賦值給查找關鍵字信號;
查找表模塊,使用輸入的查找關鍵字與查找表項中的匹配關鍵字進行匹配,并輸出匹配成功信號、匹配失敗信號,以及匹配結果數據到動作執行模塊;根據P4程序中的查找算法選擇語句,選擇對應的查找表模塊進行實例化,計算P4程序中的查找關鍵字的位寬,定義相同位寬的查找關鍵字輸入信號;計算P4程序中的動作數據和動作執行單元數量的位寬,定義相同位寬的匹配結果數據輸出信號;查找完成后,查找表輸出匹配成功或失敗的信號、以及匹配結果數據;
動作執行模塊,P4程序中定義的查找表的每一個動作都實例化成一個動作執行單元,方法是將每一個動作的P4語句轉換為動作執行單元的Verilog語句,按照匹配結果中的動作碼選擇一個動作執行單元執行動作,對包頭協議字段和元組數據進行邏輯運算、算術運算和修改、添加操作,最后將新產生的包頭協議字段、元組數據送給下級匹配動作表,進行后續包處理。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市芯源網絡科技有限公司,未經深圳市芯源網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110349960.9/1.html,轉載請聲明來源鉆瓜專利網。





