我正在尝试在 Opendaylight 中添加一个仪表来配置特定流条目的带宽。我目前无法执行此操作。我不知道问题是什么。是不是下面的节点我指定错了?我正在使用带有 openvswitch 和 Openflow 1.3 的 mininet。 openflow:1 是我的交换机 1.我使用 apidoc 网站来测试 Opendaylight 的配置:[IP:8181/apidoc/explorer/index.html#/]。
在此网站之后安装“odl-restconf-all odl-openflowplugin-flow-services-rest odl-openflowplugin-app-table-miss-enforcer odl-openflowplugin-nxm-extensions”功能后:Opendaylight-doc: OpenFlow插件安装,在sal-meter下我可以使用这个原理:Opendaylight-doc:使用RPC操作的流编程示例只需添加一个仪表,而不需要下载完整的配置然后更新它,如果我理解正确的话。但是,我总是收到错误代码 500。我做错了什么?带有交换机的 Mininet 和一些流程在后台运行并且也被应用。
我的配置:
{
"input": {
"meter-id": 1,
"meter-name": "256kbpsrate",
"flags": "meter-kbps",
"meter-band-headers": {
"meter-band-header": [
{
"band-id": 0,
"meter-band-types": {
"flags": "ofpmbt-drop"
},
"band-rate": 256,
"band-burst-size": 10
}
]
},
"node": "/opendaylight-inventory:nodes/node[id='openflow:1']"
}
}
错误:
{
"errors": {
"error": [
{
"error-tag": "operation-failed",
"error-info": "Device-side failure",
"error-message": "Device reported error type METERMODFAILED code OUTOFBANDS",
"error-type": "application"
}
]
}
我已经尝试以不同的方式编写节点:
/opendaylight-inventory:nodes/node/openflow:1
但是后来我收到了 400 的电话:
{
"errors": {
"error": [
{
"error-tag": "malformed-message",
"error-info": "Could not parse Instance Identifier '/opendaylight-inventory:nodes/node/openflow:1'. Offset: 34 : Reason: Entry (urn:opendaylight:inventory?revision=2013-08-19)node requires key or value predicate to be present",
"error-message": "Error parsing input: Could not parse Instance Identifier '/opendaylight-inventory:nodes/node/openflow:1'. Offset: 34 : Reason: Entry (urn:opendaylight:inventory?revision=2013-08-19)node requires key or value predicate to be present",
"error-type": "protocol"
}
]
}
}
节点:
/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:1']
还会生成相同的错误代码 500。
我在Python-OpenFlow 中也遇到同样的问题。当我向 OVS 交换机创建 MeterMod 请求时,它会返回“OFPT_ERROR: MeterModFailedCode.OFPMMFC_OUT_OF_BANDS error code returned”。和你一样。我想知道如何在 ODL 中解决这个问题。非常感谢。