本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及網(wǎng)絡(luò)功能虛擬化技術(shù)領(lǐng)域,具體是指一種虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法。
背景技術(shù):
在NFV的實際應(yīng)用環(huán)境中,各個VNF都是虛擬化的設(shè)備,設(shè)備對數(shù)據(jù)包的轉(zhuǎn)發(fā)需要大量不同類型的表項。這些轉(zhuǎn)發(fā)使用的表項來自于各個控制協(xié)議,為了提高設(shè)備的數(shù)據(jù)包轉(zhuǎn)發(fā)效率,一般設(shè)備在架構(gòu)上都會采用分布式架構(gòu):把各個控制協(xié)議部件和專門用著轉(zhuǎn)發(fā)的部件分離開來,這種分離的方式可以是物理上或者邏輯上的。如圖1所示,常見的設(shè)備系統(tǒng)中包含一個控制面CP和多個轉(zhuǎn)發(fā)面DP1,DP2…DPn。
各個DP上的轉(zhuǎn)發(fā)業(yè)務(wù)繁多,相應(yīng)的也需要對應(yīng)的轉(zhuǎn)發(fā)表項。在轉(zhuǎn)發(fā)面VNF中轉(zhuǎn)發(fā)一個業(yè)務(wù)包的時候,會根據(jù)具體業(yè)務(wù)的特點,依次查詢一次或者多次表,如果這些表沒有組織好,或者缺失,就會造成丟包或者轉(zhuǎn)發(fā)效率低下等問題。
因此,作為控制面VNF如何控制管理轉(zhuǎn)發(fā)表項,使之在各個轉(zhuǎn)發(fā)面VNF中得以合理準確的編排,是NFV實際應(yīng)用中的一個難題。
已有的公開專利暫時沒有看到這方面的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的缺點,提供了一種能夠?qū)崿F(xiàn)合理控制管理轉(zhuǎn)發(fā)表項,使之在各個轉(zhuǎn)發(fā)面中得以準確編排的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法。
為了實現(xiàn)上述目的,本發(fā)明的具有如下構(gòu)成:
該虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法,其特征在于,所述的方法包括以下步驟:
(1)匯集控制面的所有表項,對所述的表項進行分類并獲取關(guān)鍵字;
(2)將從表項進行整合為主表項,所述的主表項將轉(zhuǎn)發(fā)至轉(zhuǎn)發(fā)面;
(3)判斷所述的從表項是否發(fā)生變化,如果是,則將該變化的從表項對應(yīng)的主表項重新整合下發(fā);,否則,繼續(xù)步驟(4);
(4)判斷所述的從表項是否被刪除,如果是,則繼續(xù)步驟(5);,否則,繼續(xù)步驟(3);
(5)判斷該被刪除的從表項對應(yīng)的主表項是否可以部分整合下發(fā),如果是,則整合下發(fā)至轉(zhuǎn)發(fā)面,否則,繼續(xù)步驟(6);
(6)解決該從表項的依賴關(guān)系,將與該從表項存在依賴關(guān)系表項發(fā)送至轉(zhuǎn)發(fā)面。
較佳地,所述的步驟(2)包括以下步驟:
(2-1)根據(jù)關(guān)鍵字查找對應(yīng)的主表項;
(2-2)將從表項中的字段合并至對應(yīng)的主表項;
(2-3)判斷該主表項是否整合完畢,如果是,則將該主表項轉(zhuǎn)發(fā)至轉(zhuǎn)發(fā)面,否則,繼續(xù)步驟(2-1)。
更佳地,所述的步驟(2-1)還包括以下步驟:
(2-1-1)將實際需要的表項類型添加至該主表項的描述中;
(2-2-2)根據(jù)該主表項的描述中的表項類型查找關(guān)鍵字對應(yīng)的從表項。
較佳地,所述的步驟(6)包括以下步驟:
(6-1)判斷該從表項是否依賴其它表項,如果是,則繼續(xù)步驟(6-2),否則,繼續(xù)步驟(6-4);
(6-2)對該從表項所依賴的表項逐一進行解依賴;
(6-3)判斷該從表項所依賴的表項是否都處于可用狀態(tài),如果是,繼續(xù)步驟(6-4),否則,繼續(xù)步驟(6-2)
(6-4)將該從表項發(fā)送至轉(zhuǎn)發(fā)面。
更佳地,所述的步驟(6-2)還包括以下步驟:
(6-2-1)根據(jù)該從表項的關(guān)鍵字查找被依賴的表項;
(6-2-2)判斷所述的被依賴的表項是否存在,如果是,則繼續(xù)步驟(6-2-3),否則,創(chuàng)建一個dummy狀態(tài)的被依賴的表項,繼續(xù)步驟(6-3);
(6-2-3)判斷被依賴的表項是否可用,如果是,則繼續(xù)步驟(6-3),否則,繼續(xù)步驟(6-2-4);
(6-2-4)當被依賴的表項狀態(tài)由可用狀態(tài)變?yōu)椴豢捎脿顟B(tài)或dummy狀態(tài)時,或當被依賴的表項狀態(tài)由可不可用狀態(tài)或dummy狀態(tài)變?yōu)橛脿顟B(tài)時,通知依賴鏈上的所有依賴的表項,觸發(fā)它們的依賴關(guān)系處理流程;
更進一步地,所述的步驟(6-2)還包括以下步驟:
(6-2-5)當被依賴的表項需要被刪除時,保留該表項,并將該表項的狀態(tài)改為dummy狀態(tài)。
采用了該發(fā)明中的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法,通過三種模式的協(xié)作,將轉(zhuǎn)發(fā)表項分類整合,對缺失以及依賴表項進行處理,實現(xiàn)了合理控制管理轉(zhuǎn)發(fā)表項,使之在各個轉(zhuǎn)發(fā)面中得以準確編排,具有廣泛的應(yīng)用范圍。
附圖說明
圖1為現(xiàn)有技術(shù)的表項轉(zhuǎn)發(fā)示意圖。
圖2為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的整合模式的原理圖。
圖3為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的依賴模式的原理圖。
圖4為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的混合模式的原理圖。
圖5為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的整合模式的示意圖。
圖6為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的依賴模式的示意圖。
圖7為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的混合模式的示意圖。
圖8為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的控制面和轉(zhuǎn)發(fā)面的示意圖。
圖9為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的整合處理流程的示意圖。
圖10為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的依賴處理流程的示意圖。
圖11為本發(fā)明的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法的被依賴處理流程的示意圖。
具體實施方式
為了能夠更清楚地描述本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實施例來進行進一步的描述。
該虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法,其特征在于,所述的方法包括以下步驟:
(1)匯集控制面的所有表項,對所述的表項進行分類并獲取關(guān)鍵字;
(2)將從表項進行整合為主表項,所述的主表項將轉(zhuǎn)發(fā)至轉(zhuǎn)發(fā)面;
(3)判斷所述的從表項是否發(fā)生變化,如果是,則將該變化的從表項對應(yīng)的主表項重新整合下發(fā);,否則,繼續(xù)步驟(4);
(4)判斷所述的從表項是否被刪除,如果是,則繼續(xù)步驟(5);,否則,繼續(xù)步驟(3);
(5)判斷該被刪除的從表項對應(yīng)的主表項是否可以部分整合下發(fā),如果是,則整合下發(fā)至轉(zhuǎn)發(fā)面,否則,繼續(xù)步驟(6);
(6)解決該從表項的依賴關(guān)系,將與該從表項存在依賴關(guān)系表項發(fā)送至轉(zhuǎn)發(fā)面。
在一種較佳的實施方式中,所述的步驟(2)包括以下步驟:
(2-1)根據(jù)關(guān)鍵字查找對應(yīng)的主表項;
(2-2)將從表項中的字段合并至對應(yīng)的主表項;
(2-3)判斷該主表項是否整合完畢,如果是,則將該主表項轉(zhuǎn)發(fā)至轉(zhuǎn)發(fā)面,否則,繼續(xù)步驟(2-1)。
在一種更佳的實施方式中,所述的步驟(2-1)還包括以下步驟:
(2-1-1)將實際需要的表項類型添加至該主表項的描述中;
(2-2-2)根據(jù)該主表項的描述中的表項類型查找關(guān)鍵字對應(yīng)的從表項。
在一種較佳的實施方式中,所述的步驟(6)包括以下步驟:
(6-1)判斷該從表項是否依賴其它表項,如果是,則繼續(xù)步驟(6-2),否則,繼續(xù)步驟(6-4);
(6-2)對該從表項所依賴的表項逐一進行解依賴;
(6-3)判斷該從表項所依賴的表項是否都處于可用狀態(tài),如果是,繼續(xù)步驟(6-4),否則,繼續(xù)步驟(6-2)
(6-4)將該從表項發(fā)送至轉(zhuǎn)發(fā)面。
在一種更佳的實施方式中,所述的步驟(6-2)還包括以下步驟:
(6-2-1)根據(jù)該從表項的關(guān)鍵字查找被依賴的表項;
(6-2-2)判斷所述的被依賴的表項是否存在,如果是,則繼續(xù)步驟(6-2-3),否則,創(chuàng)建一個dummy狀態(tài)的被依賴的表項,繼續(xù)步驟(6-3);
(6-2-3)判斷被依賴的表項是否可用,如果是,則繼續(xù)步驟(6-3),否則,繼續(xù)步驟(6-2-4);
(6-2-4)當被依賴的表項狀態(tài)由可用狀態(tài)變?yōu)椴豢捎脿顟B(tài)或dummy狀態(tài)時,或當被依賴的表項狀態(tài)由可不可用狀態(tài)或dummy狀態(tài)變?yōu)橛脿顟B(tài)時,通知依賴鏈上的所有依賴的表項,觸發(fā)它們的依賴關(guān)系處理流程;
在一種更進一步的實施方式中,所述的步驟(6-2)還包括以下步驟:
(6-2-5)當被依賴的表項需要被刪除時,保留該表項,并將該表項的狀態(tài)改為dummy狀態(tài)。
在實際應(yīng)用中,首先根據(jù)轉(zhuǎn)發(fā)面對控制面表項的需求,我們抽象出以下幾種模型:
1)整合模式:
控制面有豐富的各個控制協(xié)議,各種控制協(xié)議會獨立產(chǎn)生相應(yīng)的表項。轉(zhuǎn)發(fā)面所需要的對某一個業(yè)務(wù)數(shù)據(jù)包的轉(zhuǎn)發(fā),為了高效的對這種業(yè)務(wù)進行轉(zhuǎn)發(fā),避免多次查表,把這項業(yè)務(wù)所需要的表項在轉(zhuǎn)發(fā)面中進行集中聚焦在一種表項上是一種直接的方式。
如圖2所示,業(yè)務(wù)的轉(zhuǎn)發(fā)表項來自于控制面的多種不同的表項,我們要解決的問題有兩個:
1、在表1,表2…表n準備好了整合完畢后,才對其進行轉(zhuǎn)發(fā)表項的下發(fā)
2、當表1,表2…表n中的某一個有變更時,變更能及時的體現(xiàn)在轉(zhuǎn)發(fā)表項上
這種模型適用于控制面表項源和轉(zhuǎn)發(fā)面表項多對一的情況,是一個通用的模型,本身包含了一對一的情況。
2)依賴模式:
某個業(yè)務(wù)的轉(zhuǎn)發(fā)需要查詢多個表,于是,在轉(zhuǎn)發(fā)面VNF查詢最后一個表項之前,必須保證前面的幾種表項都要存在,才能夠保證該項業(yè)務(wù)的數(shù)據(jù)包能夠順利進行轉(zhuǎn)發(fā)。
如圖3所示,某一項業(yè)務(wù)的包轉(zhuǎn)發(fā),需要從查找n次表,才能最終轉(zhuǎn)發(fā)出去,從轉(zhuǎn)發(fā)表1,轉(zhuǎn)發(fā)表2…轉(zhuǎn)發(fā)表n,每個轉(zhuǎn)發(fā)表項都對應(yīng)于控制面的表,于是,在對表項進行編排的時候,有了這種模式:轉(zhuǎn)發(fā)表項2依賴于轉(zhuǎn)發(fā)表項1,轉(zhuǎn)發(fā)表項n以來于轉(zhuǎn)發(fā)表項n-1。
這種模型適用于轉(zhuǎn)發(fā)面VNF在轉(zhuǎn)發(fā)包業(yè)務(wù)中需要多次查表的情況,只有所有表對準備好,才能進行轉(zhuǎn)發(fā)。
3)混合模式
這種模型是綜合整合和依賴需要的一種新的模型:某一種業(yè)務(wù)轉(zhuǎn)發(fā)需要進行多次查表,其中某一步的轉(zhuǎn)發(fā)表是由控制面VNF的幾種表項整合而來,如圖4所示。
該業(yè)務(wù)的轉(zhuǎn)發(fā)需要依次查詢轉(zhuǎn)發(fā)表1和轉(zhuǎn)發(fā)表2,其中轉(zhuǎn)發(fā)表1是由控制面VNF中的表1和表2進行整合而來。
在一個具體的實施例中,對于實際的業(yè)務(wù),整合、依賴、混合模型的選擇,是依賴業(yè)務(wù)轉(zhuǎn)發(fā)的方式來決定的,可以根據(jù)業(yè)務(wù)模塊的具體實現(xiàn)來進行選擇。下面舉例進行說明。
1)整合模式
如圖5所示,在做MPLS轉(zhuǎn)發(fā)時,為了實現(xiàn)高效的轉(zhuǎn)發(fā),最終的轉(zhuǎn)發(fā)表會包含路由和需要封的標簽這兩個部分,在業(yè)務(wù)實現(xiàn)的時候,路由表項和FEC標簽表項是分開實現(xiàn)的,在最終轉(zhuǎn)發(fā)表的時候只有一個,這個就是整合模型。
2)依賴模式
如圖6所示,在做報文路由轉(zhuǎn)發(fā)時,先查路由表,再查接口表。在這里,接口表示依賴于路由表的,所以表項在進行表項編排的時候,要確保某一個路由表項對應(yīng)的接口表項存在時,才會向轉(zhuǎn)發(fā)面下發(fā)路由表,以確保轉(zhuǎn)發(fā)表項的有效性。
3)混合模式
如圖7所示,混合模式對應(yīng)于稍微復雜的轉(zhuǎn)發(fā)方式。在這里,最終的轉(zhuǎn)發(fā)流程,既有依賴關(guān)系,各個具體的轉(zhuǎn)發(fā)表的形成也有可能是從更為小的表項整合而來。
依然以上述MPLS報文轉(zhuǎn)發(fā)為例,在其中,最終的報文轉(zhuǎn)發(fā)還要依賴于接口表。我們的表項編排方式要確保整合和依賴都處理好了,才把MPLS轉(zhuǎn)發(fā)表下發(fā)到轉(zhuǎn)發(fā)平面。
上文對控制面VNF中的表項到轉(zhuǎn)發(fā)面VNF中表項的關(guān)系抽象出了三種模型,之后,針對這一模型,提出具體的解決方案,解決NFV應(yīng)用中轉(zhuǎn)發(fā)表項編排問題。
在另一個具體的實施例中,如圖8所示,引入表項編排部件,在控制面VNF和轉(zhuǎn)發(fā)面VNF之間,它起到承上啟下的作用,用于對各個控制協(xié)議生成的表項進行編排,以滿足轉(zhuǎn)發(fā)面VNF的轉(zhuǎn)發(fā)需求。
在表項編排部件中,匯集所有控制面VNF的所有表項,表分為多種類型,每種類型的所有條目以樹形組織,每個都有獨一無二的關(guān)鍵字信息,構(gòu)成該類型表項的集合。這樣的組織,一方面分開不同類型的表項,另一方面,可以根據(jù)所需要的關(guān)鍵字,快速找到對應(yīng)的條目。
在表項整合的時候,會分為主表項和從表項,主表項有一個,從表項有多個。整合所要做的,就是把所有可以整合的從表項條目整合到主表項上,然后下發(fā)給轉(zhuǎn)發(fā)面。主表項上會描述該類型的表項需要整合哪幾種從類型的表項,在整合時,主表項依據(jù)的是構(gòu)建對應(yīng)的各個從表項所需要的關(guān)鍵字來找到所需要整合的從表項,并從找到的從表項的條目中取得需要下發(fā)的字段,填入主表項條目中,組成一個轉(zhuǎn)發(fā)面VNF需要的實際轉(zhuǎn)發(fā)條目,并通過消息傳遞的方式下給轉(zhuǎn)發(fā)面VNF。
在一個主表項整合多個從表項的情況下,如果從表項不全,根據(jù)業(yè)務(wù)的特點,有可能這時候也可以把該表項下發(fā)給轉(zhuǎn)發(fā)面VNF,這種情況,我們稱之為部分整合,這個過程如圖9所示。
被整合的是各個從表項,它們除掉被動地接受被主表項整合外,還有以下兩種情況需要處理:
1、從表項的表項條目內(nèi)容發(fā)生變化后,要通知出發(fā)主表項去進行重新整合下發(fā)
2、從表項的表項條目刪除后,要通知出發(fā)主表項去重新進行整合下發(fā),這時候分為兩種情況:
主表項可以部分整合下發(fā),在缺少該從表項的情況下依然可以整合下發(fā)給轉(zhuǎn)發(fā)面VNF;
主表項由于缺少該從表項,而該轉(zhuǎn)發(fā)業(yè)務(wù)要求不能缺少該從表項的相關(guān)字段,這時候要先向轉(zhuǎn)發(fā)面VNF下刪除,然后轉(zhuǎn)為依賴處理。
為了管理好依賴關(guān)系,表項整合部件把表項條目分為下面幾種狀態(tài):
可用狀態(tài):該表項狀態(tài)正常,依賴關(guān)系已經(jīng)解決,可以正常進行下發(fā)
不可用狀態(tài):該表項還依賴于其它表項,所依賴的表項處于不可用狀態(tài)或者dummy狀態(tài),此時不能下發(fā)
dummy狀態(tài):當一個表項所依賴的表項不存在時,創(chuàng)建的假的表項節(jié)點,也不可以進行下發(fā)
但從控制面VNF收到一個表項條目時,需要根據(jù)該表項所依賴的各個其它表項,逐一解決依賴關(guān)系。其過程如下:根據(jù)查找被依賴的表項所需要的關(guān)鍵字來進行查找,如果被依賴的表項不存在,則創(chuàng)建一個dummy狀態(tài)的被依賴表項,如果被依賴的表項存在,但是處于不可用狀態(tài),上面這兩種情況,都會結(jié)束依賴關(guān)系的解決。如果被依賴的表項存在并且處于可用狀態(tài),則繼續(xù)這個過程。最終,在依賴關(guān)系解決結(jié)束時,如果所有被依賴的表項都處于可用狀態(tài),則置該表項狀態(tài)也處于可用狀態(tài),并觸發(fā)下發(fā)轉(zhuǎn)發(fā)面VNF,否則,則置不可用狀態(tài),不能立即進行下發(fā),并把該表項條目掛到第一個未解決依賴關(guān)系的被依賴表項下面(依賴關(guān)系鏈見下面的被依賴處理部分)。
每當該表項內(nèi)容發(fā)生變化時,都要重新做上面的依賴關(guān)系處理。當從控制面VNF收到該表項的刪除時,如果之前有下發(fā)過該表項,則要向控制面VNF下發(fā)刪除表項的操作,如圖10所示。
一個條目被別的條目所依賴,依賴和被依賴的條目可以是同種類型的,也可以是異種類型的。這個在表項條目上,使用依賴鏈來管理表示,如圖11所示。該表項被一系列其它類型的表項所依賴。這個依賴鏈的構(gòu)建,是在前面依賴處理部分構(gòu)建的。
被依賴的處理邏輯為:
當被依賴的表項狀態(tài)由不可用狀態(tài)或者dummy狀態(tài)轉(zhuǎn)為可用狀態(tài)時,需要通知依賴鏈上的所有依賴表項,觸發(fā)它們的依賴關(guān)系處理流程;
當被依賴的表項狀態(tài)由可用狀態(tài)轉(zhuǎn)為不可用狀態(tài)或者dummy狀態(tài)時,同樣需要通知依賴鏈上的所有依賴表項,觸發(fā)它們的依賴關(guān)系處理流程;
當被依賴的表項被刪除時,不立即刪除它,而是置dummy狀態(tài),用來進行依賴它的表項的依賴關(guān)系解決。
采用了該發(fā)明中的虛擬化設(shè)備中轉(zhuǎn)發(fā)表項的編排方法,通過三種模式的協(xié)作,將轉(zhuǎn)發(fā)表項分類整合,對缺失以及依賴表項進行處理,實現(xiàn)了合理控制管理轉(zhuǎn)發(fā)表項,使之在各個轉(zhuǎn)發(fā)面中得以準確編排,具有廣泛的應(yīng)用范圍。
在此說明書中,本發(fā)明已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認為是說明性的而非限制性的。