尝试运行onos中的IMR应用
参考地址
1 ONOS-2.0.0编译安装
2 下载并嵌入 IFWD 应用
cd /opt
sudo mkdir imrTest
cd imrTest
sudo git clone -b ifwd-p2p-intents https://github.com/ANTLab-polimi/onos-app-samples
cd onos-app-samples/ifwd
#在nons项目app目录下创建新应用ifwd
#建立包目录src/main/java
#将java目录resource化,建立包com.ict.ifwd
#将ifwd目录下的IntentReactiveForwarding拷贝到新应用目录下
#代码报错处理
#MANDATORY_UNARY修改为MANDATORY,
#如果annotation无法解析,import org.osgi.service.component.annotations.*;(这里最好展开import)
#修改buIld文件
COMPILE_DEPS = CORE_DEPS + JACKSON + REST + [
"//core/common:onos-core-common",
]
osgi_jar_with_tests(
deps = COMPILE_DEPS,
)
REQUIRE_APPS = [
"org.onosproject.proxyarp",
]
onos_app(
category = "Traffic Engineering",
description = "Intent Reactive Forward",
required_apps = REQUIRE_APPS,
title = "Intent Reactive Forward",
url = "https://www.ict.com",
)
#右键Run Bazeltest
#成功后在tools/build/bazle/modules.bzl文件中的ONOS_APPS属性里面添加
"//apps/ifwd:onos-apps-ifwd-oar"
#build onos
bazel build onos
3 下载式例外部应用
cd /opt/imrTest
sudo git clone https://github.com/ANTLab-polimi/onos-opa-example.git
cd onos-opa-example
sudo easy_install pip
sudo pip install -r requirements.txt
4 运行onos,激活应用
bazel run onos-local -- debug
onos-app localhost deactivate org.onosproject.fwd
onos-app localhost activate org.onosproject.ifwd
onos-app localhost activate org.onosproject.metrics
onos-app localhost activate org.onosproject.imr
5 运行拓扑脚本
cd /opt/imrTest/onos-opa-example/topo
sudo python topo.py
mininet> h3 iperf -s &
mininet> h4 iperf -s &
mininet> h1 iperf -c 10.0.0.3 -t 600 &
mininet> h2 iperf -c 10.0.0.4 -t 600 &
6 添加imr监听意图
onos localhost
#成功登录以后
imr:startmon 161 org.onosproject.ifwd(这里的appID号不一定正确,可以看ui里面的intents里面,输入的时候输入id号,应用名称可以用个tab键来自动生成)
#注意这里有提示也不一定真的监听成功,这里有个BUG
#可以监听的意图类型为PointToPoint和linkCollection
logout
7 通过REST API查看意图统计信息
http://localhost:8181/onos/v1/imr/imr/intentStats
#可以看到结果
8 运行外部应用
cd /opt/imrTest/onos-opa-example
python main_one_shot.py
#上面那个不一定看到结果,要多运行几次
python main.py
#控制台输出大量信息,过一段时间后UI页面出现了2条流量路径(如果看不到流量,通过快捷键a来显示)
转载请出名出处!!!!!!!