支持掩碼匹配的流表卸載方法、計算機設(shè)備及介質(zhì)
技術(shù)領(lǐng)域
[0001] 本申請涉及計算機技術(shù)領(lǐng)域,尤其涉及支持掩碼匹配的流表卸載方法、計算機設(shè)備及介質(zhì)。
背景技術(shù)
[0002] 隨著云計算、數(shù)據(jù)中心、網(wǎng)絡(luò)虛擬化等技術(shù)的發(fā)展,大量應(yīng)用虛擬機和虛擬設(shè)備,并且需要提高虛擬設(shè)備與外部設(shè)備之間的流量轉(zhuǎn)發(fā)性能。流量轉(zhuǎn)發(fā)的原理是根據(jù)流表項特征匹配結(jié)果來執(zhí)行對應(yīng)的流表項操作,例如流量轉(zhuǎn)發(fā)、流量分析等?,F(xiàn)有技術(shù)中,為了提高流量轉(zhuǎn)發(fā)性能,通過硬件卸載將流量轉(zhuǎn)發(fā)業(yè)務(wù)卸載到專用硬件上,例如智能網(wǎng)卡,讓專用硬件來存儲和維護流表,進行流表項特征匹配和執(zhí)行流表項操作。但是,現(xiàn)有技術(shù)中的流表卸載方案一般用于精確匹配流表,也就是支持精確匹配的流表卸載。對于支持掩碼匹配的流表也即掩碼匹配流表,現(xiàn)有技術(shù)中的流表卸載方案占用大量的資源且運行效率低下。例如,需要匹配的網(wǎng)段是1.1.0.0且?guī)в醒诖a16,二進制形式的掩碼表示為32位中的高16位是1而其它位是0。因此,基于該掩碼,為了能夠匹配1.1網(wǎng)段下的所有可能的網(wǎng)絡(luò)地址,支持精確匹配的流表卸載需要提供255?乘以255條的流表項,這樣占用大量的資源且查表效率低下。
[0003] 為此,本申請?zhí)峁┝艘环N支持掩碼匹配的流表卸載方法、計算機設(shè)備及介質(zhì),用于應(yīng)對現(xiàn)有技術(shù)中的技術(shù)難題。
發(fā)明內(nèi)容
[0004] 第一方面,本申請?zhí)峁┝艘环N支持掩碼匹配的流表卸載方法。所述流表卸載方法包括:確定第一流表轉(zhuǎn)發(fā)業(yè)務(wù)相關(guān)聯(lián)的第一流表匹配長度、第一流表規(guī)格和第一報文分層匹配信息,其中,所述第一流表匹配長度是所述第一流表轉(zhuǎn)發(fā)業(yè)務(wù)的用于掩碼匹配的流表項特征的數(shù)據(jù)長度,所述第一流表規(guī)格是所述第一流表轉(zhuǎn)發(fā)業(yè)務(wù)的用于掩碼匹配的流表項的數(shù)量,所述第一報文分層匹配信息指示所述第一流表轉(zhuǎn)發(fā)業(yè)務(wù)是否分別需要匹配二層報文特征、三層報文特征和四層報文特征;基于所述第一流表匹配長度與流表項存儲寬度之間的比較以及所述第一流表規(guī)格與流表項存儲數(shù)量之間的比較,確定用于多個三態(tài)內(nèi)容尋址存儲器的第一拼接方式,其中,所述多個三態(tài)內(nèi)容尋址存儲器中的每一個三態(tài)內(nèi)容尋址存儲器具有所述流表項存儲寬度和所述流表項存儲數(shù)量;按照所述第一拼接方式,確定如何設(shè)定所述多個三態(tài)內(nèi)容尋址存儲器各自的配置參數(shù)寄存器中的使能域、寬度拼接域和深度拼接域,從而得到用于所述第一流表轉(zhuǎn)發(fā)業(yè)務(wù)的第一業(yè)務(wù)配置,所述第一業(yè)務(wù)配置還包括所述第一報文分層匹配信息,其中,所述使能域指示是否有效,所述寬度拼接域指示是否開始寬度拼接,所述深度拼接域指示是否開始深度拼接;響應(yīng)于所述第一流表轉(zhuǎn)發(fā)業(yè)務(wù)的第一掩碼匹配流表的下發(fā),獲取所述第一業(yè)務(wù)配置,基于所述多個三態(tài)內(nèi)容尋址存儲器各自的按照所述第一業(yè)務(wù)配置來設(shè)定的配置參數(shù)寄存器,拼接所述多個三態(tài)內(nèi)容尋址存儲器中的一個或者多個三態(tài)內(nèi)容尋址存儲器從而得到用于所述第一流表轉(zhuǎn)發(fā)業(yè)務(wù)的第一拼接后三態(tài)內(nèi)容尋址存儲器,然后,存儲所述第一掩碼匹配流表到所述第一拼接后三態(tài)內(nèi)容尋址存儲器。
[0005] 通過本申請的第一方面,通過靈活地設(shè)定拼接方式以及確定如何設(shè)定各個三態(tài)內(nèi)容尋址存儲器各自的配置參數(shù)寄存器中的使能域、寬度拼接域和深度拼接域,從而生成的相應(yīng)的業(yè)務(wù)配置,這樣可以針對不同的流表轉(zhuǎn)發(fā)業(yè)務(wù)各自的流表匹配需求,通過不同的業(yè)務(wù)配置來提取對應(yīng)的特征用于查表操作,進而實現(xiàn)了支持掩碼匹配的流表卸載,不僅支持動態(tài)劃分流表資源而且可以結(jié)合用戶定制化需要來提供細顆粒度的業(yè)務(wù)配置和報文處理方案,提高了資源利用率、查表效率和流表復用率。
[0006] 在本申請的第一方面的一種可能的實現(xiàn)方式中,所述流表卸載方法還包括:響應(yīng)于所述第一流表轉(zhuǎn)發(fā)業(yè)務(wù)的第一報文的掩碼匹配請求,獲取所述第一業(yè)務(wù)配置,基于所述第一業(yè)務(wù)配置確定所述多個三態(tài)內(nèi)容尋址存儲器中的所述一個或者多個三態(tài)內(nèi)容尋址存儲器為所述第一拼接后三態(tài)內(nèi)容尋址存儲器,然后,基于所述第一業(yè)務(wù)配置中的所述第一報文分層匹配信息,提取所述第一報文的特征用于在所述第一拼接后三態(tài)內(nèi)容尋址存儲器中進行與所述第一報文的掩碼匹配請求對應(yīng)的查表操作。
[0007] 在本申請的第一方面的一種可能的實現(xiàn)方式中,與所述第一報文的掩碼匹配請求對應(yīng)的查表操作通過多級報文處理模塊進行,所述多級報文處理模塊包括用于二層報文特征匹配的第一級報文處理模塊、用于三層報文特征匹配的第二級報文處理模塊和用于四層報文特征匹配的第三級報文處理模塊。
[0008] 在本申請的第一方面的一種可能的實現(xiàn)方式中,所述第一級報文處理模塊、所述第二級報文處理模塊和所述第三級報文處理模塊均為流水線處理模型并且按照從二層報文特征到三層報文特征再到四層報文特征的次序進行級聯(lián)匹配處理。