Upgrade CORD’s ONOS Controller and make a change on ONOS application

Upgrade CORD’s ONOS Controller and make a change on ONOS application

這一篇文章將說明如何升級 CORD (Central Office Re-architected as a Datacenter) 裡面的 ONOS,並且修改 ONOS application 的程式碼並重新發佈到 ONOS 當中。文中將以控制 overlay 網路的 VTN (Virtual Tenant Network) 為例,記錄修改 CORD configuration 升級 ONOS 版本並替換原本 VTN 的 oar 檔過程。

這篇文章所述皆在 CORD-5.0 下進行,ONF 進版的速度很快,文章的內容可能過不久就因為各種原因不適用了,例如 config 位置變更、config 寫法改變 … 等。

ONOS version upgrade

升級 ONOS 版本比較單純,因為在 CORD 當中,ONOS、XOS(和它的 synchronizer 們)都是以 Docker Container 的形式存在於 Head Node 上的。

所以在升級 ONOS 時,我們只需要在 ~/cord/build/docker_images.yml 裡面修改我們 pull 下來的 ONOS 版本為我們期望的版本:

若需要其他版本的 ONOS,可以使用官方 build 的 container image 找需要的版本,或是自己 build 好 container image 之後推到 Docker Hub 也可以。到目前為止除了 master 以外,Docker hub 有的穩定版本是 1.13.1

VTN application Download path

我會需要修改 VTN Path 的原因,是因為在 Service Dependency 的服務相依關係當中,並沒有把 subscriber 與 provider 之間的 flow 設定對,我的修改也能在 這個 change 看到。

而在 CORD 當中,很多 ONOS apps 都會受到 XOS 指揮。在 VTN 這個 application 中,XOS 會把 Service 的關係由 vtn-synchronizer POST 到 ONOS API,而 ONOS VTN 解析過再設定到 OpenVSwitch 的 Flow Table 當中。所以因為這些 app 與 XOS 有高度相關,所以它的下載路徑也會被寫在 ~/cord/orchestration/profiles/mcord/templates/vtn-service.yaml.j2 裡面。

Re-build ONOS

再修改完之後,可以直接透過 make clean-onos 指令將 ONOS 清除,再使用 make -j4 build 開始讓 CORD 重新 build ONOS。

Leave a Reply

Your email address will not be published. Required fields are marked *