【问题标题】:What is the standard way to generate XML RPC NETCONF requests from YANG data model从 YANG 数据模型生成 XML RPC NETCONF 请求的标准方法是什么
【发布时间】:2012-04-17 01:28:27
【问题描述】:

我正在尝试寻找一种更好的方法来生成 XML RPC 请求以发送到其中包含 NETCONF 标记的设备。

我们知道请求应该是什么样子,所以我正在做的是,对 XML-RPC 请求 XML 进行硬编码,其中包含占位符。这些占位符可以稍后替换为实际输入。

例如:

<rpc message-id="">
  <get-config>
    <source>
      <running/>
    </source>
    <filter type="subtree" base_path="">
      <wing-stats>
        <device>
          <lldp>
            <dev_id/>
            <local_port/>
            <neighborId/>
            <Neighbor_port_id/>
          </lldp>
          <mac>@device_mac</mac>
        </device>
      </wing-stats>
    </filter>
  </get-config>
</rpc>

在此示例中,@device_mac 将在发送请求时被替换。但是有些我觉得我在硬编码请求 XML。有没有更好的生成请求 XML 的方法?

Netconf 数据将使用 YANG/YIN 文件建模。有没有办法可以利用这些文件至少生成 NETCONF 请求部分?

【问题讨论】:

    标签: java xml-rpc network-protocols ietf-netmod-yang ietf-netconf


    【解决方案1】:

    巴拉,

    我想说有两种方法可以做到这一点:您可以使用任何可用的日期模型驱动工具包,而且我知道其中至少有一个会生成面向模型的 API 并隐藏详细的 XML(DOM ) 操纵。第二个方向是利用RFC 6110 中定义的YANG 到DSDL 映射,由pyang 工具实现。现在,后一个要求您的工具可以使用DSDL,它本质上是Relax NGSchematron 的组合。

    希望这会有所帮助。

    【讨论】:

    • 我也建议使用 pyang DSDL 插件创建一个 Relax NG 模式,然后以某种方式从中生成 rpc 消息。这种模式被用于验证现有的 NETCONF 内容,但从它们生成内容可能需要一些努力来实现。我知道我很难找到可以帮助我在 Java 中使用 RNG 的工具。映射在 RFC6110 中定义..
    【解决方案2】:

    我会说这一切都取决于您的上下文。如果您的应用程序打算只支持这个特定的 rpc,那么对于这样一个小用例使用任何更复杂、独立于模型的 API 可能会有点过头了。

    另一方面,如果您的应用程序必须支持许多模型和 RPC,或者即使它需要支持在运行时添加的新模型,那么您绝对应该探索可以应用于任何模型的解决方案,例如 Carl 提到的那些模型。

    【讨论】:

      猜你喜欢
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 2011-08-01
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      相关资源
      最近更新 更多