本申請涉及報文匹配,尤其涉及一種基于fpga的線速比特掩碼報文匹配方法及裝置。
背景技術:
1、網絡中對特定的報文進行特定的處理時,通常需要在網絡設備上配置報文規則。相關技術方案中,網絡設備接收到報文后,從報文中提取五元組信息,采用掩碼五元組匹配方法和哈希算法進行報文的規則匹配,以實現快速的數據包匹配,但是會降低報文匹配的精度。掩碼規則功能通常由tcam芯片(ternary?content?addressable?memory,三態內容尋址存儲器)來實現。對于規則數量要求不高的報文處理的應用場景來說,由于該芯片價格比較貴,導致產品的成本增加,并且有帶寬瓶頸無法實現線速匹配。
技術實現思路
1、本申請的目的在于提供一種基于fpga的線速比特掩碼報文匹配方法及裝置,能夠線速的實現報文的規則匹配,降低產品的成本。
2、第一方面,本申請提供了一種基于fpga的線速比特掩碼報文匹配方法,該fpga包括至少一個塊ram,塊ram包括多個存儲地址,存儲地址所對應的存儲空間具有n個比特位,方法包括:
3、獲取預設的n個匹配規則,每個匹配規則包括規則號、關鍵字和所述關鍵字對應的掩碼,所述規則號為0~n-1,n為自然數;
4、根據n個匹配規則在所述塊ram中執行匹配規則的配置,匹配規則的配置的步驟包括:針對每一個匹配規則,根據匹配規則中掩碼的有效位以及對應的關鍵字,確定所述匹配規則所對應的至少一個存儲地址,以匹配規則的規則號確定存儲地址的n個比特位中所要配置的比特位,在所要配置的比特位中寫入用以表征匹配規則生效的生效比特值;
5、對接收報文進行解析生成五元組信息,以五元組信息作為塊ram的存儲地址,讀取存儲地址所對應的多個生效比特值,基于每一個生效比特值確定接收報文命中的各個匹配規則的規則號。
6、第二方面,本申請提供一種基于fpga的線速比特掩碼報文匹配裝置,該fpga包括至少一個塊ram,塊ram包括多個存儲地址,存儲地址所對應的存儲空間具有n個比特位,裝置包括:
7、獲取模塊,用于獲取預設的n個匹配規則,每個匹配規則包括規則號、關鍵字和關鍵字對應的掩碼,規則號為0~n-1,n為自然數;
8、規則配置模塊,用于根據n個匹配規則在塊ram中執行匹配規則的配置,匹配規則的配置的步驟包括:針對每一個匹配規則,根據匹配規則中掩碼的有效位以及對應的關鍵字,確定匹配規則所對應的至少一個存儲地址,以匹配規則的規則號確定存儲地址的n個比特位中所要配置的比特位,在所要配置的比特位中寫入用以表征匹配規則生效的生效比特值;
9、報文匹配模塊,用于對接收報文進行解析生成五元組信息,以五元組信息作為塊ram的存儲地址,讀取存儲地址所對應的多個生效比特值,基于各個生效比特值所對應的各個比特位,確定接收報文命中的各個匹配規則的規則號。
10、第三方面,本申請提供一種通信設備,包括如上所述的基于fpga的線速比特掩碼報文匹配裝置。
11、本申請根據預設的匹配規則,實現在塊ram中匹配規則的配置,能夠直接以五元組信息作為塊ram的讀地址,在塊ram中進行規則匹配的查找,能夠線速的實現報文的規則匹配,并能夠提高報文精確匹配。利用fpga內部的塊ram實現匹配規則的存儲功能和報文的規則匹配功能,不采用外部tcam的技術方案,能夠降低產品的成本。
1.一種基于fpga的線速比特掩碼報文匹配方法,其特征在于,所述fpga包括至少一個塊ram,所述塊ram包括多個存儲地址,所述存儲地址所對應的存儲空間具有n個比特位,所述方法包括:
2.根據權利要求1所述的基于fpga的線速比特掩碼報文匹配方法,其特征在于,根據所述匹配規則中掩碼的有效位以及對應的關鍵字,確定所述匹配規則所對應的至少一個存儲地址,包括:
3.根據權利要求1所述的基于fpga的線速比特掩碼報文匹配方法,其特征在于,所述fpga包括第一塊ram、第二塊ram和第三塊ram,所述關鍵字為源端口的高八比特位、源端口的低八比特位和協議號,所述掩碼分別對應為源端口的高八比特位掩碼、源端口的低八比特位掩碼和協議號掩碼,所述匹配規則的配置的步驟具體包括:
4.根據權利要求3所述的基于fpga的線速比特掩碼報文匹配方法,其特征在于,基于所述至少一個生效比特值確定所述接收報文命中的至少一個匹配規則的規則號,包括:
5.根據權利要求1所述的基于fpga的線速比特掩碼報文匹配方法,其特征在于,所述fpga包括第四塊ram、第五塊ram和第六塊ram,所述關鍵字為目的端口的高八比特位、目的端口的低八比特位和協議號,所述掩碼分別對應為目的端口的高八比特位掩碼、目的端口的低八比特位掩碼和協議號掩碼,所述匹配規則的配置的步驟具體包括:
6.根據權利要求5所述的基于fpga的線速比特掩碼報文匹配方法,其特征在于,基于所述至少一個生效比特值確定所述接收報文命中的至少一個匹配規則的規則號,包括:
7.根據權利要求1所述的基于fpga的線速比特掩碼報文匹配方法,其特征在于,所述fpga包括16個第七塊ram,所述關鍵字為源ip地址關鍵字、目的ip地址關鍵字、固定位置特征碼關鍵字中的其中之一,所述掩碼對應為源ip地址掩碼、目的ip地址掩碼、固定位置特征碼掩碼中的其中之一,所述源ip地址關鍵字、源ip地址掩碼、目的ip地址關鍵字、目的ip地址掩碼、固定位置特征碼關鍵字及固定位置特征碼掩碼均為128位比特,所述匹配規則的配置的步驟具體包括:
8.根據權利要求1所述的基于fpga的線速比特掩碼報文匹配方法,其特征在于,所述fpga還包括k個lut?ram,所述lut?ram包括多個存儲地址,所述存儲地址所對應的存儲空間具有m個比特位,所述匹配規則的配置的步驟包括:
9.一種基于fpga的線速比特掩碼報文匹配裝置,其特征在于,所述fpga包括至少一個塊ram,所述塊ram包括多個存儲地址,所述存儲地址所對應的存儲空間具有n個比特位,所述裝置包括:
10.一種通信設備,其特征在于,包括如權利要求9所述的基于fpga的線速比特掩碼報文匹配裝置。