




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄 OpenDayLightOpenDaylight架構(gòu)框架OpenDaylight Hydrogen技術(shù)架構(gòu)OpenDaylight Hydrogen工程架構(gòu) MD-SAL從AD-SAL到MD-SAL基于MD-SAL連接建立(OpenFlow v1.3)Plugin 開(kāi)發(fā)流程“Add Flow” 示例 YANG模型YANG,NETCONF,RESTCONFYANG模型語(yǔ)法詳解Data store兩種形式Data tree/view/OpenDaylight_ControllerOpenDaylightOpenDaylight架構(gòu)框架h
2、ttps://view/OpenDaylight_Controller:Architectural_Framework#Service_Abstraction_LayerOpenDaylight Hydrogen技術(shù)架構(gòu)/view/OpenDaylight_Controller:Hydrogen_Developer_GuideOpenDaylight Hydrogen工程架構(gòu) 藍(lán)色箭頭為MD-SAL方式 紅色箭頭為AD-SAL方式 YANG 模型是MD-SAL的靈魂,而MD-SAL為OpenDay
3、light所推廣MD-SALMD-SAL 對(duì)于服務(wù)抽象層的Model-driven方法體現(xiàn)出一種統(tǒng)一北向和南向API以及SDN控制器中多種服務(wù)和元素中所使用的數(shù)據(jù)結(jié)構(gòu)。 為了描述控制器元素所提供的數(shù)據(jù)結(jié)構(gòu),YANG模型作為一種服務(wù)和數(shù)據(jù)抽象的建模語(yǔ)言就起到了作用。 YANG模型特性:建模XML格式數(shù)據(jù)并由控制器元素提供功能(YIN&plugin)定義語(yǔ)義元素和他們的關(guān)系(data tree)模擬所有的元素作為一個(gè)系統(tǒng)(data tree)YANG數(shù)據(jù)模型的XML特性提供了一種自表述數(shù)據(jù)的方式,控制器元素和采用控制器北向接口A(yíng)PI的應(yīng)用可以以一種原生格式與數(shù)據(jù)模型一起調(diào)用(YIN&plugin)
4、利用一種模式語(yǔ)言簡(jiǎn)化控制器元素和應(yīng)用的開(kāi)發(fā)。模塊中提供功能的開(kāi)發(fā)者可以定義一個(gè)模型,從而可以創(chuàng)建對(duì)于所提供功能的更簡(jiǎn)單的、數(shù)據(jù)類(lèi)型的API。因此降低了通過(guò)服務(wù)抽象層提供的數(shù)據(jù)結(jié)構(gòu)的錯(cuò)誤交互。(YIN&java files)/view/OpenDaylight_Controller:MD-SAL:Architecture從AD-SAL到MD-SAL/view/OpenDaylight_Controller:MD-SAL:FAQ基于MD-SAL連接建立(OpenFlow v1.3) 當(dāng)交
5、換機(jī)與控制器通過(guò)協(xié)議校驗(yàn),控制器會(huì)向交換機(jī)請(qǐng)求一系列信息(端口信息、鏈路信息等) 不管是控制器下發(fā)的Request消息,還是網(wǎng)元回復(fù)的reply消息,在控制器中都是采用YANG模型來(lái)定義的 對(duì)于那些通過(guò)YANG模型生成的java接口、類(lèi)和方法:控制器下發(fā)的信息:利用setter方法對(duì)照協(xié)議寫(xiě)進(jìn)去即可控制器收到的信息:利用getter方法對(duì)照協(xié)議將字節(jié)流解析存儲(chǔ),也即存到Y(jié)ANG模型的data-store(data tree)里 MD-SAL應(yīng)用可通過(guò)已有的方法獲取data-store中的數(shù)據(jù)為本身所用,并且不同模塊之前可相互調(diào)用。NECtrlTCP Sync Dest Port 6633TCP
6、 Sync, AckTCP AckOF1.3 Hello Proto = 0 x04OF1.3 Hello Proto = 0 x04OF1.3 Feature RequestOF1.3 Feature ReplyOF1.3 Set ConfigOF1.3 Multipart Request PORT_DESC OF1.3 Multipart ReplyPORT_DESC array“Add Flow” 示例示例/view/OpenDaylight_Controller:MD-SAL:FAQPlugin 開(kāi)發(fā)流程開(kāi)發(fā)流程https:/wi
7、/view/OpenDaylight_Controller:MD-SAL:FAQYANG模型YANG模型是什么? YANG模型是一種數(shù)據(jù)建模語(yǔ)言,其產(chǎn)生是為了對(duì)NETCONF協(xié)議所操作的數(shù)據(jù)進(jìn)行建模。最初的網(wǎng)絡(luò)管理協(xié)議SNMP也有對(duì)應(yīng)的建模語(yǔ)言SMI。 YANG模型通過(guò)樹(shù)形結(jié)構(gòu)的節(jié)點(diǎn)定義描述了數(shù)據(jù)模型的層級(jí)嵌套結(jié)構(gòu)以及各屬性的數(shù)據(jù)類(lèi)型。YANG具有自己的語(yǔ)法格式,也可以無(wú)差別地轉(zhuǎn)換為XML格式,稱(chēng)之為YIN??梢允褂玫谌焦ぞ遬yang進(jìn)行轉(zhuǎn)換。pyang地址:/twiki/pub/Main/YangTo
8、ols/pyang.1.html/html/rfc6020/twiki/bin/view/Main/YangDocumentsYANG,NETCONF,RESTCONF Network Configuration Protocol(NETCONF)是由IETF標(biāo)準(zhǔn)化的一個(gè)網(wǎng)絡(luò)管理協(xié)議,它提供了添加,修改,以及刪除網(wǎng)絡(luò)設(shè)備配置的機(jī)制。 RESTCONF是web應(yīng)用通過(guò)http協(xié)議獲取和操作使用YANG定義的網(wǎng)絡(luò)資源信息協(xié)議。應(yīng)用和網(wǎng)絡(luò)設(shè)備之間通過(guò)REST-like API進(jìn)行交互。https:/en.w
9、/wiki/NETCONFYANG的作用 YANG可以用于描述三類(lèi)數(shù)據(jù) :資源:對(duì)要操控的資源進(jìn)行建模,即網(wǎng)元的configuration data或者operational data;通知(notification):對(duì)網(wǎng)元發(fā)出的事件通知消息進(jìn)行建模;遠(yuǎn)程過(guò)程調(diào)用(rpc):對(duì)可在網(wǎng)元上觸發(fā)的遠(yuǎn)程程序調(diào)用(即rpc)進(jìn)行建模Module & import &namespace YANG模型的不同模塊之間通過(guò)module進(jìn)行劃分。各個(gè)module描述各自部分的數(shù)據(jù)模型,而不同module之間可以互相引用。 每個(gè)module有一個(gè)獨(dú)立的namespace以避免命名沖突,為
10、了使用方便還有一個(gè)prefix 通過(guò)import導(dǎo)入外部模塊,則可以在本地模塊中使用該模塊中定義的數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)類(lèi)型。導(dǎo)入時(shí)會(huì)給外部模塊一個(gè)prefix,引用該模塊中的內(nèi)容時(shí)引用名稱(chēng)前要加prefix.基本節(jié)點(diǎn)類(lèi)型grouping: 定義樹(shù)形結(jié)構(gòu)的“暫時(shí)”樹(shù)干container:沒(méi)有值,但包含一系列的子節(jié)點(diǎn)list:定義了一組具有相同數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),在json格式的實(shí)例中是一個(gè)數(shù)組,在xml格式的實(shí)例中是一系列名稱(chēng)和結(jié)構(gòu)相同的xml節(jié)點(diǎn) 。List中的各個(gè)元素之間通過(guò)key來(lái)唯一標(biāo)識(shí);例如nodesleaf:用來(lái)定義屬性值,如name,ID等。有值,但不包含任何子節(jié)點(diǎn)leaf-list:兼具l
11、eaf和list的特點(diǎn),定義了一組相同類(lèi)型的值。不包含子節(jié)點(diǎn)。在json格式實(shí)例中是一個(gè)數(shù)組且數(shù)組中每個(gè)元素都是一個(gè)值,在xml格式的實(shí)例中是一系列名稱(chēng)相同值不同的xml節(jié)點(diǎn)choice:定義的節(jié)點(diǎn)結(jié)構(gòu)是不完全確定的。它包含多個(gè)case子節(jié)點(diǎn),代表不同的分支,分別定義了該節(jié)點(diǎn)的一種可能的結(jié)構(gòu)。最終節(jié)點(diǎn)的結(jié)構(gòu)是且僅能是所有分支中的一種。YANG generated sources/view/YANG_Tools:YANG_to_Java_Mappinggrouping & uses grouping:在同一個(gè)模塊中,可能在多處需要定義同一種
12、數(shù)據(jù)結(jié)構(gòu),使用grouping來(lái)定義一個(gè)需要在多處使用的數(shù)據(jù)結(jié)構(gòu)。 grouping的定義并沒(méi)有真正產(chǎn)生節(jié)點(diǎn),只有通過(guò)uses引用某個(gè)grouping時(shí)才會(huì)在節(jié)點(diǎn)樹(shù)中創(chuàng)建新的節(jié)點(diǎn)。 uses grouping A即為將grouping A內(nèi)部定義的數(shù)據(jù)結(jié)構(gòu)復(fù)制到uses處,也即另一棵樹(shù)上。 在一個(gè)模塊中也可以引用其他模塊中定義的grouping,只是引用的名稱(chēng)為“module_prefix:grouping_name”。augment YANG模型允許一個(gè)module插入附加節(jié)點(diǎn)到data models中,包括當(dāng)前的module(以及子mudule)或者一個(gè)外部module. 對(duì)于供應(yīng)商來(lái)說(shuō),
13、增加vendor-specific參數(shù)到標(biāo)注的data model中可協(xié)作使用。 Augment定義了在data model層級(jí)中的位置,when定義了新的節(jié)點(diǎn)有效的條件operational/configuration data一個(gè)節(jié)點(diǎn)如果標(biāo)為config false則為operational data,表示該數(shù)據(jù)只能讀取而不能進(jìn)行修改刪除等操作。默認(rèn)為configuration data,可以進(jìn)行增刪改查數(shù)據(jù)類(lèi)型type, typedef, restrictions 數(shù)據(jù)類(lèi)型分為基本類(lèi)型和派生類(lèi)型 Leaf節(jié)點(diǎn)有具有type定義,表示該屬性的數(shù)據(jù)類(lèi)型?;镜脑鷶?shù)據(jù)類(lèi)型有uint8,uin
14、t16,string,bits,binary,boolean等等。在數(shù)據(jù)類(lèi)型的基礎(chǔ)上還可以配合restrictions來(lái)增加限制條件,比如string可以增加length這一限制條件,進(jìn)一步縮小合法的數(shù)據(jù)范圍。 在基類(lèi)數(shù)據(jù)類(lèi)型基礎(chǔ)上可以通過(guò)typedef定義派生數(shù)據(jù)類(lèi)型,派生數(shù)據(jù)類(lèi)型=基類(lèi)數(shù)據(jù)類(lèi)型+restrictions,這里基類(lèi)數(shù)據(jù)類(lèi)型可以是原生數(shù)據(jù)類(lèi)型,也可以是其他的派生數(shù)據(jù)類(lèi)型。 與grouping類(lèi)似,type也可以一處定義多處使用。/view/YANG_Tools:YANG_to_Java_Mappingrpc: Remote
15、 Procedure Call rpc:用于定義netconf的一個(gè)rpc操作。它可能包含input和output子節(jié)點(diǎn),分別是該rpc操作所需要的輸入和輸出數(shù)據(jù)結(jié)構(gòu)。若沒(méi)有則表明該操作不需要輸入數(shù)據(jù)或者沒(méi)有輸出數(shù)據(jù)。notification 除了rpc,yang還有一個(gè)類(lèi)似的“notification”, notification用于定義netconf的通知消息的內(nèi)容,也是用來(lái)定義一個(gè)服務(wù)。兩者的區(qū)別在于rpc是一對(duì)一的,即單播,而notification是多播的,當(dāng)Provider提交一個(gè)notification時(shí),所有的訂閱該服務(wù)的Consumer都會(huì)收到通知,如典型的PacketIn消
16、息,所謂的訂閱即實(shí)現(xiàn)該notification的接口。rpc生成的接口類(lèi)名后綴都是Service。nontification生成的接口類(lèi)名后綴是Listener。Data store兩種形式:config&operational Data store中的數(shù)據(jù)存儲(chǔ)分兩種形式:config和operational ,config持有由應(yīng)用所寫(xiě)的數(shù)據(jù),而operational反映了設(shè)備的實(shí)際狀態(tài),從設(shè)備讀取數(shù)據(jù),如果沒(méi)有錯(cuò)誤即可以看到設(shè)備的當(dāng)前實(shí)際信息。 config data store中查詢(xún)流表通常不包含以路由為目的的流表項(xiàng)(這就是為什么operational方式可以查詢(xún)到table-miss流
17、表項(xiàng),即out-port:controller,而config方式查詢(xún)不到),但是OpenDaylight開(kāi)發(fā)者表示這個(gè)方面未來(lái)可以改變,而之所以這樣是因?yàn)檫@些流通過(guò)外部的流服務(wù)(不經(jīng)過(guò)dataStore和config)發(fā)送到設(shè)備,然后這些流由設(shè)備通過(guò)數(shù)據(jù)形式以operational的形式重新報(bào)回。 config具有相對(duì)于控制器的生命周期(甚至重啟都可以依然存活)。這些流表項(xiàng)由應(yīng)用添加到這里并且當(dāng)有合適的設(shè)備時(shí)就會(huì)發(fā)送給它。 原則上講openflowplugin和controller都不應(yīng)該動(dòng)用config。這個(gè)是為應(yīng)用程序而保留的,比如FRM監(jiān)聽(tīng)到改變就寫(xiě)到config里面以發(fā)送流到設(shè)備。這
18、個(gè)可以用來(lái)做預(yù)配置-應(yīng)用程序可以為一些尚未存在的設(shè)備寫(xiě)一些“有用的“流,一旦設(shè)備存在相關(guān)的流就會(huì)下發(fā)到其中,而不用任何應(yīng)用程序的動(dòng)作。Data tree yang定義的數(shù)據(jù)結(jié)構(gòu)是一個(gè)樹(shù)形結(jié)構(gòu),除葉子節(jié)點(diǎn)之外,其他節(jié)點(diǎn)都有一個(gè)唯一的Qname,Qname即作為查詢(xún)某節(jié)點(diǎn)信息的索引,從代碼層面來(lái)講,注意到Y(jié)ANG生成的每個(gè)interface都包含一個(gè)Qname,之所以葉子節(jié)點(diǎn)沒(méi)有Qname是因?yàn)槿~子節(jié)點(diǎn)是作為其父節(jié)點(diǎn)類(lèi)型中g(shù)etter、setter方法的返回類(lèi)型存在的。 查看樹(shù)上非葉子節(jié)點(diǎn)的信息時(shí)返回的是該節(jié)點(diǎn)及其子樹(shù)的所有數(shù)據(jù)。YANG對(duì)于北向接口圖中紅色標(biāo)出的experimenter-port
19、的位置原來(lái)是port-grouping,也即原OpenFlow1.3協(xié)議中端口信息上報(bào)的YANG模型類(lèi)名,注意下面:augment “/inv:nodes/inv:node/inv:node-connector”ext:augment-idendifier “flow-capable-node-connector”;uses flow-node-connector;此處“/inv:nodes/inv:node/inv:node-connector”就體現(xiàn)出了樹(shù)形結(jié)構(gòu),也即北向接口url路徑。YANG對(duì)于北向接口針對(duì)這個(gè)例子提前引入北向接口部分說(shuō)明一下,要想請(qǐng)求端口信息的uri其實(shí)就是根據(jù)這個(gè)a
20、ugment得來(lái)的,augment意為“增加”,YANG模型采用這一詞來(lái)作為樹(shù)形結(jié)構(gòu)級(jí)聯(lián)的關(guān)鍵詞也是夠形象,注意augment后面依次為:nodes/node/node-connector,落實(shí)到底層設(shè)備其含義為:全部交換機(jī)/(其中之一)交換機(jī)/交換機(jī)的所有端口信息,當(dāng)然北向的uri并不是這一個(gè)文件的這一小段就了事了的,在model-inventory中的opendaylight-inventory.yang文件:YANG對(duì)于北向接口綜上,對(duì)于這個(gè)例子的uri為:http:/controller ip address:8080/restconf/operational/opendaylight-inventory:nodes/node/node-id/node-connector/node-connector-id所獲得端口信息可體現(xiàn)出YANG模型定義的樹(shù)形結(jié)構(gòu),如下圖所示:YANG對(duì)于北向接口當(dāng)然node(相當(dāng)于一個(gè)交換機(jī))的結(jié)構(gòu)遠(yuǎn)比圖中復(fù)雜的多,其他信息也是以同樣的形式定義了北向接口的請(qǐng)求uri,如果,將uri后面的部分去掉,即http:/controller ip address:8080/restconf/operational/opendaylight-inventory:nodes,就可以獲得nodes(所有交
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度餐飲業(yè)節(jié)能減排入股協(xié)議
- 2025年度購(gòu)房定金支付及違約責(zé)任協(xié)議
- 二零二五年度商業(yè)地產(chǎn)市場(chǎng)調(diào)研評(píng)估委托合同
- 二零二五年度餐飲行業(yè)掛靠合作經(jīng)營(yíng)合同
- 二零二五年度三年期勞動(dòng)合同漲薪與績(jī)效考核體系合同
- 二零二五年度自來(lái)水供應(yīng)與用水戶(hù)信息公開(kāi)合同
- 二零二五年度個(gè)人債權(quán)轉(zhuǎn)讓合同模板(智能穿戴設(shè)備債權(quán)整合)
- 二零二五年度新能源汽車(chē)企業(yè)職工招聘與產(chǎn)業(yè)鏈整合合同
- 二零二五年度手房銀行按揭購(gòu)房服務(wù)合同
- 2025年吉林市貨運(yùn)車(chē)從業(yè)考試題
- 2022年新高考天津英語(yǔ)高考真題(含答案)
- xx學(xué)校課后延時(shí)服務(wù)公示制度
- 智慧城市課件
- 鋼結(jié)構(gòu)施工組織設(shè)計(jì)方案4篇
- 高考臨界生輔導(dǎo)一生一策
- 中國(guó)思想史馬工程課件第二篇 秦漢篇
- GB/T 1885-1998石油計(jì)量表
- GB/T 10125-2021人造氣氛腐蝕試驗(yàn)鹽霧試驗(yàn)
- GA 923-2011公安特警專(zhuān)用車(chē)輛外觀(guān)制式涂裝規(guī)范
- 【統(tǒng)編】最新部編版五年級(jí)下冊(cè)道德與法治《我們的公共生活》課件
- 教學(xué)課件:《連鎖門(mén)店運(yùn)營(yíng)管理》(第二版)
評(píng)論
0/150
提交評(píng)論