問題タブ [yang]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ietf-netmod-yang - netconf edit-config 要求のアトミック プロセスの作成
ユーザーが netconfedit-config
を送信すると、システム内で一連のアクションが開始され、システムの構成がアトミックに変更され、ユーザーに成功または失敗の通知が送信されるカスタム システムを作成しています。
これは、最後にコミットまたはロールバックする大きな SQL トランザクションと考えてください。
だから、ステップ
- ユーザーが
edit-config
- システムは構成を受け入れ、この構成を実装するために動作します
- 構成が成功した場合、親指を立てた応答で送信します (これを行う正式な方法がわからない)
- 構成が失敗した場合は、親指の応答で送信します (構成が内部的にロールバックされていることを確認する必要があります)。
- これはすべてアトミックに行われます。そのため、ユーザーが 2 つの構成を続けて送信しても、互いに競合することはありません。
これを実装するための私たちの実用的なアイデア (おそらく最良のものではない) は、 を受け入れることでこれを実行しedit-config
、次に sysrepo 内で、成功フラグまたは失敗フラグを使用してリーフの一部を編集し、それらが同じセッション内で発生することでした。初期変更。これにより、すべてがアトミックに保たれることを期待していました。セッション外で編集を行うと、複数の構成変更が互いに競合する可能性があります。
純粋な netconf を使用してこれを行うか、sysrepo を直接活用するかについては確信が持てませんでした。これらすべてのプラグイン/バインディングが sysrepo 用に作成されていることに気付き、それらを直接使用してデータストアと通信できると考えました。
しかし、そうは言っても、私たちの実用的なアイデアはおそらくベストプラクティスのアプローチではありません. これを達成するための最良の方法は何ですか?
私たちのシステムは次のとおりです。
そして、私たちのyangファイルは
現在、次のことができます。
- edit-config を netopeer サーバーに対して実行します
- sysrepo データストアで新しい構成レジスタを確認できます
- sysrepo が sysrepo の API を介してデータを登録する瞬間をキャプチャできます
しかし、私たちは問題を抱えています
- 更新セッション中にデータストアをアトミックに編集する (ロックが原因で、これは正常です。実際、更新セッション中に編集する方法がない場合、それは問題なく、必要ありません。主な目標は次の箇条書きです)
- 新しい edit-config にアトミックに反応し、エンド ユーザーに応答する
私たちは皆、netconf と yang に少し慣れていないので、netopeer セッションまたは sysrepo を介してnotification
api またはapiを活用する何らかの方法があると確信していますが、まだ十分にわかっていません。event
このためのアトミックトランザクションを作成するための例や実装のアドバイスがあれば、それは本当に役に立ちます。
opendaylight - Netconf の hello メッセージと Opendaylight で受信する yang モデルの機能に違いがあるのはなぜですか?
私は、Opendaylight Oxigen の Restconf ノースバウンド インターフェイスと、いくつかの陽データ モデルで Netopeer を実行しているデバイスに接続された Netconf サウスバウンドを使用して、デバイスを管理しようとしています。
基本的に、私はこのチュートリアルに従っています:
問題は、hello メッセージの yang 機能と Opendaylight メソッドで取得された機能に違いがあることです。
hello メッセージ (netconf プロセスを実行しているポートへの ssh) の場合:
opendaylight restconf ノースバウンド メッセージ:
http://device-ip:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/TSN-Switch/yang-ext:mount/ を取得します。
ご覧のとおり、hello メッセージの機能はより多く、opendaylight で取得されたメッセージに表示される機能は含まれていません。
さらに、デバイスの yang データモデル リポジトリにチェックインしたところ、次のものが見つかりました。
- iana-crypt-hash@2014-08-06.yang ieee802-types@2018-03-07.yang
ietf-netconf-monitoring@2010-10-04.yang
ietf-tls-server@2016-11-02.yang iana-if-type@2014-05-08.yang
ietf-datastores@2017-08-17.yang
ietf-netconf-notifications@2012-02-06.yang
ietf-x509-cert-to-name@2014-12 -10.yang ieee802-dot1q-bridge@2018-03-07.yang
ietf-interfaces@2018-02-20.yang
ietf-netconf-server@2016-11-02.yang
ietf-yang-library@2018-01 -17.yang ieee802-dot1q-preemption@2018-09-10.yang
ietf-keystore@2016-10-31.yang
ietf-netconf-with-defaults@2011-06-01.yang 内部 ieee802-dot1q-sched@ 2018-09-10.yang
ietf-netconf@2011-06-01.yang ietf-ssh-server@2016-11-02.yang
nc-notifications@2008-07-14.yang ieee802-dot1q-types@2018-03-07.yang ietf-netconf-acm@2018-02-14.yang ietf-system@2014-08-06.yang
notifications@ 2008-07-14.陽
hello メッセージのモデルと、Opendaylight RESTCONF 手順にリストされているモデルが表示されます。
ODL のログは次のとおりです。