yang模型中rpc_YANG模型介绍及语法 - 图文 -

RPC

rpc:用于定义netconf的一个rpc操作。它可能包含input和output子节点,分别是该rpc操作所需要的输入和输出数据结构。若没有则表明该操作不需要输入数据或者没有输出数据。

NOTIFICAION

除了rpc,yang还有一个类似的“notification”, notification用于定义netconf的通知消息的内容,也是用来定义一个服务。两者的区别在于rpc是一对一的,即单播,而notification是多播的,当Provider提交一个notification时,所有的订阅该服务的Consumer都会收到通知,如典型的PacketIn消息,所谓的订阅即实现该notification的接口。rpc生成的接口类名后缀都是Service。nontification生成的接口类名后缀是Listener。

OpenDaylight南北向接口

针对以上讨论了这么多关于YANG模型的知识, YANG模型除却本身作为

NETCONF协议的数据建模语言之外,在OpenDaylight中的应用诞生了众所周知的MD-SAL。

MD-SAL简述

对于服务抽象层的Model-driven方法体现出一种统一北向和南向API以及SDN控制器中多种服务和元素中所使用的数据结构。

为了描述控制器元素所提供的数据结构,YANG模型作为一种服务和数据抽象的建模语言就起到了作用。

MD-SAL(Model Driven Service Abstraction Layer)模型驱动服务抽象层的特别就体现在模型(即YANG模型)驱动。如前所述,YANG模型可以无差别地转换为XML格式,同时可以通过yangtools生成java代码,这就是YANG模型实现对OpenDaylight南北向接口数据建模的关键。

下面以实际示例的形式展现YANG模型定义与南北向接口的关系。

YANG模型与北向接口

图3、图6、图7所示为一个简单的北向接口示例的YANG模型截图,在完成YANG模型、java程序实现以后,启动起OpenDaylight可以在北向得到如下RESTCONF接口:

图12

为了看的清楚接下来采用restclient做展示针对以上YANG模型定义,可以知道相应的配置下发为:

图13

下发之后可以通过get方法查到刚刚所下发的配置,如下图所示

图14

以上简单示例了一个yang模型对北向接口数据结构的定义模式,其中还有很多诸如operational data store& config data store、list& key以及格式书写的细节,由于时间关系就暂且不展示了。

YANG模型与南向接口

YANG模型与南向接口的关系主要由java语言体现,也即yangtools将YANG模型生成相应的java代码,对于这部分将以ovsdb代码作展示。

在ovsdb->southbound中定义了ovsdb的具体南向接口,截取southbound-api中ovsdb.yang中的一条主线如下所示,其实由此我们同时也可以分析出ovsdb的北向接口,即为http://localhost:8181/config/network-topology:network-topology/topology/{topology-id}/node/{node-id}/termination-point/{tp-id}/

下面我们来找一下这样的YANG模型会生成什么样子的java代码:

跟从YANG模型定义的路径就可以追踪到想要找到的接口生成代码,对于这个例子来说,YANG模型生成的代码如上图所示。

上图是针对augment来说所生成的代码,图中容易看到,在ovsdb-port-interface-attributes中所具有的leaf节点,在

ovsdbTerminationPointAugmentationBuilder.java中都有相应的getter和setter方法(如图中灰色部分的getOptions)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值