Cisco-IOS-XE-wireless-client-oper.yang YANG 模型的失败约束请求带有 ydk-go 客户端 Netconf 的 Cisco Catalyst 9800

问题描述

我目前正在借助编程接口 NETCONF 从 Cisco Catalyst 9800 控制器检索一些操作数据。为此,我使用 Cisco 本机 YANG 模型:Cisco-IOS-XECiscoDevNet/ydk-go golang 包的 NETCONF 提供程序。为了为 YANG 模型生成 go-source,我使用了 CiscoDevNet/ydk-gen python 生成器。

我已经成功请求了一些运营数据,例如 Cisco-IOS-XE-wireless-rfid-oper:rfid-oper-dataCisco-IOS-XE-wireless-access-point-oper:access-point-oper-data。但是,当我生成并尝试请求 Cisco-IOS-XE-wireless-client-oper:client-oper-data 时,ydk-go 客户端会出现以下异常:

panic: YModelError: Value "0" does not satisfy the constraint "1 .. 4094" (range,length,or pattern). Path: /Cisco-IOS-XE-wireless-client-oper:client-oper-data/dot11-oper-data[ms-mac-address='00:28:f8:e4:b2:c2']/eogre-client/vlan

我检查了 YANG 模型,确实,eogre-client/vlan 的约束设置为范围:1 .. 4094。虽然 Cisco 控制器返回的数据如下所示:

<eogre-client>
        <is-eogre>false</is-eogre>
        <prevIoUs-match-reason>match-pending-classify</prevIoUs-match-reason>
        <match-reason>match-pending-classify</match-reason>
        <is-aaa-data>false</is-aaa-data>
        <realm/>
        <vlan>0</vlan>
        <domain/>
        <plumbed-gw/>
        <tunnel-ifid>0</tunnel-ifid>
        <is-central-fwd>false</is-central-fwd>
</eogre-client>

我真的不知道 EoGRE 客户端实际上是什么意思,因为我真的不需要这些数据,但我猜 eogre-client/vlan 设置在控制器上被禁用导致 0价值。

我曾尝试更改 YANG 模型中的 vlan 约束定义并重新生成 go-source,但是 ydk-go 仍然会出现相同的异常。

我想了解的是 CiscoDevNet/ydk-go 客户端如何验证请求的数据,以及它是检查生成的 YANG 模型的约束还是从其他地方获取它?我还想知道是否可以在该客户端中禁用约束验证?

同时,我也尝试过 Juniper/go-netconf go client。它需要 XPATH 来调用远程 RPC,我还没有真正了解如何从 YANG 模型中导出 XPATH。也许有人也可以帮我解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...