專利名稱:基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域技術(shù),尤其涉及一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)方法及系統(tǒng)。
背景技術(shù):
Openflow 是目前在 SDN (Software Defined Networking)網(wǎng)絡(luò)中最主要的一種方案。為了獲得更多的流條目數(shù),Openflow交換機(jī)系統(tǒng)中根據(jù)Openflow的規(guī)范要求往往支持多級(jí)流表,多級(jí)流表是指一個(gè)進(jìn)入Openflow交換機(jī)的報(bào)文可以根據(jù)不同的字段在不同的流表中進(jìn)行查找,并且前一級(jí)流表的結(jié)果可以影響后一級(jí)流表的查表過程。現(xiàn)有技術(shù)中,為了提高系統(tǒng)的靈活性,往往通過TCAM (ternary contentaddressable memory)表的形式構(gòu)建多級(jí)流表,但是在 ASIC (Application SpecificIntegrated Circuit)設(shè)計(jì)過程中,若為了獲得更多的流表?xiàng)l目,勢(shì)必需要增加TCAM表的數(shù)目,而由于TCAM的成本較高,給整個(gè)系統(tǒng)的成本帶來了負(fù)擔(dān),顯然,這是不切實(shí)際的。
發(fā)明內(nèi)容
本發(fā)明所需解決的技術(shù)問題在于提供一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)方法,以較低成本實(shí)現(xiàn)Openflow多級(jí)流表的報(bào)文轉(zhuǎn)發(fā)機(jī)制。 相應(yīng)地,本發(fā)明還提供一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)系統(tǒng)。為解決上述技術(shù)問題,本發(fā)明所采取的技術(shù)方案為
一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)方法,包括如下步驟
51、至少構(gòu)建依次串行設(shè)置的第一、第二、第三級(jí)流表,其中,第一、第二級(jí)流表以TCAM表的形式構(gòu)建,第三級(jí)流表以哈希表的形式構(gòu)建,所述第一、第二、第三級(jí)流表可單獨(dú)使用、或組合使用;
52、接收?qǐng)?bào)文并確定該報(bào)文所需查找的流表;若該報(bào)文只需查找一級(jí)流表,則根據(jù)報(bào)文內(nèi)容在對(duì)應(yīng)的第一、或第二、或第三級(jí)流表中查找并獲得相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;若該報(bào)文需要查找多級(jí)流表,則按照所述各級(jí)流表的先后次序分別進(jìn)行查找,并且在前一級(jí)流表中獲取可作為后一級(jí)流表輸入的一中間參數(shù),直至根據(jù)報(bào)文內(nèi)容查找得到該報(bào)文相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;
53、根據(jù)所述報(bào)文轉(zhuǎn)發(fā)動(dòng)作轉(zhuǎn)發(fā)相應(yīng)的報(bào)文。作為本發(fā)明的進(jìn)一步改進(jìn),所述第三級(jí)流表應(yīng)用Openflow的通用轉(zhuǎn)發(fā)處理流程,其可作為獨(dú)立的通用轉(zhuǎn)發(fā)處理單元使用。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S2中的“多級(jí)流表的查找”包括第一、第二級(jí)流表的查找、或者第二、第三級(jí)流表的查找、或者第一、第三級(jí)流表的查找、或者第一、第二、第三級(jí)流表的查找,上述查找必須按照流表的先后次序進(jìn)行。作為本發(fā)明的進(jìn)一步改進(jìn),所述中間參數(shù)包括用于后一級(jí)流表查找的串比特位,在需要進(jìn)入第三級(jí)流表時(shí),所述中間參數(shù)還包括指定的轉(zhuǎn)發(fā)表類型、報(bào)文的查找內(nèi)容。
作為本發(fā)明的進(jìn)一步改進(jìn),所述轉(zhuǎn)發(fā)表類型包括二層轉(zhuǎn)發(fā)表、或三層轉(zhuǎn)發(fā)表、或其他類型轉(zhuǎn)發(fā)表,所述第三級(jí)流表中設(shè)置默認(rèn)轉(zhuǎn)發(fā)動(dòng)作。相應(yīng)地,本發(fā)明提供的一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)系統(tǒng),其包括 流表構(gòu)建單元、用于至少構(gòu)建依次串行設(shè)置的第一、第二、第三級(jí)流表,其中,第一、第
二級(jí)流表以TCAM表的形式構(gòu)建,第三級(jí)流表以哈希表的形式構(gòu)建,所述第一、第二、第三級(jí)流表可單獨(dú)使用、或組合使用;
動(dòng)作查找單元、用于接收?qǐng)?bào)文并確定該報(bào)文所需查找的流表;若該報(bào)文只需查找一級(jí)流表,則根據(jù)報(bào)文內(nèi)容在對(duì)應(yīng)的第一、或第二、或第三級(jí)流表中查找并獲得相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;若該報(bào)文需要查找多級(jí)流表,則按照所述各級(jí)流表的先后次序分別進(jìn)行查找,并且在前一級(jí)流表中獲取可作為后一級(jí)流表輸入的一中間參數(shù),直至根據(jù)報(bào)文內(nèi)容查找得到該報(bào)文相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;
報(bào)文轉(zhuǎn)發(fā)單元、用于根據(jù)所述報(bào)文轉(zhuǎn)發(fā)動(dòng)作轉(zhuǎn)發(fā)相應(yīng)的報(bào)文。作為本發(fā)明的進(jìn)一步改進(jìn),所述第三級(jí)流表應(yīng)用Openflow的通用轉(zhuǎn)發(fā)處理流程,其可作為獨(dú)立的通用轉(zhuǎn)發(fā)處理單元使用。作為本發(fā)明的進(jìn)一步改進(jìn),所述動(dòng)作查找單元中的“多級(jí)流表的查找”包括第一、第二級(jí)流表的查找、或者第二、第三級(jí)流表的查找、或者第一、第三級(jí)流表的查找、或者第一、第二、第三級(jí)流表的查找,上述查找必須按照流表的先后次序進(jìn)行。作為本發(fā)明的進(jìn)一步改進(jìn),所述中間參數(shù)包括用于后一級(jí)流表查找的串比特位,在需要進(jìn)入第三級(jí)流表時(shí),所述中間參數(shù)還包括指定的轉(zhuǎn)發(fā)表類型、報(bào)文的查找內(nèi)容。作為本發(fā)明的進(jìn)一步改進(jìn),所述轉(zhuǎn)發(fā)表類型包括二層轉(zhuǎn)發(fā)表、或三層轉(zhuǎn)發(fā)表、或其他類型轉(zhuǎn)發(fā)表,所述第三級(jí)流表中設(shè)置默認(rèn)轉(zhuǎn)發(fā)動(dòng)作。根據(jù)以上技術(shù)方案可以看出,本發(fā)明通過構(gòu)建包括兩級(jí)TCAM表、一級(jí)哈希表的多級(jí)流表,并基于此三級(jí)流表進(jìn)行報(bào)文的轉(zhuǎn)發(fā),由于第一級(jí)流表到第三級(jí)流表是由粗到細(xì)粒度的控制,采用哈希表的形式,可使得第三級(jí)流表獲取更多的流條目,與此同時(shí),系統(tǒng)成本也得以控制。
為了更清楚地說明本發(fā)明具體實(shí)施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對(duì)本發(fā)明具體實(shí)施例或現(xiàn)有描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下述附圖僅為本發(fā)明的一部分附圖,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不作出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明具體實(shí)施方式
中基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)方法的流程 圖2是本發(fā)明具體實(shí)施方式
中多級(jí)流表的示意 圖3是本發(fā)明具體實(shí)施方式
中基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)系統(tǒng)的單元示意圖。
具體實(shí)施例方式以下將結(jié)合附圖所示的具體實(shí)施方式
對(duì)本發(fā)明進(jìn)行詳細(xì)描述。但這些實(shí)施方式并不限制本發(fā)明,基于本發(fā)明的各實(shí)施例,本領(lǐng)域的普通技術(shù)人員在未作出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,均應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。參圖I所示,在本發(fā)明一具體實(shí)施方式
中,一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)方法,其包括如下步驟
Si、至少構(gòu)建依次串行設(shè)置的第一、第二、第三級(jí)流表,其中,第一、第二流表以三態(tài)內(nèi)容尋址存儲(chǔ)器(ternary content addressable memory, TCAM)的形式構(gòu)建,以提供高的靈活性;第三級(jí) 流表以哈希表(HASH)的形式構(gòu)建,以提供較大的流表?xiàng)l目數(shù)。在實(shí)際應(yīng)用中,多級(jí)流表往往實(shí)現(xiàn)對(duì)流的一個(gè)逐步細(xì)分處理。上一級(jí)流表中的一個(gè)條目往往對(duì)應(yīng)了下一級(jí)流表中的多個(gè)條目,從控制的粒度上來說是從粗到細(xì)的一個(gè)過程。本發(fā)明中,前兩級(jí)流表其主要作用是對(duì)流進(jìn)行一個(gè)粗粒度的控制,要求有高的靈活性,但是對(duì)流表大小的要求并不是非常高,因此,本發(fā)明方案中前兩級(jí)流表通過TCAM實(shí)現(xiàn)。第三級(jí)流表由于是最細(xì)粒度的控制,相對(duì)來說這一級(jí)流表查找所使用的關(guān)鍵字段比較固定,但是對(duì)流表的大小卻有比較高的要求,基于這個(gè)特點(diǎn),本發(fā)明的第三級(jí)流表通過哈希表實(shí)現(xiàn)。S2、接收?qǐng)?bào)文并確定該報(bào)文所需查找的流表;若該報(bào)文只需查找一級(jí)流表,則根據(jù)報(bào)文內(nèi)容在對(duì)應(yīng)的第一、或第二、或第三級(jí)流表中查找并獲得相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;若該報(bào)文需要查找多級(jí)流表,則按照所述各級(jí)流表的先后次序分別進(jìn)行查找,并且在前一級(jí)流表中獲取可作為后一級(jí)流表輸入的一中間參數(shù)(metadata),直至根據(jù)報(bào)文內(nèi)容查找得到該報(bào)文相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;
在本發(fā)明的實(shí)施例中,上述各級(jí)流表在進(jìn)行報(bào)文的轉(zhuǎn)發(fā)動(dòng)作的查找時(shí),可分別單獨(dú)使用(即只需要在第一級(jí)、或者第二級(jí)、或者第三級(jí)流表中查找,即可完成報(bào)文轉(zhuǎn)發(fā)動(dòng)作),也可以上述多級(jí)流表之間的任意組合來使用,具體地,本發(fā)明包括下述實(shí)施方式進(jìn)行第一、第二級(jí)流表的查找(首先進(jìn)入第一級(jí)流表,再判斷下一步流表為第二級(jí)流表后,進(jìn)入第二級(jí)流表,在查找到轉(zhuǎn)發(fā)動(dòng)作后結(jié)束)、或者進(jìn)行第二、第三級(jí)流表的查找(首先進(jìn)入第二級(jí)流表,再判斷下一步流表為第三級(jí)流表后,進(jìn)入第三級(jí)流表,在查找到轉(zhuǎn)發(fā)動(dòng)作后結(jié)束)、或者進(jìn)行第一、第三級(jí)流表的查找(首先進(jìn)入第一級(jí)流表,再判斷下一步流表為第三級(jí)流表后,跳過第二級(jí)流表的查找,直接進(jìn)入第三級(jí)流表,在查找到轉(zhuǎn)發(fā)動(dòng)作后結(jié)束)、或者進(jìn)行第一、第二、第三級(jí)流表的查找,但是,上述三者之間的先后順序不能顛倒,如可直接在進(jìn)行了第一級(jí)流表的查找后進(jìn)行第三級(jí)流表的查找,不可在進(jìn)行第二級(jí)流表的查找后在回到第一級(jí)流表的查找。此外,本發(fā)明所述的第一、第二級(jí)流表的查找可無結(jié)果,第三級(jí)流表的查找則必須有結(jié)果,為了保證第三級(jí)流表的查找必定存在結(jié)果,本發(fā)明具體實(shí)施方式
通過為第三級(jí)流表設(shè)置默認(rèn)條目(即在未匹配成功時(shí),自動(dòng)將報(bào)文按照默認(rèn)條目中的轉(zhuǎn)發(fā)行為進(jìn)行轉(zhuǎn)發(fā)報(bào)文)來實(shí)現(xiàn)。圖2所示的為本發(fā)明流表查找的一典型實(shí)施例,其中,三級(jí)流表都被使用,報(bào)文從第一級(jí)流表進(jìn)入,并產(chǎn)生一中間參數(shù),再進(jìn)入第二級(jí)流表,并再次產(chǎn)生一中間參數(shù),之后再進(jìn)入第三級(jí)流表的查找,并在第三級(jí)流表中查找得到實(shí)際的報(bào)文轉(zhuǎn)發(fā)動(dòng)作,本發(fā)明其他的實(shí)施例未進(jìn)行一一圖示,請(qǐng)結(jié)合全文內(nèi)容進(jìn)行理解。本發(fā)明的其他實(shí)施方式中,還可設(shè)置大于兩個(gè)的任意數(shù)目的TCAM表(但是也需考量成本),但是,鑒于多級(jí)流表由粗到細(xì)的粒度,最后一級(jí)流表在最優(yōu)地方式下,最好還是采用哈希表來實(shí)現(xiàn)。具體地,在需要進(jìn)行多個(gè)流表的查找時(shí),上一級(jí)流表中產(chǎn)生的中間參數(shù)可直接影響下一級(jí)流表的查表,然,在只需要進(jìn)行單個(gè)流表的查找時(shí),如只需進(jìn)行第三級(jí)流表的查找,那么其輸入?yún)?shù)從報(bào)文接收端口上的配置獲取。本發(fā)明中,上述中間參數(shù)主要包括用于下一級(jí)流表查找的串比特位,在需要進(jìn)入第三級(jí)流表時(shí),中間參數(shù)還包括指定的轉(zhuǎn)發(fā)表類型(如二層轉(zhuǎn)發(fā)表、三層轉(zhuǎn)發(fā)表、或其他類型的轉(zhuǎn)發(fā)表等)、報(bào)文的查找內(nèi)容(用報(bào)文的什么內(nèi)容進(jìn)行查找,如目的MAC或目的IP等),關(guān)于這方面的技術(shù)皆為本領(lǐng)域普通技術(shù)人員所熟悉的技術(shù),具體細(xì)節(jié)本文不再作介紹。S3、根據(jù)所述報(bào)文轉(zhuǎn)發(fā)動(dòng)作轉(zhuǎn)發(fā)相應(yīng)的報(bào)文。本發(fā)明通過構(gòu)建包括兩級(jí)TCAM表、一級(jí)哈希表的多級(jí)流表,并基于此三級(jí)流表進(jìn)行報(bào)文的轉(zhuǎn)發(fā),由于第一級(jí)流表到第三級(jí)流表是由粗到細(xì)粒度的控制,采用哈希表的形式,可使得第三級(jí)流表獲取更多的流條目,與此同時(shí),系統(tǒng)成本也得以控制。值得一提的是,由于Openflow交換機(jī)定義了混合模式,其要求能夠同時(shí)支持 Openflow的多級(jí)流表處理流程和通用轉(zhuǎn)發(fā)(二層、三層等)處理流程。而在現(xiàn)有技術(shù)中,單純以TCAM表形式構(gòu)建的多級(jí)流表不易實(shí)現(xiàn)混合模式。于本發(fā)明中,上述第三級(jí)流表應(yīng)用Openflow的通用轉(zhuǎn)發(fā)處理流程,其可作為獨(dú)立的通用轉(zhuǎn)發(fā)處理單元使用,此時(shí),第三級(jí)流表如何查找不是由前一級(jí)流表決定,而是完全由通用轉(zhuǎn)發(fā)處理流程來決定?;谏鲜龇桨福煞浅7奖愕貙?shí)現(xiàn)Openflow交換機(jī)的混合模式。相應(yīng)地,請(qǐng)參圖3所示,在本發(fā)明具體實(shí)施方式
中,一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)系統(tǒng),其包括
流表構(gòu)建單元10、用于至少構(gòu)建依次串行設(shè)置的第一、第二、第三級(jí)流表,其中,第一、第二級(jí)流表以TCAM表的形式構(gòu)建,第三級(jí)流表以哈希表的形式構(gòu)建,所述第一、第二、第三級(jí)流表可單獨(dú)使用、或組合使用;
動(dòng)作查找單元20、用于接收?qǐng)?bào)文并確定該報(bào)文所需查找的流表;若該報(bào)文只需查找一級(jí)流表,則根據(jù)報(bào)文內(nèi)容在對(duì)應(yīng)的第一、或第二、或第三級(jí)流表中查找并獲得相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;若該報(bào)文需要查找多級(jí)流表,則按照所述各級(jí)流表的先后次序分別進(jìn)行查找,并且在前一級(jí)流表中獲取可作為后一級(jí)流表輸入的一中間參數(shù),直至根據(jù)報(bào)文內(nèi)容查找得到該報(bào)文相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;
報(bào)文轉(zhuǎn)發(fā)單元30、用于根據(jù)所述報(bào)文轉(zhuǎn)發(fā)動(dòng)作轉(zhuǎn)發(fā)相應(yīng)的報(bào)文。于本發(fā)明中,上述三級(jí)流表可以獨(dú)立使用,也可以結(jié)合使用,但是其順序不能發(fā)生變化??梢杂邢逻厧追N使用情況1->2->3->結(jié)束,1->2->結(jié)束,1->3->結(jié)束,2->3->結(jié)束,1->結(jié)束,2->結(jié)束,3->結(jié)束。上述各使用情況中,如果是后一級(jí)的流表,其輸入?yún)?shù)從上一級(jí)流表獲得,比如1->3->結(jié)束,第三級(jí)流表的輸入?yún)?shù)從第一級(jí)流表產(chǎn)生,并且跳過了第二級(jí)流表的查找;如果是第一個(gè)查找的流表,其輸入?yún)?shù)從報(bào)文接收端口上的配置獲取,比如3->結(jié)束,這時(shí)候僅僅使用了第三級(jí)流表,其輸入?yún)?shù)直接從端口獲得。在本發(fā)明某些實(shí)施方式中,所述第三級(jí)流表應(yīng)用Openflow的通用轉(zhuǎn)發(fā)處理流程,其可作為獨(dú)立的通用轉(zhuǎn)發(fā)處理單元使用?;诖?,可非常方便地實(shí)現(xiàn)Openflow交換機(jī)的混合模式。在本發(fā)明某些實(shí)施方式中,所述動(dòng)作查找單元中的“多級(jí)流表的查找”包括第一、第二級(jí)流表的查找、或者第二、第三級(jí)流表的查找、或者第一、第三級(jí)流表的查找、或者第一、第二、第三級(jí)流表的查找,上述查找必須按照流表的先后次序進(jìn)行。在本發(fā)明某些實(shí)施方式中,所述中間參數(shù)包括用于后一級(jí)流表查找的串比特位,在需要進(jìn)入第三級(jí)流表時(shí),所述中間參數(shù)還包括指定的轉(zhuǎn)發(fā)表類型、報(bào)文的查找內(nèi)容。在本發(fā)明某些實(shí)施方式中,所述轉(zhuǎn)發(fā)表類型包括二層轉(zhuǎn)發(fā)表、或三層轉(zhuǎn)發(fā)表、或其他類型轉(zhuǎn)發(fā)表,所述第三級(jí)流表中設(shè)置默認(rèn)轉(zhuǎn)發(fā)動(dòng)作。值得一提的是,本發(fā)明提供的有關(guān)基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)系統(tǒng)的實(shí)施例的具體運(yùn)作方式、具體技術(shù)特征、相關(guān)原理、效果等,可參考上文描述的相關(guān)基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)方法的具體實(shí)施例,在此發(fā)明人不再予以贅述。應(yīng)當(dāng)理解,雖然本說明書按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個(gè)整體,各實(shí)施方式中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式?!?br>
上文所列出的一系列的詳細(xì)說明僅僅是針對(duì)本發(fā)明的可行性實(shí)施方式的具體說明,它們并非用以限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實(shí)施方式或變更均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)方法,其特征在于,包括如下步驟 51、至少構(gòu)建依次串行設(shè)置的第一、第二、第三級(jí)流表,其中,第一、第二級(jí)流表以TCAM表的形式構(gòu)建,第三級(jí)流表以哈希表的形式構(gòu)建,所述第一、第二、第三級(jí)流表可單獨(dú)使用、或組合使用; 52、接收?qǐng)?bào)文并確定該報(bào)文所需查找的流表;若該報(bào)文只需查找一級(jí)流表,則根據(jù)報(bào)文內(nèi)容在對(duì)應(yīng)的第一、或第二、或第三級(jí)流表中查找并獲得相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;若該報(bào)文需要查找多級(jí)流表,則按照所述各級(jí)流表的先后次序分別進(jìn)行查找,并且在前一級(jí)流表中獲取可作為后一級(jí)流表輸入的一中間參數(shù),直至根據(jù)報(bào)文內(nèi)容查找得到該報(bào)文相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作; 53、根據(jù)所述報(bào)文轉(zhuǎn)發(fā)動(dòng)作轉(zhuǎn)發(fā)相應(yīng)的報(bào)文。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述第三級(jí)流表應(yīng)用Openflow的通用轉(zhuǎn)發(fā)處理流程,其可作為獨(dú)立的通用轉(zhuǎn)發(fā)處理單元使用。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述步驟S2中的“多級(jí)流表的查找”包括第一、第二級(jí)流表的查找、或者第二、第三級(jí)流表的查找、或者第一、第三級(jí)流表的查找、或者第一、第二、第三級(jí)流表的查找,上述查找必須按照流表的先后次序進(jìn)行。
4.根據(jù)權(quán)利要求I或2或3所述的方法,其特征在于,所述中間參數(shù)包括用于后一級(jí)流表查找的串比特位,在需要進(jìn)入第三級(jí)流表時(shí),所述中間參數(shù)還包括指定的轉(zhuǎn)發(fā)表類型、報(bào)文的查找內(nèi)容。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述轉(zhuǎn)發(fā)表類型包括二層轉(zhuǎn)發(fā)表、或三層轉(zhuǎn)發(fā)表、或其他類型轉(zhuǎn)發(fā)表,所述第三級(jí)流表中設(shè)置默認(rèn)轉(zhuǎn)發(fā)動(dòng)作。
6.一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)系統(tǒng),其特征在于,其包括 流表構(gòu)建單元、用于至少構(gòu)建依次串行設(shè)置的第一、第二、第三級(jí)流表,其中,第一、第二級(jí)流表以TCAM表的形式構(gòu)建,第三級(jí)流表以哈希表的形式構(gòu)建,所述第一、第二、第三級(jí)流表可單獨(dú)使用、或組合使用; 動(dòng)作查找單元、用于接收?qǐng)?bào)文并確定該報(bào)文所需查找的流表;若該報(bào)文只需查找一級(jí)流表,則根據(jù)報(bào)文內(nèi)容在對(duì)應(yīng)的第一、或第二、或第三級(jí)流表中查找并獲得相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作;若該報(bào)文需要查找多級(jí)流表,則按照所述各級(jí)流表的先后次序分別進(jìn)行查找,并且在前一級(jí)流表中獲取可作為后一級(jí)流表輸入的一中間參數(shù),直至根據(jù)報(bào)文內(nèi)容查找得到該報(bào)文相應(yīng)的報(bào)文轉(zhuǎn)發(fā)動(dòng)作; 報(bào)文轉(zhuǎn)發(fā)單元、用于根據(jù)所述報(bào)文轉(zhuǎn)發(fā)動(dòng)作轉(zhuǎn)發(fā)相應(yīng)的報(bào)文。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述第三級(jí)流表應(yīng)用Openflow的通用轉(zhuǎn)發(fā)處理流程,其可作為獨(dú)立的通用轉(zhuǎn)發(fā)處理單元使用。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述動(dòng)作查找單元中的“多級(jí)流表的查找”包括第一、第二級(jí)流表的查找、或者第二、第三級(jí)流表的查找、或者第一、第三級(jí)流表的查找、或者第一、第二、第三級(jí)流表的查找,上述查找必須按照流表的先后次序進(jìn)行。
9.根據(jù)權(quán)利要求6或7或8所述的系統(tǒng),其特征在于,所述中間參數(shù)包括用于后一級(jí)流表查找的串比特位,在需要進(jìn)入第三級(jí)流表時(shí),所述中間參數(shù)還包括指定的轉(zhuǎn)發(fā)表類型、報(bào)文的查找內(nèi)容。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述轉(zhuǎn)發(fā)表類型包括二層轉(zhuǎn)發(fā)表、或三層轉(zhuǎn)發(fā)表、或其他類型轉(zhuǎn)發(fā)表,所述第三級(jí)流表中設(shè)置默認(rèn)轉(zhuǎn)發(fā) 動(dòng)作。
全文摘要
本發(fā)明提供一種基于多級(jí)流表的Openflow報(bào)文轉(zhuǎn)發(fā)方法及系統(tǒng),其方法包括至少構(gòu)建依次串行設(shè)置的第一、第二、第三級(jí)流表,其中,第一、第二級(jí)流表以TCAM表的形式構(gòu)建,第三級(jí)流表以哈希表的形式構(gòu)建,所述第一、第二、第三級(jí)流表可單獨(dú)使用、或組合使用,并基于此三級(jí)流表進(jìn)行報(bào)文的轉(zhuǎn)發(fā)動(dòng)作的查找,之后根據(jù)轉(zhuǎn)發(fā)動(dòng)作進(jìn)行報(bào)文轉(zhuǎn)發(fā),本發(fā)明由于第一級(jí)流表到第三級(jí)流表是由粗到細(xì)粒度的控制,故第三級(jí)流表采用哈希表的形式,可使得第三級(jí)流表獲取更多的流條目,與此同時(shí),系統(tǒng)成本也得以控制。
文檔編號(hào)H04L12/70GK102957603SQ20121044559
公開日2013年3月6日 申請(qǐng)日期2012年11月9日 優(yōu)先權(quán)日2012年11月9日
發(fā)明者方沛昱, 廖繼平, 張衛(wèi)峰 申請(qǐng)人:盛科網(wǎng)絡(luò)(蘇州)有限公司