@@ -28,12 +28,13 @@ option go_package = "github.com/openconfig/gnmi/proto/gnmi_ext";
2828// The Extension message contains a single gNMI extension.
2929message Extension {
3030 oneof ext {
31- RegisteredExtension registered_ext = 1 ; // A registered extension.
31+ RegisteredExtension registered_ext = 1 ; // A registered extension.
3232 // Well known extensions.
33- MasterArbitration master_arbitration = 2 ; // Master arbitration extension.
34- History history = 3 ; // History extension.
35- Commit commit = 4 ; // Commit confirmed extension.
36- Depth depth = 5 ; // Depth extension.
33+ MasterArbitration master_arbitration = 2 ; // Master arbitration extension.
34+ History history = 3 ; // History extension.
35+ Commit commit = 4 ; // Commit confirmed extension.
36+ Depth depth = 5 ; // Depth extension.
37+ ConfigSubscription config_subscription = 6 ; // Config Subscription extension.
3738 }
3839}
3940
@@ -159,3 +160,33 @@ message Depth {
159160 // returned.
160161 uint32 level = 1 ;
161162}
163+
164+ // ConfigSubscription extension allows clients to subscribe to configuration
165+ // schema nodes only.
166+ message ConfigSubscription {
167+ oneof action {
168+ // ConfigSubscriptionStart is sent by the client in the SubscribeRequest
169+ ConfigSubscriptionStart start = 1 ;
170+ // ConfigSubscriptionSyncDone is sent by the server in the SubscribeResponse
171+ ConfigSubscriptionSyncDone sync_done = 2 ;
172+ }
173+ }
174+
175+ // ConfigSubscriptionStart is used to indicate to a target that for a given set
176+ // of paths in the SubscribeRequest, the client wishes to receive updates
177+ // for the configuration schema nodes only.
178+ message ConfigSubscriptionStart {}
179+
180+ // ConfigSubscriptionSyncDone is sent by the server in the SubscribeResponse
181+ // after all the updates for the configuration schema nodes have been sent.
182+ message ConfigSubscriptionSyncDone {
183+ // ID of a commit confirm operation as assigned by the client
184+ // see Commit Confirm extension for more details.
185+ string commit_confirm_id = 1 ;
186+ // ID of a commit as might be assigned by the server
187+ // when registering a commit operation.
188+ string server_commit_id = 2 ;
189+ // If true indicates that the server is done processing the updates related to the
190+ // commit_confirm_id and/or server_commit_id.
191+ bool done = 3 ;
192+ }
0 commit comments