OpenDayLight 4.4.2无法通过RESTCONF获取OpenFlow表信息求助
解决OpenDayLight 4.4.2获取OpenFlow表信息的Schema错误问题
问题原因
opendaylight-inventory命名空间仅负责节点拓扑的基础库存数据,并不直接提供OpenFlow表的详细数据结构,你使用的路径属于错误的命名空间引用,导致Schema找不到。
解决方案
1. 确认OpenFlow插件已正确安装
ODL需要依赖openflowplugin相关特性才能处理OpenFlow表的请求,先检查已安装的特性:
ssh -p 8101 karaf@localhost # 默认密码karaf feature:list | grep openflow
确保已安装odl-openflowplugin-flow-services、odl-openflowplugin-app-table-mgmt这类特性,若未安装,执行:
feature:install odl-openflowplugin-flow-services odl-openflowplugin-app-table-mgmt
2. 使用正确的RESTCONF路径
替换为openflow-node-inventory或flow-node-inventory命名空间的路径,以下两种均有效:
- 方式一(挂载式路径):
/rests/data/opendaylight-inventory:nodes/node=openflow:121062366427215/yang-ext:mount/openflow-node-inventory:table/table=0 - 方式二(直接使用flow-node-inventory命名空间):
/rests/data/opendaylight-flow-node-inventory:nodes/node=openflow:121062366427215/table=0
3. 验证交换机与ODL的OpenFlow版本兼容性
确保OVS的OpenFlow版本与ODL插件支持的版本匹配(ODL 4.4.2默认支持OpenFlow 1.3),修改OVS配置:
ovs-vsctl set bridge <你的桥名> protocols=OpenFlow13
重启OVS服务生效:
systemctl restart openvswitch-switch
4. 先验证节点的完整数据结构
先请求节点的完整数据,确认表数据的实际命名空间:
/rests/data/opendaylight-inventory:nodes/node=openflow:121062366427215
在返回结果中查找包含table字段的命名空间(通常是urn:opendaylight:flow:inventory),再对应拼接路径即可。
内容的提问来源于stack exchange,提问作者mmxland
相关产品推荐
相关产品推荐

