キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
告知

JTAC-Mid-Career-Recruitment-2021.3

 MayCL_topbanner.JPG

 

NSO: トランザクション - NED から southbound まで - ハイレベルなフロー

76
閲覧回数
0
いいね!
0
コメント

 

 

はじめに

NSOとその southbound 機器は NED を介してやりとりをします。NED はデバイスの通信方法により大まかに4つのタイプにわけられます。トランザクションを実行する観点からは、NED のタイプや ( low-level での) 実装に関わらず共通する部分があります。本記事は、トランザクション実行中の NED とデバイスのやりとりを フロー図をみながら説明します。

 

  

NED コードのフロー図

transaction_state.JPG

 トランザクションの各フェーズをハイレベルで記述します。なお、NED のタイプにより実行される内容は変わります。

1. INITIALIZE

INITIALIZE フェーズはトランザクション開始の準備をするフェーズです。機器のタイプにより特に何もしないケースもあります。initialize()の例、config モードに切り替える、トランザクションをサポートする機器ではトランザクションを開始、lock を取得

2. UNINITIALIZE

UNINITIALIZE は、INITIALIZE 実行前の状態に戻ります。INITIALIZEフェーズで何もしないケースでは、UNINITIALIZEでも何もしません。uninitialize()の例、unlock する、トランザクションを abort する

3. prepare

PREPARE では、実際の変更を southbound にて設定し応答を待ちます。ここで NED が OK すると、NSO は、トランザクションが次のフェーズに移行できると判断します。
prepare(Data) の例、変更を機器に送信する、変更をトランザクションに追加する、edit-config 送信

4. ABORT

ABORT は、トランザクションの対象デバイスのうち何れかの処理が失敗することで開始されます。NED は PREPARE フェーズで設定した変更を戻す処理を始めます。変更前の状態に戻すため、reverse diff を使用することがあります。
abort(ReverseData | null) の例、ReverseDataの適用、トランザクションの abort 、discard-changes の実施と close

5. COMMIT

COMMIT では、NED が OK と判断すると、変更はここで Commit されます。Commit がもし失敗した場合、NED は必要に応じて REVERT 処理を開始します。
commit(Timeout)の例、特に何もしない、機器側でトランザクションを commit する、commit (confirmed)

6. REVERT
REVERT は、COMMIT フェーズが失敗したとき開始されます。NED のタイプにより reverse diff を送信します。
revert(ReverseData | null) の例、copy startup 、ReverseData の適用、discard-changes を実行し close する

7. PERSIST

PERSIST は、NED のトランザクション最後のフェーズです。すべての変更が問題なく適用された場合のみ、このフェーズに移行します。デバイスの再起動後に変更が消えないようにします。
persist() の例、copy running to startup、何もしない、commit を validate する

  

 

参考情報

https://developer.cisco.com/docs/nso/guides/#!network-element-drivers-neds/dumb-versus-capable-devices