ironcore-dev / ironcore-dev/network-operator
Cisco NX-OS: verify supported `gNMI` extensions with `capabilities`: `confirmed-commit`
Nobody has claimed this yet.
- 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:
- find/design a method to discover if this capability is supported before we integrate it into
gnmiext, or - blindly rely on release name and date
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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