私はOpenDaylight Carbonによって制御されるopenvswitch(v2.5.2)を備えたミニネット(v2.2.2)ネットワークを持っています。私のアプリケーションはOpenDaylightカラフ機能です。 アプリケーションは、グループテーブル(タイプ=すべて)へのフロー(マルチキャスト用)を作成し、必要に応じてバケットを追加/削除します。 は、バケットを追加/削除するには、私が最初に既存のグループのテーブルがあるかどうかを確認:OpenDaylightでOpenFlowグループテーブルのバケットリストを更新する
InstanceIdentifier<Group> groupIid = InstanceIdentifier.builder(Nodes.class)
.child(Node.class, new NodeKey(NodId))
.augmentation(FlowCapableNode.class)
.child(Group.class, grpKey)
.build();
ReadOnlyTransaction roTx = dataBroker.newReadOnlyTransaction();
Future<Optional<Group>> futOptGrp = rwTx.read(LogicalDatastoreType.OPERATIONAL, groupIid);
それがグループテーブルが見つからない場合は、(SalGroupService.addGroup())が作成されます。グループテーブルが見つかった場合は更新されます(SalGroupService.updateGroup())。
問題は、RPCコールadd/updateGroup()の後にデータモデルの変更を表示するまでに時間がかかることです。 Future<RPCResult<?>>
を待つことは、データモデルがデバイスと同じ状態であることを保証するものではありません。
したがって、データモデルからグループテーブルとバケットリストを読み取って、実際にデバイスの現在の状態と同じ状態を読み取っていることを確認するにはどうすればよいですか。
私はあなたが
を連鎖トランザクションを使用する必要があります。しかし、私はどのように把握することはできません
- がUpdateGroupInputBuilderはsetTransactionUriを(持っている/追加することを知っていますこれらを組み合わせる。 ありがとう
編集:またはRPC呼び出しの代わりに書き込みトランザクションを使用する必要がありますか?