本發明涉及dpu,特別是涉及一種路由查找方法、系統、設備、介質及程序產品。
背景技術:
1、lpm(longest?prefix?match,最長前綴匹配),是一種在網絡路由和數據包轉發中使用的算法,它用于在路由表中查找最具體的路由條目。該算法的目的是確保數據包能夠按照最長的、最具體的網絡前綴被轉發到正確的目的地。
2、目前,當前行業內實現lpm的方法:cpu端路由協議模塊根據相關路由協議狀態將路由信息分發至路由表項管理模塊,路由表項管理模塊整合路由信息,并通過路由表項下發模塊將整合后的路由信息設置至dpu(數據處理單元)專用tcam芯片中,dpu轉發芯片提取數據包的目的ip作為鍵值送至tcam芯片中進行查找。
3、上述實現lpm的方法還存在以下缺陷:現有的tcam芯片存在成本高、功耗大等缺點;另外,dpu的硬件面積有限,功耗的增加也不利于dpu硬件設計和散熱。因此,亟需一種低成本實現dpu的大容量lpm功能的路由查找方法解決上述問題。
技術實現思路
1、鑒于上述問題,提出了本發明以便提供克服上述問題或者至少部分地解決上述問題的一種路由查找方法、系統、設備、介質及程序產品。
2、為實現上述目的及其他相關目的,本發明提供一種路由查找方法,應用于路由查找系統,所述路由查找系統包括cpu和dpu,所述cpu中設有路由表項管理模塊和表項下發模塊,所述dpu中設有轉發芯片和ddr,所述方法包括:
3、當路由表項管理模塊接收到上層協議分發的路由條目時,將各個所述路由條目拆分成若干個item條目,并將各個item條目添加到表項下發模塊的下發處理鏈中;
4、表項下發模塊按照逆序串接各個所述item條目,獲得串接item條目,并將所述串接item條目設置至ddr中;
5、當轉發芯片接收到數據報文時,提取出所述數據報文的目的ip地址,并將所述目的ip地址設為鍵值,且將所述鍵值送至所述轉發芯片的查找引擎中;
6、所述查找引擎根據所述鍵值對所述串接item條目進行遞歸查找,獲得目標路由條目結果,并將所述目標路由條目結果返回給所述轉發芯片;
7、所述轉發芯片根據所述目標路由條目結果對數據報文進行轉發。
8、可選地,所述item條目包括本條目鍵值、所述鍵值在路由前綴中的偏移、遞歸查找標記以及后續item條目地址;其中,所述路由條目的最后一個item條目保存路由條目結果。
9、可選地,所述查找引擎根據所述鍵值對所述串接item條目進行遞歸查找,獲得目標路由條目結果,包括:
10、所述查找引擎提取部分所述鍵值進行第一個item條目的查找,并判斷是否命中所述第一個item條目的遞歸查找標記;
11、在所述遞歸查找標記為零時,結束遞歸查找,并將第一個item條目作為目標路由條目結果。
12、可選地,所述判斷是否命中第一個item條目中的遞歸查找標記的步驟之后,還包括:
13、在所述遞歸查找標記置位時,所述查找引擎提取部分所述鍵值進行第二個item條目的查找,以此類推,直至查找到最后一個item條目時結束遞歸查找,并將所述最后一個item條目設為目標路由條目。
14、第二方面,本發明還提供一種路由查找系統,所述系統包括cpu和dpu,所述cpu中設有路由表項管理模塊和表項下發模塊,所述dpu中設有轉發芯片和ddr,其中:
15、路由表項管理模塊,用于當接收到上層協議分發的路由條目時,將各個所述路由條目拆分成若干個item條目,并將各個item條目添加到表項下發模塊的下發處理鏈中;
16、表項下發模塊,用于按照逆序串接各個所述item條目,獲得串接item條目,并將所述串接item條目設置至ddr中;
17、轉發芯片,用于當接收到數據報文時,提取出所述數據報文的目的ip地址,并將所述目的ip地址設為鍵值,且將所述鍵值送至所述轉發芯片的查找引擎中;
18、查找引擎,用于根據所述鍵值對所述串接item條目進行遞歸查找,獲得目標路由條目結果,并將所述目標路由條目結果返回給所述轉發芯片;
19、所述轉發芯片,還用于根據所述目標路由條目結果進行報文轉發。
20、第三方面,本發明提供一種電子設備,所述電子設備包括:存儲器與處理器;所述存儲器用于存儲計算機程序;所述處理器用于執行所述存儲器存儲的計算機程序,以使所述電子設備執行如上所述的路由查找方法的步驟。
21、第四方面,本發明提供一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被電子設備執行時實現如上所述的路由查找方法的步驟。
22、第五方面,本發明提供一種計算機程序產品,計算機程序產品中包括計算機程序代碼,當所述計算機程序代碼在計算機上運行時,使得所述計算機實現如上所述的方法。
23、本發明提供的上述一個或多個技術方案,可以具有如下優點或至少實現了如下技術效果:
24、本發明的路由查找方法、系統、設備、介質及程序產品,應用于路由查找系統,所述路由查找系統包括cpu和dpu,所述cpu中設有路由表項管理模塊和表項下發模塊,所述dpu中設有轉發芯片和ddr,所述方法包括:當路由表項管理模塊接收到上層協議分發的路由條目時,將各個所述路由條目拆分成若干個item條目,并將各個item條目添加到表項下發模塊的下發處理鏈中;表項下發模塊按照逆序串接各個所述item條目,獲得串接item條目,并將所述串接item條目設置至ddr中;當轉發芯片接收到數據報文時,提取出所述數據報文的目的ip地址,并將所述目的ip地址設為鍵值,且將所述鍵值送至所述轉發芯片的查找引擎中;所述查找引擎根據所述鍵值對所述串接item條目進行遞歸查找,獲得目標路由條目結果,并將所述目標路由條目結果返回給所述轉發芯片;所述轉發芯片根據所述目標路由條目結果對所述數據報文進行轉發。
25、由此,本發明可以在不依賴專用tcam芯片的情況下,實現dpu的大容量lpm功能,同時降低成本。
1.一種路由查找方法,其特征在于,應用于路由查找系統,所述路由查找系統包括cpu和dpu,所述cpu中設有路由表項管理模塊和表項下發模塊,所述dpu中設有轉發芯片和ddr,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述item條目包括本條目鍵值、所述鍵值在路由前綴中的偏移、遞歸查找標記以及后續item條目地址。
3.根據權利要求1或2所述的方法,其特征在于,所述查找引擎根據所述鍵值對所述串接item條目進行遞歸查找,獲得目標路由條目結果,包括:
4.根據權利要求3所述的方法,其特征在于,所述判斷是否命中第一個item條目中的遞歸查找標記的步驟之后,還包括:
5.一種路由查找系統,其特征在于,所述系統包括cpu和dpu,所述cpu中設有路由表項管理模塊和路由表下發模塊,所述dpu中設有轉發芯片和內部存儲器ddr,其中:
6.根據權利要求5所述的系統,其特征在于,
7.根據權利要求6所述的系統,其特征在于,
8.一種電子設備,其特征在于,所述電子設備包括:存儲器與處理器,其中,所述存儲器用于存儲計算機程序,所述處理器用于執行所述存儲器存儲的計算機程序,以使所述電子設備執行如權利要求1至4中任一項所述方法的步驟。
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有程序,所述程序運行時,用于執行時實現權利要求1至4中任一項所述方法的步驟。
10.一種計算機程序產品,其特征在于,所述計算機程序產品中包括計算機程序代碼,當所述計算機程序代碼在計算機上運行時,使得所述計算機實現如權利要求1至4中任一項所述方法的步驟。