我试图通过Lithium的DLUX使用/ operations / sal-flow添加一个简单的流规则:add-flow api调用但除了错误之外什么都没有,请有人帮忙吗?
即使预览某人添加的示例流程也会非常有用吗?
预览框中显示的当前输入是:
http://localhost:8181/restconf/operations/sal-flow:add-flow
{
"add-flow": {
"input": {
"match": {
"ethernet-match": {
"ethernet-type": {
"type": "2048"
}
},
"ipv4-source": "10.0.0.1/32"
},
"instructions": {
"instruction": [
{
"order": "0",
"apply-actions": {
"action": [
{
"drop-action": {},
"order": "0"
}
]
}
}
]
},
"flow-name": "test",
"table_id": "0"
}
}
}
目前的错误是:
“服务器错误:服务器遇到意外情况,导致服务器无法完成请求。”:操作遇到意外错误“
Postman中的相同请求给出了错误:
{
"errors": {
"error": [
{
"error-type": "protocol",
"error-tag": "malformed-message",
"error-message": "Error parsing input: Schema node with name add-flow wasn't found under (urn:opendaylight:flow:service?revision=2013-08-19)add-flow."
}
]
}
}
我见过使用xml的例子,但似乎没什么用。我能够通过dlux查看网络拓扑结构,所以我认为我连接到一切都没问题。
非常感谢提前。
答案 0 :(得分:0)
从输入数据中删除add-flow
和相应的括号。使用像
{
input: {...},
output: {...}
}
答案 1 :(得分:0)
我在使用DLUX时遇到了同样的问题。无论如何,我设法使用来自此链接https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin:End_to_End_Flows的XML POST请求找到了解决方案。您可以在Chrome上使用POSTMAN应用程序发送请求。请求的正文应该是:
POST http://localhost:8080/restconf/operations/sal-flow:add-flow
也添加身份验证标头。
内容类型:application / xml
接受:application / xml
体:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<input xmlns="urn:opendaylight:flow:service">
<barrier>false</barrier>
<node xmlns:inv="urn:opendaylight:inventory">/inv:nodes/inv:node[inv:id="openflow:1"]</node>
<cookie>55</cookie>
<flags>SEND_FLOW_REM</flags>
<hard-timeout>0</hard-timeout>
<idle-timeout>0</idle-timeout>
<installHw>false</installHw>
<match>
<ethernet-match>
<ethernet-type>
<type>2048</type>
</ethernet-type>
</ethernet-match>
<ipv4-destination>10.0.10.2/32</ipv4-destination>
</match>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<output-action>
<output-node-connector>1</output-node-connector>
</output-action>
<order>0</order>
</action>
</apply-actions>
</instruction>
</instructions>
<priority>0</priority>
<strict>false</strict>
<table_id>0</table_id>
</input>