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
Paste_Image.png
下发流表
"normal"的便签页写入网址,action选"PUT"
http://10.10.33.28:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:128983913991/flow-node-inventory:table/0
Paste_Image.png
"basic Auth"标签,填入username/password,默认都是admin
点击右侧"Headers"按键,添加Headers信息:Content-Type/application/json
Paste_Image.png
填入消息主体,下面举个例子
{
"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"
}
]
}
]
}
Paste_Image.png
点击"send",应该发回OK
Paste_Image.png
查看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添加一下
Paste_Image.png
成功后,点击上图右下方的"眼睛"图标(之前版本这里是一个show按键)来show preview,就能获得整个消息内容
其中大括号里面的就是在需要的消息主体
Paste_Image.png