OpenFlow協(xié)議一致性測試方法與設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及測試技術(shù)領(lǐng)域,尤其涉及一種OpenFlow協(xié)議一致性測試方法與設(shè)備。
【背景技術(shù)】
[0002]SDN(Software-defined networking,軟件定義網(wǎng)絡(luò))是由Emulex提出的一種網(wǎng)絡(luò)虛擬化(Network virtualizat1n)技術(shù),主要利用OpenFlow協(xié)議把路由器的控制平面(control plane)從數(shù)據(jù)平面(data plane)中分離出來。控制平面和數(shù)據(jù)平面之間通過OpenFlow協(xié)議通訊。網(wǎng)絡(luò)管理員基于該設(shè)備可以不更動硬件裝置,以中央控制方式,用程序重新規(guī)劃網(wǎng)絡(luò),為控制網(wǎng)絡(luò)流量提供了新的方法。
[0003]OpenFlow協(xié)議是由0NF(0pen Networking Foundat1n,開放網(wǎng)絡(luò)基金會)開發(fā)并推動的一種SDN控制平面南向協(xié)議。它規(guī)定了控制平面與數(shù)據(jù)平面通訊的方式及內(nèi)容,是目前應(yīng)用最廣泛的SDN南向協(xié)議,得到了產(chǎn)業(yè)屆,特別是交換設(shè)備(即數(shù)據(jù)平面設(shè)備)廠商的支持。目前該協(xié)議的OpenFlow 1.3版本是其長期維護(hù),并得到最廣泛應(yīng)用和部署的版本。
[0004]作為SDN實(shí)現(xiàn)的主流方式,目前OpenFlow1.3協(xié)議還存在設(shè)備實(shí)現(xiàn)的一致性問題。因?yàn)樵搮f(xié)議本身由自然語言撰寫,所以在理解與實(shí)現(xiàn)方面不可避免地會存在一些不完善或存疑的地方。各設(shè)備廠商開發(fā)的設(shè)備在實(shí)現(xiàn)OpenFlow 1.3協(xié)議的某些細(xì)節(jié)方面無法做到完全一致,不同廠商間設(shè)備無法互通。在這種情況下,如果進(jìn)行網(wǎng)絡(luò)部署,則會由于協(xié)議不一致的問題導(dǎo)致網(wǎng)絡(luò)癱瘓無法使用。
【發(fā)明內(nèi)容】
[0005]針對OpenFlow協(xié)議一致性測試工具缺失的問題,本發(fā)明實(shí)施例提供一種OpenFlow協(xié)議一致性的測試方法與設(shè)備,通過自動化的測試過程驗(yàn)證廠商設(shè)備是否滿足OpenFlow協(xié)議中的所有必須要求,確保設(shè)備針對該協(xié)議的一致性,消除不同廠商設(shè)備之間的互聯(lián)互通問題,確保OpenFlow協(xié)議本身不會因廠商的實(shí)現(xiàn)而出現(xiàn)變動。
[0006]本發(fā)明實(shí)施例提供一種OpenFlow協(xié)議一致性測試設(shè)備,可以包括:
[0007]測試過程控制模塊,用于測試?yán)_定之后,控制針對該測試?yán)恼麄€測試過程;
[0008]控制平面測試模塊,用于在測試過程控制模塊的控制下,完成所述測試?yán)?包括與被測設(shè)備建立控制通道;與被測設(shè)備建立連接后,提供針對所述測試?yán)目刂破矫鎴?bào)文模板并生成符合OpenFlow協(xié)議的控制平面報(bào)文;將控制平面報(bào)文發(fā)送至被測設(shè)備,接收被測設(shè)備返回的第一應(yīng)答報(bào)文;對第一應(yīng)答報(bào)文進(jìn)行解析;
[0009]測試結(jié)果判定模塊,用于根據(jù)報(bào)文解析結(jié)果判定被測設(shè)備是否符合OpenFlow協(xié)議規(guī)范。
[0010]優(yōu)選的,控制平面測試模塊包括:
[0011]連接建立模塊,用于在控制模塊的控制下與被測設(shè)備建立控制通道;
[0012]OpenFlow協(xié)議報(bào)文庫,用于連接建立模塊與被測設(shè)備建立通信連接后,根據(jù)測試過程控制模塊的指令提供針對所述測試?yán)目刂破矫鎴?bào)文模板并生成控制平面報(bào)文;
[0013]OpenFlow協(xié)議報(bào)文轉(zhuǎn)發(fā)模塊,用于將控制平面報(bào)文發(fā)送至被測設(shè)備,接收被測設(shè)備返回的第一應(yīng)答報(bào)文;
[0014]OpenFlow協(xié)議解析模塊,用于解析第一應(yīng)答報(bào)文。
[0015]優(yōu)選的,所述連接建立模塊包括:
[0016]監(jiān)聽子模塊,用于監(jiān)聽OpenFlow協(xié)議TCP端口 ;
[0017]接收子模塊,用于接收被測設(shè)備通過所述TCP端口發(fā)送的連接請求;
[0018]連接子模塊,用于應(yīng)答被測設(shè)備發(fā)送的所述連接請求,與被測設(shè)備建立控制通道。
[0019]優(yōu)選的,所述連接建立模塊還用于,在與被測設(shè)備建立控制通道失敗時,將指示建立控制通道失敗的信息反饋至測試結(jié)果判定模塊。
[0020]優(yōu)選的,當(dāng)所述測試?yán)婕皵?shù)據(jù)平面通信時,則所述設(shè)備還包括:
[0021 ]數(shù)據(jù)平面報(bào)文庫,用于根據(jù)測試過程控制模塊的指令提供對應(yīng)于所述測試?yán)臄?shù)據(jù)平面報(bào)文模板并生成數(shù)據(jù)平面報(bào)文;
[0022]數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)模塊,用于將數(shù)據(jù)平面報(bào)文發(fā)送至被測設(shè)備,接收被測設(shè)備返回的第二應(yīng)答報(bào)文;
[0023 ]數(shù)據(jù)報(bào)文解析模塊,用于解析第二應(yīng)答報(bào)文。
[0024]優(yōu)選的,所述設(shè)備還包括:
[0025]測試過程記錄模塊,用于執(zhí)行測試過程控制模塊的指令,記錄所述測試?yán)恼麄€測試過程產(chǎn)生的測試數(shù)據(jù)。
[0026]優(yōu)選的,所述測試數(shù)據(jù)包括:
[0027]測試過程的網(wǎng)絡(luò)流量記錄文件,以及測試設(shè)備與被測設(shè)備通信交互形成的日志文件。
[0028]本發(fā)明實(shí)施例還提供一種OpenFlow協(xié)議一致性測試方法,所述方法包括:
[0029]測試?yán)_定之后,控制并執(zhí)行針對該測試?yán)恼麄€測試過程;
[0030]包括:與被測設(shè)備建立控制通道;
[0031 ]與被測設(shè)備建立連接后,提供針對所述測試?yán)膱?bào)文模板并生成控制平面報(bào)文;
[0032]將控制平面報(bào)文發(fā)送至被測設(shè)備,接收被測設(shè)備返回的第一應(yīng)答報(bào)文;
[0033]對第一應(yīng)答報(bào)文進(jìn)行解析;
[0034]根據(jù)報(bào)文解析結(jié)果判定被測設(shè)備是否符合OpenFlow協(xié)議規(guī)范。
[0035]優(yōu)選的,所述方法還包括:
[0036]當(dāng)所述測試?yán)婕皵?shù)據(jù)平面通信時,提供對應(yīng)于所述測試?yán)臄?shù)據(jù)平面報(bào)文模板并生成數(shù)據(jù)平面報(bào)文;
[0037]將數(shù)據(jù)平面報(bào)文發(fā)送至被測設(shè)備;
[0038]接收被測設(shè)備返回的第二應(yīng)答報(bào)文;
[0039]解析第二應(yīng)答報(bào)文以便于進(jìn)行一致性判定。
[0040]優(yōu)選的,所述方法還包括:
[0041 ]記錄所述測試?yán)恼麄€測試過程產(chǎn)生的測試數(shù)據(jù)。
[0042]與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提供的技術(shù)方案具有以下優(yōu)點(diǎn):
[0043]本發(fā)明提供的技術(shù)方案,針對待測的功能點(diǎn)(被測設(shè)備具備的功能,比如發(fā)送功能),首先需要根據(jù)功能點(diǎn)設(shè)計(jì)測試?yán)?,測試過程即是完成實(shí)施測試?yán)倪^程。本方案中,測試過程控制模塊統(tǒng)一控制測試?yán)膶?shí)施過程,控制平面測試模塊具體執(zhí)行測試過程,由于OpenFlow協(xié)議下的報(bào)文具有特定的結(jié)構(gòu)和字段組成,因此控制平面測試模塊在解析被測設(shè)備返回的應(yīng)答報(bào)文后,測試結(jié)果判定模塊即可根據(jù)應(yīng)答報(bào)文的解析結(jié)果確定被測設(shè)備發(fā)送的報(bào)文是否符合OpenFlow協(xié)議的要求,進(jìn)而就可以確定被測設(shè)備是否具有OpenFlow協(xié)議一致性。
【附圖說明】
[0044]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0045]圖1為本發(fā)明提供的OpenFlow協(xié)議一致性測試設(shè)備實(shí)施例1的結(jié)構(gòu)示意圖;
[0046]圖2為本發(fā)明提供的OpenFlow協(xié)議一致性測試設(shè)備實(shí)施例2的結(jié)構(gòu)示意圖;
[0047]圖3為本發(fā)明提供的OpenFlow協(xié)議一致性測試設(shè)備實(shí)施例3的結(jié)構(gòu)示意圖;
[0048]圖4為本發(fā)明提供的OpenFlow協(xié)議一致性測試設(shè)備實(shí)施例4的結(jié)構(gòu)示意圖;
[0049]圖5為本發(fā)明提供的OpenFlow協(xié)議一致性測試方法實(shí)施例1的流程圖。
【具體實(shí)施方式】
[0050]本發(fā)明實(shí)施例提供了一種OpenFlow協(xié)議一致性測試方法與設(shè)備,測試之前按照所需測試的OpenFlow協(xié)議功能點(diǎn)設(shè)計(jì)測試?yán)?,由測試過程控制模塊實(shí)現(xiàn)測試?yán)?,即可完成針對該功能點(diǎn)的測試。實(shí)現(xiàn)對不同廠商設(shè)備是否具備OpenFlow協(xié)議一致性的測試。
[0051]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅