openconfig / gnmi

gRPC Network Management Interface
Apache License 2.0
459 stars 196 forks source link

Commit confirmed extension proto #155

Closed kidiyoor closed 9 months ago

kidiyoor commented 11 months ago

This is a supporting PR for https://github.com/openconfig/reference/issues/197. Older discussion and reference/handling document PR can be found here: https://github.com/openconfig/reference/pull/196

Netconf rfc6241 has a definition for confirmed commit. as follow-

  If the <persist> element is not given in the confirmed commit
   operation, any follow-up commit and the confirming commit MUST be
   issued on the same session that issued the confirmed commit.  If the
   <persist> element is given in the confirmed <commit> operation, a
   follow-up commit and the confirming commit can be given on any
   session, and they MUST include a <persist-id> element with a value
   equal to the given value of the <persist> element.

Example implementations of confirmed commit(There are other vendors who support confirmed commit but not listed here)-

  1. Cisco - https://www.cisco.com/c/en/us/td/docs/routers/xr12000/software/xr12k_r3-9/system_management/command/reference/yr39xr12k_chapter5.html#wp1873946320 - Confirmed commit can be issued as part of CLI cmds - commit confirmed <seconds> eg. RP/0/0/CPU0:router(config)# commit confirmed 60. The confirmation can be issued by entering a commit in the same SSH session.

  2. Juniper - https://www.juniper.net/documentation/us/en/software/junos/cli/topics/ref/command/commit.html - Confirmed commit can be issued as part of CLI cmds - commit confirmed <minutes>. Eg. user@host# commit confirmed 1. The confirmation can be issued by entering a commit or commit check in the same SSH session.

There is an optional comment field that can be passed which can hold any client provided description.

dplore commented 9 months ago

Please add 2 references to documentation of similar capability and add to the first comment in this PR.

kidiyoor commented 9 months ago

Added netconf definition and two example reference implementation. It looks like in the CLI implementations support for <persist-id> is not added hence confirmation can only be issued in the same SSH session.

hellt commented 9 months ago

It is a pity we haven't addressed the timer reset @dplore

dplore commented 9 months ago

Hi @hellt please submit a new PR to add the timer reset. Be sure to include references. It seems like a straight forward addition? We can wait for the timer reset to be merged before creating a new gnmi release tag.