Skip to content

Enhance testing framework to use gNMIc for testing #562

@ronan-nexthop

Description

@ronan-nexthop

Currently we use gnxi gnmi_cli. This has a couple of issue imo

  • We have multiple patches extending support for this tool, attempts to upgrade the gnxi hash we pull this tool from will fail has patch 5 hits a conflict and will need to be resolved
  • We use older protos in this tool. We take our protos from gnxi which was built against proto v3. To keep this working we need special checks in the docker-ptf container to downgrade protobuf for any environments that use protov4. If we wish to use protov4 we will have to recompile the protos for every build
  • Adding additional support to this tool requires adding additional patches and testing which is a disincentive to do so itself
  • Test out parsing is by parsing output lines of stdout, which typically results in if "foo" in std_out

I would like to propose we move away from gnmi_cli, and all the problem it has, to gnoic. This tool is

  • already backed by the OpenConfig community
  • has active development so we can be confident it has the newest features and is properly tested
  • statically compiled go binary with none of the protobuf issues
  • OS agnostic, we don't need to selectively downgrade protobuf library depending on the versions
  • Can output as JSON which can result in nicer python test parsing.

I'm happy to implement the changes to sonic-buildimage and sonic-mgmt, but would like to get some buy in from reviewers that a change like this would be accepted. While we are keen to use it internally i'd like to try to not drift from community too much, and instead contirbute where I can.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions