odl-snmp-plugin没有任何直接使用MIB文件的功能。
诸如snmp-get之类的通用RPC只会获取OID值并返回OID /值对的JSON文档。
POST :host/restconf/operations/snmp:snmp-get
Authentication: :basic-auth
Content-Type: application/json
{
"input": {
"ip-address": ":addr",
"oid" : "1.3.6.1.2.1.2.2.1",
"get-type" : "GET-BULK",
"community" : ":community"
}
}
{
"output": {
"results": [
{
"oid": "1.3.6.1.2.1.2.2.1.1.1",
"value": "1"
},
{
"oid": "1.3.6.1.2.1.2.2.1.1.2",
"value": "2"
},
...
]
}
}
该模块如得到的接口特定的RPC依赖于两个先决条件:
- 甲杨文件已经从所需的MIB
- 甲.oid文件,其中包含从MIB名称映射生成到OID,用于yang-oid-plugin。
通过这些先决条件,您可以编写一个Maven POM文件,该文件将生成包含OID注释的Java代码。这旨在让您使用支持Java绑定的API来获取使用SNMP数据填充的Java对象。
OpenDaylight snmp项目是一个完整的示例,介绍如何执行此操作。
在这里看到产生从IF-MIB的示例YANG文件:https://github.com/opendaylight/snmp/blob/master/mibs-model/src/main/yang/IF-MIB.yang
参见这里的一个例子.oid文件,也从IF-MIB生成:都需要实现 https://github.com/opendaylight/snmp/blob/master/mibs-model/src/main/oid/IF-MIB.oid
进一步的步骤一个通过NETCONF或RESTCONF公开的解决方案。一个简单的方法是像odl-snmp-plugin那样添加和硬编码RPC。更复杂的解决方案需要挂载设备的概念,就像odl-netconf连接器一样,扩展拓扑以存储设备的SNMP凭据,然后编写一个连接器,将支持SNMP的YANG模块安装在拓扑节点下设备。