ironcore-dev / ironcore-dev/network-operator

Cisco NX-OS: verify supported `gNMI` extensions with `capabilities`: `confirmed-commit`

Open
#171 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/switch-automation firmware-bug platform/nx vendor/cisco
Dominant language
Go
Stars
11
Forks
7
Avg merge
1d 7h
Merged PRs (30d)
40

Description

Description

Devices do not return supported gNMI extension in capabilities responses.

Example: gNMI extension confirmed-commits

The gNMI confirmed-commits extension is supported on NXOS starting from 10.6.2.

Suspected Issue

Device does not add a list of the supported extensions into their capabilities responses (standard is unclear about it).

Reproduction

We verified the extension is supported, by first issuing a Set request configured to use the confirmed-commit extension:

❯ gnmic -a localhost -u admin -p admin --port 9340 --skip-verify set --commit-request --commit-id=10 --rollback-duration=10s --update-path="System/fm-items/lldp-items"  --update-value '{"adminSt":"disabled"}'
{
  "source": "localhost",
  "timestamp": 1770122720198432232,
  "time": "2026-02-03T13:45:20.198432232+01:00",
  "results": [
    {
      "operation": "UPDATE",
      "path": "System/fm-items/lldp-items"
    }
  ]
}

Next we log into the target machine and see the transactions:

leaf1# show grpc gnmi transactions

=============
gRPC Endpoint
=============

Vrf            : management
Server address : [::]:9339

Cert notBefore : Feb  3 11:29:14 2026 GMT
Cert notAfter  : Feb  4 11:29:14 2026 GMT
Client Root Cert notBefore : n/a
Client Root Cert notAfter  : n/a

RPC          DataType   Session         Time In              Duration(ms) Status
------------ ---------- --------------- -------------------- ------------ ------
Set          -          8               02/03 12:45:20       42           0
subtype: dtx:  st: path:
Update   -     OK  /System/fm-items/lldp-items
Commit Type: CommitRequest   Persist: 10                   Timeout :10

Unfortunately, the device does not advertise that it supports this extension via the capabilities request:

❯ gnmic -a localhost -u admin -p admin --port 9340 --skip-verify capabilities --print-request
Capabilities Request:
{}
Capabilities Response:
gNMI version: 0.8.0
supported models:
  - Cisco-NX-OS-device, Cisco Systems, Inc., 2025-12-12
  - DME, Cisco Systems, Inc.,
  - Cisco-NX-OS-Syslog-oper, Cisco Systems, Inc., 2019-08-15
supported encodings:
  - JSON
  - PROTO

Workarounds:

  1. find/design a method to discover if this capability is supported before we integrate it into gnmiext, or
  2. blindly rely on release name and date

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the gNMI confirmed-commit reference and the NX-OS programmability documentation linked in the issue, then inspect the gnmiext integration mentioned under Workarounds. Determine whether capabilities can reliably discover support or whether release-based detection is required; done means the supported status can be checked before using the extension.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.