从其中一个医生那里,我得到了以下信息:
<?xml version="1.0" encoding="utf-8"?>
<rpc message-id="${TIMESTAMP}" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<get-config>
<source>
<running></running>
</source>
<filter>
<interface-configurations xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg"/>
</filter>
</get-config>
</rpc>这实际上是从正在运行的配置中检索接口配置,并且工作正常。
问题1:如何编辑相同的数据以检索接口统计信息?需要使用哪些标签?我怎么知道的?
问题2:我将包含名称空间的行更改为“http://a.b.c.d/check”这样的随机行,结果失败了。为什么?
发布于 2016-10-06 07:12:01
如何编辑相同的数据以检索接口统计信息?需要使用哪些标签?我怎么知道的?
您的示例使用<get-config>标准操作,它只检索配置,而不是操作状态。如果希望检索后者,则需要使用<get/>,它同时检索配置数据和状态数据。
<?xml version="1.0" encoding="utf-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="${TIMESTAMP}">
<get>
<filter>
<interface-configurations xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg"/>
</filter>
</get>
</rpc>这个参数没有<source>参数,因为它总是检索运行的配置加上操作状态。熟悉NETCONF最简单的方法是阅读它的规格说明。
我将包含名称空间的行更改为像'http://a.b.c.d/check‘这样的随机行,结果失败了。为什么?
如果你所说的“失败”意味着你收到了一个<rpc-error>,那将是不标准的行为。您应该得到一个空的<data/>响应,因为没有与过滤器匹配的节点。过滤器需要完全匹配。
<?xml version="1.0" encoding="utf-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="163">
<data/>
</rpc-reply>NETCONF数据存储在很大程度上依赖于名称空间,因为这解决了最常见的命名问题。例如,如果您有两个模块,并且它们包含名为"my-config“的顶级元素,那么您就不会有问题,因为它们是由模块名称空间( {uri:a}my-config和{uri:b}my-config )唯一标识的。
在您的示例中,您请求{http://a.b.c.d/check}interface-configurations,它根本不存在。interface-configuration部件匹配(本地名称)与此无关,因为您从特定的名称空间请求了特定的interface-configuration。
名称空间(某种程度上)类似于住宅地址。可能有许多约翰史密斯存在,但你可以通过说明他的完整地址来解决一个特定的问题。如果您要求您的本地邮件发送一个包裹的名字只是“约翰史密斯”,没有地址,该邮件将不知道你的意思。
注意:如果您的意思是更改了urn:ietf:params:xml:ns:netconf:base:1.0行,那么问题是相同的。您试图执行服务器未知的一些操作。但是,如果出现错误响应,这种情况将失败。
https://stackoverflow.com/questions/39875203
复制相似问题