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