Opendaylight就不介绍了,资料非常丰富。
porstman是Chrome浏览器的一个插件,常常会被用来调用服务器端的restful接口进行数据请求,
下面记录一下如何用Chrome的插件postman来操作ODL 查看和下发流表
准备工作
- Chrome浏览器安装postman插件,如何安装,网上一搜一把
- OpenDaylight启动完毕,并安装好需要的插件
- OVS(IP:10.10.33.28)设置controller信息,端口号6653,连接ODL正常,ODL的Web管理界面能够看到这台OVS
- 在ODL或是OVS上获取OVS的DPID,例如openflow:128983913991
- postman支持多种格式,例如JSON/XML/HTML,下面以JSON为例
显示流表
- 照例填入(修改适当的DPID),点send即可
http://10.10.33.28:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:128983913991/flow-node-inventory:table/0
下发流表
- "normal"的便签页写入网址,action选"PUT"
http://10.10.33.28:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:128983913991/flow-node-inventory:table/0
- "basic Auth"标签,填入username/password,默认都是admin
-
点击右侧"Headers"按键,添加Headers信息:Content-Type/application/json
- 填入消息主体,下面举个例子
{
"table": [
{
"id": "0",
"flow": [
{
"id": "0",
"match": {
"in-port": "1",
"vlan-match": {
"vlan-id": {
"vlan-id-present": "true",
"vlan-id": "20"
}
}
},
"instructions": {
"instruction": [
{
"apply-actions": {
"action": [
{
"output-action": {
"output-node-connector": "3",
"max-length": "65535"
},
"order": "1"
},
{
"pop-vlan-action": {},
"order": "0"
}
]
},
"order": "0"
}
]
},
"buffer_id": "65535",
"installHw": "true",
"barrier": "true",
"strict": "true",
"priority": "160",
"idle-timeout": "0",
"hard-timeout": "0",
"table_id": "0"
}
]
}
]
}
-
点击"send",应该发回OK
查看OVS上流表是否添加成功
DUT1# ovs-ofctl dump-flows br0 -O openflow13OFPST_FLOW reply (OF1.3) (xid=0x2): cookie=0x0, duration=3087.407s, table=0, n_packets=0, n_bytes=0, priority=160,in_port=1,dl_vlan=20 actions=pop_vlan,output:3
小帖士
流表添加失败
- 同样的流表内容,如果send之后,清除OVS流表再send一遍,可能会添加失败,但是返回值还是OK的
- 此时可以稍微修改一下流表内容,例如修改一下priority的值,就可以添加成功了
关于流表的格式
- 有时可能不知道要怎么写消息的主体
-
可以先通过ODL的YANG UI添加一下
- 成功后,点击上图右下方的"眼睛"图标(之前版本这里是一个show按键)来show preview,就能获得整个消息内容
-
其中大括号里面的就是在需要的消息主体
本文首发于SDNLAB http://www.sdnlab.com/16824.html